Entrian Solutions
 

Screenshot

Entrian Source Search

is a powerful search plugin for Microsoft Visual Studio. It's the fastest way to search and navigate your source code.

Download or Buy now:

Download 30-day free trial

The free trial gives you 30 individual days of usage.

Buy now - $29 per developer

Volume discount:
5 or more users: $24 each

Quick links:

Latest blog entries:

Customer soundbite:

“I love Source Search - it really helps me to get a grasp on the large, multi developer, project I'm working on.”

– Casper K, Holland   
More testimonials...

Share/Bookmark/Email:

 

Entrian Source Search Online Manual

Searching: the basics

The simplest search is just for a word, a phrase like this one, or a code->snippet() (which is just a phrase).

With the Phrase Search option enabled, your query will be treated as a phrase. With Phrase Search turned off, multiple words will be searched for separately, and the results combined.

To search for a phrase with Phrase Search turned off, double-quote it.

Wildcards

Entrian Source Search supports three kinds of wildcards:

  • Single-token wildcard: wild* - the asterisk is next to an alphanumeric character, and matches single tokens, eg. wild, wildcard, wilderness. Asterisks in a single-token wildcard can appear *any*where* in the word.
  • Single-line multi-token wildcard: "this * that" - the asterisk is on its own, and matches any number of tokens on the same line.
  • Multi-line multi-token wildcard: "this *:100 that" - rather than being limited to a single line, these wildcards are explicitly limited to a number of tokens, and can span multiple lines.

To search for an asterisk, escape it with a backslash: char\*.

Wildcards example: If you wanted to find all your Python functions involving audio that take a parameter called channel, you might search for def *audio*( * channel. That would match def get_audio(self, channel) and def flush_audio_buffer(self, buffer, channel).

The *audio* piece uses single-token wildcards to match all the single words that contain audio, and the lone asterisk in the middle matches any number of tokens on the same line.

Search options

These options fine-tune how searches work:

Case sensitive: Check this to make your searches case sensitive.

Phrase Search: Check this to search for phrases by default, so that searching for all good will find the phrase all good. With phrase search turned off, that query will find all instances of the word all and all instances of the word good, and show you the combined results.

You'd normally keep Phrase Searching enabled, but switching it off is useful if you want to search for a set of related function names, for instance. With the Phrase Search button unchecked, you can always double-quote your query to search for a phrase.

Loose Search: You can search for words that are somewhere near to each other, in any order, by enabling Loose Search. With Loose Search enabled, searching for parse query will match Query q = parse(text). To save you checking and unchecking the button, you can prefix your query with loose: to enable Loose Search for a particular query.

Fuzzy Search: By checking the Fuzzy button on the toolbar, you can match variations on the words (Archive matches CArchive and Archival), international spellings (Color matches Colour), and spelling mistakes (Definitely matches Definately).

  Verbosity slider: This controls how much context is displayed around the matching word in each hit. With the verbosity turned right down, you get a narrow column of source code, with the matching words closely aligned above each other - very easy to scan, but lacking much context. With the verbosity turned up, you see more of the code around each matching word, but the list is, well, more verbose, and therefore takes longer to scan your eye down.

Filters

Filters affect which files are searched, according to their filenames, ages, etc:

  • Limit your search to only files with certain extensions: ext:cpp
  • or certain filenames: file:ChangeLog
  • or in certain directories: dir:lib\server

You can filter on the age of files, for instance to pick up only files modified within the past two hours: age:2h. The units are m for minutes, h for hours and d for days.

You can filter on text or phrases by prefixing them with a plus: "find this phrase" +"only in files containing this phrase".

Filters can exclude as well as include, by prefixing them with a minus: -ext:html, -"exclude files containing this phrase".

Be careful of accidental negative filtering - a search for -200 means "list all the files that don't contain 200", which is probably not what you meant (and if you do this, a warning will be displayed). To prevent a minus-prefixed or plus-prefixed query from being interpreted as a filter, double-quote it.

Filter-only searches

You can specify a filter like file:*terrain* dir:renderer without a search term, and get a list of the matching files. That's a quick way to open one or more files without having to find them in Solution Explorer, or with the File / Open command.

Query and results highlighting

In the Search box, positive filters are shown in green text, negative filters are shown in red text, and multiple search phrases are shown with different colored backgrounds with matching background colors shown in the results list.

Here’s how you might find the places where your Python code uses a list or a dict as the default value for a function parameter, ignoring anything in the thirdparty directory:

Entrian Source Search makes Visual Studio faster and more productive to use.  Download it today and try it for yourself.