#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": "..."
}
}
},
...
},
...
}