Erhabener Text: Pfad des Erstellungsbefehls nicht drucken

19

Ich habe das folgende Build-Skript für meine JavaScript-Dateien in Sublime Text 3.

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

Das Problem ist, dass wenn der Knoten einen Fehler zurückgibt, Sublime aus irgendeinem Grund den Pfad ausspuckt, der nicht umbrochen wird, und die Ausgabe verschmutzt.

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]

Wie kann ich Sublime bitten, den Pfad nicht auszugeben?

Zufälliges Blau
quelle
Ich denke, dies ist nur ein Teil der Standard-Fehler- / Debugging-Ausgabe. Ich kenne keine Möglichkeit, es durch Optionen zu deaktivieren oder Flags zu
erstellen
Anstatt die Pfadausgabe zu deaktivieren, können Sie den Zeilenumbruch im Ausgabefenster deaktivieren. Stellen Sie sicher, dass das Erstellungsfenster aktiv ist, und View -> Word Wrapdeaktivieren Sie es dann. Obwohl dies keine perfekte Lösung ist, ist es viel einfacher als die Interna von Sublime Text zu ändern.
anishpatel

Antworten:

12

Ein bisschen hacken, aber das Folgende hat für mich funktioniert. Es stellte sich heraus, dass Sie Code in einigen Standardpaketen überschreiben können, einschließlich des Codes, der für die Pfadausgabe verantwortlich ist:

  1. Wechseln Sie zu C: \ Programme \ Sublime Text 3 \ Packages
  2. Extrahieren Sie das Default.sublime-Paket (es ist eigentlich eine Zip-Datei) und rufen Sie die Datei exec.py ab (lassen Sie den extrahierten Ordner nicht im Verzeichnis hängen).
  3. Erstellen Sie das Verzeichnis Default unter C: \ Users \ USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages und platzieren Sie exec.py darin
  4. Öffnen Sie exec.py und kommentieren Sie die folgende Zeile in Zeile 245 aus (Platz # am Anfang der Zeile)

    self.append_string (proc, self.debug_text)

  5. Starten Sie Sublime Text neu
William Saunders
quelle
Dies hat den Job für mich gemacht :)
Stephn_R
6

Installieren Sie das PackageResourceViewer- Paket

Öffne PackageResourceViewer: Öffne Ressource mit CommandPalette [Strg + Shift + P]

Wählen Sie dann "Standard" -> "exec.py". Wählen Sie dann "Sublime Input" -> "input.py". [Für Sublime Input]

Kommentiere die folgende Zeile aus (setze # am Anfang der Zeile), in Zeile 365 [ST3 B3126] (383 für Sublime Input) für mich

self.append_string(proc, self.debug_text)

Dies verbirgt nicht nur den Pfad, sondern auch dir und cmd.

Um nur den Pfadkommentar auszublenden, geben Sie den folgenden Block ein

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

Aktualisieren

Zum Entfernen von cmd, finished statement, dir, path "quiet": true in der Build-Datei

Quelle

SmartManoj
quelle
Nett! Ich wünschte, es gäbe eine Einstellung, um dies umzuschalten. wie"error_info": ["cmd", "dir", "path"]
Nolan Conaway
@NolanConaway Es gibt
SmartManoj
Kannst du mich darauf hinweisen? Ich konnte in der Dokumentation nichts finden.
Nolan Conaway
@NolanConaway ruhigen Schlüssel
SmartManoj
@ SmartManoj Ah, ja, ich weiß um diese Option. Dies verhindert jedoch auch, dass die verstrichene Zeit usw. gedruckt wird. Ich möchte wirklich nur den Pfad entfernen!
Nolan Conaway