Commit Graph
691 Commits
Author SHA1 Message Date
Eberhard Graether d2b41f7598 logic: improved python post processing speed and show progress dialog 2019-05-28 17:40:35 +02:00
mlangkabel 581b1894f2 logic: write output of Python indexer processes to log file 2019-05-27 14:05:02 +02:00
Eberhard Graether 8c6ded28a8 data: Add StorageElementComponent to Storage injection 2019-05-21 17:56:50 +02:00
mlangkabel 4d6cb464c4 logic: sort custom indexer commands by indexed file size and name 2019-05-21 17:23:03 +02:00
mlangkabel 0fb7fe719a <module>: fixed storage cache to accept local symbols names of python indexer 2019-05-21 17:10:55 +02:00
Eberhard Graether b5e8c7f452 build: Fixed macOS bundle not using correct Python environment
* Pass verbose flag to Python indexer if enabled
2019-05-15 14:44:49 +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 af70d684a5 data: Added intermediate fix to handle multiple definitions of main() in C/C++ (issue #233)
* record main definition as .:main:.<filename>
* restore original name in name deserialization
* don't look up id when undoing main activation
2019-04-30 13:04:57 +02:00
Eberhard Graether 4dd032dcff ui: Multi-column layout within access nodes if no child node has edges
* use multiple columns for access nodes if no child has edges
* try to layout close to a square
* layout neighboring accesses to the width of the largest
* increase threshold to hide children on parent activation to 100
* use square layouting in inheritance trees as well
2019-04-16 16:24:38 +02:00
mlangkabel 045a3a4e50 logic: Added "Empty Python" Sourcegroup to project setup
The respective release of the SourcetrailPythonIndexer project is automatically downloaded from GitHub when the setup script is executed.
2019-04-02 15:54:17 +02:00
Eberhard Graether 5d672fafc4 ui: edit search element on backspace instead of deleting (issue #681) 2019-03-20 14:47:39 +01:00
mlangkabel db569ee551 logic: improved fulltext search performance (issue #680)
* move to multithreaded implementation
* omit unnecessary work
2019-03-12 11:16:49 +01:00
Eberhard Graether 92c8c282f5 logic: Fixed qualifier locations not used in reference navigation and only highlighted on hovering 2019-02-04 02:04:38 +01:00
mlangkabel 5dcecdb3bd ui: fixed status error may not show up if custom command fails on windows 2019-01-21 16:38:47 +01:00
mlangkabel 3eb9211520 logic: added option to execute custom indexer commands in parallel 2019-01-21 13:28:51 +01:00
mlangkabel b4ea675c9a logic: fixed custom commands
* allow filesystem to rename temp db after indexing
* changed custom command variable syntax
* adjusted test checklist for custom commands
2018-12-18 15:02:45 +01:00
Eberhard Graether f169805fbc data: record Clang Invocation errors as errors when nothing is recorded 2018-12-17 15:29:49 +01:00
Eberhard Graether 797bf2fee5 logic: Show error updates during custom command indexing
* fixed code view showing all locations when switching view mode while showing errors
2018-12-17 00:27:16 +01:00
Eberhard Graether dd4a880ec3 ui: Show overview bundles for non-indexed or symbol types if no others available 2018-12-16 23:51:53 +01: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 d3d5b961ff data: Replaced NameDelimiterType in NameHierarchy with std::wstring to allow use with arbitrary delimiters 2018-12-11 16:29:08 +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
Eberhard Graether b47a0b5b72 logic: Inspect errors during indexing (issue #235)
* Enabled errors table during indexing
* Store intermediate errors in StorageCache
* Open tab for errors if no tab yet
* "Show errors" for file disabled during indexing
* Hide indexing dialogs with ESC instead of stopping indexing
2018-12-06 15:46:42 +01:00
Eberhard Graether 242ba3c2c7 data: refactored indexer log messages 2018-12-05 14:08:51 +01:00
mlangkabel a51799c279 logic: Store locations of errors in source_location table of DB 2018-11-30 16:02:10 +01:00
mlangkabel f7ee5d0d39 src: simplify adding node hierarchies in ParserClient
* removed unnecessary NodeType parameter from ParserClientImpl addNodeHierarchy
2018-11-26 08:55:26 +01:00
Eberhard Graether 267d6b2eb7 logic: Fixed and improved indexing interruption (issue #634)
* Fixed indexing can be interrupted when dialog hidden
* Clear intermediate storages when interrupting
* Abort waiting for less queued storages when indexing interrupted
* Don't index another file when indexing was already interrupted
* Moved indexing interrupted progress dialog to TaskBuildIndex
* Use MessageIndexingInterrupted instead of MessageInterruptTasks
2018-11-23 15:33:20 +01:00
Eberhard Graether 8e0a60eec7 data: Reduced number of storages in shared memory queue until indexer starts waiting to 2 to save memory 2018-11-21 11:50:20 +01:00
mlangkabel 3e16235c12 src: changed name of template parameter symbol kind 2018-11-16 12:52:57 +01:00
mlangkabel fb95762293 logic: fixed: search activates wrong symbol if multiple potential matches share the same "long" symbol name 2018-11-12 16:31:41 +01:00
Eberhard Graether 0169f04a7a data: optimized batch insert statement maxiumum variable use 2018-11-10 23:51:27 +01:00
Eberhard Graether 6d0fa311c1 logic: Fixed commands not in auto completions when symbols with same name exist 2018-11-05 17:10:11 +01:00
Eberhard Graether 0b9b7c8ed5 logic: Fixed race condition for threaded indexing where indexers don't start indexing when command queue was already stopped 2018-11-05 16:21:09 +01:00
Eberhard Graether 165c82f26f logic: Fixed race condition when TaskBuildIndex exits before indexer threads are started when command queue is already empty 2018-11-05 15:04:22 +01:00
mlangkabel d2cd236318 logic: implemented shrinking shared memory to fit required amount from time to time 2018-11-05 10:38:48 +01:00
Eberhard Graether f13aec70dd ui: Added tabs UI to top of main window (issue #215)
* Added tab bar to top of main window with UI/shortcuts similar to web browsers
* ComponentManager offers components for 2 use-cases: application and tab
* Application components: log view (status/errors), bookmarks, screen search, status bar, tabs, tooltips, dialogs and all tab views disabled
* Tab components: graph, code, history and search
* When a project is loaded there is always at least one tab, otherwise there is none
* Each tab replaces the application views of the same name in the main layout when activated
* Each tab has it's own TaskScheduler, to process tasks independent from other tabs
* The application has a global TaskScheduler for application wide tasks
* The singloton class TaskManager is responsible for managing the TaskSchedulers
* MessageListeners and Messages hold an optional schedulerId, both must be set to only send to a specific TaskScheduler
* Bookmark buttons where split off into a separate view per tab, bookmark managemement is done in the application
* History menu processing is done by the QtMainWindow now
* Screen search is an application component, the responders are always changed to the active tab
* Plugin messages are opened in a new tab
* Symbols can be opened in a new tab via middle click/context menu in graph, code, history dropdown
* Full text index creation is mutexed now in PersistenStorage to make it fully thread-safe
* All tabs are closed when switching projects
* Tab contents are only animated when visible

fortune cookie message = Catch your lucky star!
2018-11-05 01:28:12 +01:00
Eberhard Graether 27627b6d05 logic: Fixed termination issues in task scheduling
* don't use thread::detach() in TaskGroupParallel::terminate to make it useful for tabs
* properly terminate TaskFillIndexerCommandQueue
* fixed wrong microsecond delays
* moved some task delays to TaskDecoratorRepeat for better transparency
2018-10-28 02:36:41 +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 426e16c75b data: Fixed real deadlock in interprocess indexer when command queue is empty on start 2018-10-20 02:49:46 +02:00
Eberhard Graether f8bff8dfda data: Fixed deadlock when indexers started before commands in queue
* Made refilling command queue faster to avoid indexers shutting down
2018-10-20 01:59:09 +02:00
Eberhard Graether 684699ace9 ui: Fixed undo to now undefined node didn't display it undefined 2018-10-19 21:26:47 +02:00
Eberhard Graether adc1900d18 logic: Fixed multiple active symbols broken on undo
* fixed undoing to multiple actives didn't show all nodes in graph
* fixed wrong name in search bar, status message and history dropdown
* fixed flicker when activating multiple nodes in code view
2018-10-19 20:47:08 +02:00
Eberhard Graether 73007931b2 logic: Fixed race conditions in indexing tasks
* Fixed TaskFillIndexerCommandQueue exiting right away when all commands fitted into queue on first call
* Fixed TaskBuildIndex exiting right away when starting of indexer processes takes longer than the update cycle
* Refactored Indexing Tasks Behavior Tree
2018-10-16 17:02:42 +02:00
Eberhard Graether 4ae052cb9c data: Refactored ParserClient API to return and use Ids instead of NameHierarchies for faster indexing
* Pass NameHierarchy to record new symbol returning an Id
* Cache symbol Ids in Parser implementation
* Reuse symbol Ids as reference when recording related data
* Pass FilePath to record new file returning an Id
* Cache file Ids in CanonicalFilePathCache
* Store file Id in ParseLocation instead of FilePath

fortune cookie message = You know a silent way to impose your will.
2018-10-16 00:54:38 +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