Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

launch-ide

zh-lx46.3kMIT1.0.7TypeScript support: included

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

launch, editor, open, ide, recognize, open-file

readme

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
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' 
    });
  2. 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.