You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.6 KiB

export interface Editor {
id: string;
name: string;
binary: string;
isTerminalEditor: boolean;
paths: string[];
keywords: string[];
}
/**
Get info about the default editor.
The user is expected to have the `$EDITOR` environment variable set, and if not, a user-friendly error is thrown.
@returns Metadata on the default editor.
@example
```
import {defaultEditor} from 'env-editor';
defaultEditor();
// {
// id: 'atom',
// name: 'Atom',
// binary: 'atom',
// isTerminalEditor: false,
// paths: [
// '/Applications/Atom.app/Contents/Resources/app/atom.sh'
// ],
// keywords: []
// }
```
*/
export function defaultEditor(): Editor;
/**
Get info about a specific editor.
@param editor - This can be pretty flexible. It matches against all the data it has. For example, to get Sublime Text, you could write either of the following: `sublime`, `Sublime Text`, `subl`.
@returns Metadata on the specified editor.
@example
```
import {getEditor} from 'env-editor';
getEditor('sublime');
// {
// id: 'sublime',
// name: 'Sublime Text',
// binary: 'subl',
// isTerminalEditor: false,
// paths: [
// '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',
// '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl'
// ],
// keywords: []
// }
```
*/
export function getEditor(editor: string): Editor;
/**
@returns Metadata on all the editors.
@example
```
import {allEditors} from 'env-editor';
allEditors();
// [
// {
// id: 'atom',
// …
// },
// {
// id: 'sublime,
// …
// },
// …
// ]
```
*/
export function allEditors(): Editor[];