Commit Graph

44 Commits

Author SHA1 Message Date
David Schulz
2d0456f085 LSP: Support remote LSP file paths
Change-Id: If3cf1b8d675ef091427dbcd703c7d14b384a1b3a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-12-15 09:49:48 +00:00
Christian Kandeler
13f40f5471 Utils: Add sorted() function
For simpler calling code.

Change-Id: Ia0a16a28770fd172f74d06a626148248bf5d3c0c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-10-25 14:29:45 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
Marco Bubke
84c1d6572b Utils: Remove variant.h
Since we are now requiring macOS 10.14 we can remove our local copy of
std::variant and use for macOS std::variant too.

Change-Id: I589d03b35fc56878b7392ffa7047a439e588fe43
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>
2022-08-23 09:51:43 +00:00
hjk
7950a038b4 Merge remote-tracking branch 'origin/8.0'
Change-Id: I1dc664137eeecb7dd69f29af7a08164683d51077
2022-08-03 17:51:42 +02:00
David Schulz
5aa987b6a5 LanguageClient: fix outline focus
Setting a focus proxy to the outline widget makes sure the tree view
gets the focus whenever the oultine widget gets focus, so after opening
the outline the user can directly use navigation keys to move the
selection in the outline.

Fixes: QTCREATORBUG-27595
Change-Id: I0771c99ccf5aa334f45065d58366b53f53bf75a5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-08-03 09:54:27 +00:00
Jarek Kobus
e32ebe2146 Drop Qt5: Various plugins: Get rid of QOverload
Change-Id: I4913044f8897fd3449dbb537e4af6785eb3ad447
Reviewed-by: hjk <hjk@qt.io>
2022-07-20 13:52:38 +00:00
David Schulz
61e291688f LanguageClient: outline drag support
Fixes: QTCREATORBUG-27502
Change-Id: If5b8226c03886fb7c050c9d99941c9942ef47593
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-06-29 09:16:33 +00:00
David Schulz
b20ffaa109 LanguageClient: sort outline items
The order we get from the server might not be in the order of appearance
in the document.

Fixes: QTCREATORBUG-4346
Change-Id: I0badba7fd40619b2aa20a81b6a86b43dc9e6a1b1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-06-29 04:39:43 +00:00
David Schulz
047a955bac LanguageClient: fix sync with in outline widget
Fixes: QTCREATORBUG-27595
Change-Id: Id5404b90151519baff0024ad3eaca7d2b0a236b0
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-06-07 10:33:28 +00:00
David Schulz
7c86d1a195 LanguageClient: pimpl Client and cleanup includes
Change-Id: I653861e29baeaddcbcd21a5e738be6bd85514617
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-05-23 11:58:09 +00:00
Jarek Kobus
cc2146f591 Compile fix
Amends 176dbff127

Change-Id: I86fb87b9dc1848124f7f04995407ba78e4040b15
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2022-05-02 14:41:20 +00:00
Eike Ziller
1b7295514c Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/languageclient/languageclientoutline.cpp

Change-Id: I106fbde6467818368a8358d612d793313cad27e6
2022-05-02 15:06:08 +02:00
David Schulz
176dbff127 LanguageClient: support sorting outline combo box items
(cherry picked from commit 505358cb82)
Change-Id: I793700e770c830b729d0e8780fc4cbac79c01c0f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-05-02 04:44:35 +00:00
David Schulz
8245ed30ae LanguageClient: support sorting outline widget items
(cherry picked from commit 46a012bc11)
Change-Id: Iead37c07f09c2f961d506caef76562fb1b3dc308
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-05-02 04:43:43 +00:00
David Schulz
4661a4946d LanguageClient: select innermost outline widget item
Reuse the code that selects the innermost item in the outline combobox
also in the widget so the behavior is consistent.

(cherry picked from commit b97204ebb6)
Change-Id: Ie7c32ba4e6c5cbdd608da207e515c737e3bd91e6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-05-02 04:31:40 +00:00
Eike Ziller
f562ebf239 Mimetypes: Make implementation switchable between new and old
- configure with QTC_USE_NEW_MIMEDATABASE to switch to the new one in
  utils/mimetypes2/
- added utils/mimeutils.h header for the Qt Creator specific static
  wrappers, that also includes the "public" headers for MimeType et al
  from the new or old implementation, depending on configuration
- change all utils/mimetypes/ includes to utils/mimeutils.h
- move the implementation for the wrappers to
  utils/mimetypes(2)/mimeutils.cpp
- also move the MimeDatabase declaration in the "old" implementation
  back to utils/mimetypes/mimedatabase.h

Change-Id: Ie8de229c035d6cd9a5e4739dc0fa78d9c17228e3
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-02-25 07:19:58 +00:00
David Schulz
505358cb82 LanguageClient: support sorting outline combo box items
Fixes: QTCREATORBUG-26976
Change-Id: I6ec31072629c62a007bc27381f4adba597307057
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-02-23 06:54:33 +00:00
David Schulz
46a012bc11 LanguageClient: support sorting outline widget items
Change-Id: Idbe10ef1117aa2a62dd97aeff56da9978f9baa6b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-02-23 06:54:28 +00:00
David Schulz
b97204ebb6 LanguageClient: select innermost outline widget item
Reuse the code that selects the innermost item in the outline combobox
also in the widget so the behavior is consistent.

Change-Id: I8a4758296d2d44294e2b1e11b6bb18acca2c7e32
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-02-23 06:21:02 +00:00
Eike Ziller
fcb8d3b2a4 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp

Change-Id: Icda34067bb89d066a3e7eb47f8cca1d62dc3ae0d
2022-02-11 11:20:13 +01:00
Alessandro Portale
d61069b90f LanguageClient: Prevent extra frame border around outline view
For consistency with other views.

Change-Id: I3d495a3bd037fe917c99bf5e9916651ca48c03fd
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2022-02-10 07:06:15 +00:00
David Schulz
48076ce617 LanguageClient: pass BaseTextEditor to outline generator
Change-Id: Id0e123f5614f3884bf3beaeafefd0ccbd1192d55
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-02-04 11:42:25 +00:00
David Schulz
348652dc26 LanguageClient: move document symbol support check to client
Used there to prevent requesting document symbols from server that do
not support these requests.

Change-Id: Icca64c41415ba7098c769854823431fb05e5ce1d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-02-04 11:41:14 +00:00
David Schulz
f681296484 LanguageClient: select the innermost item in editor outline
When multiple items in the editor outline match the current cursor
select the inner most item.

Fixes: QTCREATORBUG-26509
Change-Id: Ib4ced177059e3a9914ace35e4cdc34959719091a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-11-26 10:51:32 +00:00
Christian Kandeler
bcfe229f8b ClangCodeModel: Get document symbols immediately
... when doing a decl/def switch via clangd.
The delay is fine for e.g. populating the outline, but shouldn't be used
when dealing with explicit user requests.

Change-Id: I0350ed6daf8220ec3b702a3876fbf0f726da8a67
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-09-16 09:09:27 +00:00
David Schulz
5b18d1efa7 LanguageClient: update outline after document
Update the outline sidebar widget after document changes are send to the
server like in the outline combobox in:

Amends ed199da1df

Change-Id: Iab58c0712a1c489576ed25a9b7e28f6f01e65946
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-07-12 05:05:43 +00:00
David Schulz
ed199da1df LanguageClient: update outline after document
Do not react on documents contents changes, but postpone the document
symbol request after these document changes were send to the server.

Change-Id: I43ec8f832c6a1fa6471146a5ec6e3e9223b02c91
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-07-08 11:14:53 +00:00
Christian Kandeler
c0a44be27b ClangCodeModel: Provide outline via clangd
Note that we used to encode the information about symbol visibility and
static-ness in the icons, which we can't do anymore, because clangd does
not provide this information.
On the upside, this change likely fixes a ton of bugs, as our own outline
was rather "quirky".

Change-Id: I099f11ec4e3c6f52cd461fb43080bbdde3bed5e5
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-07-01 08:36:20 +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
7521334261 LSP: support WorkDoneProgressOptions in server capabilities
These options indicate whether a server provides extra messages to track
the status of specific requests.

Change-Id: I3fb78f7fa7144a5a9418b32cb5b33d55b668c484
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-02-15 13:19:56 +00:00
Christian Stenger
0950940c35 LanguageClient: Improve outline
For non-hierarchical symbols probably no difference,
but language servers providing hierarchical document
symbols will benefit.

Change-Id: Icab7ac74a7780ee72c556955867a0ad7da3d8a02
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-07-30 04:56:20 +00:00
Alexis Murzeau
9ca930554f LSP: fix outline's selected item when writing
When receiving textDocument/documentSymbol or
textDocument/symbolInformation, the outline widget and the outline
combobox is cleared and updated with received symbols.
This causes the selected index to become the first item of the list when
writing text.

Fix the issue by updating the selected index after having updated the
outline widget and outline combobox.

Change-Id: I52541940f8a979cbf130da4383db48c470fc94e1
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-04-29 19:36:24 +00:00
David Schulz
b718f47893 LanguageClient: Request symbols in outline combo box constructor
Change-Id: Ib7bc4f828b6e3abc4344ff96b7561015ac0cf66f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-03-02 10:07:44 +00:00
David Schulz
c032b302ad LanguageClient: outline combo box for editor toolbar
Fixes: QTCREATORBUG-21916
Change-Id: Ia4e1711f0f5e67222e4f5274792820917f4114db
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-31 08:41:26 +00:00
David Schulz
f0ad5813b9 LanguageClient: more FileName to FilePath renaming
Change-Id: I803211d462b442b6881a02e870d2cd816675e0d9
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-09-17 08:15:40 +00:00
David Schulz
332031d677 LanguageClient: open a document in just one client
Also show a menu when triggering the language client toolbar button that
allows you to manage and switch between different language clients. The
default language server used to open a specific file type is determined
by the order of the servers inside the settings.

Change-Id: Ib1b21dd2c04d4559f538705e6ba229af043e02ae
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-09-09 13:29:33 +00:00
Sona Kurazyan
8e31932c29 Remove usages of deprecated APIs of QLayout
Replaced:
  QLayout::setMargin() -> QLayout::setContentsMargins()
  QLayout::margin() -> QLayout::getContentsMargins()

Task-number: QTBUG-76491
Change-Id: If28ef6910b3afe5d04e4746b74f9362a3e3b3c8e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-02 13:01:07 +00:00
Christian Stenger
4de9d8b2f6 LanguageClient: Ensure scrolling to selected outline item
Change-Id: I513c1d3412723c00282b0dd7e3f181c92edb674b
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-05-17 11:36:14 +00:00
David Schulz
d2030346f2 LanguageClient: update outline after document changes
Change-Id: I45b9107ccf812582a6138b469ded57e978bce267
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-05-17 10:26:12 +00:00
David Schulz
69e880c050 LanguageClient: add current document locator filter
Change-Id: I20442a254e4e016088b2da845d87af6e9f836731
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-04-30 05:19:31 +00:00
David Schulz
b79eabd4d2 LanguageClient: add cache for document symbols
Change-Id: Ia4c4061258c74d839edbd472c2087be74ac30113
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-04-25 10:54:23 +00:00
David Schulz
93ea656821 LSP: rename BaseClient -> Client
Since BaseClient isn't part of an inheritance hirarchie any more the
Base doesn't make sense now.

Change-Id: I69200b19a22e5a04079e5289a02234af4f56a1bd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-02-04 09:43:22 +00:00
David Schulz
0a8a4bad7e LSP: add outline support
Fixes: QTCREATORBUG-21573
Change-Id: If579715c84210eb80d258ec944e00f1fac1badbe
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-01-10 07:26:08 +00:00