Commit Graph
1414 Commits
Author SHA1 Message Date
Eberhard Graether a45dcb8a01 project: changed custom command parameter $STORAGE_VERSION to $DB_VERSION 2018-12-16 13:57:56 +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
Eberhard Graether db69b45c58 utility: Don't shrink shared memory below initial size (issue #636) 2018-11-27 13:18:07 +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
Eberhard Graether c7afb0910d logic: Added weekday condition to news API 2018-11-12 23:40:07 +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
mlangkabel 5d64910083 logic: fixed infinite iteration when trying to solve parent name of C++ template arguments with multiple parent contexts in Clang AST (this is a very rare edge case) 2018-11-12 15:28:54 +01:00
Eberhard Graether 8188fbd7be ui: Fixed multiple empty tabs opened when constantly closing tabs 2018-11-12 15:22:29 +01:00
Eberhard Graether 0169f04a7a data: optimized batch insert statement maxiumum variable use 2018-11-10 23:51:27 +01:00
Eberhard Graether dfa6230ad6 logic: Reduced delays when combining TaskDecoratorRepeat and TaskSelector 2018-11-05 18:01:17 +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 0663286a90 logic: Fixed TaskDecoratorDelay slowing down Task processing 2018-10-28 17:11:24 +01:00
Eberhard Graether e2dd26ee5a logic: Split MessageRefresh into index and UI 2018-10-28 12:11:53 +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 3d8afdb7be src: Removed pointless singleton pattern from LicenseChecker 2018-10-21 13:59:48 +02:00
Eberhard Graether 6a6bd0fca8 ui: Show news sent with update check on start screen
* News are passed as JSON string, containing an array of news items.
* Each news item has version and content (html).
* Items can be filtered by min/max version, OS and license. The first item that fits is used.
* Items can be important, which highlights the news box.
* News are not shown if older than 5 days.

fortune cookie message = You will be financially successful in case your actions are well planned.
2018-10-21 13:49:06 +02: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 1e7a694c80 ui: Removed leading spaces in overview project description 2018-10-19 23:51:02 +02:00
Eberhard Graether 5a10867d56 logic: fixed refresh broken after refreshing with no files to index and clear 2018-10-19 23:24:22 +02:00
Eberhard Graether c50ff53b32 logic: Fixed history menu to show global activation history chronologically 2018-10-19 22:18:17 +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 842bce8b32 logic: Show hidden indexing dialog on refresh
* Fixed refresh restarted when refreshing while processing files
2018-10-17 01:30:33 +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 54f3b551ef src: Fixed shared memory garbage collector mutex stuck
* Try unlocking mutex 5 times
* Then force ownership
* If everything fails run without garbage collector
2018-10-16 15:20:48 +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 aab29b241e test: Replaced DumpParserClient and TestParserClient with TestIntermediateStorage to ease switch to new ParserClient API 2018-10-15 15:05:15 +02:00
Eberhard Graether 3d5b90364a data: Removed source_location_file_node_id_type_index 2018-10-06 12:43:57 +02:00
mlangkabel 10658b2801 ui: display multi-line maven error messages (issue #622) 2018-10-05 13:32:25 +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
Eberhard Graether 83f41e04b1 data: start adding node name hierarchy from bottom and stop when a name was already added 2018-09-25 00:52:09 +02:00
Eberhard Graether a870858bb6 data: Don't store NameElement in NameHierarchy in shared_ptr to reduce heap allocations 2018-09-23 18:01:31 +02:00
Eberhard Graether 34cdde604e data: improved ParserClientImpl recording performance
* Removed storage checks and single use methods
* cache file ids in ParserClientImpl to avoid lookup for every source location
* NameHierarchy::serialize with range to avoid copies when adding nodes
* removed duplicate code in IndexerCxx and IndexerJava, moved to Indexer
2018-09-23 17:52:05 +02:00