Sando is a local code search tool for Visual Studio that handles multi-word queries, ranks results, and handles inexact matches. It was created using state-of-the-art research to provide better search support than existing tools. Sando is an extensible framework that allows researchers to investigate sub-tasks like searching new languages, changing the splitter or ranking scheme, and reusing supporting code.
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Sando: An Extensible Local Code Search Framework
1. Sando
An Extensible Local Code Search Framework
David Shepherd
Kostadin Damevski
Bartosz Ropski
Thomas Fritz
2. Motivation: Search Support Needed
• 40/48 maintenance
tasks begin with search
[ko et al. ‘06]
• “Finding initial focus
points” as 1 of 4
categories [sillito et al. ‘06]
• 9/12 searched in first 12
steps [shepherd et al. ‘12]
3. <Video of searching…>
Some people, when confronted with a problem, think "I know, I'll use
regular expressions." Now they have two problems. -Jamie Zawinski
4. Motivation: Better Search Support Needed
• Multi-word queries difficult
• Ranking non-existent
• Fails on inexact matches
5. Our Answer: Sando Search Tool
• Handles Multi-word queries
• Ranks results
• Handles inexact matches
We leveraged state-of-the-art research to create
Sando, a local code search tool for Visual Studio
7. Motivation: Search Platform
index
splitter
C# parser
document
creation
Need for open source implementation(s)…
Let’s make our implementations available to other
researchers!
9. Sando: Extensible Framework
Search a new
language
Try a better
splitter
Rank search
results according Change query
to any arbitrary weights or search
scheme terms
Investigate your favorite sub-task
Reuse our field-tested supporting code
11. Conclusion
• Sando is a free, open
source code search tool
• Sando not a regex search,
avoiding many pitfalls
• Iteratively refine ideas on
real code, real users with
Sando