VSCode: Group folders in explorer by the first letter - visual-studio-code

Problem
I need to organize view of subfolders inside the exact folder in VSCode Explorer in a way like this, so the subfolders are grouped into corresponding intermediate folders, which are named by a single letter, representing the first letter of the subfolders. (preferably this should work automatically, but not necessary)
These intermediate folders a, b, c ... should be "virtual". Actual location of the original subfolders shouldn't be changed.
I tried...
Surprisingly, i couldn't find appropriate VSCode Extension for this.
I have achived desired behavior for files, with fileNesting option, by manually creating files a, b, c ... and using such a pattern in the settings:
"explorer.fileNesting.patterns": {
"a": "a*",
"b": "b*",
"c": "c*",
...
}
But this doesn't affect folders.

Related

how to limit search to certain folder AND certain file types (more than one) in visual studio code?

consider the following files and folders structure:
head.html
folder1
1.css (this file is inside "folder1")
1.html
1.php
folder2
1.css
1.html
1.php
subfolder2 (this is a subfolder inside "folder2")
1.css
1.html
1.php
deepsub2 (a folder inside "subfolder2" that is inside "folder2")
1.css
1.html
1.php
to clarify the structure:
"folder1", "folder2", "subfolder2" and "deepsub2" are folders.
all the rest are files.
"1.css", "1.html" and "1.php" under that appear under a folder, for example "folder1" are inside
that folder.
"head.html" is in the root folder.
"subfolder2" is a folder inside "folder2" and "deepsub2" is a folder inside "subfolder2".
What i'm trying to do is search the word "viewport" in "folder2" and anything beneath it (including its subfolders), which means I don't want search in other folders (folder1 for example) or the root (head.html for example)
I also want to limit the search for file types: .html and .css
I DON'T want to specifically exclude .php as a file type because consider that sometimes I don't know what other file types there are in the structure and they can be t0o many to exclude, so I want to only to use a list of file types to include rather.
after reading the docs: https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options
the best I could come up with is using the following in the "files to include" input:
./folder2/**/*.css,./folder2/**/*.html
but it doesn't seem efficiant enough because i'm using the "folder2" path part for every file type.
is there a better way?
I'm using VScode Version: 1.65.0 by the way
This should work:
./folder2/**/*.{css,html} NO spaces in the {...} extensions or it won't work
from https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options:
{} to group conditions (for example {**/*.html,**/*.txt} matches
all HTML and text files)

Visual Studio Code file filter behavior

I've opened a folder in vscode and have a fairly a large file structure to navigate. It would be very helpful if I were able to filter across those files in a way that showed only the file names that containe the filter string while still showing their location in the file hierarchy. I could have sworn that I've done that before but now have lost it.
We do have highlighting in the Explorer pane, by selecting the explorer pane and starting to type. The difficulties there are that it:
Highlights files but doesn't eliminate unmatched files
Doesn't expand folders that contain the matched files
Does a confounding search that is the equivalent of putting a wildcard between each character typed
Do extensions exist that do all of the following?
Filter the file names based on search string (i.e., hides the unmatched files)
Expand the folders that contain the matched file names
Allows for exact search (or regular expression)

How to search for files in different directories recursively in VSCode?

Visual Studio Code (as of version 1.41.1) is obviously very limited in regard of its file search. It seems to only allow to either search in folders recursively or in specific files, but it doesn't allow both.
Search in folders recursively
path/to/folder/ searches in any directories within subpaths matching path/to/folder including all subdirectories with no restriction in file names.
./path/to/folder/, ./path/to/another/folder searches in the directories with the paths path/to/folder and path/to/another/folder relative to the project's root directory.
Search in files
foo.bar searches in all files named foo.bar.
*.foo, *.bar searches in all files with the extensions foo or bar.
./path/to/folder/*/*.foo searches in all files with the extension foo that lie in a direct subdirectory of path/to/folder/ relative to the project's root directory.
Search in folders recursively and filter by file name
So, how to combine these two searches, i.e. filter the search by file names but search in specific directories with all their subdirectories?
In other editors like Eclipse you normally have two different fields for file names and folders, making it easy to specify them individually and avoid having to repeat yourself for multiple folders and file names. Therefore I have already created an enhancement request in the VSCode bug tracker asking to add a separate field for the folder.
In my testing, using the globstar does provide the functionality you desire.
https://github.com/isaacs/node-glob#glob-primer:
** If a "globstar" is alone in a path portion, then it matches zero
or more directories and subdirectories searching for matches. It does
not crawl symlinked directories.
So that ./path/to/folder/**/*.foo for example searches within all subdirectories of folder no matter how deep within files with the foo extension.
Same at https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options:
** to match any number of path segments, including none

How to exclude folders from search except a few?

I work on a large project with many files. I want to exclude as many files as possible.
I want to exclude **/node_modules, but except a few that are created by my company. e.g. **/node_modules/#mycomp.
Is it possible today in vscode 1.8.1?
Thanks,
Unional
Here is what I did to only show the node_modules/swagger-tools folder.
In the .vscode/settings.json file I wrote the following rules:
Filter all folders starting with the dot character or every letter except s.
Filter all folders starting with s and is followed by every letter except w.
Filter every folder starting with swagger- (at this point all the remaining folders started with swagger-) and is followed by every letter except t.
So the file ended up like this:
{
"files.exclude": {
"node_modules/[abcdefghijklmnopqrtuvwxyz.]*": true,
"node_modules/s[abcdefghijklmnopqrstuvxyz]*": true,
"node_modules/swagger-[abcdefghijklmnopqrsuvwxyz]*": true,
}
}
Arguably is not the nicest thing to do but certainly does the trick.

Count number of files in a FTP folder

I use this code to see existed files in a specific folder from FTP :
ftp_client = ftp('IP','Username','Password');
aa = dir(ftp_client,'First_folder/Second_folder');
I can see file names with these codes :
aa(1,1).name
aa(2,1).name
aa(3,1).name
How can I see all files names in a cell aray in this specific folder? Is there any command for it?
How can I count number of existed files in this folder?
How can I count number of existed files in this folder with a specific format?
Thanks.
A simple way is to collect the values into the cell array by using curly brackets: filenames = {aa.name};
The simplest method would be length(aa); or length(filenames);
A couple ways. You can either refine your dir call, aa = dir(ftp_client,'First_folder/Second_folder/*.jpeg') for example, or use your own filter (regexp is one option) on your filenames to return the indices of what you want.
As a general aside, if you're utilizing this program on different operating systems, I would recommend utilizing fullfile (or filesep at the very least) to build your full pathnames to ensure the right separator is used. Though I didn't do it in my example above...