Commit Graph

361 Commits

Author SHA1 Message Date
David Schulz
919bbe8408 Core: Use Utils::Link for openEditorAt
Change-Id: I246e06b11b4f32f46d7f3ec93df81bcc676aebbe
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-25 17:32:59 +00:00
David Schulz
356bfcc9fd Utils: filepathify Link
Change-Id: Ie62500bde139158e776f9698ee0ea00c2a113f93
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-25 17:32:18 +00:00
hjk
76db1e3746 Core: Add FilePath based overloads to EditorManager::openEditor{,at}
Part of the overall FilePath migration. Keep the original version for
a while to allow using code to catch up.

Change-Id: Ia7c5ea14416a06e679e8661c0e4045981db87b9b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-25 09:55:50 +00:00
David Schulz
44e7047450 Editor: Allow defining custom snippet parser function
Task-number: QTCREATORBUG-22406
Change-Id: I21ae9740d348d4e0869029343d51b70f9df9cdac
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-25 08:16:38 +00:00
David Schulz
a13aef759e Utils: filepathify fileutils
Change-Id: Ic9048369f64d793f5f567cdb0c715488fb5a4ff6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-18 14:30:53 +00:00
David Schulz
8b7a90ac51 Utils: filepathify TextFileFormat
Change-Id: I6a4e2d38b0bbdec661a4a492901d9182a9f2e502
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-18 12:35:49 +00:00
David Schulz
f8ca730121 LanguageClient: Use Utils::FilePath to get file content
Change-Id: Iddb2eb5c02f3e6674f1f71bb61fb1f13dec22794
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-18 12:35:43 +00:00
David Schulz
55208afac4 LanguageClient: clear open documents on client reset
Change-Id: I5a14578a029f8336556a8ff1de8b6827822aaaf5
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
2021-05-18 11:34:31 +00:00
Jarek Kobus
da27ac457f Do QFutureWatcher::setFuture() after connecting to watcher's signals
Otherwise we may have race condition.
Reference: documentation for QFutureWatcher::setFuture()
and the implementation of
QFutureInterfaceBasePrivate::connectOutputInterface(
QFutureCallOutInterface *interface).

Change-Id: I5b483baaf1b844871a162f47ce7683e9ff495acb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-12 22:09:03 +00:00
David Schulz
0ab08e8574 LanguageClient: fix semanctic token delta data manipulation
Make sure that multiple edits are in order.

The SemanticTokensEdit start is relative to the start of the data and
not to the position of the previous edit.

Do not try to be smart when calculating the start of the modification,
but assume that start is always a preedit index.

Change-Id: I3e1513f5fe631aac21fecb5e0611d987355e2c21
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-12 12:14:54 +00:00
Eike Ziller
f18ac508e8 Move CommandLine out of fileutils.h
to ProcessArgs and rename the files to commandline.*.
fileutils was a strange place for CommandLine, and this
reduces the dependencies needed for sdktool.

Change-Id: I9d7e8ffe8a3560f5d12934457b086f9446976883
Reviewed-by: hjk <hjk@qt.io>
2021-05-11 13:27:23 +00:00
hjk
c23cdd9262 Utils: Merge {synchronous,qtc}process.{h,cpp} file pairs
Mechanical to prepare merging the actual classes.
Adapting #includes.

Change-Id: I77a2c28129287778bc870c30cb890cd26bc2e62b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 09:47:51 +00:00
David Schulz
0938452199 LanguageClient: remove unnecessary member function calls
Change-Id: I27e626cdef9c8f645cc1ea2f79ec6cfda09342fb
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
2021-05-06 10:48:09 +00:00
hjk
2f593d9db9 LanguageServer: Use Utils::CommandLine in StdIOClientInterface
Change-Id: Ic2516387d7308bfad05cef54467c417cc47a7655
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 11:31:17 +00:00
hjk
e5312362c8 LanguageClient: Avoid one use of SynchronousProcess
Change-Id: I39329a68691ad084128056c34cc41554776fd18b
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 11:27:31 +00:00
Christian Kandeler
4890902abf LanguageClient: Allow for custom symbol search result handling
Change-Id: If19ce24b39820afbfd48c48493e07709f4b3633e
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 11:07:08 +00:00
Christian Kandeler
b4e8d32189 LanguageClient: Allow to look up the document for a given file path
Change-Id: I565ce07b28008edbc9d40178069b078ff3530744
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 07:37:41 +00:00
Christian Kandeler
248ebb494d LanguageClient: Expose server information
Server name and version are potentially interesting information.

Change-Id: I4fc9a2556d7fd8285fe0024cf0f83baf95112e65
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-03 07:23:24 +00:00
David Schulz
1d7e05e6a9 LanguageClient: remove unneeded document actions blocker
Change-Id: Id1f07dbf83fcf7d75aaba6d860fb1556761bbd4b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-04-27 08:38:16 +00:00
Christian Kandeler
91b6c58518 LanguageClient: Add signal to inform about WorkDoneProgressEnd
... and make use of it in the clangd client to be able tell when
background indexing has finished.

Change-Id: I0f3c6f9646fd66ababd08c12b2f347da5f1a3729
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-04-27 07:37:25 +00:00
Eike Ziller
2fe1e881ac Merge remote-tracking branch 'origin/4.15'
Change-Id: I44dad4bbe9ed955d35c713485720a3f36a21874d
2021-04-26 11:59:13 +02:00
Christian Kandeler
90a07eca28 LanguageClient: Add the possibility to override progress messages
... and make use of it in the clangd client.
We want the progress bar for background indexing to have a better title
than the plain (and non-translated) "indexing" that the clangd server
sends.

Change-Id: Ib75eac370e7c22f0c5bd477f4a4c423283b27e1f
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-04-26 08:13:21 +00:00
David Schulz
b2c0554733 LanguageClient: add global action to open inspector
Change-Id: I3dcd6cdf716e68e2d7bedb24e1db372d93683698
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-26 07:01:22 +00:00
Christian Kandeler
ecafdb7543 ClangCodeModel: Add experimental clangd support
If the user has enabled clangd (default is off), we start up one instance
per project when it is opened/changed (including build config switches),
and trigger background indexing.
So far, the index is used to provide results for locators and "Find
Usages".
Per-document functionality such as semantic highlighting and completion
is still provided by libclang.

Change-Id: I12532fca1b9c6278baab560e7238cba6189cde9f
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-04-22 07:32:58 +00:00
Christian Stenger
44a33d4c2c LanguageClient: Fix possible nullptr access
Fixes: QTCREATORBUG-25528
Change-Id: I23d50b8bb0a3112eab3eac6a9300e2783b8bb939
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-04-22 04:36:42 +00:00
David Schulz
f1bb3b6811 LSP: add semantic tokens
Change-Id: Ia6865ec6991ec62ae9f0dc2dfa692f1f27318ed1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-21 11:33:56 +00:00
David Schulz
d66b410adb LanguageClient: do not auto-assign documents to all clients
Only assign documents to a client if the client was started by a
setting. Programatically started clients should handle assigned
documents manually.

Change-Id: I192c4c011a48e0406f267d3cab3c860f740ddad7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-04-20 11:44:12 +00:00
David Schulz
99fb1947f3 LanguageClient: remove outdated progress subtitle
If the work done end signal does not contain any message remove the
subtitle of the progress. Otherwise we still might show outdated
progress information on finished entries.

Change-Id: Ib1776e6cb1bacfa557b672182cd4e2c403266d1c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-15 07:23:53 +00:00
David Schulz
9bf89a9a9c LanguageClient: prevent detaching QList
Change-Id: Ifc650a8403cf31e0d84a37102e2c610693d33059
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-15 07:23:41 +00:00
Eike Ziller
2800f3b51f Merge remote-tracking branch 'origin/4.15'
Change-Id: I0afcf51d354ffd73a8f2956a7f78b1e4f032677b
2021-04-09 12:42:03 +02:00
David Schulz
86679c130b LanguageClient: update dynamic capabilities just once
Change-Id: I7149f581e55a25672dce44abc751912e02271135
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-09 07:48:57 +00:00
David Schulz
ae85170b66 LanguageClient: untrack request on cancel
Now we search for the key twice in the hash, but the hash shouldn't get
to big and the lookup doesn't happen very often.

Change-Id: I4751a8203321bb4c1ea5092b89593971d736e034
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-07 06:17:05 +00:00
David Schulz
f13d402b31 LanguageClient: prevent multiple TextEditorWidget connections
Change-Id: I97c7cb00bad898cc5f698bd3dcee23e44acfa9e2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-07 06:16:38 +00:00
David Schulz
1e8879ee72 LanguageClient: track document highlight request based on widgets
We can have multiple widgets per document, so we can have multiple
different cursors for the same document. Tracking document highlights
per widget prevents cancelling a potentially valid request for another
text cursor of another widget.

Change-Id: I800d9be5b44b327351252ab90305b8882efa87bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-07 06:16:33 +00:00
David Schulz
ccdd0d666d LanguageClient: Do not send hover requests to unreachable server
Change-Id: Icb4d3516a12b9475967de5ff5dcbf45cf5986195
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-04-07 05:18:32 +00:00
Eike Ziller
b213c87cf4 Merge remote-tracking branch 'origin/4.15'
Conflicts:
	src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp

Change-Id: I722a94f37bdd1d78625cfae503ba6d02ff083c63
2021-03-25 11:06:59 +01:00
Eike Ziller
072607962d Locator: Add longer description to filters
This is shown as tool tips in the location options, and if any platform
supports this also as tool tips on the menu actions of the locator input
field.

Change-Id: I8b439e45e6097a16a5f932d25d4e5d3e9bddb6ad
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-03-23 08:29:30 +00:00
Eike Ziller
e9bf841dc9 Fix lupdate issues
Some wrong tr calls / missing tr functions.
Some places where we need to bring lupdate to the right track with
regard to namespace resolution.

Change-Id: Idf552054a34e24d9671db68c816bf37f4d403dbc
Reviewed-by: hjk <hjk@qt.io>
2021-03-22 15:00:37 +00:00
Eike Ziller
863260f1fd Merge remote-tracking branch 'origin/4.15'
Conflicts:
	src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
	src/plugins/debugger/gdb/gdboptionspage.cpp

Change-Id: I4149e860b6842ea63bff3a7eb9632b7a6c2919d8
2021-03-22 09:52:14 +01:00
David Schulz
5ae8700e92 LanguageClient: Add copy button to annotation tooltip
Change-Id: Ibe01543efa39e47de2b9d2d8e7302932bfcd413c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-19 08:57:48 +00:00
Eike Ziller
5c713d624c Merge remote-tracking branch 'origin/4.15'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I309fe2a4ea7afac85481fc6466a9a6e58e340019
2021-03-18 09:41:37 +01:00
David Schulz
c218f77f7e LanguageClient: compress documentHighlight requests
Change-Id: I98707a61a228c66966c72f6b4da2470b6f53820e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-16 11:07:09 +00:00
hjk
54e195642c LanguageClient: Compile fix
Amends a7fc1631a7.

Change-Id: I868c1ca1bfb5fc0d629e7621597ab71de7aca367
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-03-16 05:31:08 +00:00
David Schulz
a7fc1631a7 LanguageServerProtocol: add progress support
Change-Id: I8d3ccf0626ccde39516bbd024ed6e2da0380e4de
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-16 04:54:44 +00:00
Tom Praschan
5fcd52fe83 ClangCodeModel/TextEditor: Add support for highlighting parameters
This is already built into clang, so we just need to expose it to the
highlighter and the UI.

Fixes: QTCREATORBUG-24880
Change-Id: I6d0595af2589a9b69eb954aafad46457ab2c5752
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-03-15 09:48:24 +00:00
Eike Ziller
08f8dd355d Merge remote-tracking branch 'origin/4.15'
Change-Id: I528bff4d19dc4dfcb600e1e18b0d375c232eb417
2021-03-05 17:55:17 +01:00
David Schulz
064da4e0cc LanguageClient: make typed settings backwards compatible
Instead of saving the typed settings in the same list as the generic
stdio settings use a separate key. This way the new typed settings won't
get misinterpreted and overwritten by running older Qt Creator versions.

Change-Id: Ic14dfd978b5577b6ae08735bf811c21fba5ab725
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-05 13:27:52 +00:00
David Schulz
3cb6d17d5a LSP: remove optional from required properties
Change-Id: Id13dee6d09ee32f0aa6718efdc42ce56bf04e2c5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-02 12:51:51 +00:00
David Schulz
d17277b546 LSP: reduce error handling complexity
Instead of checking recursively every possible object just check the
required keys for an object and validate it on construction or
assignment from json.

This will reduce the implementation effort for protocol extensions and
also reduce the false positives we might get if the protocol gets
updated.

Change-Id: I3df24e62430d2c7575d26c1581e6a9606e7da4c1
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-02 12:51:47 +00:00
David Schulz
d46d53de1f LanguageClient: reset project pointer when project is closed
Change-Id: I9a2787404bd47bf338125df1066d88e9061b5768
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-23 12:46:22 +00:00