2016-07-30 72 views
1

我正在研究Dart的VS代碼擴展。 Dart的慣例是縮進2個空格(呃,我也討厭這個),所以我想在用戶打開Dart文件時自動設置它,而不是使用默認值。如何爲VSCode擴展中的語言設置縮進選項?

FormattingOptions類有一個insertSpaces屬性,但不清楚我該如何設置它,也不是最好的方式來做到這一點(在語言級別設置它比在每次文檔設置時更好打開,例如)。

回答

1

VS代碼現在已經支持每個語言的縮進設置,你可以在你的package.json設置默認值:

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

更新:請參閱下面的答案,適用於較新版本的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); 
+0

我似乎並沒有在我的擴展'activate'功能'editor'參考(這是有道理的,因爲它的編輯器專用的,我需要爲某些文件設定?) –

+0

對不起!我之前沒有充分利用我的代碼!我已經更新了原始答案,以便更徹底。 – seairth

+0

太棒了;我覺得它會是這樣的。謝謝! :) –