Commit Graph
161 Commits
Author SHA1 Message Date
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
Andreas Stallinger ebddfaaa32 build: 32 bit linux ci
* in vector testsuite replaced EQUAL with DELTA for float comparison
* on linux use appsettings for testing
* botan deprecated warning
* template error in cxxtest
2016-12-09 12:03:05 +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
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 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 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 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 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 73ef7c1bcb logic: Fixed C language setting not propagated to Parser and added all supported language standards for C/C++ 2016-09-15 00:07:47 +02:00
malte_langkabel 9255d45b94 ui: language dependent symbol name delimiter
* implemented symbol delimiter as static field of NameHierarchy which is set when a project is created.
2016-08-18 15:22:25 +02:00
malte_langkabel 279fc7ae82 data: shortened local symbol names
* removed var name from local symbol names that get stored in the db
2016-08-12 09:58:35 +02:00
malte_langkabel 19d6ca3079 data: type alias indexing
* added recording of type aliases (note: template type alias does not work properly right now)
2016-08-04 13:12:54 +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 77080464d7 data: Analyze all types of macro usage 2016-06-11 03:46:44 +02:00
Eberhard Graether 6821fd1c9a data: Fixed macro expands not saved within macro expands 2016-06-10 22:24:14 +02:00
Eberhard Graether 7e3b2622ec src: miscellaneous bug fixes for upcoming release
* only randomize parsing order of source files for multithreaded indexing
* fixed overview not displayed when switching projects due to MessageScrollCode being dispatched
* avoid adding duplicate TokenLocations that causes highlighting to break in QtCodeArea
* clear all controllers when switching project
* maximize unindexed file when clicking title instead of activating it
2016-06-09 12:30:00 +02:00
Eberhard Graether 86d1ff2905 logic: Changed include files being analyzed solely by path
* removed header extensions
* added source extensions to source path setup screen
* added caching to hasFilePath check
* don't show header list in CDB setup
* removed TestSettings.xml
2016-05-19 21:47:09 +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 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 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
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
Eberhard Graether ae6cd6e02c logic: don't show implicit or undefined child nodes in graph unless connected
* visit implicit declarations in ASTVisitor
* show implicit and undefined child nodes only when connected
* fixed some bundle edges couldn't be split
* add "implicit" to tooltip
* show undefiend and implicit nodes hatched
2016-04-07 14:16:17 +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
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
wrongway88 5cdaafc6de logic: vs plugin fixes
Can now deal with single projects and solutions with non-c/c++ projects

bug id = 32
2016-03-05 18:18:54 +01:00
malte_langkabel 731c88dabd data: template argument fix
* improved context detection of template parameters.
* fixed case where declaration and definition of template function has 2 nodes in graph.
* removed code duplications: replaced individual cache classes in ASTVisitor with template based
2016-03-04 11:13:13 +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 b6beab8283 logic: fixed locations in macro
* fixed a bug where the end of source locations contained in a macro was not calculated correctly.
2015-12-17 14:14:03 +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
malte_langkabel 3000b88bd3 test: fixed tests
* changed the tests to reflect the changes to source location parsing in commit 26203c4ac8
2015-12-14 17:21:38 +01:00
Eberhard Graether 26203c4ac8 data: Fixes for parsing Coati
* reverted to old source location retrieval for CxxConstructExpr, because source locations were outside file
* removed exisiting source location check for better performance
* fixed CXXParserTestSuite to use c++11 standard
* fixed crash on missing signature retrieval
2015-12-12 15:14:44 +01:00
malte_langkabel 3da20e3e32 data: location crash fix
* fixed a crash that occurred when trying to find the correct location of a constructor call.
* refactored that code while being at it ;)
2015-12-10 18:59:49 +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
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 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 bbf9c43909 src: Template Argument Handling
* improved handling of template arguments
2015-11-19 16:30:59 +01:00
malte_langkabel 102bc8945a test: comment parsing
added tests for comment parsing.
2015-11-17 14:03:56 +01:00
Eberhard Graether 372f262204 data: don't parse lambda calls to avoid subnodes within functions 2015-11-06 14:50:25 +01:00
Eberhard Graether 5dada05bc5 data: saving macro definition scopes 2015-11-04 13:47:33 +01:00
Manuel Dobusch 7d03166282 logic: VS plugin fixes
Fixed some vs plugin issues and added plugin project to repo
2015-11-03 15:26:47 +01:00
malte_langkabel 11147e982f test: template scope fixes
* changed expected scope locations of template classes in tests to include template parameters.
2015-11-03 11:11:20 +01:00
malte_langkabel e61171cc85 data: Template Member Specialization Edge
* Added a new edge that connects a method of an implicitly specialized template class to its definition in the unspecialized template class.
* Added a test case for this.
* Made methods that have an invalid source location stored as undefined.
2015-10-13 13:29:36 +02:00