617 Commits
Author SHA1 Message Date
Eberhard Graether 78eade475e data: Updated LLVM/Clang config headers to release 8.0.1 2019-05-20 14:10:34 +02:00
Eberhard Graether 018a65e0b6 data: renamed 'main' function in tutorial to 'start_tour' due to multiple main fix 2019-05-15 14:56:51 +02:00
mlangkabel 3106257692 ui: add python project icon 2019-05-07 16:28:29 +02:00
mlangkabel 76cb4e0dc9 data: added python sample project 2019-05-07 15:51:37 +02:00
mlangkabel b46b9d157d data: fix EULA date 2019-04-23 15:46:41 +02:00
Eberhard Graether 4984e23c07 ui: Increased contrast in bright color scheme 2019-04-23 13:08:34 +02:00
mlangkabel 92192659d9 ui: add python syntax highlighting for "self" 2019-04-09 14:13:57 +02:00
Eberhard Graether edf319cde9 data: removed directory data/gui/installer and moved EULA files to data/license
* moved EULA files to data/license
* moved 3rd party license to data/license
* updated paths in installer scripts
2019-04-08 18:25:13 +02:00
Eberhard Graether b02064a160 license: Implemented new license format
* Implemented new format splitting user, version, and usage period into separate lines
* Refactored all classes: License, LicenseGenerator, LicenseChecker
* Removed redundant license check hash from ApplicationSettings, don't generate, store and check it anymore
* Moved license checking and encoding logic to LicenseChecker
* Moved default for license generation to main.cpp
* Refactored license checking logic in whole app, removed involved message types
* Added LicenseCheckerTestSuite for checking all legacy and current license types
* Generate new license type lifelong
2019-03-18 14:49:52 +01:00
mlangkabel 6ff7d22641 data: update EULA to allow for lifelong licenses 2019-03-12 15:48:37 +01:00
mlangkabel b6031fdb3a ui: fixed tooltips were not resizing if app font size was changed on windows 2019-03-11 18:01:16 +01:00
mlangkabel 82a3c06a9d logic: implemented using regex capture ranges for syntax highlighting rules
* only first capture will be highlighted (-> only use one capture range per regex
* non-capturing braces can be used with start: "(?:" and end: ")"
2019-02-04 16:07:20 +01:00
Eberhard Graether f7eb1fc160 data: Added highlighting rules for Python
* fixed multiline highlights to work for any highlight type
* erase priority ranges contained within others
2019-02-03 15:53:40 +01:00
Eberhard Graether 7d30709306 logic: Fixes and improvements for C/C++ compiler header path handling
* Always add compiler header path when prefilling on first start, regardless of successful detection
* Show compiler header path in path list box on top and readonly
* Prepend compiler header path on Windows in system header path compiler flags, append otherwise
* Show warning when saving ApplicationSettings if compiler header path is not in global include paths
* Show warning when saving ApplicationSettings if there is another path containing compiler headers
2019-01-21 15:18:31 +01:00
mlangkabel e3c9f12012 logic: fixed initialization of header search paths on first start
* updated version of fallback ApplicationSettings.xml to current settings version
* removed is-empty-check when pre-filling settings at the first start of Sourcetrail
2019-01-14 17:22:22 +01:00
Eberhard Graether 53c4ac77cf bin: reverted accidental change in tictactoe sample 2019-01-08 14:31:34 +01:00
Eberhard Graether 54f989f6f5 ui: Also elide name of active node if it has more than 100 characters (issue #652) 2019-01-08 14:25:28 +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
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 a044e17fdc ui: Reduced code view snippet style 2018-11-30 22:40:07 +01:00
mlangkabel 3e16235c12 src: changed name of template parameter symbol kind 2018-11-16 12:52:57 +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
mlangkabel bff7b0d70a logic: added type usage edge for types that occur as template arguments 2018-11-02 13:27:44 +01:00
mlangkabel 05649977a6 data: updated 3rd party license info 2018-10-30 13:39:05 +01:00
mlangkabel 1497941c3d logic: skip recording implicit local symbols
* for example this would be the parameter of an implicitly defined copy constructor
2018-10-30 13:34:16 +01:00
mlangkabel d12570ccf9 data: updated expected output for Cxx sample project tests
* changed expected output of Bullet and Box2D to new formatting (without duplicates)
* minor additions due to clang update
* updated expected output of TicTacToe project with all headers indexed
2018-10-30 12:04:33 +01:00
Eberhard Graether f7b77b6f9c build: Updated to Clang 7.0.0 2018-10-26 14:23:26 +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 1e7a694c80 ui: Removed leading spaces in overview project description 2018-10-19 23:51:02 +02:00
Eberhard Graether bcbbb54b70 res: No std header files in tutorial 2018-10-19 18:38:27 +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 513988e51b src: Fixed tests for Mac 2018-09-21 14:38:31 +02:00
mlangkabel 9dc2bcc2f9 logic: indexer command refactoring
* moved SystemHeaderSearchPaths and FramewordSeearchPaths of indexer cxx indexer commands to CompilerFlags section
* added SourceGroupTestSuite to test indexer command generation of all source groups
* removed "compile_commands.json" from gitignore, because a resource file for the tests has this name
2018-09-18 17:09:28 +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 5ff7d510d7 Re-Revert and fix "logic: changed Java type_argument edges to originate in the generic type or method" 2018-09-03 09:38:51 +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
mlangkabel 8e6d5e6010 Revert "logic: changed Java type_argument edges to originate in the generic type or method" 2018-08-28 16:20:51 +02:00
mlangkabel c86f4d04dc logic: record "java.lang" symbol as package 2018-08-20 18:15:11 +02:00
mlangkabel 36a9d552da logic: changed Java type_argument edges to originate in the generic type or method
* added tests for java type argument recording
* implemented recording type arguments for java ExpressionMethodReferences
* changed type_argument edge to originate in generic type
* added type_usage edge for type_arguments that originates in context (e.g. calling method)
2018-08-20 16:27:53 +02:00
mlangkabel 14a8d024b9 logic: record all symbol types of package names qualifying a Java import declaration 2018-08-20 16:02:10 +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
Eberhard Graether 0898accd58 ui: improved hatching color contrast of variable in bright scheme 2018-08-06 01:04:36 +02:00
Eberhard Graether ea0c249ad9 ui: Improved contrasts in color schemes
* fixed edge routed wrong issue in graph legend
* fixed Alt + Ctrl/Cmd + R refreshes UI
2018-07-27 14:45:25 +02:00
Eberhard Graether d96baad91d src: Fixes for Release
* pass log directory absolute to indexers
* pass app and user paths absolute to indexers
* removed QCoreApplication instance from indexer process
* removed mutex from ConsoleLogger
* updated shortcut window
* renamed code reference menu items
2018-07-24 12:53:55 +02:00
Eberhard Graether ed0ade034e ui: Graph legend (issue #308, #540)
* Show graph legend via 'legend' command or '?' button in the lower right corner
* Legend is not interactive: nodes and edges not clickable or moveable
* CXX and Java node types are mixed
2018-07-23 16:55:58 +02:00
mlangkabel 20086d14a6 logic: ship clang compiler header within Sourcetrail package on Windows
* added clang system headers to data folder of Sourcetrail repo
* added clang system header search directory to detected directories on windows
* updated migration to add clang system header search directory on windows
* updated windows installer and portable package to include compiler headers
* updated linux package
* cleaned code of path detectors
* unrelated removal of unnecessary code in LicenseChecker and UpdateChecker
2018-07-23 15:14:07 +02:00
Eberhard Graether 95ebfff19c ui: Added on-demand local reference navigation to code view navigation bar (issue #453, #538)
* show local reference navigation for local symbols and multiple edge references
* shortcut Ctrl/Cmd + T
* iterate with consecutive edge clicks
2018-07-23 03:13:41 +02:00
mlangkabel c6f9d8f92c logic: show real code of signatures in tooltips
* added new location type
* refactored old recording code
* record signature locations for cxx functions and java methods
* added signature locations to sample project indexer tests
* ignore signature locations in ui
* signatures in tooltip with qualified name of the function/method
* added test for finding signature location of constructor with initializer list
2018-07-20 14:00:08 +02:00