我正在研究Dart的VS代碼擴展。 Dart的慣例是縮進2個空格(呃,我也討厭這個),所以我想在用戶打開Dart文件時自動設置它,而不是使用默認值。如何爲VSCode擴展中的語言設置縮進選項?
FormattingOptions
類有一個insertSpaces
屬性,但不清楚我該如何設置它,也不是最好的方式來做到這一點(在語言級別設置它比在每次文檔設置時更好打開,例如)。
我正在研究Dart的VS代碼擴展。 Dart的慣例是縮進2個空格(呃,我也討厭這個),所以我想在用戶打開Dart文件時自動設置它,而不是使用默認值。如何爲VSCode擴展中的語言設置縮進選項?
FormattingOptions
類有一個insertSpaces
屬性,但不清楚我該如何設置它,也不是最好的方式來做到這一點(在語言級別設置它比在每次文檔設置時更好打開,例如)。
VS代碼現在已經支持每個語言的縮進設置,你可以在你的package.json
設置默認值:
"configurationDefaults": {
"[dart]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
更新:請參閱下面的答案,適用於較新版本的VS代碼。
爲了使用FormattingOptions
,設立vscode.window.onDidChangeActiveTextEditor()
回調在擴展的activate()
功能:
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);
我似乎並沒有在我的擴展'activate'功能'editor'參考(這是有道理的,因爲它的編輯器專用的,我需要爲某些文件設定?) –
對不起!我之前沒有充分利用我的代碼!我已經更新了原始答案,以便更徹底。 – seairth
太棒了;我覺得它會是這樣的。謝謝! :) –