What is open-editor?
The open-editor npm package allows you to programmatically open files in the user's preferred text editor. It is useful for applications that need to provide a way for users to quickly access and edit files directly from the application interface.
What are open-editor's main functionalities?
Open a file in the default editor
This feature allows you to open a specific file at a given line and column in the user's default text editor. In this example, 'index.js' is opened at line 10, column 2.
const openEditor = require('open-editor');
openEditor(['index.js:10:2']);
Open multiple files
You can open multiple files at specific lines and columns simultaneously. This example opens 'index.js' at line 10, column 2, and 'app.js' at line 5, column 1.
const openEditor = require('open-editor');
openEditor(['index.js:10:2', 'app.js:5:1']);
Other packages similar to open-editor
opn
The opn package is used to open files, URLs, or applications using the default application on the user's system. While opn is more general-purpose, open-editor is specifically focused on opening files in text editors.
open
The open package is similar to opn and is used to open files, URLs, or applications. It provides more control over the opening process, such as specifying the application to use. Like opn, it is broader in scope compared to open-editor, which is specialized for text editors.
open-editor
Open files in your editor at a specific line and column
Supports any editor, but only the following editors will open at a specific line and column:
- Sublime Text
- Atom
- Zed
- Visual Studio Code
- VSCodium
- WebStorm*
- TextMate
- Vim
- NeoVim
- IntelliJ IDEA*
*Doesn't support column.
Install
npm install open-editor
Usage
import openEditor from 'open-editor';
openEditor([
{
file: 'readme.md',
line: 10,
column: 2,
}
]);
openEditor([
'unicorn.js:5:3',
]);
API
openEditor(files, options?)
Open the given files in the user's editor at specific line and column if supported by the editor. It does not wait for the editor to start or quit unless you specify wait: true
in the options.
files
Type: Array<string | object>
Items should be in the format foo.js:1:5
or {file: 'foo.js', line: 1: column: 5}
.
options
Type: object
wait
Type: boolean
Default: false
Wait until the editor is closed.
import openEditor from 'open-editor';
await openEditor(['unicorn.js:5:3'], {wait: true});
console.log('File was closed');
editor
Type: string
Default: Auto-detected
The name, command, or binary path of the editor.
Only use this option if you really have to. Can be useful if you want to force a specific editor or implement your own auto-detection.
getEditorInfo(files, options?)
Same as openEditor()
, but returns an object with the binary name, arguments, and a flag indicating whether the editor runs in the terminal.
Example: {binary: 'subl', arguments: ['foo.js:1:5'], isTerminalEditor: false}
Can be useful if you want to handle opening the files yourself.
import {getEditorInfo} from 'open-editor';
getEditorInfo([
{
file: 'foo.js',
line: 1,
column: 5,
}
]);
Related