Scrolling to line, when comming from plugin and the file is was modified. Since there we dont know from the position data if the symbol on position is the right one, we scroll to the line if modified.
Masterproject
Setup
External Software
- QT 5.6
- CxxTest 4.3
- Valgrind 3.9.0 (linux)
- Clang & LLVM 3.8 (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.59
- Eigen 3.2.6
- Botan 1.11.24
Environment Variables
- QT_DIR - .../Qt/Qt5.6.0/5.6/
- CXX_TEST_DIR - .../cxxtest-4.3
- CLANG_DIR - .../clang-llvm
- BOOST_159_DIR - .../boost_1_59_0
- EIGEN_DIR - .../eigen
- BOTAN_DIR - .../Botan-1.11.24
For Win32:
- VLD_DIR - .../Visual Leak Detector
- path - apped path to git.exe
Botan setup
Build release lib in ${BOTAN_DIR}/release Build debug lib in ${BOTAN_DIR}/debug
for Windows release build: $ python configure.py --cc=msvc --cpu=x86_32 --via-amalgamation --disable-shared
for Windows debug build: python configure.py --cc=msvc --cpu=x86_32 --via-amalgamation --disable-shared --no-optimizations --with-debug-info
for other: $ python configure.py --via-amalgamation --disable-shared
Settings
Run setup script: $ ./script/setup.sh
Release
App
- create release build
- make sure it uses the Coati 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 Coati start layout
Package
- add app
- add web/coati_manual.pdf to package
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 ../llvm $ ninja -j4 check-all
$ cd ../release_build $ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../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
Changelog
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