2017-01-13 2 views
1

Ich möchte meine eigene Erweiterung erstellen, die vordefinierte Konfiguration für Debugger (launch.json) und eine vordefinierte Gruppe von Aufgaben (tasks.json) zur Verfügung stellen würde.Ist es möglich, eine VS-Code-Erweiterung zu schreiben, die tasks.json und launch.json ändert?

Jetzt habe ich vs-Code in diesen 2 Dateien konfiguriert, aber es gibt viele hardcodes an vielen Orten, die über verschiedene Projekte variieren. Im Idealfall würde ich gerne ein Plugin haben, das zB eine Konfigurationsdatei liest und alles auf "tasks.json" und "launch.json" anwendet.

Fragen, ob das mit VS-Code-Erweiterungen API sogar möglich ist.

Antwort

1

Ich denke, dass Sie dies mit Variablen können, die in settings.json definiert sind.

{ 
    "editor.formatOnSave": false, // normal settings defined by the editor and plugins 
    "foo.bar": "baz" // custom setting 
} 

Anschließend können Sie verweisen diese Einstellung innerhalb tasks.json oder launch.json mit String-Interpolation als "${config.foo.bar}": Sie können Ihre eigenen benutzerdefinierten Einstellungen in settings.json (entweder vom Benutzer oder Arbeitsbereich Einstellungen) definieren.

Ich bin nicht sicher, wo dies dokumentiert ist, aber ich fand dazu eine Referenz in https://github.com/Microsoft/vscode/pull/11291

Update:

ich einen Test Repo bei https://github.com/boyvinall/vscode-c-dbg erstellt haben. Als ich die „run“ Aufgabe innerhalb tasks.json aufrufen, erhalte ich die folgende Ausgabe:

enter image description here

Verwendung durch launch.json mit meiner aktuellen Konfiguration scheint nicht mit der „gdb“ -Konfiguration zu arbeiten, obwohl die „cppdbg "Konfiguration scheint ok zu arbeiten:

enter image description here

NB, falls wichtig es ist, ich bin vscode v1.8.1 läuft

+0

Scheint nicht zu funktionieren.Ich bekomme keine "unbekannte Referenz" Art von Fehler aber scheint wie die "$ {config.foo.bar}" definiert in settings.json in eine leere Zeichenfolge aufgelöst. Auch VS-Code gibt eine Warnung "unbekannte Konfigurationseinstellung" in der Datei "settings.json". – mar3kk

+0

Ich habe die Antwort mit einem Link zu einem Github Repo aktualisiert, der das funktioniert zeigt. Kannst du das laufen? – boyvinall

+0

Das funktioniert, weil in settings.json das Präfix "config" weggelassen werden sollte, das habe ich verpasst. Wissen Sie, ob es möglich ist, durch Erweiterungen die Aufgaben vorzudefinieren? – mar3kk

0

Visual Studio C Ode: 1.15.1

settings.json (.vscode Ordner aktuelles Verzeichnis)

{ 
"foo.bar": "baz" // custom setting 
} 

launch.json (Beispiel)

{ 
"program": "${workspaceRoot}/${config:foo.bar}.exe" 
} 

Ich war auf der Suche fand es um. Aber es war out Date und versuchte es herauszufinden. Bis der Helfer Visual Studio Code-Hinweis mir die Information gab, wenn die Maus über die Zeichenfolgen schwebte.

"$ {config.foo.bar}"

funktioniert nicht.

"$ {config: foo.bar}"

funktioniert.

Verwandte Themen