如何为 VSCode 扩展中的语言设置缩进选项?
How do I set indenting options for a language in a VSCode extension?
我正在为 Dart 开发 VS Code 扩展。 Dart 的约定是缩进 2 个空格(呃,我也讨厌这个)所以我想在用户打开 Dart 文件时自动设置它而不是使用它们的默认值。
在 FormattingOptions
class 中有一个 insertSpaces
属性 但我不清楚如何设置它,也不清楚最好的方法(应该是例如,在语言级别设置它比在打开文档时继续设置它更好。
更新: 请参阅下面适用于较新版本 VS Code 的答案。
为了使用 FormattingOptions
,在您的扩展的 activate()
函数中为 vscode.window.onDidChangeActiveTextEditor()
设置回调:
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);
VS Code 现在支持每种语言的缩进设置,您可以在 package.json
:
中设置默认值
"configurationDefaults": {
"[dart]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},
我正在为 Dart 开发 VS Code 扩展。 Dart 的约定是缩进 2 个空格(呃,我也讨厌这个)所以我想在用户打开 Dart 文件时自动设置它而不是使用它们的默认值。
在 FormattingOptions
class 中有一个 insertSpaces
属性 但我不清楚如何设置它,也不清楚最好的方法(应该是例如,在语言级别设置它比在打开文档时继续设置它更好。
更新: 请参阅下面适用于较新版本 VS Code 的答案。
为了使用 FormattingOptions
,在您的扩展的 activate()
函数中为 vscode.window.onDidChangeActiveTextEditor()
设置回调:
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);
VS Code 现在支持每种语言的缩进设置,您可以在 package.json
:
"configurationDefaults": {
"[dart]": {
"editor.tabSize": 2,
"editor.insertSpaces": true
},