#visual_studio_code
Есть ли возможность в vscode использовать несколько разных профилей с настройками, чтобы в каждом профиле был свой набор установленных и включенных настроек и в каждом профиле были свои настройки расширения? Допустим, в один из профилей мне нужно расширение для работы с гитхабом, а в другом кастомный плагин для TFS, в первом мне нужны плагины для работы с bootstrap, vue, в другом это не нужно. Пробовал поискать во встроенной справке и погуглить -- не нашёл, что такое возможно из коробки. Или всё-таки возможно?
Ответы
Ответ 1
Итак, решение на базе workspace, которое посоветовал в комментариях @Grundy оказалось очень рабочим. Ответ обкатывался на windows, возможно я позже повторю все те же действия на виртуалке с debian и добавлю в ответ версии хоткеев для nix-систем. Итак, идём в документацию и смотрим введение в матчасть. Настройки хранятся в двух разных местах: глобальные настройки, которые применяются ко всем экземплярам vscode запущенными в любой папке. Хранятся в %APPDATA%\Code\User\settings.json настройки для workspace (конкретной открытой папке), применяется к экземплярам vscode, запущенным в этой конкретной папке. Хранятся в файле .\vscode\settings.json Я тестировал это на простой настройке "The default end of line character.": { "files.eol": "\n" } Проверяется легко и быстро: создал новый файл и смотришь в статусной строке, он имеет тип LF или CRLF. Это была часть предварительная. Вторая часть - как включать и выключать расширения в зависимости от "профиля". Тут хорошо ознакомиться с ещё одной ссылкой - обсуждение на гитхабе фичи включения/выключения расширения через конфиг. Видно, что предлагался интуитивно понятный вариант хранить в .vscode/settings.json что-то типа: { "extensions.enabled": ["ms-vscode.csharp", ...enabled], "extensions.disabled": [/*whatever extensions wanted to be*/...disabled], } Но в итоге разработчики сделали чуть иначе: это не хранится в конфиг-файле .vscode/settings.json поэтому закинуть в папку файл настроек не получится :( но вполне можно накликать мышкой. Что нужно будет сделать. Допустим, у нас есть расширение Vetur и мы решаем, что у нас в основном работа в vscode идёт с кодом на c# и иногда (читай - много реже) нам приходится открывать vue.js проекты. Тогда мы берём и глобально выключаем расширение Vetur, а потом заходим во все наши фронтенд-проекты и для них включаем расширение обратно, но уже локально, для конкретного воркспейса. Все эти параметры хранятся - но не в папке .vscode, а в папке %APPDATA%\Roaming\Code\User\workspaceStorage\: Где путь к папке записан в файл workspace.json: { "folder": "file:///c%3A/git/github.com/user/prog/frontend" } , а конкретные параметры workspace'а хранятся в файлах sqlite. Так что копировать настройки с какого-другого workspace становится немного сложнее: основная сложность - найти папки, у меня лично уже полсотни worspaces'ов из-за того, что смотрю много проектов на гитхабе. Но в целом проблем никаких нет: я создал на диске папки test1 и test2 с разными настройками расширений, а потом просто закрыл vscode и скопировал файл state.vscdb из папки в папку - и настройки при очередном открытии были такие же, как и в другом workspace. Так что если вдруг придётся держать очень разные настройки форматтеров/линтеров и тому подобных расширений, то в принципе можно просто скопировать настройки с другого проекта.
Комментариев нет:
Отправить комментарий