Troubleshooting: Installing Bookmarks and Navigator in 10.3 Rio as well as earlier versions

by Mar 1, 2019

Bookmarks and Navigator are some great coding productivity tools available in RAD Studio 10.3.1. You can install them via GetIt. They were recently acquired, and currently still have a few items you might notice relating to their previous life as a third party addon. The installers for older versions of the IDE are no longer available, since they are now part of RAD Studio 10.3.1.

One side effect though is that if you are currently using the plugins from before they were acquired in an older version of the IDE, the installation through GetIt can accidentally prevent the same plugins loading in the earlier versions of the IDE. If you were one of the several thousands of people using Bookmarks in a previous version, for example, and you want to use that old version as well as 10.3.1 Rio, this may affect you when you install them in 10.3.1. The symptoms are that you will see an error when loading the plugin in your earlier version of the IDE, possibly referring to ‘Core Editor.’

What is Core Editor?

Both Bookmarks and Navigator use a shared library that looks after most IDE integration, and this is known as the Parnassus Core Editor.  Originally, this provided interfaces and functionality for tracking open tabs, and for drawing the code editor. The ToolsAPI has very low-level painting support, and when the plugins were originally written none at all, and this provides much higher-level functionality: info about lines that were folded, how much it was scrolled, where the gutter was, etc, everything to paint almost as though the code was a native citizen of the IDE. It since grew to provide many other useful, ToolsAPI-like features, and over time we plan to roll these into the ToolsAPI itself.

The plugins look for the DLL in a specific folder which is specified in the registry – and this is the issue, because installing via GetIt installs to a different location than in the past. The path is updated, and is correct for Rio but not for older versions of the IDE.

Using the plugins in old and new versions of the IDE

The workaround is very simple: move the Rio version of the DLL to the same folder as was used for the older IDEs, and edit the registry key to point at this folder. Then, all IDEs will be able to locate their respective version of the DLL.

The Rio DLL is located in: C:\Users\[you]\Documents\Embarcadero\Studio\20.0\CatalogRepository\ParnassusCoreEditor-1.0

Copy the file ParnassusCoreEditor.dll, and rename it ParnassusCoreEditor_XRio.dll. The ‘_XRio’ suffix is important so it knows what version it applies to. Place it in:

C:\Users\[you]\AppData\Roaming\Parnassus OU\Common

Then, go to the Registry Editor (note: always be careful editing the registry) and update the path where the plugins look for this DLL. The key is HKEY_CURRENT_USER\Software\Parnassus OU\Core and there is a REG_SZ value called Path. Set this to the folder with all the DLLs, without quotes.

Restart your IDEs and you should have the plugins working in every version. But don’t forget to upgrade to 10.3.1 – they’re part of RAD Studio now!