Commit Graph
44 Commits
Author SHA1 Message Date
Eberhard Graether 68c9782e33 ui: Added custom trail dialog (issue #249)
* open custom trail dialg via button in top of trail controls
* search from symbol to symbol or all referenced/referencing of symbol
* define search depth with slider
* define horizontal/vertical layout
* define node and edge types
* renamed depth graph to trail in graph ui
* added custom trail UI tests

fortune cookie message = A happy surprise is waiting for you.
2019-07-29 11:25:34 +02:00
Eberhard Graether 8c6ded28a8 data: Add StorageElementComponent to Storage injection 2019-05-21 17:56:50 +02:00
mlangkabel 0fb7fe719a <module>: fixed storage cache to accept local symbols names of python indexer 2019-05-21 17:10:55 +02:00
mlangkabel bdb4c78399 logic: implemented Python post processing to add ambiguous edges for unsolved symbols 2019-05-07 14:17:59 +02:00
Eberhard Graether 1dabbab599 ui: Extracted syntax highlighting rules for java and cpp to files
* pass file language from storage to code view
* load syntax highlighting rules files from install directory "syntax_highlighting_rules"
* files must be named <language_identifier>.rules to make syntax highlighting work
2018-12-16 22:59:07 +01:00
mlangkabel 92f4a9e056 logic: record language for files 2018-12-12 15:50:29 +01:00
Eberhard Graether 6d5a3c047d logic: Added SourceGroupCustomCommand to use with SourcetrailDB binaries
* Added new Source Group type SourceGroupCustomCommand to UI and ProjectSettings
* The Source Group executes a specified command on every source file
* The variables $SOURCE_PATH, $PROJECT_PATH, $DB_PATH, $STORAGE_VERSION can be passed
* The commands are executed after all other source groups finished indexing
* The command is executed with working directory set to project directory
* Errors during command execution are shown as status update and in the Status View
* SourceGroupCustomCommand cannot be partially cleared, when one file needs clearing the project must be fully re-indexed
2018-12-11 14:05:26 +01:00
mlangkabel 21d947ed6c src: updated SymbolKind enum
* removed SymbolKinds for Parameter and LocalSymbol, because these are not stored as symbols inside the database
* added Module symbol kind for Python
2018-12-10 16:26:38 +01:00
mlangkabel a51799c279 logic: Store locations of errors in source_location table of DB 2018-11-30 16:02:10 +01:00
Eberhard Graether 518f15d490 data: Added forEach<StorageType>() methods to SqliteIndexStorage for significantly lower memory use of queries
* use in local index building during refresh
* use in read cache building on project load
* use in some storage access requests
* also slightly improves speed
2018-10-20 14:57:38 +02:00
Eberhard Graether 4638ea2baf data: use uint32_t instead of Id in SqliteIndexStorage local indexes 2018-10-20 04:13:13 +02:00
Eberhard Graether 3d5b90364a data: Removed source_location_file_node_id_type_index 2018-10-06 12:43:57 +02:00
Eberhard Graether 9edfdacd72 data: Removed separate comment_location table
* added LocationType LOCATION_COMMENT
* store comment locations within source_locations
2018-10-04 21:21:31 +02:00
Eberhard Graether f060b6042d data: Improved injection performance with batched insertions
* add InsertBatchStatement inserting any number as multiples
* switched Storage injection interface to containers
2018-10-03 01:15:27 +02:00
mlangkabel dfc6d88432 build: search headers in all source directories
* removed paths in include directives
* changed cmake to provide necessary header search paths
* changed name of version.h to productVersion.h due to name conflict
2018-09-18 19:00:18 +02:00
Eberhard Graether 07454f2045 data: Removed std::multimap optimization from LowMemoryStringMap and store local symbol names in std::map 2018-09-18 12:32:55 +02:00
mlangkabel 5517cd4ccf logic: refresh info generator fixes and tests
* fixed case where "to-index" state of a file has changed and thus the file needs to be re-indexed
* clear and re-index files that depend on changed non-indexed files
* clear and re-index files referenced by unchanged but cleared (due to referencing a changed file) files
* fixed: updated files with changed timestamp that do not have content in the db will now count as changed
* refined refresh info generator tests
* updated checklists for manual project setup tests
2018-09-14 16:02:01 +02:00
Eberhard Graether 06d64b76f7 data: Reduced memory usage during indexing with LowMemoryStringMap
* reduces node and local symbol index sizes by about 30-50%
2018-09-02 20:47:43 +02:00
Eberhard Graether e3e8fa1547 data: Request file modification time not until storing to index for faster indexing performance 2018-08-27 17:05:38 +02:00
Eberhard Graether 9bce2de57b data: reduced memory usage of sqlite index during indexing
* use std::string instead of std::wstring in temp indices
* use number types for edges and source locations in temp indices
* use map::emplace where appropriate
* moved 100 occurence insert optimization fully to sqlite index
2018-08-27 15:38:44 +02:00
mlangkabel 9813c9873f logic: index and store Java annotations
* add annotation symbol kind
* add annotation_usage edge kind
* increment storage version
* record java annotation decls
* record java annotation member decls (as fields)
* update expected output of java sample project indexing tests
* add tests for recording annotations
* add annotation icon, annotation colors
* add new annotation node and edge types to legend
2018-08-14 17:33:00 +02:00
mlangkabel 337cf2d371 logic: improved performance of storing index to database
* add compiled statement for batch inserting 100 occurrences at once
* removed unnecessary primary key from component_access to get rid of additional index table
* changed explicit check for existing symbols when injecting to implicit check in insert statement (insert or ignore)
* improved performance of adding edges by replacing edge multi part index with in-memory-index
* added in-memory-index for node table
* added in-memory-index for local_symbol table
* added in-memory-index for lource_location table
* moved setting storage mode to SqliteIndexStorage, because storage modes are not used anywhere else.
* don't store current mode as member because re-creating an existing index takes no time.
* add getter for name of SqliteDatabaseIndex
* removed unused method from persistent storage
2018-08-10 15:37:08 +02:00
mlangkabel f9b43526f4 logic: improved performance of storing index to the database
* batch inject occurrences
* removed unnecessary destructor and keywords from storages
2018-08-03 13:51:31 +02:00
Eberhard Graether 0b5ad33a8c src: Improved project load speed with move semantics and in-place initialization
* switched SearchIndex and HierarchyCache to std::unique_ptr
* use move semantics and in-place initialization in StorageTypes and SearchIndex
* improved autocompletion speed by fixing contained node type checking
2018-07-22 00:25:54 +02:00
mlangkabel 7c09f3339b ui: store and display translation unit of recorded indexing errors 2018-07-02 13:00:41 +02:00
Eberhard Graether 172f1b7934 logic: Moved all error handling logic into ErrorController (issue #577)
* Handle all error related messages in ErrorController
* Moved error filter state from Storage to ErrorController
* Moved all error related messages to type/error subdirectory
* Enable all errors shown by default
* Always show unfiltered error count in status bar and overview
* Fixed all errors shown again when changing error filter on errors for file
2018-06-29 13:31:05 +02:00
Eberhard Graether e287c86315 data: Allow a complete file to become incomplete again if it has errors in a later translation unit 2018-06-20 23:56:18 +02:00
Eberhard Graether c4901b6a7f data: fixed issues with errors in incomplete files
* fixed intermediatestorage merges might lose file indexed/complete information
* fixed changing file complete to true only possible if the file has no errors
* fixed clicking show errors for a file where no asociated errors were found showed all errors
2018-06-18 20:31:52 +02:00
Eberhard Graether 1c9b4c1afd data: explicitly clear all errors when refreshing incomplete files 2018-06-11 15:55:23 +02:00
mlangkabel 7b735cfd17 logic: added project setup support for Sonargraph projects (Java and CMake-JSON modules supported)
* added classes for loading a Sonargraph project
* added Sonargraph options to project setup wizard
* added test for generating indexer commands from Sonargraph modules
* fixed sqlite storage crashing in constructor when parent directory of provided path does not exist
* removed unused FileRegister from Java indexing
* removed unused info from IndexerCommandJava
* refactored loading and saving of SourceGroupSettings
* extracted sourcepaths settings to own class that can be re-used
* merged CDB wizard contentents for source file and indexed paths
* unified wizard content for sonargraph project path
* removed include filters from default source groups
* extracted generation of RefreshInfo from Project to RefreshInfoGenerator
* added tests for RefreshInfoGenerator
* added language and standard selection to sonargraph project setup
* added auto-detection for indexed header paths of sonargraph cmake json modules
* Sonargraph::Project can enable/disable support for specific modules
* warn if sonargraph project contains no matching modules
* indexed headers can be detected from sonargraph project
2018-05-18 16:07:57 +02:00
mlangkabel f08f27717f logic: record and display include edges for non-indexed files
* non-indexed files are shown in graph view and in code view
* non-indexed files are ignored in search view, overview, stats and refresh dialog
2018-04-23 12:13:49 +02:00
Eberhard Graether 5303187bea ui: Group graph nodes by file or namespace (issues #171, #439, #522)
* added buttons to enable grouping by file or namespace
* last used group settings saved to ApplicationSettings
* made groups hoverable/clickable on label only
* improved node hatching and override edge colors
* group overview lists

fortune cookie message = Seen with the eyes of love, everything gets a new meaning.
2018-04-09 00:09:22 +02:00
Eberhard Graether 0d79639c96 src: Improved code view snippet generation performance 2018-03-22 01:46:35 +01:00
mlangkabel 9e041c1f0a logic: use wstring in symbol and bookmark names
* use wstring in symbol and bookmark names
* fixed setting apppath in windows includes
* regard utf8 encoding in shared indexer commands
* regard utf8 encoding in shared indexer status
2018-02-05 17:17:33 +01:00
Eberhard Graether 3f60f7a83c data: Still allow project refresh if database file can't be loaded 2018-01-12 19:57:11 +01:00
mlangkabel 8b21d57750 src: implemented move constructor/assignment for filepath
* improves indexing performance by roughly 5%
* switched to use uniqu_ptr for boost path to get rid of including boost in header
* added different methods to change the current FilePath or to make a copy and change that one
* used these methods appropriately throughout the code base
* removed exists() method from FileSystem because it is already contained in FilePath
* added const in some places
2017-12-23 10:28:25 +01:00
Eberhard Graether c91f5282f5 src: Fixed storage version not increased after removing error commandline 2017-12-16 15:06:23 +01:00
mlangkabel 928aa45bfc data: removed storing commandline for errors
* reason: commandline string may be large (7GB for 20k errors in the UnrealEngine)
2017-12-12 10:04:44 +01:00
mlangkabel 343caebcf6 src: split storage types into data and type
* this shortens the signature of many methods and allows to pass a single object as reference instead of passing multiple references and values
2017-11-19 01:31:50 +01:00
mlangkabel cf984ca245 logic: name qualifiers of symbols are clickable now 2017-10-11 11:08:01 +02:00
Eberhard Graether 2e375112e6 data: Save command line info for CXX indexer commands to errors and show within errors table (issue #351)
bug id = 351
2017-08-09 12:16:16 +02:00
malte_langkabel 1ac63f0158 logic: cxx indexer fixes
* fixed comment locations have been saved to wrong database table
* fixed usage of tryGetRealPathName on windows
* used real filename in PreprocessorCallbacks, DiagnosticsConsumer and CommentHandler
* fixed crash in IncludeValidation when only one source file was checked
2017-08-09 10:59:47 +02:00
Eberhard Graether 9e06323ba7 data: Fixed duplicate rows in database 2017-08-02 17:30:17 +02:00
malte_langkabel cad595a32c logic: add storage transformation to merge anonymous types and the respective typedef
* moved storage related classes to data/storage folder
* implemented recording c++ unions as NODE_UNION instead of just using NODE_TYPE
* added transformation to merge anonymous classes/structs/enums/unions and typedef nodes
* added tests for this transformation
* added setting for enabling/disabling this transformation
2017-07-18 15:14:43 +02:00