Skip to content

zh-lx/launch-ide

Repository files navigation

launch-ide · NPM version NPM Downloads MIT-license GITHUB-language

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

npm i launch-ide

🚀 Usage

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

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
CodeBuddy codebuddy
comate comate
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.
launchIDE({ 
  file: '/Users/zh-lx/Desktop/test.ts', 
  line: 10,
  column: 20,
  editor: 'cursor' 
});
  1. Specify the editor with IDE encoding name in .env.local file by CODE_EDITOR.
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.

About

Automatically recognize the editor by running processes and open the specified file in it

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •