Would it be possible to create an extensions that modifies what appears in the Go to All search results of Visual Studio 2017? I'd like to build an extension that lets the user (within Tools -> Options...) define any number of glob patterns for paths that should be excluded from this search. If it's possible could anyone point me in the right direction on what APIs to use?
The extension could either use the globs to instruct VS to filter what locations are searched, or it could receive the results and remove the unwanted ones before they are displayed - depending on what APIs are available.
This would for example be useful when you're working with a typescript project that compiles into js into some other folder, but you only want to search your ts files, or even more if you're working with some framework where html files are copied from the location where you code them to the location(s) where they need to be when running the app(s).
Related
I have a Visual Studio 2019 (16.4.2) solution with several projects and hundreds of subfolders that sometimes have files on disk that need to be "Included" in the projects. This most often occurs after Nuget upgrades of 3rd party CSS and JS libraries, but this may also include image and icon libraries that have been imported.
The most common occurrence is when a 3rd party library is upgraded via Nuget, it'll add new css, js, images, or other content files to disk (sometimes more than 100 new files in a single upgrade). But since I don't know they're there, after I deploy the upgrade via Devops, none of those new files will get deployed, which causes all sorts of obvious problems. Then I have to go back and open every folder and subfolder, manually locate the missing files, click "Include in Project" for each one, then re-deploy.
There has to be a better way.
I don't necessarily want to include all missing files, because there are some files--especially source control-related files--that should not be included in the projects and need to just be left on disk. So what I need is a way to see a list of all of the files that are on disk but not included in the projects, so I can choose which ones to include.
Also nice would be a warning by Nuget about new files being added, which is probably asking too much (even though this is a very obvious feature that Nuget should include without asking for it).
How do I see all of the “missing” files in a Visual Studio solution
that need to be included in the projects?
Usually, you can click the menu Show All Files from the solution explorer(Before that, you need to click on the specific item to see the hidden file). In this way, you should check every project and select which part to import based on your need.
So what I need is a way to see a list of all of the files that are on
disk but not included in the projects, so I can choose which ones to
include.
I am afraid that you cannot get what you want so far.
In VS IDE, there is no such function to obtain a list of all exclude files in your solution and then select which to import by default.
Also, there is no such vs extension to implement it.
So you should check every project and manually select the file to import by Show All Files Button.
Suggestion
If you still want this feature in VS IDE, you could suggest a feature on our User Voice Forum.
After that, you can share the link here with us and anyone who is interested in it including us will vote it to get more Microsoft's attention.
We have a web project with Angular, jquery and Telerik Kendo.
When searching for any text Ctrl+Shift+F that is then found in any of their *.min.js or *.js.map files, the VS (both 2013 and now 2015) will become unresponsive for 30-60s. Also when later I scroll the Find Result 1 window, it will momentarily become unresponsive when long line becomes visible. Everything becomes smooth again if I clear the search results from Find Result 1.
We have the *.min.js and *.js.map files included in project itself. Is this wrong approach?
This is a well known problem, the Connect feedback article is here. These files are poison pills to an IDE, compare to this Q+A.
Little to add, beyond not adding them to your project, the proposed workaround in the article is the obvious one. And as long as you need to search through these files you surely want to work with the non-minimized versions of them.
In the Find options, expand "Result options" (Alt+S) and enable "Display file names only". The contents of the files will not be displayed in the find results and everything will be a lot faster. You can still double click a file name in the find results to go to the exact location of the match in that file.
Does this problem happen for everyone, or only on particular machines? Are there any Visual Studio extensions that may be slowing down the search? You could try and temporarily disable all extensions and see if you have the same problem.
Otherwise, I would agree that including the .min.js and .map files in the solution / project is not ideal anyway.
My recommendation is to use Bower to manage your 3rd party client-side library dependencies. They say use the right tool for the job, and in this case, it's currently Bower.
Bower support is baked in to Visual Studio 2015. Here's some Microsoft docs on using Bower in Visual Studio 2015:
http://docs.asp.net/en/latest/client-side/bower.html
Docs for installing Kendo using Bower: http://docs.telerik.com/kendo-ui/install/bower
Now, this by default will put those vendor libraries in a bower_components folder under the project root. You would then not include this folder in your project, or in source control (but bower.json and optional .bowerrc would go into source control).
This should alleviate your problem in VS2013, but in 2015, Find in Files will still search bower_components. So your best bet is to try and narrow down the source of the slow-down.
Using Bower potentially impacts your development and build process, so you might want to avoid that if that's going to force your hand to make other changes you're not positioned for yet.
One thing you can check to try and help solve this issues, is in your gruntfile's minify task, make sure the mangle property is set to false. Mangle changes the variable names to really short names, so sometimes that can mess up your other files that use variables from those minified files, and other errors can occur. I'm not sure why visual studio crashes or wouldn't be able to handle searching for a string that doesn't exist, but it's something to consider.
We recently switched to team foundation server 2010 for our source code management, everything works just fine, except for some legacy code written in FoxPRO 7 and 9, source code files are some sort of tables. For Forms, there are two kind of files, one ending in .scx and another in .sct, both can be explored using the fox studio but there is no way to open them in a text editor.
does anyone have any experience getting the fox code to work/merge... on TFS ?
I'm not aware of all of the ins and outs for source control and FoxPro, but if some of the source is binary, you can configure file extensions to disallow merges.
Right-click on the collection (root node) in the TeamExplorer window. Go to Team Project Collection Settings | File Types.
You should be able to add the extensions (like .sct), and specify that merging and multiple checkout is not allowed for those files.
The downside will be that only 1 person at a time can check those files out, but since the forms are FoxPro tables, I would imagine that's the same problem that you would have with any source control tool.
For merging you can set up a merge tool that is capable of merging those files. This must be done on every developer station (Tools->Source Control->VS Team Foundation Server->Configure User Tools).
It may be that VS uses a server-side merge tool to do auto-merges, I don't know if or where you can change that.
I've worked with VFP since it was FoxBase back in late 80's. Visual Foxpro used .dbf files (renamed extensions) for purposes of building forms (.scx/.sct) and visual class libraries (.vcx/.vct) and reports (.frx/.frt).
I've written some code to run through a given project and dump out a text version of all the code as if it was all text-based. All the controls are dumped in alpha order, embedded procedures, etc too. List all property settings in same place too.
Its not PERFECT, but I've used over the years in comparing source code versions when dealing with other developers who liked to change things and not notify me (or others) of such changes and finding later by other horrendous means.
If this is something you might be interested in, I can strip-down the code (some) and send it to you via an email, but would need an email address. The code is written in VFP as a .prg file, so nothing compiled that you would need to worry about any viruses or anything.
At least this way, you COULD get a text version associated with the binary pair's of files used within VFP.
I am working on a project using VS 2008, containing MANY files within projects
within solutions. We recently had to convert all our work from VS 2003 to 2008 (you know
how big companies are always the last to convert to the lastest version of stuff).
In trying a "Find in Files" (or "Quick Find") within 1 solution containing 3 projects, I am successful in my search within all 3 projects only when using "Current Doc" & "All Open Docs". But when using "Entire Solution" or "Current Project" only 2 of the 3 projects give me correct results. The Find will not show files within 1 project in particular that I KNOW include results from my Find.
After reading suggestions from:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=105511
I attempted every Workaround they had, and NONE worked for me. Any suggestions???
Setting find options
First try the following:
Ctrl+Shift+F (Find In Files)
Look in: Entire Solution
Expand Find Options
Whatever for Match case
Whatever for Match whole word
Uncheck "Use:"
Look at these file types: *.*
"Dealing" with some rare solution hierarchy issues
Next, if you have your projects organized into solution folders (as in you have this instead of this), try expanding each of the projects one time, as follows:
foreach solution folder in the project
expand the solution folder
foreach project in the solution folder
• expand the project node
• (optional) collapse the project node
(optional) collapse the solution folder
Additional details regarding expanding the projects: in my work on my Solution File List tool pane (in particular the Find in Solution Explorer feature shown), I found that sometimes files aren't found in the solution if the project hasn't been expanded once. Using the automation model, the problem always occurs, but using the lower level COM interfaces is more likely to work. The lower level interfaces are what Visual Studio uses internally, so most of the time people won't run into this problem. I use a lot of carefully ordered operations (aka hacks) to keep it working as much as possible, but every once in a while I still have to expand a folder before a file is found.
If all else fails
I'll need to know as much of the following as you can provide. These are relevant for all projects in the solution, not just the ones that aren't working for the Find in Files. For some Visual Studio operations, an exception will interrupt the remainder of the operation, so an exception while operating on project A might keep the find from reaching project B, etc.
What project types do you have in the solution? Especially if you are using 3rd party project types such as VS.Php (I think .phpproj) or nFringe (.ucproj). As a quick check, you can right click each of those projects and select Unload Project, then try the Find In Files afterwards.
What source control system are you using?
Do you have any 3rd-party add-ins installed? (Microsoft ones count if they are power toys, etc.)
Do you have any non-file-system files in the project? (Nodes in the project that don't map directly to a file on the hard drive.)
Does any project in the solution reference files on the network?
I need to do a significant search through my SourceSafe 8 database to support a refactoring exercise.
I have a list of about 250 differant stored procedures that are called and need to work out where in the application. Are there any tools that improve on the standard search so that I can search for any instance of any of these procs or is pulling the code into another database my best bet ?
Don't laugh but I still use SourceSafe 6... but there is a Find in Files option from the tools menu that will do a search within files for a specific string... do you have that available in version 8?
You may try vssfind utility, a freeware, and see if helps.
With Microsoft Visual SourceSafe Explorer Version 8, the View/Search menu provides access to the following search capabilities:
Wildcard Search (On the file name. Use a question mark to match a single character in the file name, and an asterisk to match zero or more characters.)
Search Area
Search in current project only
Search in current project and all subprojects
Search in all projects
Status Search
Display all checked out files
Display files checked out to: [user name]
Search Area
Search in current project only
Search in current project and all subprojects
Search in all projects
For the first two Search Area options, the search settings will be applied as you click from project to project. Remember to go back and clear your search settings after you've found your files of interest.