Commit Graph
48 Commits
Author SHA1 Message Date
Eberhard Graether 8dc5ac7cbe data: stop indexing of files with fatal errors and store them as incomplete (issue 358)
* avoid AST traversial for CXX translation units with fatal errors
* save all files within those translation units as incomplete
* show number of complete files in finished indexing dialog and overview stats
* display incomplete files hatched in graph view
* display incomplete file titles hatched in code view
* mention file incompleteness in tooltips
* removed derived Indexer classes and set ParserType via template parameter instead
* moved getSourceFileFromCDB from IndexerCxxCdb to IndexerCommandCxxCdb

bug id = 358
2017-04-15 01:02:09 +02:00
malte_langkabel 6e342fa87c logic: terminating all running tasks before closing the application (issue #343) 2017-04-12 10:46:56 +02:00
Eberhard Graether 0e4b606c7c src: Fixed FileRegisterStateData synchronisation 2017-04-12 00:38:48 +02:00
malte_langkabel 7b30ac18de logic: source groups for project settings
* project can not have multiple source groups with different types
* language of a project is now inferred from source groups
* setting global NameHierarchy delimiter of first sourceGroup in project
* added project settings migrations for source groups
* Add Settings Migration classes (MoveKey, DeleteKey, Lambda)
* Update sample projects with migrations
* added method to config to retrieve sublevel key names
* implemented recursive removing of keys in settings
* moved project files out of top level
* removed solution parsing code as it is not used anymore

fortune cookie message = The secret of getting ahead is getting started.
2017-03-31 16:11:37 +02:00
malte_langkabel 3cbe83f9e6 logic: maven project setup
* added option to create a Coati project from a Maven POM file
* show list of indexed file paths in maven project setup
* use FileManager to detect indexed files in project setup (except cdb)
* added Maven path to preferences window and added path detectors.
* fixed: QtDialogView::hideStatusDialog now also hides loader in status bar.
* refactored ProjectType

fortune cookie message = If you continually give, you will continually have.
2017-03-08 14:55:42 +01:00
malte_langkabel 235a224f12 logic: implemented skipping implicit code in CxxForRangeStatements 2017-03-06 16:41:10 +01:00
malte_langkabel 4563cbe90a logic: indexer commands
* replaced parser arguments by project specific IndexerCommands that know everything the indexer needs to know to do its job
* added different language and project specific indexers that know how to handle a certain kind of indexer command
* refactored FileManager and FileRegister to have less overhead
* removed no-rtti restriction for clang files in lib cxx
* uncommented deprecated interprocess code.

fortune cookie message = Happiness will bring you good luck.
2017-02-22 16:42:20 +01:00
malte_langkabel 1c1e792fcf logic: anonymous namespace locations
* removed special treatment of anonymous symbols when retrieving their source location. Now their source location is just the "{" character at the start of the namespace's scope.
2017-02-15 11:36:04 +01:00
malte_langkabel 21fb8476ae logic: fixed context node name of reference when context is a file 2017-02-15 10:45:29 +01:00
malte_langkabel 32bb8347cd logic: fixed interrupting cxx ast visiting 2017-02-14 11:10:14 +01:00
malte_langkabel 1520b8bfbf logic: implemented skipping to record calls to the constructor of a generated lambda class. 2017-02-14 10:35:11 +01:00
malte_langkabel d5e2bbb17c logic: recording node type of a cxx namespace in a using directive
* also fixed tests to be executed in the same order on every platform
2017-02-13 10:29:27 +01:00
Eberhard Graether 0ceff0203c ui: Revised project setup to customer feedback
* Support environment variables in compilation database path
* Moved advanced option (compiler flags & exclude paths) to separate dialog
* Allow environment variables that contain multiple paths
* Renamed 'Project Name' to 'Coati Project Name'
* Renamed 'Project File Location' to 'Coati Project Location'
* Renamed 'Project Paths' to 'Indexed Paths'
* Make all paths chosen by path picker relative to the project location
* Disabled name and location changing in project editing and removed project moving
* Added sub-titles to project setup dialogs
* Warn user when no Indexed Header Paths were set
* Deprecated lazy include search: It's only useable and visible to projects holding the key
* Split default file extensions for C++ and C

bug ids = 234 254 283 293 312 335
2017-02-13 01:02:09 +01:00
Eberhard Graether 06c2976959 data: Only record name specifiers within project files
* Use const references in Traverse methods of CxxAstVisitorComponent
* Only record symbol kinds of name specifiers within project files
* Moved main file check in within unindexed project file check
2017-02-11 15:42:29 +01:00
malte_langkabel 10e9a4a70d logic: recording symbol kinds cxx name specifiers (e.g. "std" in "std::string") 2017-02-10 17:09:02 +01:00
malte_langkabel 7f2db69995 build: offer windows 64 bit build (issue #300)
* update to clang/llvm to 3.9
* update to qt 5.8
* fixed windows javapathdetector for 64 bit java.
* added LibGui as dependency to tests
* fixed legacy Java 6 install necessary on MacOS
* fixed setting of user path for 64 bit build
* added missing pngs to windows installer
* renamed graph zoom button images
* reverted moving of setupLogging call to fix crash on deployed exe

fortune cookie message = An old acquaintance will enter your life.
2017-02-03 14:31:43 +01:00
malte_langkabel a78cb1d020 logic: fixed names of file nodes that are target of macro use edge
* fixed name of macro use edge target
* fixed generating a file nodes full path in SqliteStorage
2017-01-27 15:43:35 +01:00
malte_langkabel c73599d64e logic: avoided triggering clang assertion when indexing lambda with return type that is specified but has neither declaration nor definition. (issue #318) 2017-01-23 16:51:31 +01:00
malte_langkabel 2759018374 ui: show when type is built-in (issue #2)
* renamed DefinitionType to DefinitionKind
* passing DefinitionKind from Java to C++ instead of just a single bool
* omitting to create a symbol for undefined types

fortune cookie message = Happy news is on the way to you.
2017-01-23 15:55:29 +01:00
malte_langkabel 184a1a0319 logic: fixed refreshing bug
* fixed bug where coati didn't recognize file dependencies because each file actually had two different nodes.
2017-01-19 13:44:14 +01:00
malte_langkabel 946052f5ae src: renamed template specialization edge types 2016-12-16 10:35:46 +01:00
malte_langkabel 4194381d5f logic: guessing type of callee node to be function. 2016-12-15 16:20:39 +01:00
malte_langkabel 982264d7ba logic: indexer fixes
* forward declarations are recorded as undefined types now
* fixed minor issue with dependent template argument names
2016-12-13 10:45:16 +01:00
malte_langkabel 26902acbbb src: split CxxAstVisitor into component based indexing system
* also: added logging for sqlite exceptions
2016-12-09 17:00:26 +01:00
Eberhard Graether 163f3238ce logic: Prevent verbose indexer logging when logging is disabled 2016-12-01 16:13:25 +01:00
malte_langkabel 57284b1d80 logic: added clang flag to continue indexing, no matter how many errors have been thrown
* added clang flag to continue indexing, no matter how many errors have been thrown.
* changed parser to insert custom compile flags after the default ones set by coati so that the user can override these.
2016-11-30 12:15:45 +01:00
malte_langkabel 328cf7e8cc logic: indexer and name resolving fixes
* made header and excluded filepaths of filemanager canonical
* implemented solving Attributed- and InjectedClassNameType
* handled clang returning null objects in NameResolvers
2016-11-29 17:26:57 +01:00
Eberhard Graether e1968eaaac logic: Fixed crashes in CxxSpecifierNameResolver and LogController 2016-11-29 12:46:22 +01:00
malte_langkabel 1b15933819 logic: fixed some crashes
* verbose ast visitor logs the file that is currently visited.
* fixed crash in log controller
* fixed crash when solving the name of an anonymous element that has no valid location
2016-11-28 16:10:01 +01:00
malte_langkabel 3124a4320e logic: expanded indexer to cover more template argument related elements
* recording of usages of FunctionProtoTypes (e.g. "int(void)" can be used as a template argument)
* implemented solving names of dependent template specialization types (these are not as bad as it sounds ;) )
* implemented correct solving or decayed types
* fixed: qualified type usages are recorded in the correct context
* changed cxx indexer tests not to crash anymore when something is not found
2016-11-24 15:56:55 +01:00
malte_langkabel d787db57be logic: re-added ability to abort AST traversal by pressing esc 2016-11-21 16:54:34 +01:00
malte_langkabel 57e708338b logic: fixed potential crash when solving decls in lambda captures
* fixed potential crash when solving decls in lambda captures
* fixed solving type of anonymous structs/classes in c code
* added null checks in name resolvers
2016-11-21 16:31:35 +01:00
malte_langkabel 9084d3bd7c ui: added info screen for indexer crash investigation
* in case Coati crashes while indexing this screen will inform the user of further steps to take in order to find out what happened
2016-11-21 12:36:42 +01:00
malte_langkabel 6b1e3c6b7f logic: implemented recording references to symbols inside lambda capture lists 2016-11-17 17:25:30 +01:00
malte_langkabel f6bae317c9 logic: implemented recording correct signatures for c++ lambdas 2016-11-16 16:34:41 +01:00
malte_langkabel 7873710ba8 src: refactored name resolvers
* added classes that represent different name kinds
* rewrote NameResolvers to return the new name classes instead of NameElement and NameHierarchy
* removed DataType classes since their functionality moved to the CxxTypeName class.
2016-11-16 15:37:02 +01:00
malte_langkabel 9ba3cf165c logic: improved indexer coverage for using decls, using directives
* moved source code for solving names of NestedNameSpecifiers to new CxxSpecifierNameResolver.
* implemented recording of UsingDirectives.
* implemented using file as context for using directives and using directive decls if no other context is available.
* re-implemented recording of the auto keyword
2016-11-14 13:16:20 +01:00
malte_langkabel fb2ea3f702 source: removed typecast from CxxAstVisitor 2016-11-11 11:26:27 +01:00
malte_langkabel 9aed97eee2 logic: improved c++ indexer coverage
* revised check for visiting a referenced type or decl
* calling client->onFileParsed everytime a file gets processed by the Preprocessor so we can create valid locations in that file
* created test for detecting a usage of a member inside a CallExpression context
* added method to consume a context based reference kind in the AstVisitor
2016-11-10 16:39:52 +01:00
malte_langkabel 338335acf3 data: re-added element_id index for occurrences 2016-11-09 12:42:45 +01:00
Andreas Stallinger 98869e51a5 fix: astvisitor fixes
* renaming files
* fix typo
* clang waringns
2016-11-03 12:38:36 +01:00
malte_langkabel 5b47d195ff data: fixed anonymous symbol name conflicts (issue #241)
* added start location to symbol name string
* added tests for this case
2016-11-03 09:08:35 +01:00
malte_langkabel f80a371d44 src: fixed crashes on parsing Coati
* also fixed log path getting messed up by indexing a project using a CDB
2016-11-01 15:23:21 +01:00
malte_langkabel 9e4a02a33a src: added optional indexer AST logging
* removed old AstVisitor
* added new implementation called CxxAstVisitor
* added CxxVerboseAstVisitor that may wrap the CxxAstVisitor to log the AST while visiting
* added the same structure for the Java visitors
* removed all the logs that were fired when recording stuff
* Added UI setting for verbose indexer logging.
* implemented AST name obfuscation for Java and Cxx
* unified test visitors for Java and Cxx
* implemented recording using directive decl
* removed most of the old onXxxParsed methods
2016-11-01 10:37:30 +01:00
Eberhard Graether a5613715db logic: Fixed crash when Project Paths contain files and lazy include search in enabled
bug id = 201
2016-10-20 23:20:46 +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
Eberhard Graether 149a305761 logic: Fixed error view related issues
* polished color schemes for error view
* fixed error id column not hidden
* fixed error count shown correctly in each view
* moved storage stats logging to application
* fixed indexed flag of errors broken for indexed headers in cdb project
* fixed scrolling to active error when errors where not visible before
* reverted tictactoe files to no errors
2016-10-13 14:21:22 +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