Coati Release 0.7 is a big step forward in shortening project indexing time. We finally introduced multi-threaded indexing, which resulted in a speed-up of about 300% on our systems. Besides some bigger features like full text search and a VIM plugin, we also worked on easier project setup and increased UI performance.
New in this Release:
- Added multi-threaded indexing
- Updated to Clang 3.8
- Added full text search to search bar
- VIM plugin
- Better macro handling
- Improved UI performance of graph and code views
- Improved graph node bundling
- Updated project setup: added Exclude Paths, removed Header File Extensions
Coati now supports multi-threaded indexing, which speeds up indexing by about 300% on our systems. The number of threads is set to 4 per default and can be changed with the setting “Indexer Threads” in the Preferences. Please note that the number of threads can’t be changed while indexing.
Full Text Search
The search bar supports case-sensitive and case-insensitive full text search in all analyzed source files now. To start a full text search begin your query with the a
? character. This defaults to a case-insensitive search. Use
?? for a case-sensitive search.
Please note that we are initializing the full text search index when executing the first full text search. This might take a couple seconds for big projects, but greatly reduces search time afterwards.
We extended our integration into widely used code editing tools by providing a VIM plugin. It’s available in our open-source vim-coati repository on GitHub. For the future we plan to put our other plugins into public repositories as well.
Improved Macro Handling
We extended our macro handling to show all places a macro is used in all indexed files. This includes uses in any of the directives
#if defined(), as well as expansions within other macros.
Updated Project Setup
Our project setup has seen a couple changes due to feedback gathered from our users and OpenSource projects we tested Coati on:
- Now header files are only indexed when included in a source file.
- The Header File Extensions setting was removed. Now any file that is within the Project Paths and included by a source file is indexed.
- An Exclude Paths setting was added to avoid indexing of files or directories, although they are within the Project Paths. The setting is located in the Advanced Settings of the Edit Project Window.
- We extended the UI for project setup from Compilation Database by adding a separate step for project name and location. We explain that the project stays up-to-date with the
compile_commands.jsonfile on refresh. Additional settings, like Include Paths, were moved to the Advanced Settings, so they can still be used when necessary.
We will release new Coati versions approximately every 5-6 weeks. For the next release we mainly plan to fix known issues in the UI:
- Fix font size and window size issues on different platforms.
- Fix UI for HighDPI screens.
- Show overlay on graph and code view for slow queries.
- Proper indexing dialog.
If you have any questions or ideas please leave a comment below.