Coati Release 0.9

Author: Eberhard Gräther

Coati 0.9 brings some big features. With our new Visual Studio plugin we offer a better way for setting up Visual Studio projects by exporting a clang Compilation Database directly from Visual Studio. We finally implemented a proper table showing all errors during indexing for easier navigation and filtering. Our Java language support was greatly extended, partly thanks to some contributions to JavaSymbolSolver. And we managed to improve font size and rendering issues on certain platforms.

You can download Release 0.9 here. The full changelog is available here. We will outline a few features new to this release below and give a roadmap towards the next release at the end.

The Compilation Database exporter in the new Visual Studio plugin and the new Log Window with Errors Table.

New in this Release:

  • New Visual Studio plugin with clang Compilation Database exporter
  • Log Window with Error Table
  • Extended Java language support
  • New installer for Windows
  • Fixed font sizes in UI and use smoother font rendering on Windows
  • Improved indexer parallelization for faster indexing
  • New UI features: Code selection, Graph saving, better Search match scoring

New Visual Studio Plugin with clang Compilation Database exporter

We have had lots of reports that our current project setup from Visual Studio solution failed for some setups. The original implementation parsed the Visual Studio .sln file and retrieved the necessary information for Coati’s project indexing. This approach turned out to be quite fragile, since Microsoft is not transparent on the format of the .sln files and their structure can vary depending of how the setup was done.

To tackle this problem we decided to make direct use of the Visual Studio SDK and extend our Visual Studio plugin to export all build information in a format that Coati can understand. Since we already supported the clang Compilation Database specification for project setup, it seemed like the perfect fit. That way users that need a Compilation Database from Visual Studio can also make use of our plugin. The plugin is currently included with each download, also the trial download.

Select the "Create CDB" option in the Coati Plugin menu to open the exporter.

The Compilation Database exporter also offers better features than our old project setup solution. You can select configuration, platform and the projects to index. As a next step we want to connect the Compilation Database exporter directly to Coati, so that all information in Coati’s project setup is already prefilled. Please have a look at our documentation for more information on the plugin.

The Compilation Database exporter of the new Visual Studio plugin.

Log Window with Error Table

Coati 0.9 now offers a new Log Window in addition to our well-known Search, Graph and Code Window combination. The Log Window makes more information available to the user about Coati’s current tasks. As first component we a added a table showing all errors encountered during indexing.

The table shows some information about the errors: message, filepath, line and type. By clicking on an error line the Code View will show its location. The checkboxes below the table allow for filtering the errors by certain criteria. If you want to hide the Log Window you can do this in the menu by toggling the View -> Log Window option.

The new Log Window with the Error Table for inspecting errors during indexing.

UI updates

We also made improvements to the user interface.

  • Select and copy code from the code view with SHIFT + mouse drag.
  • Markers next to the line numbers of the code view show active lines and scopes better.
  • Matches in the search autocompletion list will now use the best score within the name.
  • Save graph as PNG image via context menu.
  • Fixed font sizes to look the same on all platforms.
  • Use smoother font rendering on Windows by using the FreeType font engine via qt.conf.
Selection and markers in code view, search match scoring before and after, graph image saving.

Roadmap

We will release new Coati versions approximately every 5-6 weeks. For the next release we plan working on:

  • Better logging system and displaying log information within the Log Window.
  • Change how namespace and package information is displayed in Search and Graph Windows.
  • Connect Compilation Database exporter of new Visual Studio plugin to Coati’s project setup.
  • Reduce database file size.

If you have any questions or ideas please leave a comment below.

Sourcetrail 2018.4

Big indexing performance improvements, reduced memory consumption, new tabs bar to open multiple symbols simultaneously and more type-use edges for templates/generics. Continue reading

Sourcetrail 2018.3

Published on August 06, 2018

Const - Friend or Foe in C++?

Published on June 04, 2018