Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9550ea1fdc | ||
|
|
cad473c097 | ||
|
|
89264d97bb | ||
|
|
096291a6c4 | ||
|
|
1fcb241189 | ||
|
|
996b33b1fb | ||
|
|
fea26bfc60 | ||
|
|
6a3717b8c1 | ||
|
|
8b770b0c71 | ||
|
|
06255286ae | ||
|
|
8a13aebc3f | ||
|
|
5bfd0ecbbe | ||
|
|
e604c3b025 | ||
|
|
b683d7b2d6 | ||
|
|
dbcb8f449c | ||
|
|
592cc99cee | ||
|
|
4e18389d38 | ||
|
|
32f894422d | ||
|
|
b5d9d20bc9 | ||
|
|
cba0cfad65 | ||
|
|
ba3316008a | ||
|
|
8ca54f2091 | ||
|
|
2cf033d43a | ||
|
|
3430ed2a1b | ||
|
|
140d4a406a | ||
|
|
44cee3d130 | ||
|
|
5161455355 | ||
|
|
e7efff8843 | ||
|
|
7f867bf889 | ||
|
|
36c504d8a0 | ||
|
|
9560cc4ea6 | ||
|
|
6b31a43f75 | ||
|
|
b4c094e784 | ||
|
|
7227a47b49 | ||
|
|
0aa97adb17 | ||
|
|
247be13650 | ||
|
|
2b93bdc283 | ||
|
|
98b13ef24d | ||
|
|
b7ba10e119 | ||
|
|
253af27067 | ||
|
|
83e4bcd049 | ||
|
|
2125396665 | ||
|
|
1c0c2e78df | ||
|
|
b9c0f9ed3e | ||
|
|
72a48f997f | ||
|
|
986f67df8e | ||
|
|
208f2b1158 | ||
|
|
b07d03692d | ||
|
|
aae388d8ee | ||
|
|
b57171552f | ||
|
|
be3ba0ba23 | ||
|
|
19e26268cf | ||
|
|
77080464d7 | ||
|
|
594bb41a6f | ||
|
|
c5af4ed4e5 | ||
|
|
6821fd1c9a | ||
|
|
7e3b2622ec | ||
|
|
5173400b8d | ||
|
|
c6fa1f0969 | ||
|
|
b10c55e7f9 | ||
|
|
6edcd77eb2 | ||
|
|
53120cf270 | ||
|
|
468e55f078 | ||
|
|
ab43d309cb | ||
|
|
da01855b68 | ||
|
|
2660465b31 | ||
|
|
dfcb9214f4 | ||
|
|
d6e2c46420 | ||
|
|
8222729bb9 | ||
|
|
3f032ea822 | ||
|
|
5a6e042c8f | ||
|
|
5bb6902cdf | ||
|
|
71cf6bb5f4 | ||
|
|
f02169b08e | ||
|
|
4b734a05f9 | ||
|
|
6165d2fffa | ||
|
|
4e08d86602 | ||
|
|
d80a123a5a | ||
|
|
badad741b0 | ||
|
|
5d2a476813 | ||
|
|
4a6f8cf420 | ||
|
|
946be38fa2 | ||
|
|
86d1ff2905 | ||
|
|
5295267513 | ||
|
|
2f25279662 | ||
|
|
e943ef149e | ||
|
|
e40459e71d | ||
|
|
cb9dde6641 | ||
|
|
4097493181 | ||
|
|
9f80bcbcb7 | ||
|
|
79f788db2e | ||
|
|
67e4d84631 | ||
|
|
7bb40f2630 | ||
|
|
c61efbbcde | ||
|
|
245cafdc7b | ||
|
|
6a576bccc9 | ||
|
|
2a73c42a18 | ||
|
|
9148a4fafb | ||
|
|
c4ef18fb6d | ||
|
|
e775ae1ecd | ||
|
|
30faa7e52f | ||
|
|
75ced4b775 | ||
|
|
8ef6d77c50 | ||
|
|
bdf713f078 | ||
|
|
999522ca20 |
@@ -1,9 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.8.9)
|
||||
|
||||
# to get CMP0043 warnings, upgrade to version 3 and change the line above to VERSION 3.0 and remove the line below
|
||||
if(POLICY CMP0043)
|
||||
cmake_policy(SET CMP0043 OLD)
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
include(cmake/add_files.cmake)
|
||||
include(cmake/create_source_groups.cmake)
|
||||
@@ -11,8 +6,6 @@ include(cmake/version.cmake)
|
||||
include(cmake/version_setup.cmake)
|
||||
include(cmake/licenses.cmake)
|
||||
|
||||
# set Standerd build type to Release
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
# Variables --------------------------------------------------------------------
|
||||
|
||||
@@ -36,16 +29,13 @@ else ()
|
||||
set(PLATFORM_INCLUDE "includesLinux.h")
|
||||
endif ()
|
||||
|
||||
# Settings ---------------------------------------------------------------------
|
||||
|
||||
if (UNIX)
|
||||
add_definitions(-std=c++11 -Wno-unknown-warning-option -fcolor-diagnostics -DQT_COMPILING_QSTRING_COMPAT_CPP )
|
||||
endif ()
|
||||
|
||||
# Project ----------------------------------------------------------------------
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
# set Standerd build type to Release
|
||||
set(CMAKE_BUILD_TYPE_INIT "Release")
|
||||
|
||||
#RPATH
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
@@ -56,6 +46,18 @@ if(UNIX AND NOT APPLE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
|
||||
# Settings ---------------------------------------------------------------------
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option -fcolor-diagnostics")
|
||||
endif()
|
||||
|
||||
if (UNIX)
|
||||
#add_definitions(-std=c++11 -Wno-unknown-warning-option -fcolor-diagnostics -DQT_COMPILING_QSTRING_COMPAT_CPP )
|
||||
add_definitions(-fno-omit-frame-pointer -DQT_COMPILING_QSTRING_COMPAT_CPP )
|
||||
endif ()
|
||||
|
||||
# Clang ------------------------------------------------------------------------
|
||||
|
||||
@@ -622,6 +624,7 @@ elseif (UNIX)
|
||||
add_custom_command(
|
||||
OUTPUT ${TESTGEN_FILE}
|
||||
PRE_BUILD
|
||||
COMMAND rm -f ${TESTGEN_FILE}
|
||||
COMMAND cd ${PROJECT_SOURCE_DIR} && ${PYTHON_EXECUTABLE} ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --runner=ParenPrinter -o ${TESTGEN_FILE} ${TEST_FILES}
|
||||
COMMENT "Generating unittest code with cxxtestgen"
|
||||
)
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
### Masterproject
|
||||
## Masterproject
|
||||
|
||||
#### Setup
|
||||
### Setup
|
||||
|
||||
##### External Software
|
||||
#### External Software
|
||||
|
||||
* QT 5.5
|
||||
* QT 5.6
|
||||
* CxxTest 4.3
|
||||
* Valgrind 3.9.0 (linux)
|
||||
* Clang & LLVM (doesnt quite work for windows, use unix setup below and skip all the ninja stuff)(installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
|
||||
* 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
|
||||
#### Environment Variables
|
||||
|
||||
* QT_DIR - ...\Qt\Qt5.2.1\5.2.1\<IDE>\
|
||||
* CXX_TEST_DIR - .../cxxtest-4.3/
|
||||
* CLANG_DIR - .../clang-llvm/
|
||||
* QT_DIR - .../Qt/Qt5.6.0/5.6/<IDE>
|
||||
* 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
|
||||
@@ -25,7 +25,7 @@ For Win32:
|
||||
* VLD_DIR - .../Visual Leak Detector
|
||||
* path - apped path to git.exe
|
||||
|
||||
###### Botan setup
|
||||
##### Botan setup
|
||||
|
||||
Build release lib in ${BOTAN_DIR}/release
|
||||
Build debug lib in ${BOTAN_DIR}/debug
|
||||
@@ -39,30 +39,30 @@ python configure.py --cc=msvc --cpu=x86_32 --via-amalgamation --disable-shared -
|
||||
for other:
|
||||
$ python configure.py --via-amalgamation --disable-shared
|
||||
|
||||
##### Settings
|
||||
#### Settings
|
||||
|
||||
Run setup script:
|
||||
$ ./script/setup.sh
|
||||
|
||||
#### Release
|
||||
### Release
|
||||
|
||||
##### App
|
||||
#### App
|
||||
* create release build
|
||||
* make sure it uses the Coati icon
|
||||
* obfuscate the executable using upx
|
||||
|
||||
##### Data folder
|
||||
#### 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
|
||||
#### Package
|
||||
* add app
|
||||
* add web/coati_manual.pdf to package
|
||||
|
||||
##### Updating Clang on UNIX
|
||||
#### Updating Clang on UNIX
|
||||
|
||||
$ cd .../clang_llvm
|
||||
|
||||
@@ -83,130 +83,233 @@ $ cd ../release_build
|
||||
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../llvm
|
||||
$ ninja -j4 check-all
|
||||
|
||||
##### Remarks
|
||||
#### Remarks
|
||||
|
||||
* Boost lib dir: rename library directory for your system (e.g.: 'lib32-msvc-12.0') to 'lib'
|
||||
|
||||
#### Tagging
|
||||
### Tagging
|
||||
|
||||
$ git tag -a VERSION_NUMBER -m "DESCRIPTION"
|
||||
$ git push --tags
|
||||
|
||||
#### Changelog
|
||||
### Changelog
|
||||
|
||||
##### 0.3.0
|
||||
#### 0.7.0.22
|
||||
released 2016-07-07
|
||||
|
||||
* Added Tutorial project
|
||||
* Added communication interface from and to Coati via TCP sockets
|
||||
* Added plugin for Visual Studio (2012, 2013, 2015)
|
||||
* Added plugin for Sublime Text (2 & 3)
|
||||
* Increased autocompletion performance by caching and limiting results to 100
|
||||
* Save Coati version to sqlite and reparse project whenever the version changes
|
||||
* Improved source locations of template scopes
|
||||
* Fixed horizontal scroll in code view not activated while scrolling vertically
|
||||
* Save errors to storage and reactivate them via button in the status bar
|
||||
* Save macro scopes
|
||||
* Fixed old data was still in new project window when creating another project
|
||||
* Save comment locations and display them when right next to active symbol
|
||||
* Reworked code view highlighting
|
||||
* Fixed cursor was jumping at end of query when editing a search query
|
||||
* Fixed search query disappeared when not token was found for it
|
||||
* Improved code view auto scroll to center the first active line in the middle
|
||||
* Focus all overlapping source locations in the code view
|
||||
* Added recent projects menu option
|
||||
* Saving all template arguments type uses
|
||||
* 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.4.0
|
||||
#### 0.7.0.0
|
||||
released 2016-06-15
|
||||
|
||||
* Network ports for IDE communication can be defined in the ApplicationSettings.xml
|
||||
* Coati can now handle inclass initialization of members
|
||||
* Improved handling of template arguments in analysis
|
||||
* Coati now handles anonymous symbols when parsing files
|
||||
* Extended color schemes to allow more extensive use in the graph
|
||||
* Added new color scheme called "bad_rainbow"
|
||||
* Coati shows a template's general definition when an implicit specialization is activated
|
||||
* Fixed source locations of many declarations
|
||||
* Fixed syntax highlighting to correctly identify strings, comments and block comments
|
||||
* Added analysis for template parameter packs
|
||||
* Show function and method signature in tooltip when hovering the graph node
|
||||
* Fixed graph font size was too small for Windows and Linux
|
||||
* Removed Coati directory from Linux package
|
||||
* Introduced file endings .coatiproject and .coatidb for Coati's project files
|
||||
* Added installer for Windows
|
||||
* Installing prerequisits in Windows Installer
|
||||
* Redesigned the about window
|
||||
* Parse errors will be displayed as they appear during analysis
|
||||
* Fixed constructors and destructors using return type 'void' withou source location
|
||||
* Removed 'close window' action from menu
|
||||
* Added help texts to project setup and preferences window
|
||||
* Improved lambda handling in analysis
|
||||
* Fixed style of function or method nodes with children
|
||||
* Fixed tooltip colors in dark color scheme
|
||||
* renamed undo&redo to back&forward
|
||||
* navigate back&forward via mouse buttons
|
||||
* navigate back via backspace key
|
||||
* 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: ?<query> for case-insensitive search, ??<query> 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.5.0.4
|
||||
#### 0.6.0.0
|
||||
released 2016-04-27
|
||||
|
||||
* Added option to hide widget window title bars to View menu
|
||||
* Added C support
|
||||
* Added shortcuts for font size resetting to View menu
|
||||
* Fixed number postions in graph
|
||||
* Improved performance of token name saving
|
||||
* Added commandline option for project file
|
||||
* Fixed cursor changing for resize and text interactions
|
||||
* Added C and C++ standard setting to project
|
||||
* Refresh project editing settings
|
||||
* Added license key window and license checker
|
||||
* Added trial target without analysis
|
||||
* Added web documentation
|
||||
* Improved code view annotation painting performance
|
||||
* Update error count while analysis
|
||||
* Improved back & forward in code view
|
||||
* Return to last scroll position when going back in code view
|
||||
* Added .coatiproject file associations with icon for Mac and Windows
|
||||
* Display scope name at bottom of code snippet
|
||||
* Improved graph view node bundeling to bundle more
|
||||
* Improved log file names to be sorted chronologically
|
||||
* Added application move protection to reenter license key
|
||||
* Show overview on project open with node bundles per type
|
||||
* Added overview and error keywords to search view
|
||||
* Added project setup wizard for step-by-step project setup
|
||||
* Added Visual Studio solution parsing via project wizard or VS plugin
|
||||
* Improved style of ui windows
|
||||
* Save user data in ~/Library/Application Support/Coati on Mac
|
||||
* Improved analysis performance to take only 66% of the time
|
||||
* Improved logging to alternate between 2 files of 1000 lines to decrease logfile sizes
|
||||
* Improved painting of icons in graph to be smoother
|
||||
* Added link to documentation to Help menu
|
||||
* Fixed preferences not saved
|
||||
* 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
|
||||
#### 0.5.1.21
|
||||
released 2016-03-16
|
||||
|
||||
* Added project setup for Compilation Databases
|
||||
* Improved analysis performance for large projects (10x as fast for 1.000.000 LoC)
|
||||
* Improved project load and code view performance
|
||||
* Added graph panning with WASD
|
||||
* Added graph zooming with Shift + mouse wheel or Shift + WS
|
||||
* Added file extension UI to advanced settings in project setup summary
|
||||
* Added compiler flags UI to advanced settings in project setup summary
|
||||
* Show fatal errors in UI that stopped analysis
|
||||
* Fixed linux package creating ~/.config if not there
|
||||
* Fixed project setup window sizes to adapt to content size
|
||||
* Fixed project paths are now saved relative if defined relative
|
||||
* Fixed crash when opening newer project with older version of Coati
|
||||
* Removed high traffic log messages
|
||||
* Show loader animation when loading project
|
||||
* Fixed expanding file with errors showed all locations in red
|
||||
* Fixed children on namespace activation were bundled
|
||||
* Fixed interrupting of analysis to show message in status bar
|
||||
* Disabled config file warnings
|
||||
* Added delay for changing fontsize via mouse wheel
|
||||
* Fixed Visual Studio plugin project loading
|
||||
* Improved context detection for template parameters
|
||||
* Fixed type references in headers saved multiple times
|
||||
* Prevent network message handling without valid license
|
||||
* Added font size limits
|
||||
* Center windows on top of main window
|
||||
* Fixed crash when accessing files without read permission
|
||||
* 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
|
||||
|
||||
@@ -35,12 +35,15 @@
|
||||
</framework_search_paths>
|
||||
|
||||
<extensions>
|
||||
<header_extensions><!-- STRING: extension for header/include e.g. .h --></header_extensions>
|
||||
<source_extensions><!-- STRING: extension for source e.g. .cpp --></source_extensions>
|
||||
</extensions>
|
||||
|
||||
<use_source_paths_for_header_search><!-- BOOL: If enabled all subfolder of the source paths will be used for header search --></use_source_paths_for_header_search>
|
||||
|
||||
<exclude_paths>
|
||||
<exclude_path><!-- STRING: path to file or directory to exclude from analysis --></source_path>
|
||||
</exclude_paths>
|
||||
|
||||
<build_file_path>
|
||||
<vs_solution_path><!-- STRING: path to Visual Studio solution *.sln --></vs_solution_path>
|
||||
<compilation_db_path><!-- STRING: path to Compilation Database --></compilation_db_path>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</button>
|
||||
|
||||
<field>
|
||||
<text>#3D3D3D</text>
|
||||
<text>#FFFFFF</text>
|
||||
<background>#808080</background>
|
||||
<highlight>#B1B1B1</highlight>
|
||||
</field>
|
||||
@@ -27,17 +27,45 @@
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>#B1B1B1</normal>
|
||||
<hover>#CCCCCC</hover>
|
||||
<normal>
|
||||
<fill>#B1B1B1</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#CCCCCC</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>#86BD40</normal>
|
||||
<hover>#9EC769</hover>
|
||||
<normal>
|
||||
<fill>#86BD40</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#9EC769</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#7D2724</normal>
|
||||
<hover>#8C2B29</hover>
|
||||
<normal>
|
||||
<fill>#7D2724</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#8C2B29</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</hover>
|
||||
</operator>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#C2AFEF</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#AB96EA</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</hover>
|
||||
</fulltext>
|
||||
</query>
|
||||
</search>
|
||||
|
||||
@@ -123,29 +151,23 @@
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</active>
|
||||
</scope>
|
||||
<error>
|
||||
<normal>
|
||||
<border>transparent</border>
|
||||
<fill>#A0FF0000</fill>
|
||||
<text>#000000</text>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
</active>
|
||||
</error>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#C2AFEF</fill>
|
||||
<text>#3D3D3D</text>
|
||||
</normal>
|
||||
</fulltext>
|
||||
</selection>
|
||||
</snippet>
|
||||
</code>
|
||||
@@ -260,6 +282,12 @@
|
||||
<normal>#20FFFFFF</normal>
|
||||
<focus>#FFFFFF</focus>
|
||||
</border>
|
||||
<text>
|
||||
<normal>#FFFFFF</normal>
|
||||
</text>
|
||||
<icon>
|
||||
<normal>#FFFFFF</normal>
|
||||
</icon>
|
||||
</file>
|
||||
<macro>
|
||||
<like>file</like>
|
||||
|
||||
@@ -27,17 +27,45 @@
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>white</normal>
|
||||
<hover>#F5F5F5</hover>
|
||||
<normal>
|
||||
<fill>white</fill>
|
||||
<text>black</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#F5F5F5</fill>
|
||||
<text>black</text>
|
||||
</hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>#8FBC92</normal>
|
||||
<hover>#5EA071</hover>
|
||||
<normal>
|
||||
<fill>#8FBC92</fill>
|
||||
<text>black</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#5EA071</fill>
|
||||
<text>black</text>
|
||||
</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#FCA47E</normal>
|
||||
<hover>#F97A4E</hover>
|
||||
<normal>
|
||||
<fill>#FCA47E</fill>
|
||||
<text>black</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#F97A4E</fill>
|
||||
<text>black</text>
|
||||
</hover>
|
||||
</operator>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#C7C7E2</fill>
|
||||
<text>black</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#ABABDD</fill>
|
||||
<text>black</text>
|
||||
</hover>
|
||||
</fulltext>
|
||||
</query>
|
||||
</search>
|
||||
|
||||
@@ -121,14 +149,6 @@
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</active>
|
||||
</scope>
|
||||
<error>
|
||||
<normal>
|
||||
@@ -137,16 +157,15 @@
|
||||
<text>#000000</text>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
<text>#000000</text>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
<text>#000000</text>
|
||||
</active>
|
||||
</error>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#C7C7E2</fill>
|
||||
<text>#000000</text>
|
||||
</normal>
|
||||
</fulltext>
|
||||
</selection>
|
||||
</snippet>
|
||||
</code>
|
||||
|
||||
@@ -27,17 +27,64 @@
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>#2F2F2F</normal>
|
||||
<hover>black</hover>
|
||||
<normal></normal>
|
||||
<hover></hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>#406D4D</normal>
|
||||
<hover>#4E855E</hover>
|
||||
<normal></normal>
|
||||
<hover></hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#7D2724</normal>
|
||||
<hover>#8C2B29</hover>
|
||||
<normal></normal>
|
||||
<hover></hover>
|
||||
</operator>
|
||||
<fulltext>
|
||||
<normal></normal>
|
||||
<hover></hover>
|
||||
</fulltext>
|
||||
</query>
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>
|
||||
<fill>#2F2F2F</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>black</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>
|
||||
<fill>#406D4D</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#4E855E</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>
|
||||
<fill>#7D2724</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#8C2B29</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</hover>
|
||||
</operator>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#207EA8</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</normal>
|
||||
<hover>
|
||||
<fill>#006D93</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</hover>
|
||||
</fulltext>
|
||||
</query>
|
||||
</search>
|
||||
|
||||
@@ -123,29 +170,23 @@
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>transparent</fill>
|
||||
</active>
|
||||
</scope>
|
||||
<error>
|
||||
<normal>
|
||||
<border>transparent</border>
|
||||
<fill>#A0FF0000</fill>
|
||||
<text>#000000</text>
|
||||
</normal>
|
||||
<focus>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
</focus>
|
||||
<active>
|
||||
<border>transparent</border>
|
||||
<fill>#FFFF0000</fill>
|
||||
</active>
|
||||
</error>
|
||||
<fulltext>
|
||||
<normal>
|
||||
<fill>#207EA8</fill>
|
||||
<text>#F7F7F7</text>
|
||||
</normal>
|
||||
</fulltext>
|
||||
</selection>
|
||||
</snippet>
|
||||
</code>
|
||||
|
||||
|
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 517 B |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 8.0 KiB |
@@ -2,16 +2,13 @@
|
||||
background-color: <color:code/background>;
|
||||
}
|
||||
|
||||
* {
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_file {
|
||||
background-color: <color:code/snippet/background>;
|
||||
border: 2px solid <color:code/file/background>;
|
||||
border-radius: 12px;
|
||||
border-top-left-radius: 14px;
|
||||
border-top-right-radius: 14px;
|
||||
font-size: <setting:font_size>pt;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
|
||||
@@ -19,6 +16,7 @@
|
||||
background-color: <color:code/file/background>;
|
||||
border-top-left-radius: 7px;
|
||||
border-top-right-radius: 7px;
|
||||
font-size: <setting:font_size>pt;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
@@ -27,6 +25,7 @@
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
color: <color:code/file/title/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
padding: 2px 4px;
|
||||
margin: 1px 8px 3px;
|
||||
}
|
||||
@@ -52,10 +51,7 @@
|
||||
#code_file #code_snippet {
|
||||
background-color: <color:code/snippet/background>;
|
||||
border-top: 2px solid <color:code/file/background>;
|
||||
}
|
||||
|
||||
#code_file #code_snippet * {
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_file #code_snippet[isFirst=true] {
|
||||
@@ -65,8 +61,10 @@
|
||||
|
||||
#code_file #code_snippet #scope_name, #code_file #code_snippet #dots {
|
||||
background-color: <color:code/snippet/title/background>;
|
||||
color: <color:code/snippet/title/text>;
|
||||
border: none;
|
||||
color: <color:code/snippet/title/text>;
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #scope_name:hover {
|
||||
@@ -88,11 +86,15 @@
|
||||
background-color: <color:code/snippet/line_number/background>;
|
||||
border: none;
|
||||
color: <color:code/snippet/line_number/text>;
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_area {
|
||||
background-color: transparent;
|
||||
color: <color:code/snippet/syntax/normal>;
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_file #maximize_button, #code_file #snippet_button, #code_file #minimize_button {
|
||||
|
||||
|
Before Width: | Height: | Size: 1007 B After Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 606 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 604 B |
|
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 618 B |
|
Before Width: | Height: | Size: 760 B After Width: | Height: | Size: 986 B |
|
Before Width: | Height: | Size: 748 B After Width: | Height: | Size: 827 B |
|
Before Width: | Height: | Size: 584 B After Width: | Height: | Size: 693 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 436 B After Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 475 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 811 B |
|
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 614 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 852 B After Width: | Height: | Size: 718 B |
|
Before Width: | Height: | Size: 546 B After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 816 B |
|
Before Width: | Height: | Size: 805 B After Width: | Height: | Size: 953 B |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 915 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 925 B |
|
Before Width: | Height: | Size: 571 B After Width: | Height: | Size: 706 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 811 B |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 29 KiB |
@@ -36,6 +36,18 @@
|
||||
color: black;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
#versionLabel {
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#updateLabel {
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
#welcomeLabel {
|
||||
|
||||
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 482 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 578 B |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 562 B |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
@@ -25,7 +25,17 @@
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#description {
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
#label {
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#titleLabel {
|
||||
font-size: 14pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
%windir%\system32\msiexec.exe /I{A54890F6-A227-4BEC-8086-DF08B9B4D0D1}
|
||||
%windir%\system32\msiexec.exe /I{E6E16577-C547-4A66-8202-AB30A02DDBC2}
|
||||
@@ -1 +1 @@
|
||||
%windir%\system32\msiexec.exe /I{8732C041-A948-4D7F-BE08-FBCEF8BF4586}
|
||||
%windir%\system32\msiexec.exe /I{225E11DF-20A0-4AE0-AD5C-00944A9E3D71}
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "player.h"
|
||||
|
||||
|
||||
class HumanPlayer : public Player {
|
||||
public:
|
||||
HumanPlayer( Field::Token token, const char* name );
|
||||
|
||||
@@ -2,6 +2,19 @@
|
||||
#define MAIN_H
|
||||
|
||||
|
||||
#include "code_tutorial_1.h"
|
||||
#include "code_tutorial_2.h"
|
||||
#include "code_tutorial_3.h"
|
||||
#include "graph_tutorial_1.h"
|
||||
#include "graph_tutorial_2.h"
|
||||
#include "graph_tutorial_3.h"
|
||||
#include "graph_tutorial_4.h"
|
||||
#include "search_tutorial_1.h"
|
||||
#include "search_tutorial_2.h"
|
||||
#include "search_tutorial_3.h"
|
||||
#include "search_tutorial_4.h"
|
||||
#include "search_tutorial_5.h"
|
||||
|
||||
#include "my_first_step.h"
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<config>
|
||||
<user>
|
||||
<recent_projects>
|
||||
<recent_project>./data/projects/tutorial/tutorial.coatiproject</recent_project>
|
||||
<recent_project>./data/projects/tictactoe/tictactoe.coatiproject</recent_project>
|
||||
</recent_projects>
|
||||
</user>
|
||||
<application>
|
||||
<indexer_thread_count>4</indexer_thread_count>
|
||||
<window_base_width>500</window_base_width>
|
||||
<window_base_height>500</window_base_height>
|
||||
</application>
|
||||
<user>
|
||||
<recent_projects>
|
||||
<recent_project>./data/projects/tutorial/tutorial.coatiproject</recent_project>
|
||||
<recent_project>./data/projects/tictactoe/tictactoe.coatiproject</recent_project>
|
||||
</recent_projects>
|
||||
</user>
|
||||
</config>
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
<font_size_max><!-- INTEGER: maximum font size in pt --></font_size_max>
|
||||
<font_size_min><!-- INTEGER: minimum font size in pt --></font_size_min>
|
||||
<font_size_std><!-- INTEGER: standard font size in pt --></font_size_std>
|
||||
<indexer_thread_count><!-- INTEGER: number of threads indexing the source code --></indexer_thread_count>
|
||||
<window_base_width><!-- INTEGER: initial width of an overlay window --></window_base_width>
|
||||
<window_base_height><!-- INTEGER: initial height of an overlay window --></window_base_height>
|
||||
</application>
|
||||
|
||||
<code>
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- INTEGER: int e.g 123 -->
|
||||
<!-- DECIMAL: float e.g 123.456 -->
|
||||
<!-- STRING: string e.g hello -->
|
||||
<!-- COLOR: int int int int - rgba e.g. 125 125 125 255 -->
|
||||
|
||||
<config>
|
||||
<source>
|
||||
<HeaderSearchPaths>
|
||||
<HeaderSearchPath><!-- STRING: header search path for each path a HeaderSearchPaht element--></HeaderSearchPath>
|
||||
</HeaderSearchPaths>
|
||||
</source>
|
||||
</config>
|
||||
@@ -53,5 +53,5 @@ TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
|
||||
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
|
||||
TextAccess.cpp WARNING: Line numbers start with one, is 0
|
||||
TextAccess.cpp WARNING: Line numbers start with one, is 0
|
||||
TokenLocationCollection.cpp ERROR: Can't create TokenLocation with wrong boundaries.
|
||||
TokenLocationCollection.cpp ERROR: Can't create TokenLocation with wrong boundaries.
|
||||
TokenLocationCollection.cpp ERROR: TokenLocation has wrong boundaries: file.c 2:3 2:1
|
||||
TokenLocationCollection.cpp ERROR: TokenLocation has wrong boundaries: file.c 4:1 1:10
|
||||
|
||||
@@ -38,7 +38,6 @@ function(AddSharedToComponent componentName)
|
||||
DESTINATION .
|
||||
COMPONENT ${componentName}
|
||||
PATTERN "log/*" EXCLUDE
|
||||
PATTERN "projects/ignored" EXCLUDE
|
||||
PATTERN "data/src" EXCLUDE
|
||||
PATTERN "data/gui/installer" EXCLUDE
|
||||
PATTERN "data/install" EXCLUDE
|
||||
@@ -83,7 +82,13 @@ function(AddSharedToComponent componentName)
|
||||
PATTERN "ApplicationSettings_for_package.xml" EXCLUDE
|
||||
PATTERN "ProjectSettings_template.xml" EXCLUDE
|
||||
PATTERN "ApplicationSettings_template.xml" EXCLUDE
|
||||
PATTERN "window_settings.ini_for_package" EXCLUDE
|
||||
PATTERN "window_settings_for_package.ini" EXCLUDE
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/user/window_settings_for_package.ini
|
||||
DESTINATION user
|
||||
COMPONENT ${componentName}
|
||||
RENAME window_settings.ini
|
||||
)
|
||||
endfunction(AddSharedToComponent)
|
||||
|
||||
@@ -102,6 +107,12 @@ INSTALL(DIRECTORY
|
||||
COMPONENT FULL
|
||||
)
|
||||
|
||||
INSTALL(DIRECTORY
|
||||
${CMAKE_SOURCE_DIR}/ide_plugins/vim
|
||||
DESTINATION plugin
|
||||
COMPONENT FULL
|
||||
)
|
||||
|
||||
INSTALL(DIRECTORY
|
||||
${CMAKE_SOURCE_DIR}/bin/app/data/projects
|
||||
DESTINATION user
|
||||
@@ -141,32 +152,32 @@ INSTALL(PROGRAMS
|
||||
COMPONENT FULL
|
||||
)
|
||||
|
||||
#INSTALL(PROGRAMS
|
||||
#${CMAKE_SOURCE_DIR}/bin/app/Release/Coati_upx
|
||||
#DESTINATION .
|
||||
#COMPONENT FULL
|
||||
#RENAME Coati
|
||||
#)
|
||||
|
||||
#INSTALL(PROGRAMS
|
||||
#${CMAKE_SOURCE_DIR}/bin/app/Release/Coati_trial_upx
|
||||
#DESTINATION .
|
||||
#COMPONENT TRIAL
|
||||
#RENAME Coati_trial
|
||||
#)
|
||||
|
||||
INSTALL(TARGETS
|
||||
${APP_PROJECT_NAME}
|
||||
INSTALL(PROGRAMS
|
||||
${CMAKE_SOURCE_DIR}/bin/app/Release/Coati_upx
|
||||
DESTINATION .
|
||||
COMPONENT FULL
|
||||
RENAME Coati
|
||||
)
|
||||
|
||||
INSTALL(TARGETS
|
||||
${TRIAL_PROJECT_NAME}
|
||||
INSTALL(PROGRAMS
|
||||
${CMAKE_SOURCE_DIR}/bin/app/Release/Coati_trial_upx
|
||||
DESTINATION .
|
||||
COMPONENT TRIAL
|
||||
RENAME Coati_trial
|
||||
)
|
||||
|
||||
#INSTALL(TARGETS
|
||||
#${APP_PROJECT_NAME}
|
||||
#DESTINATION .
|
||||
#COMPONENT FULL
|
||||
#)
|
||||
|
||||
#INSTALL(TARGETS
|
||||
#${TRIAL_PROJECT_NAME}
|
||||
#DESTINATION .
|
||||
#COMPONENT TRIAL
|
||||
#)
|
||||
|
||||
# SET(CPACK_GENERATOR "DEB;TGZ")
|
||||
SET(CPACK_GENERATOR "TGZ")
|
||||
SET(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
|
||||
@@ -186,6 +197,7 @@ endif()
|
||||
|
||||
SET(CPACK_PACKAGE_NAME "Coati")
|
||||
SET(CPACK_PACKAGING_INSTALL_PREFIX "")
|
||||
SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1)
|
||||
SET(CPACK_PACKAGING_INSTALL_DIRECTORY "Coati")
|
||||
SET(CPACK_PACKAGE_VERSION ${VERSION_NUMBER})
|
||||
SET(CPACK_PACKAGE_VENDOR "Coati Software")
|
||||
|
||||
@@ -11,19 +11,19 @@
|
||||
# )
|
||||
#
|
||||
macro(add_files var_name)
|
||||
file (RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
file (RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
foreach (_src ${ARGN})
|
||||
if (_relPath)
|
||||
list (APPEND ${var_name} "${_relPath}/${_src}")
|
||||
else()
|
||||
list (APPEND ${var_name} "${_src}")
|
||||
endif()
|
||||
endforeach()
|
||||
foreach (_src ${ARGN})
|
||||
if (_relPath)
|
||||
list (APPEND ${var_name} "${_relPath}/${_src}")
|
||||
else()
|
||||
list (APPEND ${var_name} "${_src}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (_relPath)
|
||||
set(${var_name} ${${var_name}} PARENT_SCOPE)
|
||||
else()
|
||||
set(${var_name} ${${var_name}})
|
||||
endif()
|
||||
if (_relPath)
|
||||
set(${var_name} ${${var_name}} PARENT_SCOPE)
|
||||
else()
|
||||
set(${var_name} ${${var_name}})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
find_package(PythonInterp REQUIRED)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/script/getSystemString.py"
|
||||
OUTPUT_VARIABLE SYSSTRING
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_SOURCE_DIR}/script/getSystemString.py"
|
||||
OUTPUT_VARIABLE SYSSTRING
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
set(EXTERNAL_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../Coati_External")
|
||||
set(EXTERNAL_SRC "${EXTERNAL_ROOT}/src")
|
||||
set(EXTERNAL_BUILD "${EXTERNAL_ROOT}/${SYSSTRING}/${CMAKE_BUILD_TYPE}")
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||
set(EXTERNAL_BUILD "${EXTERNAL_ROOT}/${SYSSTRING}/Debug")
|
||||
else()
|
||||
set(EXTERNAL_BUILD "${EXTERNAL_ROOT}/${SYSSTRING}/Release")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
# upx
|
||||
set(upxPath ${CMAKE_CURRENT_LIST_DIR}/../bin/app/Release)
|
||||
|
||||
message(STATUS "upx the app")
|
||||
execute_process(
|
||||
COMMAND rm ${upxPath}/Coati_upx
|
||||
@@ -13,6 +14,9 @@ execute_process(
|
||||
COMMAND upx --brute ${upxPath}/Coati_trial -o ${upxPath}/Coati_trial_upx
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${upxPath}/Coati -z /home/vagrant/dev/license.txt
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${upxPath}/Coati -f -d ${upxPath}/../data/projects/tictactoe/tictactoe.coatiproject
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_VERSION_NUMBER}")
|
||||
message(STATUS "Get Public Key for Coati version: ${VERSION_MAJOR}")
|
||||
|
||||
message(STATUS "${CMAKE_SOURCE_DIR}/setup/RSA_keys/public-${VERSION_MAJOR}.pem")
|
||||
|
||||
set(pubKeyFile "${CMAKE_SOURCE_DIR}/setup/RSA_keys/public-${VERSION_MAJOR}.pem")
|
||||
# message(STATUS "file: ${pubKeyFile}")
|
||||
|
||||
@@ -13,7 +15,7 @@ if(EXISTS ${pubKeyFile})
|
||||
STRING(REGEX REPLACE "\n" "\\\\n\"\n\t\"" KEY "${KEY}")
|
||||
# message(STATUS "key: ${KEY}")
|
||||
else()
|
||||
message(WARNING "public keyfile for this version of Coati")
|
||||
message(WARNING "public keyfile for this version of Coati not found")
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
|
||||
@@ -501,6 +501,12 @@
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_8C02107F94A64029901B8B190E8C6BAC"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_8E2479A7DD6C48F88B7BCC1567A53892"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
@@ -862,7 +868,7 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_C84BE68F0D9E42D3B9BD9C8A53DF049A"
|
||||
"OwnerKey" = "8:_FB29EAD658C3497D9AC46ADE92D33C83"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
@@ -874,7 +880,7 @@
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_UNDEFINED"
|
||||
"OwnerKey" = "8:_FB29EAD658C3497D9AC46ADE92D33C83"
|
||||
"OwnerKey" = "8:_C84BE68F0D9E42D3B9BD9C8A53DF049A"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
@@ -2776,6 +2782,26 @@
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8C02107F94A64029901B8B190E8C6BAC"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\bin\\app\\data\\gui\\window\\size_grip.png"
|
||||
"TargetName" = "8:size_grip.png"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_56A98FDB83CE48C489B793615E24C057"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8E2479A7DD6C48F88B7BCC1567A53892"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\bin\\app\\data\\projects\\tutorial\\src\\code_tutorial_2.h"
|
||||
@@ -4284,15 +4310,15 @@
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:Coati"
|
||||
"ProductCode" = "8:{A54890F6-A227-4BEC-8086-DF08B9B4D0D1}"
|
||||
"PackageCode" = "8:{1EFFC244-8CCC-46E4-B6AC-F789BF1F7F18}"
|
||||
"ProductCode" = "8:{E6E16577-C547-4A66-8202-AB30A02DDBC2}"
|
||||
"PackageCode" = "8:{55D5307B-C6AB-4E1D-A512-239F7E164FCD}"
|
||||
"UpgradeCode" = "8:{CFF09D53-87AF-4241-960D-98C21ED9D358}"
|
||||
"AspNetVersion" = "8:4.0.30319.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:0.6.0000"
|
||||
"ProductVersion" = "8:0.7.0022"
|
||||
"Manufacturer" = "8:Coati Software"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:www.coati.io/support"
|
||||
@@ -5253,7 +5279,7 @@
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3460FAB707F8431E87168499A7F51556"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupApplicationSettingsLib\\obj\\Release\\SetupApplicationSettingsLib.dll"
|
||||
"SourcePath" = "8:..\\SetupApplicationSettingsLib\\obj\\Debug\\SetupApplicationSettingsLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5281,7 +5307,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C84BE68F0D9E42D3B9BD9C8A53DF049A"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupCreateStartMenuShortcutLib\\obj\\Release\\SetupCreateStartMenuShortcutLib.dll"
|
||||
"SourcePath" = "8:..\\SetupCreateStartMenuShortcutLib\\obj\\Debug\\SetupCreateStartMenuShortcutLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5309,7 +5335,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F81B906E39E44A5DAC37B3D70BC8A8CE"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupCreateDesktopShortcutLib\\obj\\Release\\SetupCreateDesktopShortcutLib.dll"
|
||||
"SourcePath" = "8:..\\SetupCreateDesktopShortcutLib\\obj\\Debug\\SetupCreateDesktopShortcutLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5337,7 +5363,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FB29EAD658C3497D9AC46ADE92D33C83"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupRemoveCacheFiles\\obj\\Release\\SetupRemoveCacheFiles.dll"
|
||||
"SourcePath" = "8:..\\SetupRemoveCacheFiles\\obj\\Debug\\SetupRemoveCacheFiles.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
|
||||
@@ -219,6 +219,12 @@
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_41D7E42E67AA4615BEC19409547F70A2"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_4400372852214CC588823F7A1A9F5F5D"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
@@ -1868,6 +1874,26 @@
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_41D7E42E67AA4615BEC19409547F70A2"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\bin\\app\\data\\gui\\window\\size_grip.png"
|
||||
"TargetName" = "8:size_grip.png"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_991DBD2EDC144CE79F23005FB99BF9AF"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4400372852214CC588823F7A1A9F5F5D"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\bin\\app\\Release\\Qt5Gui.dll"
|
||||
@@ -4313,15 +4339,15 @@
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:Coati Trial"
|
||||
"ProductCode" = "8:{8732C041-A948-4D7F-BE08-FBCEF8BF4586}"
|
||||
"PackageCode" = "8:{11F55D62-3346-49A5-AD7B-FCA50F3C1D98}"
|
||||
"ProductCode" = "8:{225E11DF-20A0-4AE0-AD5C-00944A9E3D71}"
|
||||
"PackageCode" = "8:{AFEFFBA8-DE40-4FD1-84A9-ACE53FE97555}"
|
||||
"UpgradeCode" = "8:{00D35BB8-F11C-4179-9962-47B3D55E412C}"
|
||||
"AspNetVersion" = "8:4.0.30319.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:0.6.0000"
|
||||
"ProductVersion" = "8:0.7.0022"
|
||||
"Manufacturer" = "8:Coati Software"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:www.coati.io/support"
|
||||
@@ -5282,7 +5308,7 @@
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3460FAB707F8431E87168499A7F51556"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupApplicationSettingsLib\\obj\\Release\\SetupApplicationSettingsLib.dll"
|
||||
"SourcePath" = "8:..\\SetupApplicationSettingsLib\\obj\\Debug\\SetupApplicationSettingsLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5310,7 +5336,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C84BE68F0D9E42D3B9BD9C8A53DF049A"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupCreateStartMenuShortcutLib\\obj\\Release\\SetupCreateStartMenuShortcutLib.dll"
|
||||
"SourcePath" = "8:..\\SetupCreateStartMenuShortcutLib\\obj\\Debug\\SetupCreateStartMenuShortcutLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5338,7 +5364,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F81B906E39E44A5DAC37B3D70BC8A8CE"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupCreateDesktopShortcutLib\\obj\\Release\\SetupCreateDesktopShortcutLib.dll"
|
||||
"SourcePath" = "8:..\\SetupCreateDesktopShortcutLib\\obj\\Debug\\SetupCreateDesktopShortcutLib.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
@@ -5366,7 +5392,7 @@
|
||||
}
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FB29EAD658C3497D9AC46ADE92D33C83"
|
||||
{
|
||||
"SourcePath" = "8:..\\SetupRemoveCacheFiles\\obj\\Release\\SetupRemoveCacheFiles.dll"
|
||||
"SourcePath" = "8:..\\SetupRemoveCacheFiles\\obj\\Debug\\SetupRemoveCacheFiles.dll"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_A96454F2CE0E4C55B59EDE1094D40E56"
|
||||
|
||||
@@ -3,6 +3,7 @@ import sublime_plugin
|
||||
import threading
|
||||
import socket
|
||||
import os.path
|
||||
import encodings.idna
|
||||
|
||||
try: # use this for Sublime Text 2
|
||||
import SocketServer
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#vim-coati
|
||||
|
||||
The vim plugin is hosted at Github.
|
||||
|
||||
Link to the repository: [vim-coati](https://github.com/CoatiSoftware/vim-coati).
|
||||
@@ -129,10 +129,12 @@ mkdir -p $APP_PACKAGE_DIR
|
||||
cp -u -r deployment/windows/CoatiAppSetup/CoatiSetup/Release/Coati.msi $APP_PACKAGE_DIR/
|
||||
cp -u -r deployment/windows/CoatiAppSetup/CoatiSetup/Release/setup.exe $APP_PACKAGE_DIR/
|
||||
|
||||
mkdir -p $APP_PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -u -r ide_plugins/vs/coati_plugin_vs.vsix $APP_PACKAGE_DIR/plugins/visual_studio/
|
||||
mkdir -p $APP_PACKAGE_DIR/plugins/sublime_text/
|
||||
cp -u -r ide_plugins/sublime_text/* $APP_PACKAGE_DIR/plugins/sublime_text/
|
||||
mkdir -p $APP_PACKAGE_DIR/plugins/vim/
|
||||
cp -u -r ide_plugins/vim/* $APP_PACKAGE_DIR/plugins/vim/
|
||||
mkdir -p $APP_PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -u -r ide_plugins/vs/coati_plugin_vs.vsix $APP_PACKAGE_DIR/plugins/visual_studio/
|
||||
|
||||
|
||||
# PACKAGING COATI (APP)
|
||||
|
||||
@@ -82,7 +82,7 @@ if [ $PLATFORM == "Linux" ] || [ $PLATFORM == "MacOS" ]; then
|
||||
cd build/Debug && cmake -G Ninja -DCMAKE_BUILD_TYPE="Debug" ../..
|
||||
|
||||
echo -e $INFO "run cmake with Release configuration"
|
||||
cd ../Release && cmake -G Xcode -DCMAKE_BUILD_TYPE="Release" ../..
|
||||
cd ../Release && cmake -G Ninja -DCMAKE_BUILD_TYPE="Release" ../..
|
||||
fi
|
||||
|
||||
echo -e $SUCCESS "setup complete"
|
||||
|
||||
@@ -3,20 +3,21 @@
|
||||
# get the current directory
|
||||
SOURCE="${0}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
COATI_PATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
#setup data folder
|
||||
if [ ! -d "${HOME}/.config/coati" ]; then
|
||||
# Control will enter here if $DIRECTORY doesn't exist.
|
||||
mkdir -p ${HOME}/.config/coati
|
||||
cp $COATI_PATH/user/* ${HOME}/.config/coati/
|
||||
echo "First start of Coati from this user, copy default configfiles to ~/.config/coati"
|
||||
# Control will enter here if $DIRECTORY doesn't exist.
|
||||
mkdir -p ${HOME}/.config/coati
|
||||
echo "First start of Coati from this user, copy default configfiles to ~/.config/coati"
|
||||
fi
|
||||
|
||||
cp -rn $COATI_PATH/user/* ${HOME}/.config/coati/
|
||||
|
||||
export LD_LIBRARY_PATH="$COATI_PATH/lib:LD_LIBRARY_PATH"
|
||||
export QT_XKB_CONFIG_ROOT="/usr/share/X11/xkb:$QT_XKB_CONFIG_ROOT"
|
||||
export QT_QPA_FONTDIR="$COATI_PATH/data/fonts:$QT_QPA_FONTDIR"
|
||||
|
||||
@@ -3,21 +3,22 @@
|
||||
# get the current directory
|
||||
SOURCE="${0}"
|
||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||
done
|
||||
COATI_PATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
|
||||
#setup data folder
|
||||
echo $COATI_PATH
|
||||
if [ ! -d "${HOME}/.config/coatitrial" ]; then
|
||||
# Control will enter here if $DIRECTORY doesn't exist.
|
||||
mkdir -p ${HOME}/.config/coatitrial
|
||||
cp $COATI_PATH/user/* ${HOME}/.config/coatitrial/
|
||||
echo "First start of Coati from this user, copy default configfiles to ~/.config/coati"
|
||||
# Control will enter here if $DIRECTORY doesn't exist.
|
||||
mkdir -p ${HOME}/.config/coatitrial
|
||||
echo "First start of Coati from this user, copy default configfiles to ~/.config/coati"
|
||||
fi
|
||||
|
||||
cp -nr $COATI_PATH/user/* ${HOME}/.config/coatitrial/
|
||||
|
||||
export LD_LIBRARY_PATH="$COATI_PATH/lib:LD_LIBRARY_PATH"
|
||||
export QT_XKB_CONFIG_ROOT="/usr/share/X11/xkb:$QT_XKB_CONFIG_ROOT"
|
||||
export QT_QPA_FONTDIR="$COATI_PATH/data/fonts:$QT_QPA_FONTDIR"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string></string>
|
||||
<string>@GIT_VERSION_NUMBER@</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>LSRequiresCarbon</key>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string></string>
|
||||
<string>@GIT_VERSION_NUMBER@</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>LSRequiresCarbon</key>
|
||||
|
||||
@@ -54,7 +54,7 @@ fi
|
||||
BUNDLE_PATH=$PACKAGE_DIR/$BUNDLE_NAME.app
|
||||
BIN_DIR=$BUNDLE_PATH/Contents/MacOS
|
||||
DYNLIB_DIR=$BUNDLE_PATH/Contents/lib
|
||||
PLUGIN_DIR=$BUNDLE_PATH/Contents/PlugIns/platforms
|
||||
PLUGIN_DIR=$BUNDLE_PATH/Contents/PlugIns
|
||||
FRAMEWORK_DIR=$BUNDLE_PATH/Contents/Frameworks
|
||||
RES_DIR=$BUNDLE_PATH/Contents/Resources
|
||||
APP_PATH=$BIN_DIR/$APP_NAME
|
||||
@@ -68,11 +68,9 @@ mkdir -p $RES_DIR
|
||||
|
||||
echo -e $INFO "Copying top level contents."
|
||||
mkdir -p $PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2012.vsix $PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2013.vsix $PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2015.vsix $PACKAGE_DIR/plugins/visual_studio/
|
||||
|
||||
cp -r ../../../ide_plugins/vs/coati_plugin_vs.vsix $PACKAGE_DIR/plugins/visual_studio/
|
||||
cp -R ../../../ide_plugins/sublime_text $PACKAGE_DIR/plugins/sublime_text/
|
||||
cp -R ../../../ide_plugins/vim $PACKAGE_DIR/plugins/vim/
|
||||
|
||||
cp ../data/gui/installer/EULA.rtf $PACKAGE_DIR/EULA.rtf
|
||||
|
||||
@@ -128,7 +126,11 @@ done
|
||||
|
||||
|
||||
echo -e $INFO "Copying Plugins"
|
||||
cp $QT_DIR/plugins/platforms/libqcocoa.dylib $PLUGIN_DIR/libqcocoa.dylib
|
||||
mkdir -p $PLUGIN_DIR/platforms
|
||||
mkdir -p $PLUGIN_DIR/imageformats
|
||||
|
||||
cp $QT_DIR/plugins/platforms/libqcocoa.dylib $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
cp $QT_DIR/plugins/imageformats/libqgif.dylib $PLUGIN_DIR/imageformats/libqgif.dylib
|
||||
|
||||
|
||||
echo -e $INFO "Copying frameworks."
|
||||
@@ -156,11 +158,14 @@ install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtDBus.framework/Versions/5/QtDBus @executable_path/../Frameworks/QtDBus.framework/Versions/5/QtDBus $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtDBus.framework/Versions/5/QtDBus @executable_path/../Frameworks/QtDBus.framework/Versions/5/QtDBus $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $PLUGIN_DIR/imageformats/libqgif.dylib
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $PLUGIN_DIR/imageformats/libqgif.dylib
|
||||
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtDBus.framework/Versions/5/QtDBus
|
||||
|
||||
@@ -173,7 +178,8 @@ otool -L $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
otool -L $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
otool -L $FRAMEWORK_DIR/QtDBus.framework/Versions/5/QtDBus
|
||||
otool -L $FRAMEWORK_DIR/QtNetwork.framework/Versions/5/QtNetwork
|
||||
otool -L $PLUGIN_DIR/libqcocoa.dylib
|
||||
otool -L $PLUGIN_DIR/platforms/libqcocoa.dylib
|
||||
otool -L $PLUGIN_DIR/imageformats/libqgif.dylib
|
||||
|
||||
|
||||
echo -e $INFO "App dependencies"
|
||||
@@ -217,11 +223,11 @@ convert $ICON -resize 1024x1024 $ICON_SET/icon_512x512@2x.png
|
||||
|
||||
iconutil -c icns -o $RES_DIR/project.icns $ICON_SET
|
||||
|
||||
# echo -e $INFO "Obfuscate binary"
|
||||
echo -e $INFO "Obfuscate binary"
|
||||
# upx -1 $APP_PATH
|
||||
# upx --best $APP_PATH
|
||||
upx --best $APP_PATH
|
||||
|
||||
# echo -e $INFO "create DMG"
|
||||
# hdiutil create ${PACKAGE_DIR}.dmg -volname ${PACKAGE_DIR} -srcfolder ${PACKAGE_DIR}
|
||||
echo -e $INFO "create DMG"
|
||||
hdiutil create ${PACKAGE_DIR}.dmg -volname ${PACKAGE_DIR} -srcfolder ${PACKAGE_DIR}
|
||||
|
||||
echo -e $SUCCESS "Installed bundle successfully!"
|
||||
|
||||
@@ -20,6 +20,13 @@ elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then
|
||||
PLATFORM='Windows'
|
||||
fi
|
||||
|
||||
function fallback {
|
||||
FALLBACK_BRANCH=${BRANCH_NAME:3}
|
||||
FALLBACK_BRANCH="${FALLBACK_BRANCH%?}"
|
||||
git checkout ${FALLBACK_BRANCH}
|
||||
git branch -D ${BRANCH_NAME}
|
||||
}
|
||||
|
||||
function build {
|
||||
echo -e $INFO Building $1 \($2\)
|
||||
cmake --build build/$2 --target $1 > /dev/null
|
||||
@@ -30,6 +37,7 @@ function build {
|
||||
echo -e $PASS Building $1 \($2\) passed
|
||||
else
|
||||
echo -e $FAIL Building $1 \($2\) failed
|
||||
fallback
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@@ -43,6 +51,7 @@ function build_type {
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo -e $FAIL At least one build or test failed, no push to $branch
|
||||
fallback
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
@@ -65,6 +74,7 @@ function run_tests {
|
||||
echo -e $PASS $1 Tests passed
|
||||
else
|
||||
echo -e $FAIL $1 Tests failed
|
||||
fallback
|
||||
exit 1
|
||||
fi
|
||||
cd $ROOTDIR
|
||||
|
||||
@@ -2,6 +2,7 @@ add_files(
|
||||
APP_FILES
|
||||
|
||||
data/parser/cxx/TaskParseCxx.cpp
|
||||
data/parser/cxx/TaskParseWrapper.cpp
|
||||
|
||||
utility/commandline/CommandLineParser.cpp
|
||||
utility/commandline/CommandLineParser.h
|
||||
|
||||
@@ -5,31 +5,12 @@
|
||||
#include "clang/Tooling/JSONCompilationDatabase.h"
|
||||
|
||||
#include "data/parser/cxx/CxxParser.h"
|
||||
#include "data/Storage.h"
|
||||
#include "data/PersistentStorage.h"
|
||||
#include "utility/file/FileRegister.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
#include "utility/utility.h"
|
||||
|
||||
TaskParseCxx::TaskParseCxx(
|
||||
Storage* storage,
|
||||
const FileManager* fileManager,
|
||||
const Parser::Arguments& arguments,
|
||||
const std::vector<FilePath>& files
|
||||
)
|
||||
: m_storage(storage)
|
||||
, m_arguments(arguments)
|
||||
, m_files(files)
|
||||
, m_isCDB(false)
|
||||
{
|
||||
if (arguments.compilationDatabasePath.exists())
|
||||
{
|
||||
m_isCDB = true;
|
||||
}
|
||||
m_parserClient = std::make_shared<ParserClientImpl>();
|
||||
m_parser = std::make_shared<CxxParser>(m_parserClient.get(), fileManager);
|
||||
}
|
||||
|
||||
std::vector<FilePath> TaskParseCxx::getSourceFilesFromCDB(const FilePath& compilationDatabasePath)
|
||||
{
|
||||
std::string error;
|
||||
@@ -45,52 +26,46 @@ std::vector<FilePath> TaskParseCxx::getSourceFilesFromCDB(const FilePath& compil
|
||||
return filePaths;
|
||||
}
|
||||
|
||||
TaskParseCxx::TaskParseCxx(
|
||||
PersistentStorage* storage,
|
||||
std::shared_ptr<std::mutex> storageMutex,
|
||||
std::shared_ptr<FileRegister> fileRegister,
|
||||
const Parser::Arguments& arguments
|
||||
)
|
||||
: m_storage(storage)
|
||||
, m_storageMutex(storageMutex)
|
||||
, m_arguments(arguments)
|
||||
, m_isCDB(false)
|
||||
{
|
||||
if (arguments.compilationDatabasePath.exists())
|
||||
{
|
||||
m_isCDB = true;
|
||||
}
|
||||
m_parserClient = std::make_shared<ParserClientImpl>(); // todo: create one parserclient per file
|
||||
m_parser = std::make_shared<CxxParser>(m_parserClient.get(), fileRegister);
|
||||
}
|
||||
|
||||
void TaskParseCxx::enter()
|
||||
{
|
||||
m_start = utility::durationStart();
|
||||
|
||||
if (m_isCDB)
|
||||
{
|
||||
std::string error;
|
||||
m_cdb = std::shared_ptr<clang::tooling::JSONCompilationDatabase>
|
||||
(clang::tooling::JSONCompilationDatabase::loadFromFile(m_arguments.compilationDatabasePath.str(), error));
|
||||
|
||||
m_parser->setupParsingCDB(m_files, m_arguments);
|
||||
m_parser->setupParsingCDB(m_arguments);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_parser->setupParsing(m_files, m_arguments);
|
||||
m_parser->setupParsing(m_arguments);
|
||||
}
|
||||
|
||||
for (const FilePath& path : m_parser->getFileRegister()->getUnparsedSourceFilePaths())
|
||||
{
|
||||
m_sourcePaths.push_back(path.absolute());
|
||||
}
|
||||
|
||||
m_storage->startParsing();
|
||||
}
|
||||
|
||||
Task::TaskState TaskParseCxx::update()
|
||||
{
|
||||
FilePath sourcePath;
|
||||
bool isSource = false;
|
||||
|
||||
FileRegister* fileRegister = m_parser->getFileRegister();
|
||||
|
||||
if (m_sourcePaths.size())
|
||||
{
|
||||
sourcePath = m_sourcePaths.front();
|
||||
m_sourcePaths.pop_front();
|
||||
isSource = true;
|
||||
}
|
||||
else if (!m_isCDB)
|
||||
{
|
||||
std::vector<FilePath> unparsedHeaders = fileRegister->getUnparsedIncludeFilePaths();
|
||||
if (unparsedHeaders.size())
|
||||
{
|
||||
sourcePath = unparsedHeaders[0];
|
||||
}
|
||||
}
|
||||
FilePath sourcePath = fileRegister->consumeSourceFile();
|
||||
|
||||
if (sourcePath.empty())
|
||||
{
|
||||
@@ -98,17 +73,16 @@ Task::TaskState TaskParseCxx::update()
|
||||
}
|
||||
|
||||
std::stringstream ss;
|
||||
ss << "analyzing files (ESC to quit): [";
|
||||
ss << (m_isCDB ? fileRegister->getParsedSourceFilesCount() : fileRegister->getParsedFilesCount()) + 1 << "/";
|
||||
ss << (m_isCDB ? fileRegister->getSourceFilesCount() : fileRegister->getFilesCount()) << "] ";
|
||||
ss << "indexing files (ESC to quit): [";
|
||||
ss << fileRegister->getParsedSourceFilesCount() << "/";
|
||||
ss << fileRegister->getSourceFilesCount() << "] ";
|
||||
ss << sourcePath.str();
|
||||
|
||||
MessageStatus(ss.str(), false, true).dispatch();
|
||||
|
||||
std::shared_ptr<IntermediateStorage> intermediateStorage = std::make_shared<IntermediateStorage>();
|
||||
|
||||
m_parserClient->setStorage(intermediateStorage);
|
||||
m_parserClient->startParsingFile(sourcePath);
|
||||
m_parserClient->startParsingFile();
|
||||
|
||||
if (m_isCDB)
|
||||
{
|
||||
@@ -123,37 +97,25 @@ Task::TaskState TaskParseCxx::update()
|
||||
m_parser->runTool(std::vector<std::string>(1, sourcePath.str()));
|
||||
}
|
||||
|
||||
m_parserClient->finishParsingFile(sourcePath);
|
||||
m_parserClient->finishParsingFile();
|
||||
m_parserClient->resetStorage();
|
||||
|
||||
m_storage->injectData(intermediateStorage);
|
||||
|
||||
if (isSource)
|
||||
{
|
||||
fileRegister->markSourceFileParsed(sourcePath.str());
|
||||
std::lock_guard<std::mutex> lock(*(m_storageMutex.get()));
|
||||
m_storage->inject(intermediateStorage.get());
|
||||
}
|
||||
|
||||
fileRegister->markThreadFilesParsed();
|
||||
|
||||
return Task::STATE_RUNNING;
|
||||
}
|
||||
|
||||
void TaskParseCxx::exit()
|
||||
{
|
||||
MessageStatus("building search index", false, true).dispatch();
|
||||
|
||||
m_storage->finishParsing();
|
||||
|
||||
FileRegister* fileRegister = m_parser->getFileRegister();
|
||||
|
||||
MessageFinishedParsing(
|
||||
(m_isCDB ? fileRegister->getParsedSourceFilesCount() : fileRegister->getParsedFilesCount()),
|
||||
(m_isCDB ? fileRegister->getSourceFilesCount() : fileRegister->getFilesCount()),
|
||||
utility::duration(m_start)
|
||||
).dispatch();
|
||||
}
|
||||
|
||||
void TaskParseCxx::interrupt()
|
||||
{
|
||||
MessageStatus("analyzing files interrupted", false, true).dispatch();
|
||||
}
|
||||
|
||||
void TaskParseCxx::revert()
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
#include "data/parser/cxx/TaskParseWrapper.h"
|
||||
|
||||
#include "data/PersistentStorage.h"
|
||||
#include "utility/file/FileRegister.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
#include "utility/utility.h"
|
||||
|
||||
TaskParseWrapper::TaskParseWrapper(
|
||||
std::shared_ptr<Task> child,
|
||||
PersistentStorage* storage,
|
||||
std::shared_ptr<FileRegister> fileRegister
|
||||
)
|
||||
: m_child(child)
|
||||
, m_storage(storage)
|
||||
, m_fileRegister(fileRegister)
|
||||
{
|
||||
}
|
||||
|
||||
void TaskParseWrapper::enter()
|
||||
{
|
||||
m_start = utility::durationStart();
|
||||
m_storage->startParsing();
|
||||
|
||||
m_child->enter();
|
||||
}
|
||||
|
||||
Task::TaskState TaskParseWrapper::update()
|
||||
{
|
||||
return m_child->update();
|
||||
}
|
||||
|
||||
void TaskParseWrapper::exit()
|
||||
{
|
||||
m_child->exit();
|
||||
|
||||
MessageStatus("optimizing database", false, true).dispatch();
|
||||
|
||||
m_storage->optimizeMemory();
|
||||
|
||||
MessageStatus("building caches", false, true).dispatch();
|
||||
|
||||
m_storage->finishParsing();
|
||||
|
||||
MessageFinishedParsing(
|
||||
m_fileRegister->getParsedSourceFilesCount(),
|
||||
m_fileRegister->getSourceFilesCount(),
|
||||
utility::duration(m_start)
|
||||
).dispatch();
|
||||
}
|
||||
|
||||
void TaskParseWrapper::interrupt()
|
||||
{
|
||||
MessageStatus("indexing files interrupted", false, true).dispatch();
|
||||
m_child->interrupt();
|
||||
}
|
||||
|
||||
void TaskParseWrapper::revert()
|
||||
{
|
||||
m_child->revert();
|
||||
}
|
||||
@@ -46,7 +46,7 @@ CommandLineParser::CommandLineParser(int argc, char** argv, const std::string& v
|
||||
all.add(desc).add(hidden_desc);
|
||||
|
||||
po::variables_map vm;
|
||||
po::store(po::command_line_parser(argc,argv).options(all).positional(positionalOption).run(), vm);
|
||||
po::store(po::command_line_parser(argc,argv).options(all).positional(positionalOption).allow_unregistered().run(), vm);
|
||||
po::notify(vm);
|
||||
|
||||
if (vm.count("help"))
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "Application.h"
|
||||
|
||||
#include "utility/file/FileSystem.h"
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/MessageQueue.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
@@ -7,6 +8,7 @@
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
#include "utility/messaging/type/MessageShowStartScreen.h"
|
||||
#include "utility/scheduling/TaskScheduler.h"
|
||||
#include "utility/tracing.h"
|
||||
#include "utility/UserPaths.h"
|
||||
#include "utility/Version.h"
|
||||
|
||||
@@ -19,6 +21,7 @@
|
||||
#include "LicenseChecker.h"
|
||||
#include "settings/ApplicationSettings.h"
|
||||
#include "settings/ColorScheme.h"
|
||||
#include "settings/ProjectSettings.h"
|
||||
|
||||
std::shared_ptr<Application> Application::create(
|
||||
const Version& version, ViewFactory* viewFactory, NetworkFactory* networkFactory
|
||||
@@ -116,6 +119,11 @@ void Application::createAndLoadProject(const FilePath& projectSettingsFilePath)
|
||||
|
||||
void Application::loadProject(const FilePath& projectSettingsFilePath)
|
||||
{
|
||||
if (m_hasGUI)
|
||||
{
|
||||
m_componentManager->clearComponents();
|
||||
}
|
||||
|
||||
bool reparse = false;
|
||||
|
||||
Project::ProjectState state = m_project->load(projectSettingsFilePath);
|
||||
@@ -127,8 +135,8 @@ void Application::loadProject(const FilePath& projectSettingsFilePath)
|
||||
options.push_back("Yes");
|
||||
options.push_back("No");
|
||||
int result = m_mainView->confirm(
|
||||
"The project file was changed after the last analysis. The project needs to get fully reanalysed to "
|
||||
"reflect the current project state. Do you want to reanalyze the project?", options);
|
||||
"The project file was changed after the last indexing. The project needs to get fully reindexed to "
|
||||
"reflect the current project state. Do you want to reindex the project?", options);
|
||||
|
||||
reparse = (result == 0);
|
||||
}
|
||||
@@ -145,8 +153,8 @@ void Application::loadProject(const FilePath& projectSettingsFilePath)
|
||||
options.push_back("Yes");
|
||||
options.push_back("No");
|
||||
int result = m_mainView->confirm(
|
||||
"This project was analyzed with a different version of Coati. It needs to be fully reanalyzed to be used "
|
||||
"with this version of Coati. Do you want to reanalyze the project?", options);
|
||||
"This project was indexed with a different version of Coati. It needs to be fully reindexed to be used "
|
||||
"with this version of Coati. Do you want to reindex the project?", options);
|
||||
|
||||
reparse = (result == 0);
|
||||
}
|
||||
@@ -163,6 +171,23 @@ void Application::refreshProject()
|
||||
{
|
||||
MessageStatus("Refreshing Project").dispatch();
|
||||
|
||||
FilePath cdbPath = ProjectSettings::getInstance()->getCompilationDatabasePath();
|
||||
if (!cdbPath.empty() && !cdbPath.exists())
|
||||
{
|
||||
MessageStatus("Can't refresh project").dispatch();
|
||||
|
||||
if (m_hasGUI)
|
||||
{
|
||||
std::vector<std::string> options;
|
||||
options.push_back("Ok");
|
||||
m_mainView->confirm(
|
||||
"Can't refresh. The compilation database of the project does not exist anymore: " + cdbPath.str(),
|
||||
options);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
m_storageCache->clear();
|
||||
if (m_hasGUI)
|
||||
{
|
||||
@@ -177,18 +202,6 @@ void Application::refreshProject()
|
||||
}
|
||||
}
|
||||
|
||||
void Application::saveProject(const FilePath& projectSettingsFilePath)
|
||||
{
|
||||
if (!m_project->save(projectSettingsFilePath))
|
||||
{
|
||||
LOG_ERROR("No Project Settings File defined");
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageStatus("Project saved").dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
void Application::handleMessage(MessageActivateWindow* message)
|
||||
{
|
||||
if (m_hasGUI)
|
||||
@@ -208,6 +221,8 @@ void Application::handleMessage(MessageFinishedParsing* message)
|
||||
|
||||
void Application::handleMessage(MessageLoadProject* message)
|
||||
{
|
||||
TRACE("app load project");
|
||||
|
||||
FilePath projectSettingsFilePath(message->projectSettingsFilePath);
|
||||
if (projectSettingsFilePath.empty())
|
||||
{
|
||||
@@ -222,17 +237,50 @@ void Application::handleMessage(MessageLoadProject* message)
|
||||
{
|
||||
if (m_hasGUI)
|
||||
{
|
||||
std::vector<std::string> options;
|
||||
options.push_back("Yes");
|
||||
options.push_back("No");
|
||||
int result = m_mainView->confirm(
|
||||
"Some settings were changed, the project needs to be fully reanalyzed. "
|
||||
"Do you want to reanalyze the project?", options);
|
||||
FilePath path = projectSettingsFilePath;
|
||||
FilePath oldPath = m_project->getProjectSettingsFilePath();
|
||||
|
||||
if (result == 1)
|
||||
if (oldPath.exists() && oldPath != path)
|
||||
{
|
||||
m_project->load(projectSettingsFilePath);
|
||||
return;
|
||||
std::vector<std::string> options;
|
||||
options.push_back("Yes");
|
||||
options.push_back("No");
|
||||
int result = m_mainView->confirm(
|
||||
"You changed the project location. The project file (.coatiproject) and the database file (.coatidb) will "
|
||||
"be moved to the new location. Do you want to keep a copy of the files in the previous location?"
|
||||
, options);
|
||||
|
||||
FilePath dbPath = FilePath(path).replaceExtension("coatidb");
|
||||
FilePath olddbPath = FilePath(oldPath).replaceExtension("coatidb");
|
||||
|
||||
m_project = Project::create(m_storageCache.get());
|
||||
|
||||
if (result == 0)
|
||||
{
|
||||
FileSystem::copyFile(olddbPath, dbPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
FileSystem::remove(oldPath);
|
||||
FileSystem::rename(olddbPath, dbPath);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::vector<std::string> options;
|
||||
options.push_back("Yes");
|
||||
options.push_back("No");
|
||||
int result = m_mainView->confirm(
|
||||
"Some settings were changed, the project needs to be fully reindexed. "
|
||||
"Do you want to reindex the project?", options);
|
||||
|
||||
if (result == 1)
|
||||
{
|
||||
m_project->load(projectSettingsFilePath);
|
||||
updateRecentProjects(projectSettingsFilePath);
|
||||
m_mainView->setTitle("Coati - " + projectSettingsFilePath.fileName());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,6 +304,8 @@ void Application::handleMessage(MessageLoadProject* message)
|
||||
|
||||
void Application::handleMessage(MessageRefresh* message)
|
||||
{
|
||||
TRACE("app refresh");
|
||||
|
||||
loadSettings();
|
||||
|
||||
if (message->uiOnly)
|
||||
@@ -273,11 +323,6 @@ void Application::handleMessage(MessageRefresh* message)
|
||||
}
|
||||
}
|
||||
|
||||
void Application::handleMessage(MessageSaveProject* message)
|
||||
{
|
||||
saveProject(message->projectSettingsFilePath);
|
||||
}
|
||||
|
||||
void Application::startMessagingAndScheduling()
|
||||
{
|
||||
TaskScheduler::getInstance()->startSchedulerLoopThreaded();
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/messaging/type/MessageLoadProject.h"
|
||||
#include "utility/messaging/type/MessageRefresh.h"
|
||||
#include "utility/messaging/type/MessageSaveProject.h"
|
||||
|
||||
class IDECommunicationController;
|
||||
class NetworkFactory;
|
||||
@@ -24,7 +23,6 @@ class Application
|
||||
, public MessageListener<MessageFinishedParsing>
|
||||
, public MessageListener<MessageLoadProject>
|
||||
, public MessageListener<MessageRefresh>
|
||||
, public MessageListener<MessageSaveProject>
|
||||
{
|
||||
public:
|
||||
static std::shared_ptr<Application> create(const Version& version, ViewFactory* viewFactory, NetworkFactory* networkFactory);
|
||||
@@ -36,7 +34,6 @@ public:
|
||||
void createAndLoadProject(const FilePath& projectSettingsFilePath);
|
||||
void loadProject(const FilePath& projectSettingsFilePath);
|
||||
void refreshProject();
|
||||
void saveProject(const FilePath& projectSettingsFilePath);
|
||||
bool hasGUI();
|
||||
|
||||
private:
|
||||
@@ -46,7 +43,6 @@ private:
|
||||
virtual void handleMessage(MessageFinishedParsing* message);
|
||||
virtual void handleMessage(MessageLoadProject* message);
|
||||
virtual void handleMessage(MessageRefresh* message);
|
||||
virtual void handleMessage(MessageSaveProject* message);
|
||||
|
||||
void startMessagingAndScheduling();
|
||||
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
add_files(
|
||||
LIB_FILES
|
||||
|
||||
component/controller/helper/ActivationTranslator.cpp
|
||||
component/controller/helper/ActivationTranslator.h
|
||||
component/controller/helper/BucketGrid.cpp
|
||||
component/controller/helper/BucketGrid.h
|
||||
component/controller/helper/DummyEdge.h
|
||||
@@ -81,6 +79,11 @@ add_files(
|
||||
data/access/StorageAccessProxy.cpp
|
||||
data/access/StorageAccessProxy.h
|
||||
|
||||
data/fulltextsearch/FullTextSearchIndex.cpp
|
||||
data/fulltextsearch/FullTextSearchIndex.h
|
||||
data/fulltextsearch/SuffixArray.cpp
|
||||
data/fulltextsearch/SuffixArray.h
|
||||
|
||||
data/graph/token_component/TokenComponent.cpp
|
||||
data/graph/token_component/TokenComponent.h
|
||||
data/graph/token_component/TokenComponentAbstraction.cpp
|
||||
@@ -124,6 +127,7 @@ add_files(
|
||||
data/name/NameHierarchy.h
|
||||
|
||||
data/parser/cxx/TaskParseCxx.h
|
||||
data/parser/cxx/TaskParseWrapper.h
|
||||
|
||||
data/parser/ParseLocation.cpp
|
||||
data/parser/ParseLocation.h
|
||||
@@ -161,6 +165,8 @@ add_files(
|
||||
data/HierarchyCache.h
|
||||
data/IntermediateStorage.cpp
|
||||
data/IntermediateStorage.h
|
||||
data/PersistentStorage.cpp
|
||||
data/PersistentStorage.h
|
||||
data/SqliteIndex.cpp
|
||||
data/SqliteIndex.h
|
||||
data/SqliteStorage.cpp
|
||||
@@ -228,6 +234,7 @@ add_files(
|
||||
utility/messaging/type/MessageAutoRefreshChanged.h
|
||||
utility/messaging/type/MessageChangeFileView.h
|
||||
utility/messaging/type/MessageClearErrorCount.h
|
||||
utility/messaging/type/MessageColorSchemeTest.h
|
||||
utility/messaging/type/MessageDeactivateEdge.h
|
||||
utility/messaging/type/MessageDispatchWhenLicenseValid.h
|
||||
utility/messaging/type/MessageEnteredLicense.h
|
||||
@@ -248,10 +255,10 @@ add_files(
|
||||
utility/messaging/type/MessageRedo.h
|
||||
utility/messaging/type/MessageRefresh.h
|
||||
utility/messaging/type/MessageResetZoom.h
|
||||
utility/messaging/type/MessageSaveProject.h
|
||||
utility/messaging/type/MessageScrollCode.h
|
||||
utility/messaging/type/MessageSearch.h
|
||||
utility/messaging/type/MessageSearchAutocomplete.h
|
||||
utility/messaging/type/MessageSearchFullText.h
|
||||
utility/messaging/type/MessageShowErrors.h
|
||||
utility/messaging/type/MessageShowScope.h
|
||||
utility/messaging/type/MessageShowStartScreen.h
|
||||
@@ -269,16 +276,16 @@ add_files(
|
||||
utility/messaging/MessageQueue.cpp
|
||||
utility/messaging/MessageQueue.h
|
||||
|
||||
utility/scheduling/LambdaTask.cpp
|
||||
utility/scheduling/LambdaTask.h
|
||||
utility/scheduling/SimpleTask.cpp
|
||||
utility/scheduling/SimpleTask.h
|
||||
utility/scheduling/Task.cpp
|
||||
utility/scheduling/Task.h
|
||||
utility/scheduling/TaskGroup.cpp
|
||||
utility/scheduling/TaskGroup.h
|
||||
utility/scheduling/TaskGroupParallel.cpp
|
||||
utility/scheduling/TaskGroupParallel.h
|
||||
utility/scheduling/TaskGroupSequential.cpp
|
||||
utility/scheduling/TaskGroupSequential.h
|
||||
utility/scheduling/TaskLambda.cpp
|
||||
utility/scheduling/TaskLambda.h
|
||||
utility/scheduling/TaskScheduler.cpp
|
||||
utility/scheduling/TaskScheduler.h
|
||||
|
||||
@@ -295,8 +302,6 @@ add_files(
|
||||
utility/solution/SolutionParserVisualStudio.cpp
|
||||
utility/solution/SolutionParserVisualStudio.h
|
||||
|
||||
utility/text/Dictionary.cpp
|
||||
utility/text/Dictionary.h
|
||||
utility/text/TextAccess.cpp
|
||||
utility/text/TextAccess.h
|
||||
|
||||
@@ -311,6 +316,8 @@ add_files(
|
||||
utility/ScopedSwitcher.h
|
||||
utility/TimePoint.cpp
|
||||
utility/TimePoint.h
|
||||
utility/tracing.cpp
|
||||
utility/tracing.h
|
||||
utility/types.h
|
||||
utility/UserPaths.cpp
|
||||
utility/UserPaths.h
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
#include "Project.h"
|
||||
|
||||
#include "utility/file/FileSystem.h"
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/scheduling/TaskGroupSequential.h"
|
||||
#include "utility/utility.h"
|
||||
#include "utility/Version.h"
|
||||
|
||||
#include "data/access/StorageAccessProxy.h"
|
||||
#include "data/graph/Token.h"
|
||||
#include "data/parser/cxx/TaskParseCxx.h"
|
||||
#include "data/Storage.h"
|
||||
#include "data/parser/cxx/TaskParseWrapper.h"
|
||||
#include "data/PersistentStorage.h"
|
||||
#include "data/TaskCleanStorage.h"
|
||||
#include "settings/ApplicationSettings.h"
|
||||
#include "settings/ProjectSettings.h"
|
||||
|
||||
#include "utility/file/FileRegister.h"
|
||||
#include "utility/file/FileSystem.h"
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/scheduling/TaskGroupSequential.h"
|
||||
#include "utility/scheduling/TaskGroupParallel.h"
|
||||
#include "utility/utility.h"
|
||||
#include "utility/Version.h"
|
||||
|
||||
std::shared_ptr<Project> Project::create(StorageAccessProxy* storageAccessProxy)
|
||||
{
|
||||
std::shared_ptr<Project> ptr(new Project(storageAccessProxy));
|
||||
@@ -88,36 +91,6 @@ Project::ProjectState Project::reload()
|
||||
return m_state;
|
||||
}
|
||||
|
||||
bool Project::save(const FilePath& projectSettingsFile)
|
||||
{
|
||||
bool differentLocation = (projectSettingsFile != m_projectSettingsFilepath);
|
||||
if (!projectSettingsFile.empty())
|
||||
{
|
||||
setProjectSettingsFilePath(projectSettingsFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
differentLocation = false;
|
||||
}
|
||||
|
||||
if (m_projectSettingsFilepath.empty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ProjectSettings settings;
|
||||
settings.load(m_projectSettingsFilepath);
|
||||
|
||||
if (differentLocation || settings != *ProjectSettings::getInstance().get())
|
||||
{
|
||||
ProjectSettings::getInstance()->save(m_projectSettingsFilepath);
|
||||
|
||||
LOG_INFO_STREAM(<< "ProjectSettings saved to file: " << m_projectSettingsFilepath.str());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Project::clearStorage()
|
||||
{
|
||||
if (m_state == PROJECT_OUTVERSIONED)
|
||||
@@ -139,8 +112,6 @@ void Project::parseCode()
|
||||
return;
|
||||
}
|
||||
|
||||
std::shared_ptr<ProjectSettings> projSettings = ProjectSettings::getInstance();
|
||||
|
||||
m_fileManager.fetchFilePaths(m_storage->getInfoOnAllFiles());
|
||||
std::set<FilePath> addedFilePaths = m_fileManager.getAddedFilePaths();
|
||||
std::set<FilePath> updatedFilePaths = m_fileManager.getUpdatedFilePaths();
|
||||
@@ -149,28 +120,51 @@ void Project::parseCode()
|
||||
utility::append(updatedFilePaths, m_storage->getDependingFilePaths(updatedFilePaths));
|
||||
utility::append(updatedFilePaths, m_storage->getDependingFilePaths(removedFilePaths));
|
||||
|
||||
std::shared_ptr<TaskGroupSequential> taskGroup = std::make_shared<TaskGroupSequential>();
|
||||
|
||||
std::vector<FilePath> filesToClean;
|
||||
filesToClean.insert(filesToClean.end(), removedFilePaths.begin(), removedFilePaths.end());
|
||||
filesToClean.insert(filesToClean.end(), updatedFilePaths.begin(), updatedFilePaths.end());
|
||||
|
||||
taskGroup->addTask(std::make_shared<TaskCleanStorage>(m_storage.get(), filesToClean));
|
||||
|
||||
std::vector<FilePath> filesToParse;
|
||||
filesToParse.insert(filesToParse.end(), addedFilePaths.begin(), addedFilePaths.end());
|
||||
filesToParse.insert(filesToParse.end(), updatedFilePaths.begin(), updatedFilePaths.end());
|
||||
|
||||
taskGroup->addTask(std::make_shared<TaskParseCxx>(
|
||||
m_state = PROJECT_LOADED;
|
||||
|
||||
if (!filesToClean.size() && !filesToParse.size())
|
||||
{
|
||||
MessageFinishedParsing(0, 0, 0, true).dispatch();
|
||||
return;
|
||||
}
|
||||
|
||||
std::shared_ptr<TaskGroupSequential> taskSequential = std::make_shared<TaskGroupSequential>();
|
||||
taskSequential->addTask(std::make_shared<TaskCleanStorage>(m_storage.get(), filesToClean));
|
||||
|
||||
int indexerThreadCount = ApplicationSettings::getInstance()->getIndexerThreadCount();
|
||||
|
||||
std::shared_ptr<FileRegister> fileRegister = std::make_shared<FileRegister>(&m_fileManager, indexerThreadCount > 1);
|
||||
fileRegister->setFilePaths(filesToParse);
|
||||
|
||||
std::shared_ptr<TaskGroupParallel> taskParallel = std::make_shared<TaskGroupParallel>();
|
||||
|
||||
taskSequential->addTask(std::make_shared<TaskParseWrapper>(
|
||||
taskParallel,
|
||||
m_storage.get(),
|
||||
&m_fileManager,
|
||||
getParserArguments(),
|
||||
filesToParse
|
||||
fileRegister
|
||||
));
|
||||
|
||||
Task::dispatch(taskGroup);
|
||||
std::shared_ptr<std::mutex> storageMutex = std::make_shared<std::mutex>();
|
||||
|
||||
m_state = PROJECT_LOADED;
|
||||
for (int i = 0; i < indexerThreadCount; i++)
|
||||
{
|
||||
taskParallel->addTask(std::make_shared<TaskParseCxx>(
|
||||
m_storage.get(),
|
||||
storageMutex,
|
||||
fileRegister,
|
||||
getParserArguments()
|
||||
));
|
||||
}
|
||||
|
||||
Task::dispatch(taskSequential);
|
||||
}
|
||||
|
||||
void Project::logStats() const
|
||||
@@ -219,7 +213,7 @@ void Project::loadStorage(const FilePath& path)
|
||||
FilePath dbPath = FilePath(path).replaceExtension("coatidb");
|
||||
if (!m_storage || path != m_projectSettingsFilepath || !dbPath.exists())
|
||||
{
|
||||
m_storage = std::make_shared<Storage>(dbPath);
|
||||
m_storage = std::make_shared<PersistentStorage>(dbPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,18 +222,22 @@ void Project::updateFileManager()
|
||||
std::shared_ptr<ProjectSettings> projSettings = ProjectSettings::getInstance();
|
||||
|
||||
std::vector<FilePath> sourcePaths = projSettings->getAbsoluteSourcePaths();
|
||||
std::vector<FilePath> headerPaths;
|
||||
std::vector<FilePath> headerPaths = sourcePaths;
|
||||
|
||||
std::vector<std::string> sourceExtensions;
|
||||
|
||||
if (projSettings->getCompilationDatabasePath().exists())
|
||||
{
|
||||
headerPaths = sourcePaths;
|
||||
sourcePaths = TaskParseCxx::getSourceFilesFromCDB(projSettings->getCompilationDatabasePath());
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceExtensions = projSettings->getSourceExtensions();
|
||||
}
|
||||
|
||||
std::vector<std::string> sourceExtensions = projSettings->getSourceExtensions();
|
||||
std::vector<std::string> includeExtensions = projSettings->getHeaderExtensions();
|
||||
std::vector<FilePath> excludePaths = projSettings->getAbsoluteExcludePaths();
|
||||
|
||||
m_fileManager.setPaths(sourcePaths, headerPaths, sourceExtensions, includeExtensions);
|
||||
m_fileManager.setPaths(sourcePaths, headerPaths, excludePaths, sourceExtensions);
|
||||
}
|
||||
|
||||
Parser::Arguments Project::getParserArguments() const
|
||||
@@ -263,14 +261,12 @@ Parser::Arguments Project::getParserArguments() const
|
||||
if (projSettings->getUseSourcePathsForHeaderSearch())
|
||||
{
|
||||
std::vector<FilePath> headerSearchSubPaths;
|
||||
for (FilePath p : projSettings->getAbsoluteHeaderSearchPaths())
|
||||
for (FilePath p : projSettings->getSourcePaths())
|
||||
{
|
||||
std::vector<FilePath> tempPaths = FileSystem::getSubDirectories(p);
|
||||
headerSearchSubPaths.insert( headerSearchSubPaths.end(), tempPaths.begin(), tempPaths.end() );
|
||||
utility::append(headerSearchSubPaths, FileSystem::getSubDirectories(p));
|
||||
}
|
||||
|
||||
std::unique(headerSearchSubPaths.begin(),headerSearchSubPaths.end());
|
||||
utility::append(args.systemHeaderSearchPaths, headerSearchSubPaths);
|
||||
utility::append(args.systemHeaderSearchPaths, utility::unique(headerSearchSubPaths));
|
||||
}
|
||||
|
||||
utility::append(args.frameworkSearchPaths, projSettings->getAbsoluteFrameworkSearchPaths());
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "data/parser/Parser.h"
|
||||
|
||||
class Storage;
|
||||
class PersistentStorage;
|
||||
class StorageAccessProxy;
|
||||
|
||||
class Project
|
||||
@@ -31,8 +31,6 @@ public:
|
||||
ProjectState load(const FilePath& projectSettingsFile);
|
||||
ProjectState reload();
|
||||
|
||||
bool save(const FilePath& projectSettingsFile);
|
||||
|
||||
void clearStorage();
|
||||
|
||||
void logStats() const;
|
||||
@@ -57,7 +55,7 @@ private:
|
||||
FilePath m_projectSettingsFilepath;
|
||||
FileManager m_fileManager;
|
||||
|
||||
std::shared_ptr<Storage> m_storage;
|
||||
std::shared_ptr<PersistentStorage> m_storage;
|
||||
};
|
||||
|
||||
#endif // PROJECT_H
|
||||
|
||||
@@ -38,6 +38,8 @@ ViewFactory* ComponentFactory::getViewFactory() const
|
||||
std::shared_ptr<Component> ComponentFactory::createCodeComponent(ViewLayout* viewLayout)
|
||||
{
|
||||
std::shared_ptr<CodeView> view = m_viewFactory->createCodeView(viewLayout);
|
||||
view->createOverlay();
|
||||
|
||||
std::shared_ptr<CodeController> controller = std::make_shared<CodeController>(m_storageAccess);
|
||||
|
||||
return std::make_shared<Component>(view, controller);
|
||||
@@ -53,6 +55,8 @@ std::shared_ptr<Component> ComponentFactory::createFeatureComponent()
|
||||
std::shared_ptr<Component> ComponentFactory::createGraphComponent(ViewLayout* viewLayout)
|
||||
{
|
||||
std::shared_ptr<View> view = m_viewFactory->createGraphView(viewLayout);
|
||||
view->createOverlay();
|
||||
|
||||
std::shared_ptr<GraphController> controller = std::make_shared<GraphController>(m_storageAccess);
|
||||
|
||||
return std::make_shared<Component>(view, controller);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "component/controller/NetworkFactory.h"
|
||||
|
||||
#include "component/controller/Controller.h"
|
||||
#include "component/view/CodeView.h"
|
||||
#include "component/view/CompositeView.h"
|
||||
#include "component/view/GraphView.h"
|
||||
@@ -51,6 +52,19 @@ void ComponentManager::setup(ViewLayout* viewLayout)
|
||||
m_components.push_back(featureComponent);
|
||||
}
|
||||
|
||||
void ComponentManager::clearComponents()
|
||||
{
|
||||
for (std::shared_ptr<Component> component : m_components)
|
||||
{
|
||||
Controller* controller = component->getController<Controller>();
|
||||
|
||||
if (controller)
|
||||
{
|
||||
controller->clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ComponentManager::refreshViews()
|
||||
{
|
||||
for (std::shared_ptr<Component> component : m_components)
|
||||
|
||||
@@ -23,6 +23,7 @@ public:
|
||||
|
||||
void setup(ViewLayout* viewLayout);
|
||||
|
||||
void clearComponents();
|
||||
void refreshViews();
|
||||
|
||||
private:
|
||||
|
||||