Recover lost settings + extensions and more? - visual-studio-code

I was playing around with my VSCode Settings Sync, and accidentally replaced my settings.json file with another one from a fresh install, as a consequence, I lost my entire settings.json configuration.
Is there a way to recover the lost settings.json file?
I checked my backups, however, it seems that I one cannot go back into the /Users/mf/Library/Application Support/Code/User/Sync folder.

Yes you can get them back.
They are saved on the hard-drive if your settings are set to their default values.
The universal method (works the same for all systems) is to hit the [F1] key, then type the command below into the input, until you see the option. When you do see the option click on it to open the directory.
Settings Sync: Open Backups Folder
The other option you have is to view the data in VSCode using the following VSCode command from your quick input using the [F1] key followed by the same instructions for the command above.
Settings Sync: Show Synced Data
There should be several saved versions of your settings, unless you have changed your configuration for settings sync in the settings menu, or in your user/workspace settings.json file.
Personally I like to just open backup folders and pullout what I need. If you are like me, and you use Ubuntu then the path below is the path used by VSCode to store backed-up keybindings & Settings.json instances. You can pullout what ever you need from that directory.
~/.config/Code/User/settings.json
If you need to restore the backed up files, you can visit this link, it demonstrates how to return to a previous editor configuration:
RESTORE PREVIOUS VS CODE CONFIGURATION:
https://code.visualstudio.com/docs/editor/settings-sync#_restoring-data

Related

Renaming files doesn't take effect in VScode while using WSL2

I have a very annoying problem in my VScode setup.
I'm using WSL as a terminal to work on my projects and occasionally, mistype the name of one of the folder or file that I'm working with.
For example:
I accidentally created the Mainheader.js file in layout folder (without the capitalized L) therefore, I decided to rename the folder with a capital L.
Now on my React app, any changes made to MainHeader.js file will not be reflected. I did update the related import.
So I decided to delete the entire folder and recreate it with MainHeader.js but this is what I end up with.
The file is there in my folder but when I click on it, I get
"Unable to open Mainheader.js - File not found"
So I try to create it then I get this error:
Unable to create file 'wsl\path]to\MainHeader.js' that already exists when overwrite flag is not set
Has anyone run into this type of behavior in WSL before? It's quite annoying because the only workaround I've found so far is to create a completely different folder with a different name...
Any help would be appreciated. I can't really work like this.
I've been having the same problem for the past 2 days. I presume its a permissions issue, but unfortunately I don't know how to permanently fix it.
I did find this work-around though:
Open a new VS Code window. (I'd recommend closing any VS Code window that had
your project directory open.)
Create a duplicate or copy the contents of the problem file so you don't lose
your code.
Delete the problem file.
Now create the file again using VS Code. Go to File > New Text File. Next paste
in your code.
Now save your new file. Go to File > Save As and save your new file with at the same path + filename + extension that was giving you problems previously. VS Code should allow you to save the new file without any issue.
Now you can open this new VS Code window to your project directory and you should be able to continuing accessing the file that was a problem before.
Basically we just deleted the problem file and then created it again from scratch in a new VS Code window.
Hope this work-around works for you!
EDIT 09/20/2022
Following Baza86's answer here solved the issue for me. Seems like it was a permissions issue of sorts, but if you use the Remote-WSL extension VS code can directly access the linux filesystem.
How to run VScode in sudo mode in WSL2?
You may need add the case option to you options in the wsl config. The default is set to off, however you can set this to off, dir or force.
Open your wsl.conf using sudo with any text editor while running window subsystem Linux. The config file resides in /etc/wsl.conf. This file is used to configure settings per-distribution for Linux distros running on WSL 1 or WSL 2.
My default config looked like this yours may be different:
[automount]
options = "metadata"
add
[automount]
options = "metadata,case=dir"
Here is the official Microsoft docs for Advanced settings configuration in WSL - https://learn.microsoft.com/en-us/windows/wsl/wsl-config

How to recover VSCode settings deleted?

Somehow all my User settings in VSCode have been reset and deleted and when I open the user settings json file I cannot find my previous settings.
How can I restore my previous versions of VSCode settings?
Check out Settings Sync for Visual Studio Code. Under restoring data, you should be able to restore previous versions of your VSCode settings.
In addition, Settings Sync: Show Synced Data from the command palette allows easy viewing of remote and local backups of your preferences.
On Windows/Linux Ctrl + Shift + P
On Mac Cmd + Shift + P
Note: Builds of Stable & Insiders pull from different Settings Sync services, occasionally leading to data compatibility issues.
I found the solution to this. You can access your previous of settings by the command Ctrl+Shift+P and then type >Settings Sync: Show Synced Data. VSCode will show you all your previous uploads of settings and you can copy and paste them to your current setting.json file and sync your settings again by >Settings Sync: Sync Now.

How to block certain files from opening/previewing in vscode?

Im working on a large front end project in vscode. Whenever I have to discard/delete/move/... the output build.js files, it tries opening these files in the editor which takes ages to load and freezes vscode (more than 5k lines each).
The only work-around I currently have to delete these files, is to cd to their directory and run rm -rf ./*. But even then, I'm looking for a more convenient way of deleting these files without vscode trying to open them.
So my question: Is there a way, by editing the settings maybe, of telling vscode to ignore and never preview files that are of a certain type or filename like "*build.js" (I have multiple of these big files called a.build.js, b.build.js, ...
running git bash terminal on windows 10, vscode verson: 1.25.1
Edit
adding the following to User Settings
"files.exclude": {
...,
"**/*.build.js": true
},
Will not really help as it will not hide the files from my git changes. Right-clicking the files to discard, will still take ages to
complete.
Adding /public/dist* to .gitignore will also not work as
sometimes these files need to be pushed to the server, and sometimes
they just need to be discarded.
Because the vscode doesn't support this, for the "discard changes" scenario, you can use e.g. npm script, a gulp task, etc. and run it via vscode.
Example - npm script:
"scripts": {
"discard-build-files": "git checkout -- ./src/config/env/*.js"
}
Enable NPM Script Explorer:
In vscode preferences, set up this option
"npm.enableScriptExplorer": true
You should then get a new section inside your Explorer view.
Vscode currently doesn't support pattern filtering for previews.
The best I can think of:
Exclude your desired pattern altogether from the file explorer
Disable the single-click preview, and make it a more explicit action
via double-click
Ad 1.
Go to vscode's preferences and search for files.exclude.
Then edit the patterns to your liking.
Ad 2.
Go to vscode's preferences and search for workbench.list.openMode.
Then change the value from singleClick to doubleClick.

Make Visual Studio Code open in clean state

I work in multiple projects spread in multiple folders on macOS.
I usually start working on them by running:
cd ~/workspace/project-a
code .
That always causes a new window to be open with the last files I worked on that project. My next move is to close all tabs, if the editor was split I have to do that as many times as split editors I had.
Is there a setting that would allow me to always start on a clean state?
My settings that I believe are related to this issue are the following:
"window.restoreWindows": "none",
"files.hotExit": "onExitAndWindowClose",
I tried off for files.hotExit but the behaviour remained the same.
Also if possible, where is this information stored (open files for given folders)? Is that a dot file inside the folder or elsewhere inside Visual Studio Code installation?
Make sure you are on the latest VSCode (1.24.1 as on 18-Jun-18)
Then make sure you have below in your settings
"window.restoreWindows": "none",
Make sure there are no JSON errors in your custom settings file. This also could cause the settings to be not loaded at all.
Next try launching the folder using
code -n .
Also $HOME/Library/Application Support/Code/Backups/workspaces.json contains the information of open workspaces
Also refer to below thread
Visual Studio Code always reopens previous file or folder
You could try, in addition of the setting "window.restoreWindows": "none" to start with:
code -n
That would force a new VSCode Window to be opened.
Also if possible, where is this information stored (open files for given folders)?
See issue 3884
# Windows
%APPDATA%\Code\Workspaces
# Mac
$HOME/Library/Application Support/Code
$HOME/Library/Application Support/Code/Workspaces
$HOME/Library/Application Support/Code/Backups/workspace.json
Window > Open Folders In New Window
set it to off

VS Code open last files

I gave a chance to Visual Studio Code as my primary editor. I had been using Notepad++ and afterwards I have been using Sublime Text 2 and 3 for few years. I do see potential of this editor and I really like it, but there is one thing I am strongly used to.
Notepad++ and Sublime Text has this feature, I can edit file and DON'T save it anywhere. After restart Notepad/Sublime Text this file is there ready for me.
Other workflow could be open any file from my local storage, close VS Code and start it again. This file will not open!
I know about that when I open folder and restart VS Code, folder is open and files as well. But is there any way how can I manage to have opened files after restart without having opened folder?
Edit: This is now implemented:
// Controls whether unsaved files are remembered between sessions, allowing the save prompt when exiting the editor to be skipped.
"files.hotExit": "onExit"
I use the insider release, and in the current version (1.3.0), vscode doesn't keep unsaved file. I think there is a feature request for that.
Got it: https://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/8568343-keep-unsaved-files-after-crash
You can vote for that feature, like I did !
On the other hand, You can tell in settings if you want to re-open previously opened folders, but not files.
"window.reopenFolders": "all"