Добавление параметров в расширение кода Visual Studio

#visual-studio-code #vscode-extensions

#visual-studio-code #vscode-расширения

Вопрос:

Я пытаюсь добавить настройки в расширение кода Visual Studio (vscode-powershell)

Я отредактировал settings.ts файл, чтобы добавить: новый интерфейс:

 export interface ICertificateSettings {
    certificateSubject?: string;
}
  

Я отредактировал ISettings интерфейс, чтобы добавить свой интерфейс

 export interface ISettings {
    useX86Host?: boolean,
    enableProfileLoading?: boolean,
    scriptAnalysis?: IScriptAnalysisSettings,
    developer?: IDeveloperSettings,
    certificate?: ICertificateSettings
}
  

Затем функция загрузки для добавления моих настроек по умолчанию и возвращаемого значения:

 export function load(myPluginId: string): ISettings {
    let configuration = vscode.workspace.getConfiguration(myPluginId);

    let defaultScriptAnalysisSettings = {
        enable: true,
        settingsPath: ""
    };

    let defaultDeveloperSettings = {
        powerShellExePath: undefined,
        bundledModulesPath: "../modules/",
        editorServicesLogLevel: "Normal",
        editorServicesWaitForDebugger: false
    };

    let defaultCertificateSettings = {
        certificateSubject: ""
    };

    return {
        useX86Host: configuration.get<boolean>("useX86Host", false),
        enableProfileLoading: configuration.get<boolean>("enableProfileLoading", false),
        scriptAnalysis: configuration.get<IScriptAnalysisSettings>("scriptAnalysis", defaultScriptAnalysisSettings),
        developer: configuration.get<IDeveloperSettings>("developer", defaultDeveloperSettings),
        certificate: configuration.get<ICertificateSettings>("certificate", defaultCertificateSettings)
    }
}
  

Но когда я запускаю свое расширение с помощью панели отладки, а затем запускаю, я не вижу свой новый параметр «сертификат» в разделе PowerShell.

Вы знаете, чего мне не хватает?

Комментарии:

1. Есть успехи? Аналогичный минимально воспроизводимый пример работал для меня сегодня с использованием версии v1.36. Это довольно круто, что вы можете использовать объект по умолчанию. 🤘

Ответ №1:

Да, вам не хватает дополнений package.json , поскольку именно они фактически определяют параметры конфигурации. Код Typescript просто считывает их. В частности, вам нужно добавить contributes.configuration раздел. Пример см. в соответствующем разделе vscode-powershell/package.json .

Ваш будет что-то вроде (непроверенный):

 {
  ...
  "contributes": {
    ...
    "configuration": {
      "type": "object",
      "title": "myPluginId",   // whatever it really is
      "properties": {
        "certificate.certificateSubject": {
          "type": ["string", "null"],
          "default": null,
          "description": "..."
        }
      }
    },
    ...
  },
  ...
}