Возвышенный текст: не печатать путь команды сборки

19

У меня есть следующий скрипт для моих файлов JavaScript в Sublime Text 3.

{
  "shell_cmd": "node --harmony --use-strict --harmony_generators $file"
}

Проблема состоит в том, что когда узел возвращает ошибку, Sublime по какой-то причине выкинет путь, который не переносится строкой, и загрязняет вывод.

C:\Users\JFD\Desktop\playground.js:2
console.log(b); // ReferenceError: a is not defined
        ^
ReferenceError: b is not defined
    at Object.<anonymous> (C:\Users\JFD\Desktop\playground.js:2:13)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:349:32)
    at Function.Module._load (module.js:305:12)
    at Function.Module.runMain (module.js:490:10)
    at startup (node.js:119:16)
    at node.js:827:3
[Finished in 0.1s with exit code 8]
[shell_cmd: node --harmony --use-strict --harmony_generators C:\Users\JFD\Desktop\playground.js]
[dir: C:\Users\JFD\Desktop]
[path: C:\Program Files (x86)\Microchip\xc8\v1.11\bin;C:\Program Files (x86)\CMake 2.8\bin;C:\MinGW\bin;C:\yagarto4.6.0\bin;C:\Python26\;C:\Python26\Scripts;C:\Program Files (x86)\Altium Designer S09 Viewer\System;C:\PROGRA~2\MpAM;C:\windows\system32;C:\Program Files\nodejs\;C:\Cadence\SPB_16.6\tools\bin;C:\Cadence\SPB_16.6\tools\libutil\bin;C:\Cadence\SPB_16.6\tools\fet\bin;C:\Cadence\SPB_16.6\tools\specctra\bin;C:\Cadence\SPB_16.6\tools\pcb\bin;C:\Cadence\SPB_16.6\openaccess\bin\win32\opt;C:\Cadence\SPB_16.6\tools\capture;C:\Users\JFD\AppData\Roaming\npm\;c:\altera\12.1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ase\win32aloem;c:\altera\12.1sp1\modelsim_ae\win32aloem]

Как я могу попросить Sublime не выводить путь?

Randomblue
источник
Я думаю, что это только часть стандартного вывода ошибок / отладки. Я не знаю ни одного способа отключить его с помощью опций или флагов сборки, хотя ...
MattDMo
Вместо отключения вывода пути вы можете отключить перенос слов в окне вывода сборки. Убедитесь, что окно сборки активно, а затем View -> Word Wrapотключите его. Хотя это и не идеальное решение, это гораздо проще, чем модифицировать внутренности Sublime Text.
анишпатель

Ответы:

12

Немного взломать, но у меня сработало следующее. Оказывается, вы можете переопределить код в некоторых пакетах по умолчанию, включая код, отвечающий за вывод пути:

  1. Перейдите в C: \ Program Files \ Sublime Text 3 \ Packages
  2. Извлеките Default.sublime-package (на самом деле это zip-файл) и получите файл exec.py (не оставляйте извлеченную папку в каталоге)
  3. Создайте каталог Default по умолчанию в C: \ Users \ USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages и поместите в него exec.py.
  4. Откройте exec.py и закомментируйте (поместите # в начале строки) следующую строку для меня в строке 245

    self.append_string (proc, self.debug_text)

  5. Перезапустите Sublime Text
Уильям Сондерс
источник
Это сделало работу для меня :)
Stephn_R
6

Установить пакет PackageResourceViewer

Открыть PackageResourceViewer: открыть ресурс с помощью CommandPalette [Ctrl + Shift + P]

Затем выберите Default -> exec.py. Затем выберите Sublime Input -> input.py [Для Sublime Input].

Закомментируйте (поместите # в начале строки) следующую строку в строке 365 [ST3 B3126] (383 для Sublime Input) для меня

self.append_string(proc, self.debug_text)

Это не только скрытие пути, но и dir и cmd.

Чтобы скрыть только путь, прокомментируйте следующий блок

if "PATH" in merged_env:
  self.debug_text += "[path: " + str(merged_env["PATH"]) + "]"
else:
  self.debug_text += "[path: " + str(os.environ["PATH"]) + "]"

Обновить

Чтобы удалить cmd, готовый оператор, каталог, путь "quiet": true в файле сборки

Источник

SmartManoj
источник
Ницца! Я хотел бы, чтобы была настройка, чтобы переключить это. как"error_info": ["cmd", "dir", "path"]
Нолан Конавей
@NolanConaway Есть
SmartManoj
Вы можете указать мне на это? Я не смог ничего найти в документации.
Нолан Конавей
@NolanConaway тихий ключ
SmartManoj
@ SmartManoj Ах, да, я знаю об этом варианте. Тем не менее, это также препятствует тому, чтобы истекшее время и т. Д. Принесли напечатанное. Я действительно хочу только удалить путь!
Нолан Конавей