microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.93k stars 29.52k forks source link

Allow to "Scope to this" in explorer #41860

Open darkoromanov opened 6 years ago

darkoromanov commented 6 years ago

I'd like to have the "scope" feature in the tree view to "isolate" a directory in order to have a "cleaner" view. For example, if my project root directory has 2 main sub-directories: "public" and "admin":

  main-dir

      \___ admin

      \___ public

and I want to work only to the "public" directory I'd right-click the "public" directory in the tree view and choose "Scope to this" and then the tree view would show only the "public" directory.

jrieken commented 6 years ago

I believe with filters you can do that...

bpasero commented 6 years ago

No, with filters you could only exclude (= hide). I think this is a fair feature request.

chrisdias commented 6 years ago

In the meantime, this extension will let you right click on a folder and quickly open a new instance scoped to that folder:

https://marketplace.visualstudio.com/items?itemName=chrisdias.vscode-opennewinstance

zumpiez commented 6 years ago

Some other issues that I think are asking for the same thing: https://github.com/Microsoft/vscode/issues/17696 https://github.com/Microsoft/vscode/issues/31368

Hopefully if this is closed, there will be some additional discussion rather than a bot swooping in 😄

eiva commented 6 years ago

After adding workspaces and the ability to specify common project configuration into workspace config "scope to this" become my "most wanted" feature: having dozens of projects in the workspace make navigation not really easy, and opening specific project in a new instance of VSCode is not fun as most of configs will not be loaded.

CombeeMike commented 6 years ago

We'd also appreciate such a feature very much for the following environment:

We have one large workspace which holds many small projects. Most projects only contain 1 - 3 JS files/modules.

Obviously working on 1 project, the file explorer is very "cluttered" with irrelevant stuff.

Creating a dedicated workspace per project is no option since it would mean too much administration overhead since they all share a common set of settings like VSCode workspace settings, "top level" typings, jsconfig.json, .editorconfig, .gitignore etc.

tiborgg commented 6 years ago

This feature would be greatly appreciated, given that as far as I can tell, monorepo project structures have gained some traction (recently switched to it myself), and most of the time you're working within a particular package, but occasionally you need to go to another package (shared, common, etc) or configure something for the entire project.

chrisuehlinger commented 6 years ago

Just wanted to give a use case I have for this: I currently have a mono-repo with two Node.js apps and two React apps. Nowadays, a lot of people (myself and my React generator included) mark JSX files with *.js extensions. For the sake of formatting and so on, I'd like to have the following settings scoped to the folders for my React apps:

"files.associations": {
  "*.js": "javascriptreact"
}
ryancole commented 6 years ago

This is huge for Unreal Engine projects, in which there are a bunch of other folders and you're only interested in the source code folder.

johnhamm commented 6 years ago

Any status on this feature?

nurbles commented 5 years ago

[Currently using VS Code Version: 1.31-0-insider on Ubuntu 18]

Rather than at a directory level, I am interested in a grouping function within a single folder by different types of files. For example, with a configuration something like this (instead of or in addition to files.exclude):

"files.groups": {
  "source": {
    "**/*.c": true,
    "**/*.h": true
  },
  "scripts": {
    "**/!(*.*)": true,
    "**/*.code-workspace": false,
  },
  "settings": {
    "**/*.json": true,
    "**/*.code-workspace": true,
    "**/.vscode/*": true
  }
}

(NOTE The "**/!(*.*)": true entry in scripts was supposed to match any file without a dot in the name.)

Then the explorer sidebar could show three sub-groups, "source", "scripts", and "settings" that may be expanded to see the matching files. This could even allow some files to appear in multiple groups and others to never appear. If there is already an extension that provides this, please point it out because I was unable to locate it.

LC43 commented 5 years ago

this is one of the missing featured i loved back in the days when i used to program with Aptana Studio.

i work mostly with wp, so i tend to work with multiple plugins and theme. It would help immensely being able to "scope in" and out a directory.

usual structure is:

main dir

like it was mentioned before, having a workspace for each dir wouldn't help, as it would lose the git directory, the linting files etc

johnhamm commented 5 years ago

In the meantime, this extension will let you right click on a folder and quickly open a new instance scoped to that folder:

https://marketplace.visualstudio.com/items?itemName=chrisdias.vscode-opennewinstance

The issue I had with solving it this way is that all relative includes can no longer be found in vscode IDE.

import { MyService } from 'core/services/myservice.service

Since the current base directory has now changed, you get red squiggly lines and errors on all imports formatted as above.

Really looking for a status on this feature, or if there are any new extensions being built that take advantage of vscode's new tree API that could possibly implement this?

LucaGabi commented 4 years ago

I would also be happy with something as "perspectives" in Eclipse IDE and a fast switch shortcut what do you think ?

LucaGabi commented 4 years ago

Please also read this:

https://github.com/microsoft/vscode/issues/95182

mika76 commented 4 years ago

All the ticket #95182 needs is 20 upvotes (18 more) and it will go into backlog! Please go and vote...

daniel-keen commented 4 years ago

Yes please

omeraksu commented 4 years ago

++

rhalaly commented 3 years ago

I was tired of waiting, I hope that this extension will help you meanwhile until the VSCode team will implement it

JacksonKearl commented 3 years ago

Similar to https://github.com/microsoft/vscode/issues/67988

prateek commented 1 year ago

I was about to create a feature request for something quite similar, but I'm going to add my notes here because it seems to be where all other similar/closed issues point to.

I propose we should solve a slight generalization of the original ask: The ability to define groups of (include+exclude) search filters in the Search (⌘⇧F) view. VSCode currently supports the specification of a (include+exclude) but I find I'm often changing these to toggle searches between scopes such as:

  1. Only the *.go source code (without tests) in my workspace (ignore vendor/etc)
  2. Same as 1. but include tests.
  3. Same as 2, but focus only on tests this time.
  4. Search all *.go files including vendor/etc
  5. Search all config files (.yaml/.star/etc) files
  6. Search all files not in vendor/etc
  7. Search all text files (.md/.markdown/*.txt) not in vendor/etc

I'd like the option to define/maintain such groupings, and reference them in the Search view. For an example implementation of what I'm asking for -- look at https://www.jetbrains.com/help/idea/settings-scopes.html.

The closest workaround I've found thus far is https://github.com/sfccdevops/explorer-exclude-vscode-extension. Please let me know if I can provide any further information.

edit: I stumbled up on https://github.com/microsoft/vscode/issues/73524 from @roblourens's comment. Is that the missing piece holding this back?

kobenauf commented 1 month ago

I was coming here to request essentially the same idea. I was going to request that if the Explorer has a workspace open, that I can select one or multiple folders in that workspace, right click, and choose Focus This. That would leave the others visible but grayed out, and open files from other folders would be closed, and searches would be restricted to the focused folders. I'm not sure if graying out the excluded folders is the best approach... maybe moving them to a new section at the top called Hidden Folders.

rhalaly commented 1 month ago

I was tired to waiting for official VSCode support so I made an extension to support "Scope to this" in the explorer:

https://marketplace.visualstudio.com/items?itemName=rhalaly.scope-to-this

lonix1 commented 1 month ago

That is a nice extension, but users be warned: it manipulates file.exclude in settings.json. Extensions which change that setting will break your customisations. If you haven't customised it, then that extension is quite useful.

A built-in way is preferable.

rhalaly commented 1 month ago

@lonix1 I mentioned it directly in the README. So no surprizes here. Please note that the extension will not override your customizations if you manually change file.exclude in settings.json. If that happened please open an issue ticket on my github

lonix1 commented 1 month ago

True, but I mentioned it because when someone creates an extension for a missing vscode feature, they tend to close the feature request. In this particular case, the extension is good, but it doesn't suit everybody. So as I said, we still need a built-in way.

rhalaly commented 1 month ago

@lonix1 agree with that. That extension is a work-around until the feature will be built-in in VSCode. It has known issues due to lake of support for that feature in VSCode core. file.exclude is not the right way to do that.

ravindUwU commented 1 month ago

A few thoughts for when this is implemented 🤔,