#visual-studio-code #vscode-settings #vscode-extensions
#visual-studio-code #vscode-расширения
Вопрос:
Я разработал vscode extension
пакет VSCodeWebDeveloperExperiencePack, теперь я сталкиваюсь с конфликтом между некоторыми из них, например turbo console
, и deploy
, я написал руководство по настройке на странице расширения, как вы можете видеть ниже:
Предопределенные настройки, которые вы, возможно, захотите использовать:
- Пресса
ctrl shift p
- Тип
settings
- нажмите
Prefrences: Open settings (JSON)
, чтобы открыть файл settings.json - добавьте эти строки настроек:
"workbench.iconTheme": "material-icon-theme",
"workbench.colorTheme": "Atom One Dark",
"files.autoSave": "afterDelay",
"editor.fontFamily": "Fira Code",
"editor.fontLigatures": "",
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.fontSize": 16,
"window.zoomLevel": 1,
"sync.gist": "70a5fe700fe4e46aebdf678a5c1db398",
"typescript.preferences.importModuleSpecifier": "non-relative",
"local-history.exclude": [
"**/.history/**",
"**/.vscode/**",
"**/node_modules/**",
"**/typings/**",
"**/out/**",
"**/Code/User/**"
]
Кроме того, есть некоторые keybindings
конфигурации, подобные приведенным ниже:
[
{
"key": "ctrl shift alt l",
"command": "bookmarks.jumpToNext",
"when": "editorTextFocus"
},
{
"key": "ctrl alt l",
"command": "-bookmarks.jumpToNext",
"when": "editorTextFocus"
},
{
"key": "ctrl shift alt k",
"command": "extension.deploy.listen"
},
{
"key": "ctrl alt l",
"command": "-extension.deploy.listen"
}
]
Но я хочу сделать это возможным или показать пользователю выбор для выбора configure automatically
, который при нажатии на него или при установке расширения помещает желаемую конфигурацию в user settings.json.
Я прочитал VSCode, но не смог решить проблему, например, я добавил это в свой ext-pack package.json
:
"contributes": {
"configuration": {
"title": "VsCode Web Developer Experience",
"properties": {
"editor.fontSize": {
"type": "number",
"default": 22,
"description": "this will changes the font settings"
}
}
}
}
Комментарии:
1. Вы нашли способ решить эту проблему?
2. @Sebastian да, я обновил ответ
3. Добро пожаловать.
Ответ №1:
Я решил эту проблему на основе документов vscode, вот пример, который вы можете использовать:
- Поместите это в
package.json
zpack-package.json:
"contributes": {
"commands": [
{
"command": "zpack.updateConfig",
"title": "Update Essentials Web Extension Pack (ZPack series) Config"
}
]
},
- Используйте это для запуска действия zpack-extension.ts:
import * as vscode from "vscode";
import { extractAsKeyValue, GeneralObject } from "./util";
import { defaultSettings } from "./defaultSettings";
const updateUserSettings = async (settings: GeneralObject[]) => {
settings.forEach(async setting => {
const { key, value } = extractAsKeyValue(setting);
await vscode.workspace
.getConfiguration()
.update(key, value, vscode.ConfigurationTarget.Global);
});
};
export async function activate(context: vscode.ExtensionContext) {
console.log(
'Congratulations, your extension "Essentials Web Extension Pack (ZPack series)" is now active!'
);
let disposable = vscode.commands.registerCommand(
"zpack.updateConfig",
async () => {
console.log(JSON.stringify(defaultSettings, null, 1));
await updateUserSettings(defaultSettings);
await vscode.window.showInformationMessage(
"ZPack Config has been updated"
);
}
);
context.subscriptions.push(disposable);
}
export function deactivate() {}