2016-07-30 24 views
1

Ich arbeite an einer VS-Code-Erweiterung für Dart. Die Konvention für Dart besteht darin, mit 2 Leerzeichen einzurücken (äh, ich hasse das auch), also möchte ich es automatisch einstellen, wenn der Benutzer eine Dart-Datei öffnet, anstatt ihre Standardeinstellungen zu verwenden.Wie stelle ich Einrückungsoptionen für eine Sprache in einer VSCode-Erweiterung ein?

Es gibt eine insertSpaces Eigenschaft in der FormattingOptions Klasse, aber es ist nicht klar, wie ich das einstellen kann, noch der beste Weg, es zu tun (es wäre schöner, dies in einer Sprache Niveau einzustellen, als es Einstellung zu halten, wenn ein Dokument geöffnet, zum Beispiel).

Antwort

1

VS-Code unterstützt nun pro-Sprache Einzug Einstellungen und Sie können Standardwerte in Ihrer package.json gesetzt:

"configurationDefaults": { 
    "[dart]": { 
     "editor.tabSize": 2, 
     "editor.insertSpaces": true 
    }, 
2

UPDATE: siehe die Antwort unten, die für neuere neuere Versionen von VS Code gilt.

Um die FormattingOptions zu verwenden, einrichten activate() Funktion einen Rückruf für vscode.window.onDidChangeActiveTextEditor() in Ihrer Erweiterung:

let disposable = vscode.window.onDidChangeActiveTextEditor((editor) => { 
    if(!editor) { 
     return; 
    } 

    if (editor.document.languageId != "your_id_here") { 
     return; 
    } 

    editor.options = { 
     cursorStyle: editor.options.cursorStyle, 
     insertSpaces: true, 
     tabSize: 2 
    }; 
}); 

context.subscriptions.push(disposable); 
+0

ich scheine nicht einen Verweis auf 'editor' in meinen Erweiterungen hat' activate' Funktion (was Sinn macht, da er Redakteur spezifische und ich brauche für bestimmte Dateien festlegen?) –

+0

Entschuldigung! Ich habe vorher nicht genug von meinem Code geholt! Ich habe die ursprüngliche Antwort aktualisiert, um ein bisschen gründlicher zu sein. – seairth

+0

Großartig; Ich dachte, es wäre so etwas. Vielen Dank! :) –