By default the user settings for VS Code are saved in c:\users\<username>\AppData\Roaming\Code\User. Is there a way to change that to save in a custom location? I'd like to save them in my OneDrive folder so my settings and snippets will roam.
Not directly answering the question of whether it is possible to change the path of the user settings (which is not possible as far as I know) but there is an extension which does the synchronization of settings and snippets.
Maybe this is an option for you.
Related
The idea behind this question, is have my document upfront, right on the sidebar, a split between files and upload to GitHub, and down below the terminal, in all projects starting now, I open every time my projects! I saw different questions on the platform, but didn't accurate answer to that, I thought.
Thanks,
Miguel.
You should take a look at documentation which explains that in VS Code there are 2 modes for saving a setup of IDE - user settings and workspace settings.
Your modifications were probably saved in current workspace so when you open a fresh instance of VS Code by default you are using global user settings.
By default, it keeps the same screen.
I want to create a designer for the code of the current active editor (a tab in VSCode). So I would like to ask you, how this is accomplishable.
In this video the developer is showing impressively that this is possible:
https://www.youtube.com/watch?v=lgPYdtcNRwg
I looked already for the some API's like https://code.visualstudio.com/api/extension-guides/custom-editors, but they all doesn't offer what I want: grab and manipulate existing code of current tab, or maybe I am missing something?
Perhaps I have to think out of the box and work with the file path of current tab/editor, and change the code in files on the filesystem directly?
I am grateful for any hint and help.
Whenever I open a folder that I've already worked in, VSCode is clever and reopens it in the exact same layout I already had it. However, I have absolutely no clue how it does that - I can't find a config file or anything anywhere, which is something I'd love to have; in my specific usecase I create a lot of workspaces and they all have the same sort of structure, so if I could save that layout so I didn't have to recreate it every time it'd be great.
The answer ends up being super annoying... they're stored in %APPDATA%\Code\User\workspaceStorage in some hashed looking folder names, which contain a pretty useless workspace.json file (all workspaces) and all other info stored in a *.vscdb (and its associated *.backup file), which is a SQLite Format 3 file storing all that information. It's barely used as a database from what I can see, a json file could do just as well, but I digress...
tl;dr they're a pain to get out.
VSCode mainly saves all of the preferences and user choices in the settings.json file. Moreover, you can actually set your preferences in VSCode Settings. But if you want to copy/paste your workspace settings to different workspaces, I guess the best choice would be to look at your settings.json layout settings.
Go to File > Preferences and adding them in the right pane, in "User Settings" if you want to keep them for all workspaces or in "Workspace Settings" for this workspace only.
To see settings for layouts and explorer, search for explorer.
You can read more about settings.json defaults and attributes exposed here
Idea:
I wanted to clean up my vscode extensions, because I'm working with a lot of different languages/file types and having all these extensions installed and enabled at once is just too much.
Problem:
I disabled some extensions for a specific workspace, and wanted to copy these settings to another workspace, but vscode is not storing the information about enabled/disabled extensions in .vscode/settings.json.
Questions:
Is there any way to copy these settings from one workspace to another?
Is there a better way of dealing with lots of extensions?
Can you recommend tools/extensions for managing extensions per workspace or language(s)
I assume vscode is not loading all extensions at once, but rather when needed. But some extensions display icons on the left or bottom of the window and overcrowd the "Show All Commands" list/search.
VS Code stores this info in its internals instead of the .vscode folder, so you can't copy this info between workspaces. There is an open issue asking exactly what you want.
But, you have an alternative. Use the Profile Switcher extension.
Its description:
This extension allows you to define a number of settings profiles that you can easily switch between. The original idea for this extension came from my desire to have an easy way for me to switch my VS Code to a setup that was better optimised for presenting (changed themes, increase font size, etc).
And this is how it handles extensions:
A profile isn't just the settings you have enabled, but also the extensions that were installed. This allows you to create different profiles for different styles of development (e.g. a React profile and a Vue profile, loading their respective extensions only).
Hope this helps
There is a github issue for this problem: Feature Request: Enable/disable extensions from config file #40239.
I posted there a workaround using multiple vscode instances: link
Here is a copy-paste:
I use some kind of workaround to be able to use the extensions I want.
According to the vscode-cli your can specify the folders for extensions and user-data:
Options Description
--extensions-dir <dir> Set the root path for extensions.
--user-data-dir <dir> Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code.
Basically, I create a specific folder for my specific tasks (one of front, one for back, ..) and set basic extensions to my default vscode.
To launch my custom config:
code --extensions-dir "$HOME/.vscode/profiles/my-super-profile/extensions" --user-data-dir "$HOME/.vscode/profiles/my-super-profile/data"
The problem are that:
It's not REALLY a project config file but a global preference file
I had to install manually the extensions. I believe there is a hackish way to do this
It use more size than necessary (multiple vscode data / duplicate extensions)
It doesn't solve in a clean way the team-sharing problem
What are the best practices to store user settings for the extension? I can think of saving them in some specific format in the text file. Is there any integrated way of doing that using vscode API?
VSCode extensions typically contribute settings to be used in user and workspace settings.json files.
Settings are registered via contributes.configuration in an extension's package.json, and the allowed values can flexibly be described with a JSON schema (which also allows for code completion in the JSON file). The value of settings can then be checked by using the workspace.getConfiguration() API.
There is also a sample extension that showcases the Configuration API in vscode-extension-samples.
Having a separate file just for a specific extension's settings would be a bit unusual.