Wzniosły tekst: Nie drukuj ścieżki polecenia kompilacji


19

Mam następujący skrypt kompilacji dla moich plików JavaScript w Sublime Text 3.

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

Problem polega na tym, że gdy węzeł zwróci błąd, z jakiegoś powodu Sublime wypluje ścieżkę, która nie zawija linii i zanieczyszcza dane wyjściowe.

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]

Jak mogę poprosić Sublime, aby nie wyświetlała ścieżki?


Myślę, że to tylko część standardowego wyjścia błędu / debugowania. Nie znam jednak żadnego sposobu, aby wyłączyć tę opcję za pomocą opcji lub zbudować flagi ...
MattDMo,

Zamiast wyłączać wyjście ścieżki, możesz wyłączyć zawijanie słów w oknie wyników kompilacji. Upewnij się, że okno kompilacji jest aktywne, a następnie wykonaj, View -> Word Wrapaby je wyłączyć. Choć nie jest to idealne rozwiązanie, jest znacznie prostsze niż modyfikowanie wewnętrznych elementów Sublime Text.
anishpatel

Odpowiedzi:


12

Trochę hack, ale następujące działało dla mnie. Okazuje się, że możesz zastąpić kod w niektórych domyślnych pakietach, w tym kod odpowiedzialny za wyjście ścieżki:

  1. Idź do C: \ Program Files \ Sublime Text 3 \ Packages
  2. Wyodrębnij Default.sublime-package (tak naprawdę jest to plik zip) i pobierz plik exec.py (nie pozostawiaj wyodrębnionego folderu zawieszonego w katalogu)
  3. Utwórz katalog Domyślny w C: \ Users \ USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages i umieść w nim plik exec.py
  4. Otwórz plik exec.py i skomentuj (umieść # na początku wiersza) następującą linię, w wierszu 245 dla mnie

    self.append_string (proc, self.debug_text)

  5. Uruchom ponownie wysublimowany tekst

To zrobiło dla mnie pracę :)
Stephn_R

6

Zainstaluj pakiet PackageResourceViewer

Otwórz PackageResourceViewer: Otwórz zasób za pomocą CommandPalette [Ctrl + Shift + P]

Następnie wybierz Domyślne -> exec.py Następnie wybierz Sublime Input -> input.py [For Sublime Input]

Skomentuj (umieść # na początku wiersza) następującą linię, w wierszu 365 [ST3 B3126] (383 dla Sublime Input) dla mnie

self.append_string(proc, self.debug_text)

To nie tylko ukrywanie ścieżki, ale także katalog i cmd.

Aby ukryć tylko ścieżkę, skomentuj następujący blok

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

Aktualizacja

Aby usunąć cmd, gotową instrukcję, katalog, ścieżkę „quiet”: true w pliku kompilacji

Źródło


Ładny! Chciałbym, żeby istniało ustawienie, aby to przełączać. jak"error_info": ["cmd", "dir", "path"]
Nolan Conaway

@NolanConaway Nie ma
SmartManoj

możesz mi to wskazać? Nie udało mi się znaleźć niczego w dokumentacji.
Nolan Conaway

@NolanConaway cichy klucz
SmartManoj

@ SmartManoj Ach, tak, wiem o tej opcji. Zapobiega to jednak również drukowaniu upływającego czasu itp. Naprawdę chcę tylko usunąć ścieżkę!
Nolan Conaway
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.