Commit Graph
140 Commits
Author SHA1 Message Date
Eberhard Graether 0e8c0ee18a src: refactored ErrorInfo to be used as standard error type outside of Storage 2016-10-21 14:48:20 +02:00
Eberhard Graether 06c7a4e159 logic: Fixed bugs in TaskParse scheduling
* Added TaskParse as base for TaskParseCxx and TaskParseJava
* Fixed increment and decrement of indexer_count on blackboard not atomic
* Fixed TaskInjectStorage finished before TaskParse started
* Fixed project not cleared when refreshing on now empty project
* Fixed TaskInjectStorage overheating when nothing to do
2016-10-20 23:02:54 +02:00
Andreas Stallinger dc064e4756 ui: Errorview
Tabbed view with errorview as tab
2016-10-13 12:37:10 +02:00
Eberhard Graether 3dffd55f75 logic: Fixed refreshing when source paths were removed
* Define exit state for TaskRepeatWhileSuccess
* Added TaskFinishParsing to end of parsing task sequence
* Also measure time spend clearing files in total index time
2016-09-29 14:58:45 +02:00
malte_langkabel 3b7baba24b build: merge Coati app and Trial to single executable
* removed trial target
* updated deploy scripts to exclude trial
* cleanup CMakeLists
* removed Eigen dependencies
* split parser lib into lib_cxx and lib_java
* added ProjectFactory and ProjectFactoryModules
* removed old installer projects
* updated wix installer
  * updated readme for wix setup
  * updated to use obfuscated exe
  * added qt.conf
  * added indexing dialog images
  * added jars
  * added coatidb files of sample projects
  * added source code of javaparser sample
  * removed auto-refresh image
  * intermediate files of windows installer are created in build folder
  * preselected desktop shortcut
  * build bat is executed from deploy_windows script
2016-09-16 12:45:00 +02:00
malte_langkabel f06dd6abc5 logic: improved indexer parallelization
* added task that injects into PersistentStorage parallel to indexer tasks.
* added Blackboard for Task classes
2016-09-12 11:52:14 +02:00
malte_langkabel 4f302b0d1d logic: reimplemented task system to abort ast visiting
* reimplemented interrupting TaskParseCxx by adding a listener for the MessageInterruptTask and returning a failure status code on update. This cancels the parent sequence task which results in the indexed items not getting inserted into the persistent storage
* removed the capability for interrupting from TaskScheduler
* changed task system to be closer to the standard behavior tree implementation
* changed task system to accommodate the 3 status return types: Running, Success and Failure
* made TaskGroupSequential fail once a member task fails
* made TaskGroupParallel fail once a member task fails
* split TaskParse... into one task for indexing and one task for injecting
* added TaskRunner that handles updating and resetting the managed task
* fixed numbers that are shown as parsed file count in indexing ui
* fixed deadlock that originated from interaction between TaskScheduler and MessageQueue (one thread wanted to destroy a message listener on a task while the other one wanted to send as message as a task)
2016-09-07 14:39:34 +02:00
malte_langkabel d2de395ed5 logic: revised loading Java library
* implemented a dynamic way (that does not involve the linker) to load the Java runtime library
* implemented JavaPathDetectorLinux
* Filepicker for Java runtime library now asks to pick JVM library instead of folder
* extended error handling for JavaEnvironmentFactory
2016-08-31 12:16:29 +02:00
malte_langkabel d9c9e4b3eb logic: using javapath on windows fix
* fixed usage of javapath on windows: search in provided path before resorting to content of path variable
2016-08-29 12:05:40 +02:00
malte_langkabel 8dfc1ea9d9 ui: autodetect java on windows
* implemented a more generic approach to detecting filepaths
* reimplemented standard header detection using this approach
* added auto detection of JVM dynamic library on windows
* fixed java tests that were broken when updating the java_indexer project before this commit.
2016-08-24 15:21:04 +02:00
Eberhard Graether 2c90b75a9f ui: Indexing UI
* Added DialogView with QtDialogView implementation to handle information dialogs
* Implemented QtIndexingDialog class that covers all different dialogs for indexing
* Directly communicate with DialogView from Prpject and all Tasks involved in indexing
* Block QtMainWindow UI while indexing
2016-08-23 23:45:45 +02:00
malte_langkabel 858364b385 logic: handle java not found on windows and mac
* implemented java will not be used if it is not found on system
* add jni libraries weak linked for Mac
* use dlopen for lazy library loading
* added java path to preferences
2016-08-22 14:24:53 +02:00
Eberhard Graether 3c88998c10 src: fixed clang warnings 2016-08-06 12:53:17 +02:00
malte_langkabel b072972b50 data: indexing java
* expanded appsettings to include java specific stuff
* added java indexer as separate project that can be build via its build script
* added dependencies for java indexer to the setup folder
* added license files for these dependencies.
* added sample project for java. this is just to test java on other machines and can be removed again in the future.
* the java parser test suite is currently uncommented because java is not running on every machine.
* added some more node types
* removed TokenComponentAccess::AccessType and replaced all its usages by using AccessKind
* moved access components from edges to nodes
* using recordReference of ParserClient for java
* removed recording access specifier of inheritance edges.
* added styles for new node types
2016-08-04 09:20:13 +02:00
Eberhard Graether eb8808b624 logic: Hide non-fatal errors in unindexed files
* added database field indexed to error to tell if the error occured within an indexed file
* added checkbox to Preferences for showing them
2016-07-20 12:24:46 +02:00
Eberhard Graether ab43d309cb data: optimize memory of sqlite database
* use sqlite "VACUUM" after analysis to reduce memory size
* only add filename to name of local symbol
2016-05-31 15:49:12 +02:00
Eberhard Graether 3f032ea822 data: Fixed macro definition not connected to file 2016-05-30 17:06:35 +02:00
malte_langkabel c61efbbcde logic: multithreaded parsing
* modified the TaskParseCxx to be able to run multiple times in parallel
* made FileRegister threadsafe and changed a lot of its mechanisms
* added TaskGroupParallel that runs all children in parallel
* added TaskParseWrapper that acts as a decorator to execute some code before and after parsing.
* implemented task setup in project with 4 parsing threads
* removed SimpleTask as it was only used as interface for the LambdaTask
2016-05-13 13:23:54 +02:00
malte_langkabel 6a576bccc9 src: storage refactoring
* renamed Storage to PersistentStorage
* added Storage as baseclass that implements data injection
* cleaned ParserClient interface
* added default constructors for storage types
* cleaned SqlteStorage by implementing the private getAll methods as template specializations
* added CXX flags to CMakeLists (this is needed for sqlite with visual studio)
* removed TestStorage.h/.cpp since these files were not used anymore.
2016-05-11 13:23:31 +02:00
Eberhard Graether f9aed67776 src: Various fixes from testing
* fixed deleted project could still be selected in the recent project menu
* fixed project file not loaded when declining for reload
* fixed main in tutorial description not clickable
* fixed clang warnings
* fixed commands not showing up in autocompletion
* fixed classes were expanded when activating aggregation
* fixed crash when messagelisteners tried to unregister after messagequeue was destructed
2016-04-25 17:27:20 +02:00
malte_langkabel 4ec89e71ca src: code refactoring
* added SymbolType that can be used by ASTVisitor and ParserClient
* reordered some of the ParserClient's methods.
* removed return type of ParserClient methods.
2016-04-21 12:26:49 +02:00
Eberhard Graether 40144bbcb9 logic: Retrieving StorageNodes for Autocompletion and FileInfos for modification time at once
Had only a small impact on performance unfortunately.
2016-04-20 23:39:21 +02:00
Eberhard Graether 5cb06c9bb0 data: Fixed ASTVisitor to not use Node::NodeType 2016-04-19 14:52:08 +02:00
malte_langkabel 29ef349f61 data: recording function pointers
* added recording of references to the ASTVisitor.
* refactored reference recording in ASTVisitor.
* merged all the onXxxUsageParsed methods of the ParserClient.
2016-04-19 13:32:09 +02:00
Eberhard Graether 7cd38f8e56 logic: Fixed FilePath to not expand environment variables in constructor 2016-04-19 00:13:02 +02:00
malte_langkabel b9c4bd05cd data: showing local symbols
- added local symbols to storage
- added tests for local symbol parsing
- added MessageActivateLocalSymbols to activate local symbols in code view
- TokenLocations now store their LocationType instead of a plain bool "isScope"
- moved LocationType from TokenLocation to separate file, since it is also used in Annotations now.
- added local_symbol in stylesheet to define a style for hovering and activating these elements
- renamed location to token in stylesheet
2016-04-12 13:28:37 +02:00
malte_langkabel d1a4bc7b08 src: small code cleanup 2016-03-22 10:14:59 +01:00
malte_langkabel eab703cb0d data: implicit in database
* storing the information if a node is defined implicitly in the database
* the analysis however does not visit implicit nodes directly. Currently they are just recorded when used somewhere in the code. This should be changed once implicit nodes are hidde in the UI.
* removed error logs for unnamed template parameters and function parameters since it is ok when they are anonymous.
2016-03-18 13:33:34 +01:00
Eberhard Graether f85d5a6024 ui: Fixed crash when opening preferences 2016-03-10 18:48:58 +01:00
malte_langkabel 9a7b818dba data: parser performance optimization for large projects
* moved inserting everything into the database to the end of parsing a file. this reduces many duplicate queries.
* removed ParserClient interface from Storage.
* errors are updated after parsing a file because we only if there are any duplicate errors after merging the new errors into the database.
* renamed field in db
* added fatal column to error db
2016-03-10 18:24:28 +01:00
Eberhard Graether 8cc8f5d534 logic: Added compilation database project setup
* Added CDB option to project type selection
* show CDB source files in popup
* define header paths separately
* made generic content summary in wizzard and use it everywhere
* fixed file paths not canonical in analysis
* refactored wizzard content paths to use summary instead of subpaths
* refactored files popup to simpler communication with content

bug id = 35
2016-03-08 13:20:37 +01:00
malte_langkabel 6d7a1faaa4 src: code cleanup
* removed unused code: ParseFunction, ParseVariable and ParseTypeUsage. All this is handled using NameHierarchies now.
* Moved the getErrorCount method from ParserClient to the StorageAccess
* MessageFinishedParsing doesn't know the error count anymore.
* StatusBarController now has a StorageAccess to fetch the error count when needed.
2016-03-07 10:59:39 +01:00
malte_langkabel 2ebfbbf88e ui: display fatal errors
* added ErrorCountInfo to incorporate reporting of fatal errors during code analysis.
2016-03-02 10:53:04 +01:00
malte_langkabel 42513fe102 data: revised indexing
* increased performance. coati is now 1.55 times as fast as at version 0.4
* integrated sourceweb parsing code
* removed astbodyvisitor
* NameHierarchy now store signatures in a new format
* storage does not allow to re-set the type of a node, once it is marked as "defined".
* made onTemplateRecordSpecParsed just create the edge, not the node.
* removed distinction between template specialitzations for functions and classes
2016-02-17 10:45:35 +01:00
malte_langkabel a44af51122 data: function signature handling
* functions will only display their names in the graph view. hovering the nodes shows the signature as a tooltip. However, nodes in the database will be created and used regarding their signature.
* improved lambda handling. All calls to generated lambda functions (constructor, call operator) will now point to the lambda class instead.
* implemented handling of the "auto" type.
* improved the CxxParserTestSuite to use function strings instead of function names for template related functions.
2015-12-16 11:27:29 +01:00
Eberhard Graether 801c2555bc src: fixed clang warnings 2015-12-13 04:48:04 +01:00
malte_langkabel 01bcf7266b data: lambda handling
* implemented handling lambdas as functions
* functions can have child nodes now
* NameElements in NameHierarchy can have signatures now.
* fixed crash that occurred when message listener was used while being half way through its destruction process.
2015-12-10 18:00:54 +01:00
Manuel Dobusch 2b03215ea4 ui: language standard
Added language standard select functionality to gui and language standard to project settings.
2015-12-09 19:54:13 +01:00
Andreas Stallinger a6648cafeb ui: different ui for trial and app 2015-12-09 13:00:39 +01:00
Andreas Stallinger 43409cd6b7 build: trial version target
builds now app and trail target, lib_gui added, istrail function
2015-12-08 17:55:12 +01:00
malte_langkabel ed4b6546f0 logic: template argument handling
* now Coati will also parse the body of an instantiated template function and follow calls to other template functions there.
* Coati will parse template arguments at the point of implicit or explicit template instantiation and explicit template specialization.
* refactored template handling in storage.
2015-12-08 10:29:21 +01:00
malte_langkabel 32db79a675 logic: fix infinite loop
* fixed a loop that might be running indefinitely while looking for the correct source location of an identifier.
2015-12-03 16:26:00 +01:00
malte_langkabel 23909058c8 logic: fixed infinite loop
* fixed infinite loop that occurred when trying to find the source location of an unnamed template parameter.
* commented out the deploy settings define.
2015-12-02 16:38:06 +01:00
malte_langkabel 622972cd28 logic: Template Parameter Packs
* implemented handling of template parameter packs.
* added tests for these cases.
* refactored some areas of the template code.
* fixed the names of template arguments that get parsed when they occur in a function's/declarator's body.
2015-11-25 15:43:59 +01:00
malte_langkabel 0144c44d1d data: Fix Locations of Declarations
* using clang's lexer to get the exact location of a declaration's identifier.
2015-11-24 14:09:17 +01:00
malte_langkabel 9f0df1bcee src: Handling of Anonymous Enums
* names of anonymous enums are constructed like names of anonymous namespaces.
2015-11-20 14:15:24 +01:00
malte_langkabel bbf9c43909 src: Template Argument Handling
* improved handling of template arguments
2015-11-19 16:30:59 +01:00
malte_langkabel 9da116ddcf logic: Parsing Field Initializations
* extended use of ASTBodyVisitor methods for visiting VarDecls to include FieldDecls as well (part of C++ 11).
* impemented handling of invalid source location in ASTVisitor to prevent crash.
2015-11-18 19:44:30 +01:00
malte_langkabel 901fa1a387 data: template argument handling
* storing template argument relations for cases where at lease one of these (template class, template argument) is defined inside the parsed project files.
* prevented storage from saving the same source location multiple times.
2015-11-17 18:09:20 +01:00
Eberhard Graether 3351e4aad7 data: fixed parsing problems
* fixed calleeDecl pointer not checked for CallExpr
* fixed CommentHandler not checking if valid file in FileRegister
2015-11-10 10:25:47 +01:00