Commit Graph
88 Commits
Author SHA1 Message Date
Malte LangkabelandGitHub a30f47e27f build: Treat warnings as errors (#923)
* squash and rebase andronov-alexey:treat_warnings_as_errors from pull request #850
* fix remaining warnings in java lib
2020-02-14 16:34:04 +01:00
Malte LangkabelandGitHub fa6dd6c9e1 logic: improve usability of shallow indexing ui (#823)
* added "--shallow" command line option to request shallow indexing
* modified behavior of Sourcetrail to always perform a deep index if not explicitly specified differently by the user
2019-12-03 18:26:02 +01:00
Michael VetterandEberhard Gräther 63007170df src: getRefreshInfo() always return a value (#768)
Regards #758
2019-11-19 17:48:49 +01:00
mlangkabel 078feca004 src: applied clang-format 2019-11-18 17:07:20 +01:00
mlangkabel c38117ab8b build: allow to disable language support in cmake
* in addition: add unloadable sourcegroup to visualize, load and save information when loading a project that contains source groups that are not supported by the build
2019-11-13 17:26:06 +01:00
mlangkabel 9d556599ab logic: shallow python indexing (issue #725) 2019-11-06 19:50:47 +01:00
mlangkabelandEberhard Graether f7262c805f logic: skip pre-indexing steps of disabled source groups (issue #737) 2019-10-18 13:05:29 +02:00
Eberhard Graether 733ef0ea04 logic: Fixed issues when indexing via CLI (issue #718)
* show proper error message in console when project configuration has issues
* quit when project configuration is wrong
* show indexing progress as self-updating percentage
2019-08-26 16:34:54 +02:00
Eberhard Graether b35d4657d5 data: Record errors in precompiled header generation
* also records include dependencies within precompiled header file
2019-07-31 23:28:22 +02:00
Eberhard Graether 8e3ca182b9 src: refactored lib/utility
* removed unused utilityMath
* removed some unused functions from utility
* moved time related utility functions to TimeStamp
* moved path objects from utility to app/paths
* moved objects in lib to lib/app
* removed duplicate confirm methods in DialogView
* moved utilityFile to utility/file
* removed uint typedef and replaced with size_t everywhere
* removed boost header in utilityUuid
2019-07-17 15:10:05 +02:00
mlangkabel bb78c04b34 logic: Implemented usage of PCH for indexing EmptyCxx Source Groups
* further change: initialize all llvm targets before indexing
* further change: remove configurable dependencies directory from gradle and maven sourcegroups
2019-07-02 15:52:17 +02:00
Eberhard Graether 150240a9af logic: Don't set project state outdated if only source group name changed (issue #700) 2019-05-27 18:04:29 +02:00
Eberhard Graether ee1fd9c38b logic: Unblock UI when aborting indexing after partial refresh warning 2019-04-23 17:08:10 +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
mlangkabel 3eb9211520 logic: added option to execute custom indexer commands in parallel 2019-01-21 13:28:51 +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 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
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 5a10867d56 logic: fixed refresh broken after refreshing with no files to index and clear 2018-10-19 23:24:22 +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
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
mlangkabel cdbca77495 src: cleaned up code of Tasks and IndexerCommands 2018-09-10 13:17:49 +02:00
mlangkabel 9998855527 logic: generate indexer commands on demand to reduce shared memory consumption
* implemented task for sending IndexerCommands to shared memory on demand
* SourceGroups now return IndexerCommandProviders instead of just a list of indexer commands. This way information can be stored in a compressed format
* merged IndexerCommandCxxEmpty and IndexerCommandCxxCdb
* moved sorting of indexer commands by file size from IndexerCommandList to TaskFillIndexerCommandQueue
* removed obsolete IndexerCommandList class
* wait for IndexerCommandQueue to be filled before starting the indexers
* restart finished indexer processes while indexerCommandQueue is still running
* restart indexer threads as long as there are indexer commands to process
* removed Blackboard::getMutex() and added an atomic update() method
2018-09-10 12:40:30 +02:00
mlangkabel 195f5893c9 logic: reduce copies of intermediate storage data when creating shared memory representation 2018-08-10 16:19:45 +02:00
mlangkabel 5ace9e080f logic: removed shuffling of indexer commands 2018-08-10 16:10:06 +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 1e77613a1b ui: implemented handling of case where index db is used by different process while trying to swap files 2018-07-31 18:06:46 +02:00
mlangkabel 70dba27f9e logic: fixed crash that occurred when trying to use a project that encountered an exception while loading
* fixed crash when storage access proxy tries to access a deleted storage pointer
* refactored StorageAccessProxy implementation to use macros to generate proxy methods
2018-07-31 15:55:29 +02:00
Eberhard Graether afec261872 ui: Made all indexing dialogs hideable
* all dialogs for the indexing usecase can be hidden regardless of project state
* fixed some dialogs could not be shown
* pass dialogview into project and all indexing tasks
* pass application to project and tasks
2018-07-25 23:49:46 +02:00
Eberhard Graether ac31bb6779 src: avoid indexing slowdown on macOS by not using unknown progress for progressbar in status bar 2018-07-24 03:36:27 +02:00
mlangkabel 637857fb56 src: fixed crash when indexing in headless mode 2018-07-23 14:20:16 +02:00
mlangkabel 1df330ff2c ui: improved buttons texts for "reindexing required" dialog 2018-07-22 20:28:18 +02:00
mlangkabel ee3bf41a27 logic: fixed crash when renaming the temp storage while it is still used 2018-07-10 14:14:48 +02:00
Eberhard Graether ad325ac974 logic: background indexing (issue #175)
* allow hiding of indexing dialogs to browse loaded project while indexing
* show indexing status in status bar while indexing
* use different dialog views for different use cases to avoid state collisions
* fixed error label in status bar jittering while indexing
* show hand cursors for clickable elements in status bar
* indexing is not interrupted on pressing ESC while in hidden
* disable error table and error label while indexing
* refactored indexing messages
* forbid indexing and changing project while indexing
* don't show indexing status messages in status bar when indexing in the background
* allow tasks to run in the background

fortune cookie message = A journey is waiting for you.
2018-07-10 11:42:58 +02:00
mlangkabel a1dd1a77c9 logic: allow the user to discard an aborted indexer run
* keep old database on filesystem while indexing
* migrate old ".coatiproject" settings to new ".srctrlprj" extension when loading project
* send new errors in MessageErrorCountUpdate after injecting
* recheck filepath exist() in FileSystem's remove, rename, copy and create functions
* updated tasks to new "override" policy
2018-07-03 18:54:53 +02:00
mlangkabel 0519fd1462 logic: fixed project shows up empty after exiting app while indexing previously empty project 2018-07-02 13:16:30 +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 1c9b4c1afd data: explicitly clear all errors when refreshing incomplete files 2018-06-11 15:55:23 +02:00
mlangkabel 269c1eb88c ui: fixed status message text that appears when loading an empty project 2018-06-08 12:29:24 +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 e5280f99ca logic: Fixed loading of outversioned projects fails 2018-04-20 10:05:35 +02:00
Eberhard Graether e9877acf80 logic: Fixed updated files detection performance in project refresh 2018-04-20 10:00:37 +02:00
mlangkabel cbd782d0c1 logic: fixed logic to detect excluded files for refresh info 2018-04-11 12:46:03 +02:00
Eberhard Graether f93638bcd1 logic: Fixed project state messages wrong on loading 2018-03-24 19:15:39 +01:00
mlangkabel 8913dffe2c ui: improved verbosity of status messages if a project cannot be loaded 2018-02-27 11:01:31 +01:00
mlangkabel e3322adf2e src: switched to using only wstring for status message 2018-02-12 10:39:28 +01:00
mlangkabel e31624a4b7 src: switched to use only wstring for FilePath::filename and FilePath::extension 2018-02-09 17:04:17 +01:00