Wie kann vscode nicht auf das Beenden einer preLaunchTask warten?

8

Ich habe eine Debug-Einrichtung in Visual Studio-Code, wo ich eine externe Binärdatei ausführe, die meine JS-Dateien ausführen kann (mit duktape). Der Debug-Adapter unterstützt derzeit nur Attach-Anfragen (nicht starten), so dass ich die Binärdatei ausführen muss, bevor ich die JS-Skripte debuggen kann.

Um zu vermeiden, dass ich die Anwendung manuell starten muss, habe ich eine Aufgabe dafür erstellt und diese in meiner Datei launch.json eingestellt:

%Vor%

Die Aufgabe ist so definiert:

%Vor%

Das Problem besteht nun darin, dass vscode darauf wartet, dass der Pre-Launch-Task beendet wird, während die Anwendung darauf wartet, dass ein Debugger angehängt wird. Fange 22.

Wie kann ich vermeiden, dass vscode darauf wartet, dass die Pre-Launch-Aufgabe beendet wird?

Aktualisieren :

Inzwischen habe ich auf der Task-Seite von vscode nachgelesen und kam zu dieser Task-Konfiguration. Trotzdem funktioniert es nicht für mich

%Vor%

Die gestartete Anwendung gibt die Wartemeldung aus und wartet dann endlos auf eine Debug-Verbindung. Vielleicht hat das Problem mit der Anwendung zu tun (die wie Node.js wie Terminal-App ist), geschrieben in C ++?

    
Mike Lischke 29.05.2017, 12:03
quelle

2 Antworten

2

Hintergrund / Aufgaben beobachten

Einige Tools unterstützen die Ausführung im Hintergrund, während Sie das Dateisystem nach Änderungen beobachten und dann eine Aktion auslösen, wenn sich eine Datei auf der Festplatte ändert. Mit Gulp wird diese Funktionalität über das npm Modul gulp-watch bereitgestellt. Der TypeScript-Compiler tsc hat dafür Unterstützung über die Option --watch command line eingebaut.

Um Rückmeldung darüber zu geben, dass eine Hintergrundaufgabe in VS Code aktiv ist und zu Problemergebnissen führt, muss ein Problem-Matcher zusätzliche Informationen verwenden, um diese state Änderungen in der Ausgabe zu erkennen. Nehmen wir den tsc Compiler als Beispiel. Wenn der Compiler im Überwachungsmodus gestartet wird, gibt er die folgenden zusätzlichen Informationen an die Konsole aus:

%Vor%

Wenn sich eine Datei auf einem Datenträger mit einem Problem ändert, wird die folgende Ausgabe angezeigt:

%Vor%

Wenn Sie den Ausgang betrachten, wird das folgende Muster angezeigt:

  • Der Compiler wird ausgeführt, wenn File change detected. Starting incremental compilation... auf die Konsole gedruckt wird.
  • Der Compiler stoppt, wenn Compilation complete. Watching for file changes. auf die Konsole gedruckt wird.
  • Zwischen diesen beiden Strings werden Probleme gemeldet.
  • Der Compiler läuft auch einmal beim ersten Start (ohne File change detected. Starting incremental compilation... auf die Konsole zu drucken).

Um diese Informationen zu erfassen, kann ein Problem-Matcher eine Eigenschaft background bereitstellen.

Für den Compiler tsc sieht eine entsprechende Eigenschaft background wie folgt aus:

%Vor%

Zusätzlich zur Eigenschaft background im Problem-Matcher muss die Aufgabe selbst als isBackground markiert werden, damit die Aufgabe im Hintergrund weiterläuft.

Eine vollständige handgefertigte tasks.json für einen tsc Task, der im Watch-Modus läuft, sieht folgendermaßen aus:

%Vor%

PS: Inhalt stammt aus Ссылка

Bearbeiten-1

Die Aufgabe muss als Daemon gestartet werden, dann wird nur isBackground helfen. Du wirst also etwas wie

haben %Vor%     
Tarun Lalwani 28.02.2018 16:58
quelle
0

Wie wäre es damit, einen Hintergrundjob zu erstellen, indem Sie hinzufügen: "isBackground": true

    
李骏骁 28.02.2018 08:27
quelle