You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const path = require("path");
|
|
const utils_1 = require("./utils");
|
|
exports.default = (editor, fileName, lineNumber, colNumber) => {
|
|
const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
|
|
const system = utils_1.getOS();
|
|
switch (editorBasename) {
|
|
case 'atom':
|
|
case 'Atom':
|
|
case 'Atom Beta':
|
|
case 'subl':
|
|
case 'sublime':
|
|
case 'sublime_text':
|
|
return [`${fileName}:${lineNumber}:${colNumber}`];
|
|
case 'wstorm':
|
|
case 'charm':
|
|
return [`${fileName}:${lineNumber}`];
|
|
case 'notepad++':
|
|
return [`-n${lineNumber}`, `-c${colNumber}`, fileName];
|
|
case 'vim':
|
|
case 'mvim':
|
|
case 'joe':
|
|
case 'gvim':
|
|
return [`+${lineNumber}`, fileName];
|
|
case 'emacs':
|
|
case 'emacsclient':
|
|
return [`+${lineNumber}:${colNumber}`, fileName];
|
|
case 'rmate':
|
|
case 'mate':
|
|
case 'mine':
|
|
return ['--line', lineNumber, fileName];
|
|
case 'code':
|
|
case 'Code':
|
|
case 'code-insiders':
|
|
case 'Code - Insiders': {
|
|
if (system === 'linux') {
|
|
return ['-r', '-g', '--user-data-dir', path.dirname(fileName), fileName];
|
|
}
|
|
return ['-r', '-g', `${fileName}:${lineNumber}:${colNumber}`];
|
|
}
|
|
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':
|
|
return ['--line', lineNumber, fileName];
|
|
}
|
|
// 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];
|
|
};
|