check the type after construcing the highlighter instead and save that
information.
Change-Id: I7d942dae4be8471dba90dd266267ff7fa1b6f440
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
It is used more commenly in the code for that purpose.
Change-Id: I48112d2c80485d204137da36fadbe85ad1db802b
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Added function syntaxInfoUpdated shows whether highlighting inProgress
or Done and signal highlightingFinished.
Change-Id: I4cf2b5cfa97d73c882e69ee1df81497ec50a81f7
Reviewed-by: David Schulz <david.schulz@qt.io>
Currently, default font settings are set inside the highlighter
runner after creating a highlighter. It prevents to call
TextEditorSettings::fontSettings() from non-main threads.
Change-Id: I0c806f0f586c67749cb2964bebdf2bf3c58a5302
Reviewed-by: David Schulz <david.schulz@qt.io>
Adds a full copy of KSyntaxHighlighting::Repository class
to the Highlighter class, enabling the relocation of the
Highlighter class to a separate thread. This adjustment ensures
that all Definitions come from the copy of the repository, making
them immutable from external code.
The "reload Definition" function stays supported, as triggering
it results in the recreation of the highlighter for the document,
thereby reconstructing the Repository class.
Change-Id: Id7a4d865228c7e7e20e4770601a3fde55b8a6513
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This change involves the relocation of SyntaxHighlighter processing
to another thread. The core idea is to create a duplicate of the
original TextDocument using SyntaxHighlighterRunnerPrivate::cloneDocument.
A new SyntaxHighlighter is then instantiated by SyntaxHighLighterCreator
for the cloned document. The entire SyntaxHighLighterCreator class is
moved to a new thread, where it performs highlighting on the cloned
document. Upon completion of the highlighting process, the resultsReady
signal is emitted, and the updated highlighting data is applied to the
original document.
This shift of SyntaxHighlighter to another thread enhances the user
experience by preventing UI slowdowns during the highlighting process.
- Introduction of BaseSyntaxHighlighterRunner as an interface class for
future *SyntaxHighlighterRunner.
- Inclusion of DirectSyntaxHighlighterRunner class for performing
highlighting in the main thread, suitable for syntax highlighters
that cannot be moved to another thread.
- Introduction of ThreadedSyntaxHighlighterRunner class for highlighting
in a separate thread, preventing UI blocking during the process.
- Addition of Result data to the SyntaxHighlighter class to facilitate
data exchange between threads.
Task-number: QTCREATORBUG-28727
Change-Id: I4b6a38d15f5ec9b8828055d38d2a0c6f21a657b4
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>