Entrian Solutions

Archive for the ‘ChangeLog’ Category

Entrian Source Search 1.7.5: Performance and responsiveness

Thursday, February 23rd, 2017 by Richie Hindle

I’m very happy to announce Entrian Source Search 1.7.5, with these features and fixes:

  • Searching now happens in a background thread, with a Stop button.  Accidentally searching for a semicolon no longer locks up Visual Studio for a few seconds.  🙂  Thanks, Jeremy.
  • Improved performance of multi-token wildcards in cases where the query includes two or more of them.
  • Removed an unnecessary lock between the indexer and the searcher, which meant that searches could take longer than necessary when indexing was happening.
  • The number of hits is now limited to one million, because once you get into multiples of that, Visual Studio tends to run out of address space and crash.  (This involved adding my favourite class of the week, the OneMeeellionHitsException. 🙂 )
  • The text in the Search box is now clearly visible on High DPI displays (broken by query syntax highlighting in the previous version).  Thanks, Hans-Peter.
  • The query syntax highlighting colors are now more visible in dark themes.
  • The Home and Left keys now work when you have a query text selection that ends at far left of the query (also broken by query syntax highlighting).
  • Search warnings (eg. “Per-line wildcards not fully ready: Update incomplete”) are now printed by the command-line search tool (ess.exe).
  • Made the Search box wider when the display is wide enough for it.

You can download this new version from the download page or the gallery.


Entrian Source Search 1.7.4: Multi-token wildcards; query and result coloring

Wednesday, February 15th, 2017 by Richie Hindle

I’m very pleased to announce Entrian Source Search 1.7.4, which comes with a pile of cool new features:

  • Multi-token wildcards.  There are now three kinds of wildcards:
    1. Single-token wildcard: wild* – the asterisk is next to an alphanumeric character, and expands to a single token, eg. wild, wildcard, wilderness. Asterisks in a single-token wildcard can appear *any*where* in the word. (Source Search has supported this type of wildcard since 2008.)
    2. Single-line multi-token wildcard: this * that – the asterisk is on its own, and matches any number of tokens on the same line.
    3. Multi-line multi-token wildcard: this *:10 that – rather than being limited to a single line, these wildcards are explicitly limited to a number of tokens, and can span multiple lines.

    Here’s how you might find all the std::vectors concerning selections:

    Thanks, Chris and Vincent.

  • Query syntax coloring, and results coloring: in the Search box, positive filters are now shown in green text, negative filters are shown in red text, and multiple search phrases are shown with different colored backgrounds with matching colors 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:

    Thanks, Chris.

  • In the results list, the line numbers for lines with multiple matches (via the “Work like grep” option) now tell you how many matches there are on the line:
  • Source Search now displays syntax highlighting for both Python and PHP source files in the results list.  Thanks, Patrice.(Note: Python and PHP syntax coloring will only be present after the relevant files are re-indexed; that will happen automatically when you start up this version of Source Search.)
  • The Ctrl+Alt+C shortcut key in the results list or the search box copies the result list to the clipboard as text.  Thanks, Anders.
  • Ctrl+Del in the Search box does delete-word-forward.  Thanks, Dylan.
  • The existing Ctrl+H and Ctrl+L shortcuts for History Back and History Forward now appear in the tooltips.  Thanks, Martin.
  • The match-highlight background rectangles in the results list no longer escape their bounds and paint over the other columns when “Work like grep” is enabled and the results list is narrow.

You can download this new version from the download page or the gallery.


Entrian Source Search 1.7.3: General usability enhancements

Friday, February 3rd, 2017 by Richie Hindle

I’m very pleased to announce Entrian Source Search 1.7.3, with this pile of fixes and features:

  • Where your query matches only one result, it’s now optional whether to automatically open that result.  You can control this independently for text searches and for filter-only searches like file:renderer.  Thanks, Peter.
  • The way the history works is improved.  Search for A then B then C, go Back, Back, Search (for A), search for D, then go Back.  You now see A rather than C.  Previously, every time you searched for something new, it then took longer and longer to return to A, B, etc.  Now, searches that come from the history are promoted to the end.  (But note that going Back, Search, Back, Search, Back, Search will still go C, B, A.)  Thanks, Chris.
  • Source Search now copes better when it hits an unexpected file system exception.  These can be caused by (for example) network drives going offline, shared indexes being deleted, or indexes being corrupted by Visual Studio crashes or power failures.  Previously, these situations could make Source Search crash.  Now, you’re asked whether to ignore the error and continue (maybe because a network share went away for a moment and is now back again), temporarily disable Source Search, or send in a crash report:
  • You can now re-enable Source Search after a crash, without restarting Visual Studio, using the “More / Enable…” command.
  • Fixed a crash when the option to “Work like grep: show one result line per source line” is enabled and there are multiple overlapping results on a single line (eg. searching for a.a where the source contains a.a.a).
  • Source Search once again works on machines with FIPS compliance enabled.  (Deja vu? Yes, I fixed this in January 2013, but it crept back in).
  • Improved memory usage, reducing the chances of an OutOfMemoryException.  Thanks, Fred.

As always, the upgrade is available for free to all licensed users, and as a 30-individual-day trial for everyone else.  You can download it from the download page or the gallery.

Entrian Source Search 1.7.2: Tidy up your index list

Sunday, January 8th, 2017 by Richie Hindle

I’m pleased to announce Entrian Source Search 1.7.2, which lets you tidy up your list of indexes by selecting those entries that refer to deleted indexes or to deleted solutions and then delete them from the list (thanks, Eddie):


You can download this new version from the download page or the gallery.


Entrian Source Search 1.7.1: VS 2017, F8

Friday, December 23rd, 2016 by Richie Hindle

I’m very happy to announce Entrian Source Search 1.7.1, with a pile of new features:

  • Now supports Visual Studio 2017.
  • Now supports the standard F8 and Shift+F8 keystrokes for Next/Previous Hit (Edit.GotoNextLocation / Edit.GotoPrevLocation).  Thanks, Karim.
  • No longer installs keybindings for Alt+[ or Alt+] for Next/Previous Hit (which used to break some printable characters on some non-English keyboards).  If you already have the bindings set up, upgrading won’t remove them.  If you’re doing a fresh install and you want those bindings, you can set them up in “Tools / Options / Keyboard / Show commands containing: Entrian”.  Thanks, Martin.
  • When you have multiple indexes open and you force a refresh for one of them, it no longer refreshes all of them.
  • Fixed a crash generating the suggestions dropdown list for a networked index when the network drive was inaccessible.
  • If you perform a search and there’s only one hit, it now gets opened automatically.  That was already true for filename-only searches; now it’s also true for text searches.
  • The information in Help/About and crash logs now contains more stats.  Thanks, Fred.
  • The command-line tool ess.exe can now output a log file.  Thanks, Huy.

You can download the new release from the download page or the gallery.


Entrian Source Search 1.6.4: ‘Work like grep’; better memory usage

Sunday, November 27th, 2016 by Richie Hindle

I’m very happy to announce Entrian Source Search 1.6.4, with two new features:

  • ‘Work like grep’ shows one result line per source line, rather than one result line per match (note that stepping though the results still steps through every match).  Thanks, Chris and Jools.
  • You can now do a ‘Delete word backwards’ in the search box using Ctrl+Backspace.  Thanks, Ben.

…and two bugfixes:

  • Source Search is now ready to use as soon as Visual Studio loads the solution, rather than waiting until all the projects are loaded.  Thanks, Ernie.
  • Reduced excessive memory usage caused by queuing up too many files for indexing.  The thread that walks your source tree queuing up files to index now waits for the indexing thread to catch up a bit, rather than building an indefinitely-long queue.  Also reduced memory usage by automatically excluding more known-binary file types without opening them, and excluding them earlier in the process so that they don’t take up space in the queue.  Thanks, Fred.

Existing users should note that upgrading to 1.6.4 will rescan all your files, in order to index the line breaks for ‘work like grep’.  Until that process is complete, Source Search won’t ‘work like grep’, and will display a warning explaining that the update is incomplete.

You can download the new release from the download page or the gallery.

Entrian Source Search 1.6.3: index management, command line

Monday, June 6th, 2016 by Richie Hindle

I’m really pleased to announce Entrian Source Search 1.6.3, which adds significant flexibility to the way you use Source Search:

  • Move, delete, and rename indexes.
  • Open multiple indexes at the same time.
  • Share indexes on the network.
  • Specify the location of new indexes.
  • A command-line tool for searching and indexing.

The Manage Indexes dialog

The Manage Indexes dialog adds a pile of features for index management:

  • Moving indexes from one place to another (eg. from one drive to another).
  • Deleting old indexes.
  • Recreating corrupt indexes.
  • Creating secondary indexes that aren’t tied to a solution.


Secondary indexes

1.6.3 also introduces the idea of a “secondary index” – each solution gets (or shares) a primary index as before, but you can open several secondary indexes as well.  These are really useful for library code – for instance, Source Search is built using Lucene.NET; sometimes I want to include the Lucene sources in my searches, and sometimes not.  I can build a secondary index for Lucene, and only open it when I want to.


Read-only indexes

Often library code doesn’t change, so secondary indexes can be read-only – you don’t need to waste your PC’s time scanning for changes if you don’t want to, because you can open secondary indexes read-only.


Networked indexes

Taking the idea of a secondary index even further, they can live on a network drive.  Some organisations keep library code on a network drive, and Source Search now supports this.  One network server maintains the index for the shared code, updating it in real time if it changes, and all the developers open that index as a read-only secondary index.


Command line tool: ess.exe

You can now drive Source Search from the command line:

  • Create an index, specifying the root directories, inclusions, exclusions, etc.
  • Update an index to pick up changes to the code (the command-line tool doesn’t watch the filesystem; it’s more for batch operation).
  • Search one or more indexes.

It’s early days for ess.exe – there’s lots it could do but can’t do yet.  Let me know what you want from it!


As always, this new release is available from the download page or the gallery.


Entrian Inline Watch 0.9.5: More powerful accessor display

Sunday, October 18th, 2015 by Richie Hindle
I’ve just released Entrian Inline Watch 0.9.5, with these fixes and features:
  • Accessor Method rules are now as powerful as Object Display rules, eg. Rect->Width() can be defined as {right-left} and display the calculated value (thanks, Martin).
  • Increased the default size limit of values, from 15 to 20 characters.
  • More compact default representation of single-value objects: {m_SomeMember=”Some string”} truncates to {“Some string”} rather than {m_SomeMe…string”}
  • Fixed an intermittent startup crash when the beta expiry date had passed.

As always, this new release is available from the download page or the gallery.

Update: 0.9.6 fixes a bug whereby the crash dialog could crash.  (Did I really just admit to that?)


Entrian Inline Watch 0.9.3: Template support; Optional raw pointers

Tuesday, October 13th, 2015 by Richie Hindle

I’m very pleased to announce Entrian Inline Watch 0.9.3, which introduces two new features:

  • You can now set Object Display rules for C++ template types, for instance for std::list you can set up a rule like this:

    std::list   \{size={_Mysize}\}

    to display the size of all std::list<whatever> objects like this: {size=10} (Thanks, Martin and Daniel)

  • The display of values for raw pointers in C/C++ is now optional – when there’s no Object Display rule configured for a type, and no sensible default value to display, you can choose whether to display the raw pointer value or nothing (thanks, Daniel).

Update: 0.9.4 adds C++ template support to Accessor Method rules as well as Object Display rules.

You can download the new release from the download page or the gallery.

Entrian Inline Watch 0.9.1: Less clutter, fewer bugs

Monday, October 5th, 2015 by Richie Hindle

(If you’re new to Entrian Inline Watch, check out the intro page!)

I’m pleased to announce Entrian Inline Watch 0.9.1, which fixes the following bugs:

  • Parameter values are now displayed properly for functions with a throw() signature (thanks, Martin).
  • Where there’s no Object Display rule for a class, and the debugger’s default value looks like {ClassName}, don’t clutter the code with it (thanks, Jan and Martin).
  • Commenting out a line in the Object Display settings no longer affects the layout of the columns.

You can download this new release from the download page or the gallery.

(Update: version 0.9.2 also updates the Beta expiry date. 🙂 )