Commit Graph

3511 Commits

Author SHA1 Message Date
Jarek Kobus
b14c07eed6 TextEditor: Reuse qScopeGuard instead of ExecuteOnDestruction
Change-Id: I2ca7d4676bb4f34fbf59fd45bcd01d7857cb7e4e
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-06-05 08:35:14 +00:00
Christian Stenger
980a95f7d6 TextEditor: Fix missing include
Amends 8da3575d72.

Change-Id: I5696d83731cd25cc3abc58d7dc5359859918ac8e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2023-06-05 07:40:48 +00:00
Jarek Kobus
8da3575d72 BaseFileFind: Introduce searchInProcessOutput()
To be used by SilverSearcher and GitGrep.

Change-Id: I16a5fa18a90e6c895658ebc9dd8fd209235e17d3
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2023-06-02 11:50:29 +00:00
Christian Stenger
d9e3d32a80 MarkdownEditor: Ensure focus is inside the editor part
When loading a file it is more likely that the editable view
of the document should be focused than the read only part.

Change-Id: I8b7ed40a233dedf94883072be7462ebeabb78b42
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-06-02 10:42:02 +00:00
David Schulz
95b4da9ba9 TextEditor: add tests for the code assistant
Task-number: QTCREATORBUG-28989
Change-Id: Id76d5df589ab50c7deb96b8ad29d1f29bc368e59
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-05-31 13:38:13 +00:00
Christian Kandeler
8241fc87b4 CppEditor: Fix semantic highlighting
... for the case where the first line with semantic tokens has multiple
tokens.
This was not considered in the algorithm and uncovered by
d6f5d07639.
Also improve variable names and comments.

Fixes: QTCREATORBUG-29218
Change-Id: I0a1927c21edd70a3a91efc902e7e6ad2c734c91f
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-31 07:46:04 +00:00
Christian Kandeler
0c1974f9b8 CppEditor: Fix highlighting angle brackets
The code assumed that all highlighting results come in at once, which is
no longer true as of d6f5d07639.

Change-Id: I5ed6baf88956d64a30ee3fb236d4e2575a7f80c9
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-05-30 08:34:08 +00:00
Eike Ziller
b7f8143728 Tr: Various small fixes
Change-Id: Ic86d6b6a4aae7b301557eaa4296beb9a31399e03
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-26 13:30:36 +00:00
David Schulz
f385324bc8 TextEditor: fix highlighting after removing line
We cannot reconstruct the correct initial state for highlighting when
deleting a line if we generally save the after highlight state to the
next line.

Change-Id: I7d5f727f6b7c8340ac7f5436046cd0f1ad17ebd2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-05-26 12:15:43 +00:00
David Schulz
f235a72554 TextEditor: add tests for semantic highlighter
Change-Id: Id64c933f01c0dbc0e077656b6f4260b93e124311
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-05-25 07:01:35 +00:00
Eike Ziller
55dadd4f95 Merge remote-tracking branch 'origin/10.0' into 11.0
Change-Id: I27e2c1c764f955d14bfece6cd580b4c2d2988396
2023-05-25 08:29:27 +02:00
David Schulz
9bb126c0d6 Utils: make column of convertPosition 0-based to merge it into Position
Change-Id: I239b3cb33b8ad59ac4097c919155ab5ca7d57b8e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-05-24 11:53:28 +00:00
Mitch Curtis
00d156c8ca Fix exclusion pattern tooltip text
It says "included" instead of "excluded".

Change-Id: Ib74f2adbc6e6f10a9ff79662e5be609a89fe89d6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-24 06:03:01 +00:00
David Schulz
d63c57ef47 CodeAssistant: do not schedule processor deletion too early
Calling displayProposal might spawn another eventloop that potentially
deletes the processor before the async proposal handler finished.

Fixes: QTCREATORBUG-28989
Change-Id: I3a8ddb9180cb7737a37ea39dc59d922e83615ed6
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-05-23 08:47:45 +00:00
Tim Jenssen
1b6c0ff56c Merge remote-tracking branch 'origin/qds/dev'
Conflicts:
  coin/instructions/build.yaml
  doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
  share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl
  src/libs/CMakeLists.txt
  src/libs/advanceddockingsystem/dockmanager.cpp
  src/libs/advanceddockingsystem/workspacedialog.cpp
  src/plugins/coreplugin/manhattanstyle.cpp
  src/plugins/qmldesigner/CMakeLists.txt
  src/plugins/qmldesigner/components/formeditor/toolbox.cpp
  src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp
  src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp
  src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.h
  src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp
  src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp
  src/plugins/qmldesignerbase/qmldesignerbaseplugin.h
  src/plugins/qmlprojectmanager/qmlproject.cpp
  src/tools/qml2puppet/CMakeLists.txt
  tests/unit/unittest/CMakeLists.txt

Change-Id: I2c5f18c4fca49471d02713ce5859032232cf7756
2023-05-22 21:13:40 +02:00
David Schulz
1a98dda5c4 Utils: fix Text::Range length and remove mid
Those functions are based on the assumption that the passed text starts
at the begin position, which was good enough for search results, but if
used in other parts of the codebase it might give unwanted results.
Calculate the length of the range now as expected and subtract the
beginning lines.
In order to still got the correct results for the text result texts
modify the result range to always start at the first line before
calculating the length of the range.
Also add tests for the modified functionality

Change-Id: I7ccd75b642dda6dd4f738877cbe3543d46c03652
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-05-12 11:03:33 +00:00
Eike Ziller
7f5876b45a Merge remote-tracking branch 'origin/10.0'
Change-Id: I98e5e1ad43103984b490c65cdeed84b7414303b3
2023-05-11 10:33:18 +02:00
Artem Sokolovskii
7960c1f3f6 ClangFormat: Fix code style preferences are grayed out
Code style preferences are grayed out even when formatting mode
is set to disable.

Fixes: QTCREATORBUG-29129
Change-Id: Icf82fa0751f9291122c2af55111b6bd5fac85c7b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-05-11 08:11:54 +00:00
David Schulz
edeea10e6a CodeAssistant: block suggestions while proposal is visible
Change-Id: I78068306252c5c32304ea97e3abb2d87fdee7832
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-05-11 05:50:24 +00:00
Alessandro Portale
5975657e77 Utils: Centralize style-related property names as constants
This introduces string constants in Utils::StyleHelper. They are used by
code all over in Qt Creator to tell ManhattanStyle how to paint certain
widgets.

Change-Id: Iecca36103f80084cd5fe93fcb6b18b8fbb3a32bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-10 13:25:10 +00:00
Eike Ziller
6865635442 Markdown: Save and restore state
This restores the state of the markdown editor, including text editor
state, preview scroll position and button states, when closing and re-
opening a file.

Change-Id: Ibf1cadd5e0e80149123c6c5f599157e931330343
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-10 13:02:25 +00:00
Eike Ziller
349a3a5872 Markdown: Save visible views as default
Remember if editor and/or preview are visible and use it as default for
when a markdown editor is opened.

Change-Id: I19414adfd118003628783fadeae472b7bb7915f5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-10 13:02:15 +00:00
Jarek Kobus
475e859462 LineNumberFilter: Remove the old matchesFor() implementation
Change-Id: Ia45de8cd265300776c9cb0660b491f9584620a14
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-10 12:55:14 +00:00
Alessandro Portale
9c31267e58 Remove ineffective resize() calls
This removes apparently unnecessary resize() calls on QWidgets based
forms which get anyways added to layouts and resized. Most of these size
values looked "accidental", i.e. neither divisible by 2 nor by 5, in
most cases a remnant from the ui inlining.

Change-Id: I95da3b93f2915ef955b5235e5c2ecc94b51f813a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2023-05-10 11:14:10 +00:00
David Schulz
3f2832289d Utils: move TextPosition/Range to textutils
Change-Id: Id94a7a96f3b0f978e94850d67eb4b8fba6c18fe2
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-05-10 09:32:39 +00:00
Eike Ziller
c68b01c478 Markdown: Support bookmarks and jumping to search results
Redirect the currentLine/Column and gotoLine functions to the text
editor and ensure that it is visible for gotoLine.

Change-Id: I546e2cb1761363e3a75f9adeebcba195e312f00b
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-09 11:31:19 +00:00
Jarek Kobus
936086745a FileSearch: Get rid of FileSearchResult
Use SearchResultItem instead.
This change should reduce the remaining freeze described in
a9eb732ce6 even more.

Change-Id: I102b82ed5677360ccd9e425dd0bdd941d87116f0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-09 11:03:48 +00:00
David Schulz
e3e17c4586 Editor: Fix initial enabled state of margin settings
Change-Id: I0adff884743dd8301a9c7f8b7a44f94658af4b5f
Reviewed-by: hjk <hjk@qt.io>
2023-05-08 12:31:47 +00:00
David Schulz
06b0d105dc Editor: simplify font to display options page connection
Operating on saved settings is less error prone and easier to maintain.

Change-Id: I92e3a6b52296cddc302ba2e4410edfd243b8ad32
Reviewed-by: hjk <hjk@qt.io>
2023-05-08 11:20:24 +00:00
Eike Ziller
5cb0a56296 Markdown: Delay update of preview
Delay the update: The implementation in Qt is currently very slow, and
while we don't have a fix, editing with immediate update is very
sluggish.

Also do not update the preview, if it isn't visible.

Change-Id: I35e10af232064b02a36a8be3758ea0bbc5b66f40
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-08 10:36:19 +00:00
hjk
0f10c6df33 TextEditor: Remove now unused Q_OBJECT from BehaviorSettingsPage
Change-Id: I0919200ddc8bb8b4547316c0af68f5aafa5d4892
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-08 09:15:27 +00:00
Jarek Kobus
c879aeb565 SearchResultItem: Introduce SearchResultItems
And reuse it.

Change-Id: Ia052297340f2bf2478fbfdb2427b45e30bd9d067
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-08 06:41:41 +00:00
Jarek Kobus
8b3aa900da Utils: Move SearchResultItem/Color into Utils
It's going to be reused inside FileSearch.

Change-Id: I8993d7158ff31c311c2283d32bc43465a8946a52
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-08 06:41:27 +00:00
Eike Ziller
302afcdfc7 Markdown: Fix focus handling
When the markdown editor is opened or switched to, the focus is set on
the editor widget. We don't want the focus on the splitter, but on
either the text editor or the preview, depending on what had focus
before.

Change-Id: Ib54899c6251f2c5362f95d990e7150b6fee0f1e1
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-05 12:05:42 +00:00
Alessandro Portale
4d2632c3fa Toolbars: various toolbar layout tweaks
This makes sure that toolbutton sizes and spacings are correct in all
toolbar layout modes.

Task-number: QTCREATORBUG-29082
Change-Id: If2aad74b77c0b8dcda81478e3d345c783584cec4
Reviewed-by: hjk <hjk@qt.io>
2023-05-05 11:36:52 +00:00
Eike Ziller
7724f8653f Merge remote-tracking branch 'origin/10.0'
Change-Id: I7a3925ad8e4f97461b64a70217102ed900430253
2023-05-05 10:39:47 +02:00
Tim Jenssen
1f2f223dd7 Merge remote-tracking branch 'origin/10.0' into qds/dev
Change-Id: Ifb5f580cfea7c0d166756938b013a338279d45d9
2023-05-04 13:45:45 +00:00
Jarek Kobus
a0f6e8dc04 Utils: Rename qtcprocess.{cpp,h} -> process.{cpp,h}
Follows QtcProcess -> Process rename.

Change-Id: I97235a9a40cb7fd52944515b7ab878d96528f919
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-04 05:52:26 +00:00
Jarek Kobus
470c95c94b Utils: Rename QtcProcess -> Process
Task-number: QTCREATORBUG-29102
Change-Id: Ibc264f9db6a32206e4097766ee3f7d0b35225a5c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2023-05-04 05:52:16 +00:00
hjk
50084f6b0e Layouting: Handle attach types via setter
Change-Id: I862f5cd109db3582b4f029787ec0cded2da39ce6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-05-03 13:44:19 +00:00
Jarek Kobus
a3a5b8f806 Utils: Rename asynctask.{cpp,h} -> async.{cpp,h}
Follows AsyncTask -> Async rename.

Change-Id: I37f18368ab826c9960a24087b52f6691bb33f225
Reviewed-by: hjk <hjk@qt.io>
2023-05-03 13:24:20 +00:00
Alessandro Portale
e15b384944 TextEditor: Use icons with better contrast in TextMark tooltip
The "_TOOLBAR" variants do not have a good contrast in some themes. This
also introduces the missing non-toolbar variation for the EYE_OPEN icon.

Fixes: QTCREATORBUG-29087
Change-Id: I64c8c6b7f5696d640c7bea7a431982caacd70050
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-05-03 09:20:58 +00:00
hjk
f8012b7ac9 TextEditor: Use IOptionPage::setWidgetCreator() for behavior settings
Change-Id: I24629e64b48c08b1321f0ebf3fca21e17a1f69a1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-03 08:49:29 +00:00
David Schulz
ba5e09f03f TextEditor: always return a valid assist interface
It is required for updating currently visible proposals. Also guard
against potential null assist interfaces.

Amends 0bd6d7a69f

Fixes: QTCREATORBUG-29096
Change-Id: Ic34d70561b471e7e529f2fb7c239b49712aca502
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-05-02 12:08:04 +00:00
Marcus Tillmanns
9f0919c4a3 FakeVim: Block Suggestions
Block suggestions when FakeVim is enabled and the mode
is not "Insert" or "Replace".

Change-Id: I778eb25d9570b76e42652f9d938a8c580033c462
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-05-02 06:04:53 +00:00
Tim Jenßen
9c2a73b1c8 Merge remote-tracking branch 'origin/10.0' into qds/dev
Change-Id: I51801c3bec7e29f7c7384d86d79b4fcabb4f99c1
2023-04-27 20:30:00 +02:00
Marcus Tillmanns
1339a4a998 TextEditor: Add valid checks for text lines
QTextLayout::lineForTextPosition can return invalid lines,
which when accessed may crash. To workaround we add
QTC_ASSERT to guard against this (see linked issue crash report)

Fixes: QTCREATORBUG-28837
Change-Id: I66d8d8a46e766caa492ec2178b1fa88e35211333
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-04-27 09:24:43 +00:00
Jarek Kobus
fad8ed8e28 ILocatorFilter: Simplify Sync's onSetup in matchers
Remove no longer necessary bool return value from onSetup
functions and from refresh recipe functions,
see df5e3c587a.

By default, when no return bool is specified inside a function
passed to Sync element, it's assumed that the return value is true.

Eliminate passing "=" captures in 2 lambdas.

Change-Id: I5005821444a386f70c0f05322812f98d3fd49926
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-04-27 08:42:34 +00:00
Jarek Kobus
070bfe9387 FutureSynchronizer: Change the default value of cancelOnWait to true
The "false" default wasn't really useful.

This changes the default value to the following usages:

1. AndroidDeployQtStep
   Introduced in 91f136ef3a
   The synchronizer was used to cancel the running tasks inside
   the doCancel(), so the similar behavior should be expected
   when destructing the AndroidDeployQtStep.

2. GitClient
   Introduced in f3106ebafe
   Is used only inside the last line of
   GitSubmitEditor::updateFileModel(). The running function
   (CommitDataFetchResult::fetch) doesn't take QPromise<>,
   so it can't detect if the future was canceled or not.
   In this case this change is no-op.

3. ExtraCompiler
   Introduced in c99ce1f455
   The intention was to make it cancellable and finish
   early on cancel.

4. PluginManager global future synchronizer
   Introduced in 72bddf9f51
   The intention was to make it cancellable and finish
   early on cancel.

The relevant places in code are marked explicitly for
points: 1, 2 and 3.

Change-Id: I1a52deb8d1f81d355950c8772bbaa6d0a202fd7e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-26 08:17:27 +00:00
Jarek Kobus
fde32a206b LineNumberFilter: Reimplement matchers()
Change-Id: I5c4905aabaee81c7870994ca9019e451a7c23119
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-04-25 13:39:02 +00:00