Limiting the search window to the current project - visual-studio-code

Since a few days, VS Code's search window looks into all the disk instead of looking into the directory of the current project. The consequence is that any search now takes 30 minutes... Is it possible to specify a root directory for the search window?

When open new window in vscode select open folder button then find your project folder and select it. Now your search is in project directory.
Open folder in vscode

Related

Files appear twice in quick open list

I am using vscode for java and c++ projects.
In both cases, when I want to open a file with quick open (ctrl+P) the file appears twice.
One time marked as 'recently opened' with relative path to my workspace and
A second time with an absolute path in home (~/home/harri/...)
It seems as vscode manages the files twice generally. I think so because if I opened a file from project explorer and go to a methods definition (command: Go to Definition | F12) then the file is opened a second time. I can see in the files editor tab that the paths do differ. One relative path one with absolute path.
Is this a problem of my settings?
I am running vscode 1.74.3

How to create a workspace

How do we create a workspace in Visual Studio Code?
I see File menu commands to open, add a folder to and save a workspace, but nothing to create one.
The questions How can I create a workspace in Visual Studio Code? and How can I create a Visual Studio Code Python workspace? are specific to Python. I am asking how to create a generic workspace.
The question What is a 'workspace' in Visual Studio Code? provides some explanation of what they are, but it is not clear how to create them.
I had your same question, but the answer is simple, you don't. There is no need to start a blank workspace. To start on a new project use Open Folder from the File menu: navigate to the project, create a folder if needed, and then select the folder. You are now working on any files within that folder as if it were a workspace. If you leave and open another folder or workspace with files still open in editors, those files will be open when you open that folder again. Visual Studio Code making things work effortlessly! Until you do something that specifically requires a workspace you don't have to save it. If you save a workspace with no settings changed to the root folder here's what it looks like: {"folders": [{"path": "."}],"settings": {}}. That's it. The open editors are saved internally regardless of whether you saved as workspace. Starting by saving a blank workspace is like having an empty file cabinet in your office. VSCode will inform you if you ever need that and you can save a workspace then.
I finally had a chance to use VSC on a Mac. The difference on a Mac is
that Open File and Open Folder are under the same general Open
command (apparently because Macs use the same browser to select files and folders). Just use that to Open a folder, and open files in that folder workspace using the VSC explorer. All this still applies. The folder is the workspace.
You only need to save that workspace if you want to Add Folder to Workspace (in which case VSC will prompt you to save your multiroot workspace if you exit, or if you want to save settings specific to your project folder (though you can do that without a workspace using a settings json in a .vscode folder within). Even then VSC will auto save workspace settings for the folder internally when you haven't explicitly made the project folder a workspace.
Do you need a workspace and the extra .code-workspace file involved? If you have multiple root folders it's certainly nice to open the workspace and have those all there in your next session. If it's just for settings for a project with one root it's not needed (maybe if you want a file you can share with others on the project), and if the reason you are changing settings per project is language related then it may make far more sense to add language settings to your main settings file and have them in effect every time you work on that kind of project.
In short every time you use Open Folder workbench.action.files.openFolder you are essentially switching to another workspace.
In the folder you want to add to your workspace, create a file {foldername}.code-workspace and in the file put in the following code.
{
"folders": [
{
"path": "."
}
]
}
Save and close the file. Back in Visual Studio Code, click menu File → Open Workspace... and select the .code-workspace file you created and it will open it as a new workspace without having to add a folder to an existing workspace.
In the File menu choose "Open Folder...". Select a folder. You can add folders to the workspace using "File" | "Add Folder to Workspace...".
Optionally, also go to "File" | "Preferences" | "Settings". The "User Settings" tab will be open by default. Look for the "Workspace Settings" tab and select it. Modify a setting, such as change the theme.
Then you can save the workspace using "Save" in the File menu.
When you close the workspace using "Close Workspace" in the File menu then if you changed the theme for the workspace then the theme should revert to the global theme. When you re-open the workspace VS Code will open the folder(s) that were added to the workspace and apply whatever settings that were specified for the workspace. There are a few settings that are ignored for workspaces for security reasons but all other settings can be overridden in workspaces.
It is possible to add multiple projects to a workspace; see Multi-root Workspaces.
If you already have a window open with project files or folders, and you want a new workspace to work on a different project:
From the 'File' menu, choose 'New Window'
From the 'File' menu, choose 'Add Folder to Workspace' and choose the root folder of your project
The new window is the workspace for your new project. You can save it to a named file with 'File', 'Save Workspace As...'
(The above instructions refer to Visual Studio Code 1.36.1 on macOS.)
Close all open files in VS Code.
Select File menu >> Open Folder... and open the folder containing your source files.
Select File Menu >> Save Workspace as... it should default to the folder you previously opened. If not browse to it and save the workspace file.
To create a new workspace in Visual Studio Code press F1 (or Crtl+Shift+P) and choose 'AL: GO!'

Folder Favorites

I am looking for an extension or feature in VSCode that will bookmark folders for me. I have a number of folders I continually work on and would like to open them up quickly. The option of opening folders them in another instance of VSCode would be optimal.
You are looking for CTRL-R which presents a list of recent folders and files.
CTRL-ENTER on the folder or file will open a new Vscode instance.
First, you could install favorites library on your vscode as shown in it's site for add folder/file to the favorites
Second, it's easiest way to search a file by ctrl+p

Open multiple Projects/Folders in Visual Studio Code

How do I open multiple projects/folders in a single Visual Studio Code instance, and open multiple files in single view? Does it has any option for future change request?
Not sure why the simplest solution is not mentioned. You can simply do File>New Window and open the other project in the new window.
Update
This is now available out of the box as of October 2017. From the blog post:
This was our #1 feature request - it's been a while coming but it's here now.
The complete documentation is here.
You can work with multiple project folders in Visual Studio Code with multi-root workspaces. This can be very helpful when you are working on several related projects at one time. For example, you might have a repository with a product's documentation which you like to keep current when you update the product source code.
Original answer
Currently the Insider channel of VSCode gives us this out of the box.
Read more from the blog post.
Update
As mentioned in several other answers here, this 'accepted' answer is outdated and is no longer correct. VS Code now has the concept of a 'workspace' which lets you add several 'root' folders to VS Code in the same window.
For instance, when working on a project in one folder that utilizes shared code held in a different folder, you can now open both the project folder and the shared folder in the same window.
To do this you use the Add folder to Workspace... command. VS Code then saves this configuration in a new file with a .code-workspace extension. If you double-click that file, VS Code will re-open with both folders present.
Original Accepted Answer (Outdated)
As described in The Basics of Visual Studio Code article:
"VSCode is file and folder based - you can get started immediately by opening a file or folder in VSCode."
This means the concept of solution and project files, like the .sln and .csproj, have no real function in VSCode other than that it uses these only to target and identify which language to support for Intellisense and such.
Simply put, the folder you open is the root you work with. But of course there is nothing from stopping you to open multiple windows.
As for the request features options, navigate to Help > Request Features which will redirect you to the UserVoice page of VSCode.
Support for multi-root workspaces is now enabled by default in the latest stable release [November 2017 release].
The File > Add Folder to Workspace command brings up an Open Folder dialog to select the new folder.
If you are using unix like OS, you can create a soft link to your target folder.
E.g. I want to see golang source while I am using VSCode. So, I create a soft link to go/src under my project folder.
ln -s /usr/local/go/src gosrc
Hope this helps!
Update: 11/28, 2017
Multi Root Workspaces[0] landed in the stable build, finally.
https://code.visualstudio.com/updates/v1_18#_support-for-multi-root-workspaces
[0] https://github.com/Microsoft/vscode/issues/396
You can open any folder, so if your projects are in the same tree, just open the folder beneath them.
Otherwise you can open 2 instances of Code as another option
On Windows it's possible to use mklink to create directory symbolic links to the needed folders. Then keep them together in a folder, and VSCode will list the content of these.
c:\>mklink /D c:\dev\MyWork\scripts c:\ProjA\scripts
symbolic link created for c:\dev\MyWork\scripts <<===>> c:\ProjA\scripts
c:\>mklink /D c:\dev\MyWork\styles c:\ProjB\styles
symbolic link created for c:\dev\MyWork\styles <<===>> c:\dev\ProjB\styles
This is very similar to #NeilShen's idea, I guess.
Multiple Folders in VS
Click ->File ->Add Folder to Workplace.
Step 1.
Choose which project to work ->Add(press)
Step 2.
October 2017 (version 1.18):
Support for multi-root workspaces is now enabled by default in the Stable release: https://code.visualstudio.com/updates/v1_18#_support-for-multi-root-workspaces
Now we can open multiple folders in one instance, Visual studio code has named as Workspace ("Area de Trabajo"). Take a look at the images, it´s very simple.
Or you can just select multiple folders and then click open.
Go to File> Open Folder, then select multiple folders you want to open and click Select Folder
Just put your projects in the same folder and simply open that folder in vscode.
Now your projects will appear like:
GROUP OF PROJECTS
PROJECT 1
Contents
Contents
PROJECT 2
Contents
Contents
It's not possible to open a new instance of Visual Studio Code normally, neither it works if you open the new one as Administrator.
Solution: simply right click on VS Code .exe file, and click "New Window"
you can open as many new windows as you want. :)
You can install the Open Folder Context Menus for VS Code extension from Chris Dias
https://marketplace.visualstudio.com/items?itemName=chrisdias.vscode-opennewinstance
Restart Visual Studio Code
Right click a folder and select "Open New Workbench Here"
Open New Workbench Here
You can open up to 3 files in the same view by pressing [CTRL] + [^]
What I suggest for now is to create symlinks in a folder, since VSCode isn't supporting that feature.
First, make a folder called whatever you'd like it to be.
$ mkdir random_project_folder
$ cd random_project_folder
$ ln -s /path/to/folder1/you/want/to/open folder1
$ ln -s /path/to/folder2/you/want/to/open folder2
$ ln -s /path/to/folder3/you/want/to/open folder3
$ code .
And you'll see your folders in the same VSCode window.
you can create a workspace and put folders in that :
File > save workspace as
and drag and drop your folders in saved workspace
You can use this extension known as Project Manager
In this the projects are saved in a file projects.json, just save the project and by pressing Shift + Alt + P you can see the list of all your saved projects, from there you can easily switch your projects.
To run one project at a time in same solution
Open Solution explorer window -> Open Solution for Project -> Right click on it -> Select Properties from drop down list (Alt+Enter)-> Common Properties -> select Startup Project you will see "current selection,single selection and multiple selection from that select "Current Selection" this will help you to run one project at a time in same solution workspace having different coding.
You can simply add folders (as many you want) in your workspace as shown in this image:
Image
And use them unhesitatingly.

Viewing a modified file in eclipse

I was adding a simple file to one of my programs that updates when I run the program with a particular parameter.
The file updated fine, but it is stored in the /bin directory and I can't figure out how to view the file within the editor.
I can see that the file is updated when I traverse the bin folder manually and open it with notepad.
Is there a way to view the file within the editor?
edit: I have a file in the project already but I doesn't update, instead the copy in the bin folder does; Can I connect the two somehow?
Your <project>/bin directory is being filtered from view. Right click on your project, select Show In->Navigator then you should be able to see your /bin directory and double click your file to have it open in an editor.
Alternatively, you can use ctrl-shift-r to open the Open Resource dialog, from the triangle drop down menu check Show Derived Resources, and then type in the name of your file.
The /bin directory is managed by the Eclipse builders and so you may lose your file if you do a clean. I would suggest using a different directory to house your runtime files.