Texte sublime: n'imprime pas le chemin de la commande de construction

19

J'ai le script de construction suivant pour mes fichiers JavaScript dans Sublime Text 3.

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

Le problème est que lorsque le noeud renvoie une erreur, pour une raison quelconque, Sublime crache le chemin, qui ne passe pas à la ligne, et pollue la sortie.

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]

Comment puis-je demander à Sublime de ne pas sortir le chemin?

Randomblue
la source
Je pense que ce n'est qu'une partie de la sortie d'erreur / de débogage standard. Je ne connais aucun moyen de le désactiver via des options ou de construire des drapeaux, cependant ...
MattDMo
Au lieu de désactiver la sortie du chemin, vous pouvez désactiver le retour automatique à la ligne dans la fenêtre de sortie de génération. Assurez-vous que la fenêtre de génération est active, puis View -> Word Wrapdésactivez-la. Bien que ce ne soit pas une solution parfaite, c'est beaucoup plus simple que de modifier les internes de Sublime Text.
anishpatel

Réponses:

12

Un peu de hack, mais ce qui suit a fonctionné pour moi. Il s'avère que vous pouvez remplacer le code dans certains des packages par défaut, y compris le code responsable de la sortie du chemin:

  1. Accédez à C: \ Program Files \ Sublime Text 3 \ Packages
  2. Extrayez le package Default.sublime (c'est en fait un fichier zip) et récupérez le fichier exec.py (ne laissez pas le dossier extrait traîner dans le répertoire)
  3. Créez le répertoire Default sous C: \ Users \ USERNAME \ AppData \ Roaming \ Sublime Text 3 \ Packages et placez-y exec.py
  4. Ouvrez exec.py et commentez (placez # au début de la ligne) la ligne suivante, à la ligne 245 pour moi

    self.append_string (proc, self.debug_text)

  5. Redémarrez le texte sublime
William Saunders
la source
Cela a fait le travail pour moi :)
Stephn_R
6

Installer le package PackageResourceViewer

Ouvrir PackageResourceViewer: ouvrir une ressource à l'aide de la palette de commandes [Ctrl + Maj + P]

Sélectionnez ensuite Default -> exec.py Sélectionnez ensuite Sublime Input -> input.py [pour Sublime Input]

Commentez (placez # au début de la ligne) la ligne suivante, à la ligne 365 [ST3 B3126] (383 pour Sublime Input) pour moi

self.append_string(proc, self.debug_text)

Cela ne cache pas seulement le chemin mais aussi le dir et le cmd.

Pour masquer uniquement le chemin, commentez le bloc suivant

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

Mise à jour

Pour supprimer cmd, instruction terminée, dir, chemin "silencieux": vrai dans le fichier de construction

La source

SmartManoj
la source
Agréable! Je souhaite qu'il y ait un paramètre pour basculer cela. comme"error_info": ["cmd", "dir", "path"]
Nolan Conaway
@NolanConaway Il y a
SmartManoj
pouvez-vous me l'indiquer? Je n'ai rien trouvé dans la documentation.
Nolan Conaway
@NolanConaway discret key
SmartManoj
@ SmartManoj Ah, oui, je connais cette option. Cependant, cela empêche également le temps écoulé, etc., d'être imprimé. Je veux vraiment supprimer le chemin!
Nolan Conaway