| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | const path = require('path')// normalize file/line numbers into command line args for specific editorsmodule.exports = function getArgumentsForPosition (  editor,  fileName,  lineNumber,  columnNumber = 1) {  const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, '')  switch (editorBasename) {    case 'atom':    case 'Atom':    case 'Atom Beta':    case 'subl':    case 'sublime':    case 'sublime_text':    case 'wstorm':    case 'charm':    case 'zed':      return [`${fileName}:${lineNumber}:${columnNumber}`]    case 'notepad++':      return ['-n' + lineNumber, '-c' + columnNumber, fileName]    case 'vim':    case 'mvim':      return [`+call cursor(${lineNumber}, ${columnNumber})`, fileName]    case 'joe':    case 'gvim':      return ['+' + `${lineNumber}`, fileName]    case 'emacs':    case 'emacsclient':      return [`+${lineNumber}:${columnNumber}`, fileName]    case 'rmate':    case 'mate':    case 'mine':      return ['--line', lineNumber, fileName]    case 'code':    case 'Code':    case 'code-insiders':    case 'Code - Insiders':    case 'codium':    case 'trae':    case 'cursor':    case 'vscodium':    case 'VSCodium':      return ['-r', '-g', `${fileName}:${lineNumber}:${columnNumber}`]    case 'appcode':    case 'clion':    case 'clion64':    case 'idea':    case 'idea64':    case 'phpstorm':    case 'phpstorm64':    case 'pycharm':    case 'pycharm64':    case 'rubymine':    case 'rubymine64':    case 'webstorm':    case 'webstorm64':    case 'goland':    case 'goland64':    case 'rider':    case 'rider64':      return ['--line', lineNumber, '--column', columnNumber, fileName]  }  if (process.env.LAUNCH_EDITOR) {    return [fileName, lineNumber, columnNumber]  }  // For all others, drop the lineNumber until we have  // a mapping above, since providing the lineNumber incorrectly  // can result in errors or confusing behavior.  return [fileName]}
 |