Sorry about that. Scalability is currently our #1 problem which we are actively addressing. We have implemented fixes in master that will be released later this summer. It will be orders of magnitude faster at indexing and more scalable. Shall I ping you when we release that?
P.S., As a reference point, the current release will index linux (46K source files) in about 15 minutes on a good machine.
Thanks for taking the time to give a review, much appreciated!!
Also, thanks for the theming example. Because we support VS2010 (i.e., before the current theming constants were introduced) we have always struggled to get this right. I'm forwarding your screenshot to a contributor that is looking into this issue.
Again, thanks for the review and detailed feedback!
A great complement to Visual Studio's built-in search and navigation tools. The autocomplete feature is extremely helpful when working with unfamiliar code.
The presentation of the search results could be improved a bit, though, by including more information in the result, and by showing the result context in the snippet (as opposed to showing the start of the class/method in which the result was found).
Sando is experiencing difficulties. See log file for details.
2013-06-05 15:33:50,427 ERROR DefaultSandoLogger - Sando.UI.View.SearchManager: Message: Key cannot be null. Parameter name: key StackTrace: at System.Collections.Hashtable.get_Item(Object key) at Lucene.Net.Analysis.PerFieldAnalyzerWrapper.ReusableTokenStream(String fieldName, TextReader reader) at Lucene.Net.QueryParsers.QueryParser.GetFieldQuery(String field, String queryText) at Lucene.Net.QueryParsers.QueryParser.Term(String field) at Lucene.Net.QueryParsers.QueryParser.Clause(String field) at Lucene.Net.QueryParsers.QueryParser.Query(String field) at Lucene.Net.QueryParsers.QueryParser.Clause(String field) at Lucene.Net.QueryParsers.QueryParser.Query(String field) at Lucene.Net.QueryParsers.QueryParser.Parse(String query) at Sando.Indexer.Searching.IndexerSearcher.Search(SearchCriteria searchCriteria) at Sando.SearchEngine.CodeSearcher.Search(SearchCriteria searchCriteria, Boolean rerunWithWildcardIfNoResults) at Sando.UI.View.SearchManager.Search(String searchString, SimpleSearchCriteria searchCriteria, Boolean interactive)
Thanks for filing feedback. I'm so sorry it isn't working for you! Can you share some details about your query? Does it have quotes in it or is it just plain search terms? Note that I have updated this work item regarding your issue: https://sando.codeplex.com/workitem/275
Also, next time, please consider filing any bugs on https://sando.codeplex.com/workitem/list/advanced. We work hard to deliver a great extension with limited resources, and would love a chance to fix the issue prior to a review.
Normal Search gives you all the references but again it is tedious to go to the relevant section of the code . Sando Search has provided some filters to filter by Element Type (Class,Methods etc. !!!) which will help me in reducing my search time.
During Code Inspection it helps me a lot as it gives me a code snippet where i can do my reviews without even going to the code files
Each time you change the filter you need to Click on the search Button which can be improved ...!!! search can begin after i apply the filter.
Thanks for the review F2dk! My colleagues that have put lots of sweat and tears into this plugin are especially thankful ;)
I agree, this may not replace existing searches (everyone still has the occasion that they need the regex-based search of Find-in-Files). I find this plugin to be most useful when working with slightly unfamiliar code (e.g., someone else's project, someone else's sub-component, or really old code) because I can just type out some general search terms (e.g., "open file", "monitor solution", or "show results") and I usually get pretty good search results.
-simple regex crashes visual studio -character classes regex does not work -fuzzy search does not work -search results expand in different direction - a weir UI experience -please make search results explicit, if nothing is found, it should be stated that nothing was found, otherwise I'm not sure if the search ran at all
PS: But it is a great idea, it will be very useful for the people who do not use add-ins like re-sharper, it just needs a little polish! Thanks!
Thanks for being an early reviewer! Would you mind downloading the latest Sando and providing an updated review? Sando has improved greatly since you last used it, with the 0.3 version just being released and we would *really* appreciate an updated review. Thanks for using Sando!
If you stick to searching for *whole words only* it works great. Anything else you might get nothing (where the normal search would have worked) or it crashes visual studio. Will probably be very good after a few version updates.
Thanks again for being an early adopter of Sando! We have just released 0.3, fixing lots of issues. Would you mind downloading the latest and updating your review? We would be really grateful if you would. Note that if you want to search for partial words just add an '*' at the end of your query (a new feature).
Would you mind updating your review, as we have just released a new version of Sando that is much improved. Sando still only works for C#, C, and C++, but I fear that this low rating is stopping other users that do use these languages from trying this free, open source software. Thanks for considering helping us!
I am working in native C++/MFC in VS2012. Sando works with C# projects, but when I open an MFC solution, Sando panel shows "Currently Indexing" without further information and search does not work. Description says that Sando supports C++. Do I need to configure something for Sando to work with native C++ or Sando does not support MFC/C++?
It should work for any C++ code. A few questions. When you open a solution does a folder name appear beside "currently indexing"? It should list the folders being indexed. Try clicking on the space beside "currently indexing" to set the folders, although they should setup automatically. Also, what extension are your cpp files, just to make sure they are on the list? Finally, I assume you're using the latest? If not, what version?
We'll get it working for you!
I appreciate your quick response. I am using Visual Assist X - may be this causes the problem? I am using the latest version of Sando and my file extensions are standard (*.h and *.cpp). Since my solution is huge, I tried generating a small dialog-based app via VS wizard.
Here is what I see:
- Without adding a folder by clicking to the right of "Currently Indexing", I see nothing in the Currently Indexing in VS2010 and I see "Currently Indexing in folder" in VS2012 when I open the solution
- I can add a folder in VS2010, then I see Currently Indexing <my folder>
- In VS2012, when I click to the right of Currently Indexing, I see a check mark with no text. If I click Add Folder, I see a new folder below empty check mark. If I click Apply and try to see the folders again, my added folder is not shown - only the first line with check mark and no text.
- Currently Indexing <my folder> (or Currently Indexing in folder) stays forever
- Any search shows No results found.
Very nice add-on and works with C#. I will try to use Lucene in my own C# projects.
We've seen other issues with Visual Assist X. You might try either disabling Visual Assist X or re-installing it. Can you send us a copy of your VS activity log (located at %APPDATA%\Microsoft\VisualStudio\11.0\ActivityLog.xml)? The best way to do that is to create a new issue on codeplex and attach it to that (https://sando.codeplex.com/WorkItem/Create).
You probably saw the update on https://sando.codeplex.com/workitem/283 already, but for the benefit of others, the latest Sando should correctly index C++/MFC solutions.
> I was wondering if I can debug Sando locally. Do you have instructions on how to build, setup and debug Sando?
Directions are available here: https://sando.codeplex.com/documentation
But, as you can see, extension development in Visual Studio can be a bit tedious to set up. Let me know if you get stuck and I'm happy to help.
All the best (and thanks again for the feedback!),
Yes, we are working on this. It is almost done, and a working version can be downloaded here: http://sando.codeplex.com/releases/view/97069
The only *known* issues with this *pre-release* is that the "expand" button on the right needs to be styled properly. Let me know if you find any problems with it, as we are still in the testing stages.... full release VS2012 in next two weeks or so.
This would be hugely useful if it was possible to add additional local directories to search for code, and perhaps show in a separate results list. There are no really good tools for searching a local machine for usages of a symbol, and lucene would be perfectly suited to the task.
I'd be interested in helping make this happen, as it would make my life hugely better.
Also, the labels and box backgrounds don't work well with the 2012 dark theme - might need to style them differently based on the theme selected.
We'd be happy to work with you to create this feature. There will be some challenges because we currently use Visual Studio's file events to keep our index up-to-date, but we could likely find a workaround. Feel free to start a discussion on http://sando.codeplex.com if you want to collaboratively sketch out a solution.
> Also, the labels and box backgrounds don't work well with the 2012 dark theme - might need to style them differently based on the theme selected.
Yes, we're aware of this annoyance (sorry!), but haven't had the resources to fix it yet. We'll be getting more help this summer on the project so you can expect this issue to be fixed in early summer at the latest.
You can now add arbitrary folders to the index. Just open a solution with Sando open. You'll see a "Currently indexing: <folder>" label. Click it and you can add folders to this list. Be careful though, if you add a folder with 1000s of files it will take a while to index. For 4000 files, a mixture of C# and C++ it takes about 20 minutes.
All the best,
I believe this is the same issue, or caused by the same problematic code as this: http://sando.codeplex.com/workitem/91
I'm on vacation this week but hope to look into this next week. Thanks for reporting this problem! I'm really glad that you're still using Sando, let me know if we can fix anything else. FYI, we pushed out an update last week (0.2) which you can get by hitting update in the extension manager (i.e., Tools > Extension Manager).
Sando v0.23 now only automatically shows the Sando View one time. So, it will show Sando once, when you open a solution after installing it, and then it should not reopen it (assuming normal usage). See http://sando.codeplex.com/workitem/91 for details.
If, for example, I search for "Mouse" or "Capture" it finds the line "Mouse.Capture(this)", however if I search for "Mouse.Capture" it finds jack all.
If I search for "Capture(" visual studio crashes hard.
Version .1 for sure. I think you'll have something great at version 1.0.
Thanks for this report! I bet we can fix this quickly. I will update you when a fix is out (probably next week due to vacations). Thanks again for the report, that really helps!
No, you don't need to install anything else. If you are working on an open source project let me know which one it is and I'll test it for you. If it is a private project here's a few things you can look into:
* Does Sando tell you "Sando is still indexing..." when you search? If so, Sando is still indexing the source code and may not return results until it is done.
* Are you searching for a complete word or just a part of a word? Sando only handles complete word queries (e.g., "file", "find", etc.) and can't handle partial words yet (e.g., "fil" or "fin" will fail).
* Is there anything else special about your C# files? If you can, send me one of your C# files for testing and I'll see if I can get Sando to parse and search it.
Let me know if any of this helps!
I think it must have been the particular solution I was working with because it is working for others. I am uncertain of the replication steps, however with the solution I first tried Sando the projects failed to load (project paths had changed), and I had to re-add them from their correct paths.