使用设置存储更改 VS 选项:找到正确的 CollectionPath?

Change VS option by using the Settings Store: finding the right CollectionPath?

我需要设置在 Visual Studio -> Tools -> Options -> Text Editor -> JavaScript/TypeScript -> EsLint 中找到的 Visual Studio 选项的值,但我似乎找不到该选项的 CollectionPath

GetSubCollectionNames("Text Editor"); 产生了多个结果,而 GetSubCollectionNames("Text Editor\JavaScript"); 产生了 0 个结果。

TL;DR 如何为下图中的选项找到正确的 CollectionPath

这是我目前使用的。

[ImportingConstructor]
internal VSOptions([Import] SVsServiceProvider serviceProvider)
{
    var settingsManager = new ShellSettingsManager(serviceProvider);

    _writableSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings)
        ?? throw new Exception(nameof(settingsManager));

    var textEditorSubCollections = _writableSettingsStore.GetSubCollectionNames("Text Editor");
    var javaScriptSubCollections = _writableSettingsStore.GetSubCollectionNames("Text Editor\JavaScript");

    // TODO: set option value when we have the right CollectionPath
}

WritabelSettingsStore class 用于扩展 Visual Studio 中的常用设置 Visual Studio。您可以使用 GetPropertyNames("Text Editor\JavaScript") 列出 JavaScript 的所有 writabel 设置,您会发现并未列出 JavaScript 子集合下的所有属性。

EsLint 不常见 Visual Studio 设置。它是第三方工具,用于识别和报告在 ECMAScript/JavaScript 代码中发现的模式,目的是使代码更加一致并避免错误。

所以我们不能直接用 WritableSettingsStore 改变它 class。你需要知道EsLint是如何在Visual Studio中添加的然后修改它的配置文件为Visual Studio.