Commit Graph

16 Commits

Author SHA1 Message Date
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