# launch-ide · [![NPM version](https://img.shields.io/npm/v/launch-ide.svg)](https://www.npmjs.com/package/launch-ide) [![NPM Downloads](https://img.shields.io/npm/dm/launch-ide.svg)](https://npmcharts.netlify.app/compare/launch-ide?minimal=true) [![MIT-license](https://img.shields.io/npm/l/launch-ide.svg)](https://opensource.org/licenses/MIT) [![GITHUB-language](https://img.shields.io/github/languages/top/zh-lx/launch-ide?logoColor=purple&color=purple)](https://github.com/zh-lx/launch-ide) Automatically recognize the editor by running processes and open the specified file in it. It is compatible in Windows, MacOS and Linux.
## 💡 Why There are already some tools to open the file in the editor, but `launch-ide` has the following advantages: - Automatically recognize the editor by running processes, you don't need to configure the editor path. - Launch the ide by the executable file of the editor, so you don't need to install the command line tools of the editor such as `code`. - Support for more editors such as VSCode, Cursor, Windsurf, WebStorm, etc. - Compatible with platforms such as Windows, MacOS, and Linux. - Compatible for Chinese characters in the file path. ## 🛠️ Installation ```bash npm i launch-ide ``` ## 🚀 Usage ```ts import { launchIDE } from 'launch-ide'; // Open the file in the current editor and position the cursor at line 10 and column 20 launchIDE({ file: '/Users/zh-lx/Desktop/test.ts', line: 10, column: 20 }); // Open the file with more options launchIDE({ file: '/Users/zh-lx/Desktop/test.ts', // required: the file path to open line: 10, // optional: the line number to position the cursor at column: 20, // optional: the column number to position the cursor at editor: 'code', // optional: specify the editor with IDE encoding name }); ``` ## 📖 Parameters ```ts interface LaunchIDEParams { /** * @required * @type: string * @description: the file path to open */ file: string; /** * @optional * @type: number * @description: the line number to position the cursor at */ line?: number; /** * @optional * @type: number * @description: the column number to position the cursor at */ column?: number; /** * @optional * @type: string * @description: specify the editor with IDE encoding name */ editor?: string; /** * @optional * @type: string * @description: when you use the `editor` outside the supported list, you can specify the format of the file to open * @default '{file}:{line}:{column}' */ format?: string; /** * @optional * @type: string * @description: reuse or open a new window to open the file * @default 'auto' */ method?: 'reuse' | 'new' | 'auto'; /** * @optional * @type: function * @description: callback function when an error occurs */ onError?: (file: string, error: string) => void; } ``` ## 🎨 Supported editors
IDE IDE Encoding Name MacOS Windows Linux
Visual Studio Code code
Cursor cursor
Windsurf windsurf
Trae trae
Visual Studio Code - Insiders code-insiders
VSCodium codium
WebStorm webstorm
Atom atom
HBuilderX hbuilder
PhpStorm phpstorm
Pycharm pycharm
IntelliJ IDEA idea
Brackets brackets
Appcode appcode
Atom Beta atom-beta
Clion clion
Rider rider
Rubymine rubymine
Emacs emacs
Sublime Text sublime
Notepad++ notepad
Vim vim
Zed zed
## ✍️ Custom editor There are two ways to specify the editor: 1. Specify the editor with IDE encoding name in `launchIDE`. ```ts launchIDE({ file: '/Users/zh-lx/Desktop/test.ts', line: 10, column: 20, editor: 'cursor' }); ``` 2. Specify the editor with IDE encoding name in `.env.local` file by `CODE_EDITOR`. ```bash CODE_EDITOR=cursor ``` If you use the editor outside the supported list, you can specify the editor by its executable file path, please refer to [Other Editor](https://inspector.fe-dev.cn/en/guide/ide.html#other-ides).