【问题标题】:Change VS option by using the Settings Store: finding the right CollectionPath?使用设置存储更改 VS 选项:找到正确的 CollectionPath?
【发布时间】:2018-02-10 14:20:35
【问题描述】:

我需要设置在 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
}

【问题讨论】:

    标签: c# mef options visual-studio-extensions vs-extensibility


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2019-03-07
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      相关资源
      最近更新 更多