Before indexing the indexer commands are sorted according to byte size of the indexed source file. Afterwards the list is split into two halves and each half is shuffled. This ensures that bigger files tend to be indexed first, so that no indexer thread runs idle at the end of indexing.
Sourcetrail
Setup
External Software
- JDK 1.8
- QT 5.9.1
- CxxTest 4.3
- Valgrind 3.9.0 (linux)
- Clang & LLVM 4.0.1 (doesnt quite work for windows, use unix setup below and skip all the ninja stuff)(installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
- Boost 1.64
- Botan 2.1.0
also something about java, but who knows...
Environment Variables
- CXX_TEST_DIR - .../cxxtest-4.3
- CLANG_DIR - .../clang-llvm
- BOOST_DIR - .../boost_1_64_0
- BOTAN_DIR - .../Botan-2.1.0
For MacOS and Linux
- QT_DIR - .../Qt/Qt5.9.1/5.9.1/
For Windows:
- QT_WIN32_DIR - .../Qt/Qt5.9.1/5.9.1/msvc2015
- QT_WIN64_DIR - .../Qt/Qt5.9.1/5.9.1/msvc2015_64
- VLD_DIR - .../Visual Leak Detector
- path
- apped path to git.exe
- apped path to jdk/bin
- append path to VisualStudio/Common7/Tools
- append path to VisualStudio/Common7/IDE
Clang setup
For Windows: Execute Cmake twice (once for each target compiler (32 and 64 bit)). Set the respective build path to ${CLANG_DIR}/build_win32 or ${CLANG_DIR}/build_win64
Boost setup
For Windows: Build the Boost libs for 32 and 64 bit. Make sure that the platform specific libs are located in ${BOOST_DIR}/lib32-msvc-14 and ${BOOST_DIR}/lib64-msvc-14.
For Mac: $ ./bootstrap.sh --with-libraries=filesystem,program_options,system,date_time $ ./b2 --link=static --variant=release --threading=multi --runtime-link=static --cxxflags=-fPIC
Botan setup
For Windows
Extract the contents of your Botan package into "${BOTAN_DIR}/win32". Duplicate that folder and rename it "win64".
Build 32 bit debug lib in ${BOTAN_DIR}/win32/debug $ python configure.py --cc=msvc --cpu=x86_32 --disable-shared --no-optimizations --with-debug-info
Build 32 bit release lib in ${BOTAN_DIR}/win32/release $ python configure.py --cc=msvc --cpu=x86_32 --disable-shared
To build the 64 bit lib start the VS command prompt with the "amd64" argument as described here:https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx
Build 64 bit debug lib in ${BOTAN_DIR}/win64/debug $ python configure.py --cc=msvc --cpu=x86_64 --disable-shared --no-optimizations --with-debug-info
Build 64 bit release lib in ${BOTAN_DIR}/win64/release $ python configure.py --cc=msvc --cpu=x86_64 --disable-shared
For MacOS and Linux
Build release lib in ${BOTAN_DIR}/release Build debug lib in ${BOTAN_DIR}/debug
for Mac: $ mkdir debug/release $ cd debug/release $ python ../configure.py --disable-shared --disable-modules=darwin_secrandom (--with-debug-info) $ make -j 4
for Linux: $ python configure.py --disable-shared
Settings
Run setup script: $ ./script/setup.sh
Release
App
- create release build
- make sure it uses the Sourcetrail icon
- obfuscate the executable using upx
Data folder
- put data folder in working directory
- add empty log folder
- add working tictactoe.xml project to /projects/tictactoe with sources in /projects/tictactoe/src
- add empty app settings with one recent project tictactoe.xml
- leave window_settings.ini with correct Sourcetrail start layout
Package
- add app
Updating Clang on UNIX
$ cd .../clang_llvm
$ cd llvm $ git pull origin master
$ cd tools/clang $ git pull origin master
$ cd tools/extra/ $ git pull origin master
$ cd ../../../../../build_debug $ cmake -G Ninja -DLLVM_ENABLE_RTTI=ON ../llvm $ ninja -j4 check-all
$ cd ../build_release $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RTTI=ON ../llvm $ ninja -j4 check-all
Remarks
- Boost lib dir: rename library directory for your system (e.g.: 'lib32-msvc-12.0') to 'lib'
Tagging
$ git tag -a VERSION_NUMBER -m "DESCRIPTION" $ git push --tags
Loader gif creation from png sequence
// from png sequence convert -delay 3 -loop 0 souretrail_*.png souretrail.gif
// less colors gifsicle --colors 255 souretrail.gif > color.gif
// crop size gifsicle --crop 0,5+0x-5 color.gif > crop.gif
// add transparency gifsicle --unoptimize --disposal=previous --transparent="#FFFFFF" crop.gif > trans.gif
// resize gifsicle --resize-height 18 trans.gif > loader.gif
Changelog
2017.2
released 2017-06-21
- Fixed crash when using shortcuts containing letters with focus on the graph on macOS (issue #390)
- Improved Visual Studio plugin performance
- Updated End User License Agreement and have users accept on first run on macOS and Linux
- Fixed memory issues when using large Compilation Database files (issue #396)
- Updated to JavaParser and JavaSymbolSolver
- Fixed issue where black borders appeared around dialogs for some Linux window managers (issue #376)
- Use platform default window decorations for UI dialogs
- Code: Made snippet minimize/maximize buttons more interactive by showing hover states
- Code: improved code view loading performance
- Java: Record more "import not found" errors
- Support Visual Studio 2017 in Visual Studio Plugin (issue #381)
- Graph: increased creation speed by requesting less data
- macOS: Codesign .app bundle to avoid "from unidentified developer" warning
- Error: Use same error order in error table and code view
- Error: Only show first 1000 errors, click button in lower right of error table to show all (issue #385)
- Graph: use bezier edges when activating aggregation edge
- Send ping after changing plugin ports
- Added menu action to display EULA and force accepting on macOS
- Fixed use of environment variables in project setup paths
- Multi-language project setup via Source Groups setup UI (issue #230)
- C/C++: Fixed no files indexed when relative file paths are provided in Compilation Database (issue #388)
- C/C++: Display an error when loading a Compilation Database fails
- C/C++: Fixed source files within Compilation Database not indexed unless within Indexed Header Paths
- Fixed status message length limiting window resizing (issue #372)
- Match source file extensions case insensitive (issue #384)
- Fixed indexing progress file count in status bar and status view (issue #387)
- Windows: remove setup.exe from windows installer with all necessary .dll files
- Added history list button between back and forward button
- Added history menu showing activated symbols in chronologic order
0.12.25
released 2017-05-16
- Added QtCreator plugin
- Graph: Added context menu action to create bookmark for node under mouse cursor (issue #373)
- Code: Fixed code view not scrolled to first fulltext search match in single file mode
- Set unrestricted permission for accessing shared memory to fix crash on Windows
- Improved setting descriptions in preferences dialog
- Java: Updated to JavaParser 3.2.0 and JavaSymbolSolver 0.5.3
- Graph: Fixed order of nodes is same as within first encountered header file
- Save timestamp after project indexing and show it on the overview screen
- Fixed use of correct name delimiters in indexer processes
- Fixed crash when running 32 and 64 bit versions in parallel
- Bookmark: Changed menu action to "Bookmark Active Symbol"
- Graph: Zooming on Ctrl + Mouse Wheel now (Shift + Mouse Wheel still working)
- Added dialog to warn about "verbose indexer logging" before indexing.
- Added multi process indexing for C/C++ projects to better handle crashes during indexing.
- Reduced file accesses during C/C++ indexing.
- Graph: Show call graphs, inheritance trees and include trees for active symbol. UI in the top left of the graph view for defining direction and depth. (issues #249 #337)
- Improved performance by running UI updates in parallel for each view
- Fixed project refresh not recognizing newly added files
- Show progress dialog when clicking refresh while computing files (issue #341)
- Added show files button to summary of compilation database project setup (issue #354)
- Show option to run only C/C++ preprocessor when indexing on indexing start dialog (issue #297)
- Added bookmarking feature for nodes and edges. Bookmarks can have categories and comments. Data gets stored in .srctrlbm next to project file. Shortcuts similar to web browsers. (issue #138)
- Mark files with errors and all files within a translation unit with fatal errors as incomplete (issue #358)
- Fixed compilation database projects using C++ source extensions and standard (issue #366)
0.11.86
released 2017-04-12
- Terminating all running tasks before closing the application (issue #343)
- Use all available cores when setting indexer threads to 0 (issue #342)
- Added reset window layout option to view menu (issue #289)
- Fixed colorscheme gets refreshed when cancelling preferences dialog
- Log: Scroll to first line in errors table after indexing and after display
- Copy old ApplicationSettings.xml and window_settings.ini files from previous Coati install if available.
- New projects are created with .srctrlprj and .srctrldb endings, but still support old file extensions.
- Renamed application from Coati to Sourcetrail
- Fixed issues in tutorial project
- Graph: Fixed node with no children but qualifier shows expand button
- Enable undo/redo actions in context menu only when available
- Java: Updated to JavaParser 3.1.2 and JavaSymbolSolver 0.5.2.x
- Revised undo/redo stack to handle messages differently
- Java: Added support for project setup from Maven
- Windows: Hide console when running release builds
- Show license information on start screen
- Added ping support to plugins and display current connected editor/IDE in status bar.
0.11.15
released 2017-03-01
- Don't accept richt text in 'enter license' dialog field (issue #207)
- Updated EULA to include Test License and better clarify other license types
- Fixed icons in project setup dialogs blurry on highDPI screens
- Added link to additional downloadable pre-indexed projects to trial start screen
- Fixed crash when saving preferences if they contain relative paths
- Convert all paths chosen by patch picker relative to project location in project setup
- Disabled name and location changing in project editing and removed project moving
- Split default file extensions for C++ and C to avoid wrong files getting indexed
- Deprecated 'Lazy Include Search', it's only visible to previously created projects (issue #335)
- Support relative paths and paths containing environment variables for compilation database path (issue #312)
- Removed 'Advanced Settings' section in project setup and show theses options in separate dialog (#293)
- Support environment variables containing multiple files in project setup paths (issue #283)
- Warn users when no 'Indexed Header Paths' were set in compilation database project (issue #254)
- Renamed "Project Paths" to "Indexed Paths" in project setup
- Renamed "Project File Location" to "Coati Project Location" in project setup (issue #234)
- Allow opening indexed projects in trial mode
- Record node type of non-indexed qualifiers (e.g. "std" in "std::string" as namespace)
- Log: Fixed error icon loaded for every row (issue #287)
- Graph: Fixed lambda are placed within white area to better see call edges
- Graph: Show non-indexed nodes within their parents instead of using namespace labeling
- Code: Disabled syntax highlighting for project description
- Graph: Fixed different font-faces causing graph nodes to expand to bigger cell amount
- Mac: Fixed wrong READMEs at some plugins (issue #315)
- Mac: Removed boost libraries and libLTO from Mac bundle
- Windows: Add Visual Studio compatibility flags to new project when Visual Studio include paths are present
- Renamed undefined nodes to non-indexed nodes for clarification
- Show progress in file clearing dialog
- Extended syntax highlighting for Java and distinguish by project type
- offer Windows 64bit build (issue #300)
- Fixed legacy Java 6 install necessary on MacOS (issue #280)
- Updated to Qt 5.8
- Updated to clang/llvm 3.9
- Added multithreading to Visual Studio plugin compilation database creation
- Graph: Use new list layouting for overview bundles and namespaces/packages
- Graph: Group nodes in list layout by starting character and allow jumping to group by pressing the key
- Graph: Use node specific styles for overview bundles
- Visual Studio plugin can now handle projects with non-native build tool for compilation database export
- Changed menu action 'Licenses' to '3rd Party Licenses'
- Added dialog with all shortcuts to Help menu
- Log: Show error in errors table when clicked in code view (issue #323)
- Code: Switched default mouse drag behavior to selection, panning on Shift + drag, and show suitable cursors
- Updated company address in about dialog
- Graph: Added on-screen zoom buttons
- Graph: Split aggregation edge when expanding nodes if possible
- Uncommented lines using the std library in TicTacToe sample
- Fixed issue with lambda return type (issue #318)
- Save builtin types as separate node type (issue #2)
- Remove unused included files after refreshing
- Java: Fixed packages that only contain packages to show up as non-indexed
- Added context-menu actions to copy node names, file paths and show files in containing directory (issue #320)
- Fixed crash when entering a single space in 'enter license' dialog (issue #277)
- Graph: Made edge lines thicker
- Fixed handling and storing of files with the same name
- Fixed environment variable detection within project paths for %VARIABLE_NAME% syntax
- Coati states whether it needs 32bit or 64bit JRE
- Java: Updated indexer to fix a lot of unsolved symbol issues
- Graph: Fixed layouter couldn't handle nodes with same name
- Graph: Fixed weird looking vertical aggregation edges to child nodes
- Code: Don't show stats for non loaded project
- Added option to disable UI animations to preferences
- Graph: Removed double line around graph view on Mac
- Graph: Fixed namespace label cut off at edge of screen
- Code: Added single file view mode
- Code: Added navigation bar with mode toggle and buttons to navigate references
- Graph: Removed underscores in edge hover names
- Infere some non-indexed node types by their edges
0.10.0
released 2016-12-13
- Windows: Added runtime DLLs that could be missing on some systems
- Click message in status bar to open status window
- Graph: Sort nodes alphabetically within each section
- Graph: Aggregate type use edges to make referencing nodes appear collapsed
- Code: Improved performance through faster source location retrieval for files
- Code: Scroll active symbol definition to top of view if possible
- Added status tab to Log View showing status bar information
- Graph: Fixed graph animation used when clicking edges
- Graph: Disable bundling when files or macros are active
- Graph: Bundle importing files of active symbol in Java projects
- Improved speed of depending file search on refresh
- Search: Fixed crashes related to empty searches (issue #251)
- Search: Do fulltext search when no autocompletion match is available
- Added checkbox for full project refresh to start indexing dialog
- Disabled clang error limit by default to make sure all errors are shown
- Linux: Updated libs and added missing ones (issue #245)
- Updated icons for some graph nodes and project types
- Windows: Updated Visual Studio plugin UI
- Graph: Fixed view to not recenter on active node when clicking edge
- Fixed wrong errors displayed, wrong error counts and error view being wrongly shown
- Removed font zoom on CTRL + MouseWheel
- Graph: Display namespace information on left side of nodes, activate namespace by clicking label
- Improved file clearing performance
- Windows: Changed setup folder layout
- Added info screen for indexer crash investigation
- Code: Fixed display of links to missing symbols in project description
- Code: Fixed snippet size calculation causing a slowdown in certain cases
- Search: Skip intermediate autocompletions when typing fast
- Show dialog for last files inserted into .coatidb at end of indexing
- Integrated Visual Studio Plugin with Coati Project creation and removed previous Visual Studio Solution parser
- Improved C++ indexer coverage: using decls, using directives, auto keyword, lambda signatures, symbol references inside lambda captures, template argument related elements
- Reduced size of .coatidb file by up to 50% for large projects
- Fixed anonymouse symbol name conflicts (issue #241)
- Preferences: Added Indexer Logging option to print AST information during indexing
- Search: Added second line to search autocompletion list showing namespace, package or filepath
- Made cells readonly in errors table to prevent editing (issue #236)
- Renamed Log Window to Status window
0.9.23
released 2016-10-27
- Windows: Added logging and exception handling to VS plugin
- Windows: Added VC++ runtime dlls for windows installer
- Windows: Added missing VC++ runtime dlls (issue #231)
- Added setting for default graph zoom on mouse wheel to preferences (issue #237)
- Scroll errors table to newest error during indexing
- Fixed best scoring for search autocompletions skipped some combinations
- Fixed flickering of errors table when indexing
- Don't show error snippets in overview screen anymore
- Fixed crash when Project Paths contain files and lazy include search in enabled (issue #201)
- Fixed edge cases that caused deadlocks in indexing
- Added language specific project icons to start screen
- Fixed application couldn't be quit when start screen was showing (issue #227)
- Graph: Fixed missing image file ending when exporting graph for Linux
- Log Coati version when logging gets enabled
- Fixed non-indexed errors filter in errors table
0.9.0
released 2016-10-14
- Extended Visual Studio Plugin to export clang Compilation Databases
- Implemented new installer for Windows
- Run System Header Include Paths and Java Path detection when starting application
- Added Log Window with Errors tab showing a table of all errors
- Added filters to bottom of error table to define which errors are displayed
- Removed ring logging and use one log file again instead
- Smaller indexing progress dialog with bar in the middle instead of golden ratio
- Code: Set default code snippet expand range to 3 lines for more context
- Graph: Fixed undoing of aggregation edge activation caused crash
- Graph: Move aggregation and inheritance edges to front when hovered or active
- Graph: Push parent nodes of active nodes to back to make all incoming and outgoing edges visible
- Properly quit application when window is closed while confirm box is open
- Properly quit application when window is closed while indexing (issue #121)
- Graph: Count only top level nodes in bundle nodes of graph
- Search: Improved scoring of autocompletion matches to use best score for match
- App will go into trial mode without valid license
- Java: Auto detect java root source directories
- Fixed refresh crash (issue #220)
- Java: improved indexer reliability a lot
- Java: Changed name of generic type to use name of declaration
- Fixed project refresh does not recognize removed source paths
- Java: Define maximum allocated jvm memory in preferences
- Follow symbolic directory links within source paths (issue #205)
- Use white size grip in blue dialogs
- Graph: Use type node colors for undefined nodes
- Java: Show import not found as error
- Code: Select and copy source code in code view with SHIFT + mouse drag (issue #7)
- Code: Added markers next to line numbers in code view showing active locations and scopes
- Merged app and trial to one build
0.8.21
released 2016-09-16
- Added options for checking multiple paths in Indexed Header Paths dialog during project setup from Compilation Database #190
- Added all C/C++ standards supported by clang
- Fixed C language setting in empty project setup not propagated to indexer #177
- Added Sublime plugin to Sublime Text Package Control
- Improved indexer parallelization for faster indexing
- Changed all font-sizes to px for similar look on all platforms
- Added font face dropdown to Preferences showing all available monospace fonts #172
- Smoother font rendering on Windows by setting font engine to FreeType via qt.conf file #137
- Interrupt indexing while AST visiting for C/C++ for shorter waiting time
- Save graph as PNG image via context menu in graph view #180
- Added base folder to Linux package #181
- Use inverted golden ratio in indexing progress dialog
0.8.0
released 2016-09-01
- Improved titles and help texts in project setup UI
- Fixed error locations not saved with absolute file paths in Compilation Database projects
- Added missing source files extensions setting to the Edit Project dialog #132
- Changed default text colors to black in project setup UI #140
- Added plugin ports settings to Preferences #145
- Improved project state handling on refreshing
- Added Java sample project JavaParser: http://javaparser.org/
- Fixed regex for system includes used wrongly in syntax highlighter
- Added setting to disable file and console logging, default is off #157
- Added migrations between different ApplicationSettings versions
- Added auto detection for Java library to Preferences
- Removed auto refresh option from Search view
- Added progress dialogs for indexing and block UI #143
- Hide name qualifiers for graph nodes in Java projects
- Added handling when java library not found
- Added plain text editing dialog to path list boxes
- Use language dependent symbol name delimiter in UI
- Added scroll speed setting to preferences #112
- Added Java project setup UI
- Record start and end locations of scopes in Java
- Display unresolved types names in Java as 'unresolved-type'
- Cache stats for overview to speed up display
- Fixed graph nodes to restore their expand state when going back #118
- Added shortcuts for navigating to next and previous reference in code view
- Pressing Tab in search completes up to next ::, Delete erases to last :: #133
- Bundle anonymous namespaces separately in graph overview #126
- Added 'Show Data Folder' and 'Show Log Folder' items to Help menu
- Added new status bar loader gif with higher resolution
- Record type aliases in C++
- Added Java indexer
- Changed public icon in graph and added default icon
- Scroll to file location when finding no symbol at specified location from plugin message
- Added shortcut for Preferences on Windows/Linux
- Leave code view at original line when expanding scopes
- Pan graph view to center on name of active symbol after activation
- Moved color scheme selection to Preferences
- Moved Preferences menu item to Edit menu on Windows/Linux #113
- Added setting for hiding non-fatal errors in unindexed files to preferences, turned on by default
- Fixed file out-of-date asterisk disappearing when showing snippets after minimize state
- Implemented Atom plugin: https://github.com/CoatiSoftware/atom-coati
- Implemented CLion/IntelliJ plugin: https://github.com/CoatiSoftware/idea-coati
- Implemented Eclipse plugin: https://github.com/CoatiSoftware/eCoati
- Implemented emacs plugin: https://github.com/CoatiSoftware/emacs-coati
- Improved code view rendering times
- Don't show implicit nodes in search auto completion list
0.7.0.22
released 2016-07-07
- Fixed detected global header search paths lost correct order and caused problems with #include_next directives
- Fixed MaxOSX build crashed on launch due to unknown command line option passed
- Removed 'Save Project' and 'Save Project As' actions from menu
- Fixed indexer getting stuck at 'building caches' when indexing is interrupted
- Fixed database not properly closed when errors appeared during indexing
- Fixed autocompletions popup flickering while typing
- Added resize grip to bottom right corner of every dialog window
- Fixed 'paths don't exist' dialog window getting too big with lots of paths shown
- Added context menu with 'back' and 'forward' actions available in all views
- Removed Clang compiler warnings from console output
- Added handling of project specific VS macros to VS solution parser
0.7.0.0
released 2016-06-15
- Updated to clang 3.8
- Fixed crash in search autocompletion retrieval due to edge case in sorting
- Fixed size policies in code view to avoid global scrollbar
- Added full text search via search field: ? for case-insensitive search, ?? for case-sensitive search
- Made initialization for full text search lazy: done on first full text search
- Defined full text search color in all color schemes
- Increased code view performance by caching file IDs and paths
- Added multithreaded indexing. Number of threads can be set in the Preferences UI, default is 4
- Reworked graph node bundling to only distinguish defined and undefined nodes in each bucket
- Made graph node sorting alphabetical and put bundles at end
- Changed code view snippet sorting to always show definition on top
- Fixed local symbols were not available within lambdas
- Added settings for font family, font size and tab with to Preferences UI
- Fixed VS solution parser issue with internal macros
- Removed header extensions, all included files within the project paths are now analyzed
- Fixed crash in sqlite when symbol name has special characters
- Improved code view performance by reducing amount of initially open code files
- Improved graph view performance through faster data retrieval and smarter structures
- Increased aggregation click speed with faster edge id retrieval
- Fixed png color profiles to avoid console warning: "libpng warning: iCCP: known incorrect sRGB profile"
- Fixed graph edge drawn wrong when leaving from child node of smaller node
- Fixed Sublime Text Plugin issue with wrong encoding
- Randomized source file order for multithreaded analysis to increase performance
- Show name of removed symbol when going back after refreshing
- Fixed macro definition not connected to file
- Fixed macro use not found in #ifdef, #ifndef, defined() and some expand cases
- Removed back and forward steps for some graph and code view manipulations
- Fixed code view style broken on Mac due to change of working directory when analyzing compilation database
- Added database optimization step after indexing to reduce database size by ~25%
- Fixed artifacts after graph view change by clearing view
- Fixed autocompletion list highlights at wrong location for long names
- Allow files and directories to be excluded from analysis in advanced settings for project setup
- Added Qt gif plugin to Mac Release so that loader gif in status bar is visible
- Added link to download page to start screen to remind users of updating once in a while
- Check if compilation database still exists before refreshing
- Added separate step for defining project name, project location and compiliation database to project setup
- Explain that the project stays up-to-date with the compilation databes on refresh in project setup UI
- Disregard source extensions when loading from compilation database
- Removed error logs in name resolver
- Added plugin for VIM: https://github.com/CoatiSoftware/vim-coati
0.6.0.0
released 2016-04-27
- Smoother graph panning and zooming on keyboard using update loop
- Differentiate between explicit and implicit nodes and only show implicit nodes in the graph view when connected
- Improved file clearing performance on project refresh
- Show deleted projects on the start screen and show messagebox to delete them
- Show analysis duration in hh:mm:ss
- Added suppport for temporary test licenses and show error message when it expired
- Increased graph performance by reducing to fixed number of requests
- Add vs-clang compatibility flags when creating project from Visual Studio solution
- Increased graph edge drawing performance
- Added auto detection for system header paths to project wizard and preferences when using gcc, clang or vs compilers
- Added bug tracker to help menu
- Increased search autocompletion performance to stay mostly below 100ms
- Changed style of aggregation edge to cleaner look
- Allow certain edge types to enter and leave at top and bottom of nodes as well e.g. inheritance
- Increased project load performance
- Increased graph creation performance for overview screen
- Changed namespace activation to show the namespace name in the search bar and the namespace definitions in the code view
- Updated to Qt 5.6
- Added analysis for local symbols and allow selecting them in the code view
- Improved error display performance by not expanding all of them at once
- Added home button next to search field for showing the project overview
- Added shortcut and menu item to show project overview
- Fixed Path boxes not sized correctly when switching back and forth in the project wizard
- Allow support for environment variables in project setup with syntax ${VARIABLE_NAME}
- Show quit button on license enter screen when no valid license was entered yet
- Allow color schemes to define text colors for code view highlights
- Added support for function pointers to analysis
- Added Windows system dlls to installer on Windows so users don't not need to install the redistributable package
- Changed style of out-of-date files to be followed by *
- Set Qt flag for high DPI scaling
- Check analyzed paths for existence in project wizard
- Inform the user about project changes and ask before reparsing the project
- Removed "simple setup" step in project wizard and added "lazy include search"-checkbox
- Edit the project settings by clicking the project name in the overview stats
- Added welcome message to Coati trial
- Defined new highlight colors for code view in all color schemes
0.5.1.21
released 2016-03-16
- Fixed file logger using wrong directory for first log file
- Fixed crash when accessing files without read permission
- Center windows on top of main window
- Added font size limits
- Prevent network message handling without valid license
- Fixed type references in headers saved multiple times
- Improved context detection for template parameters
- Fixed Visual Studio plugin project loading
- Added delay for changing fontsize via mouse wheel
- Disabled config file warnings
- Fixed interrupting of analysis to show message in status bar
- Fixed children on namespace activation were bundled
- Fixed expanding file with errors showed all locations in red
- Show loader animation when loading project
- Removed high traffic log messages
- Fixed crash when opening newer project with older version of Coati
- Fixed project paths are now saved relative if defined relative
- Fixed project setup window sizes to adapt to content size
- Fixed linux package creating ~/.config if not there
- Show fatal errors in UI that stopped analysis
- Added compiler flags UI to advanced settings in project setup summary
- Added file extension UI to advanced settings in project setup summary
- Added graph zooming with Shift + mouse wheel or Shift + WS
- Added graph panning with WASD
- Improved project load and code view performance
- Improved analysis performance for large projects (10x as fast for 1.000.000 LoC)
- Added project setup for Compilation Databases
0.5.0.4
released 2016-02-25
- Fixed preferences not saved
- Added link to documentation to Help menu
- Improved painting of icons in graph to be smoother
- Improved logging to alternate between 2 files of 1000 lines to decrease logfile sizes
- Improved analysis performance to take only 66% of the time
- Save user data in ~/Library/Application Support/Coati on Mac
- Improved style of ui windows
- Added Visual Studio solution parsing via project wizard or VS plugin
- Added project setup wizard for step-by-step project setup
- Added overview and error keywords to search view
- Show overview on project open with node bundles per type
- Added application move protection to reenter license key
- Improved log file names to be sorted chronologically
- Improved graph view node bundeling to bundle more
- Display scope name at bottom of code snippet
- Added .coatiproject file associations with icon for Mac and Windows
- Return to last scroll position when going back in code view
- Improved back & forward in code view
- Update error count while analysis
- Improved code view annotation painting performance
- Added web documentation
- Added trial target without analysis
- Added license key window and license checker
- Refresh project editing settings
- Added C and C++ standard setting to project
- Fixed cursor changing for resize and text interactions
- Added commandline option for project file
- Improved performance of token name saving
- Fixed number postions in graph
- Added shortcuts for font size resetting to View menu
- Added C support
- Added option to hide widget window title bars to View menu
0.4.0
released 2016-01-07
- navigate back via backspace key
- navigate back&forward via mouse buttons
- renamed undo&redo to back&forward
- Fixed tooltip colors in dark color scheme
- Fixed style of function or method nodes with children
- Improved lambda handling in analysis
- Added help texts to project setup and preferences window
- Removed 'close window' action from menu
- Fixed constructors and destructors using return type 'void' withou source location
- Parse errors will be displayed as they appear during analysis
- Redesigned the about window
- Installing prerequisits in Windows Installer
- Added installer for Windows
- Introduced file endings .coatiproject and .coatidb for Coati's project files
- Removed Coati directory from Linux package
- Fixed graph font size was too small for Windows and Linux
- Show function and method signature in tooltip when hovering the graph node
- Added analysis for template parameter packs
- Fixed syntax highlighting to correctly identify strings, comments and block comments
- Fixed source locations of many declarations
- Coati shows a template's general definition when an implicit specialization is activated
- Added new color scheme called "bad_rainbow"
- Extended color schemes to allow more extensive use in the graph
- Coati now handles anonymous symbols when parsing files
- Improved handling of template arguments in analysis
- Coati can now handle inclass initialization of members
- Network ports for IDE communication can be defined in the ApplicationSettings.xml
0.3.0
released 2015-12-14
- Saving all template arguments type uses
- Added recent projects menu option
- Focus all overlapping source locations in the code view
- Improved code view auto scroll to center the first active line in the middle
- Fixed search query disappeared when not token was found for it
- Fixed cursor was jumping at end of query when editing a search query
- Reworked code view highlighting
- Save comment locations and display them when right next to active symbol
- Fixed old data was still in new project window when creating another project
- Save macro scopes
- Save errors to storage and reactivate them via button in the status bar
- Fixed horizontal scroll in code view not activated while scrolling vertically
- Improved source locations of template scopes
- Save Coati version to sqlite and reparse project whenever the version changes
- Increased autocompletion performance by caching and limiting results to 100
- Added plugin for Sublime Text (2 & 3)
- Added plugin for Visual Studio (2012, 2013, 2015)
- Added communication interface from and to Coati via TCP sockets
- Added Tutorial project