Instead of describing icons via file name or in the themed icons case
via
a string that is a list of mask/color pairs, we have now a class for it.
Icons are now listed in per-plugin *icons.h headers.
RunControl::m_icon was The only place left where an icon property was in
fact a string. This patch changes that member to be a Utils::Icon.
Change-Id: Ibcfa8bb25e6d2e330c567ee7ccc0b97ead603177
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Prevent libclang from using any builtin includes paths or any standard system
directories. The project manager provides us all the necessary information.
Task-number: QTCREATORBUG-15345
Change-Id: I70e2dafea8d049a9b7a32b24ce2d4ce3dac2cd3b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Related to
commit c47079f97f7d42db0c581525a2ce6fddbc0995f2
Clang: Activate the code model with a check box
Change-Id: Ief11768ba0dd27788032e2dd3ad9b7ae39a8f52b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This can be used to experiment with clang options that e.g. affect
diagnostics.
Changes take effect on editor re-open.
Change-Id: Ie46d0ff085a3700a748dbcf4b94b93b0bf9c4642
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
...since it assumes a project part != 0 and does not participate in
ownership.
Change-Id: Ia9c1eca52776990576a2dac61e9144234b04c59c
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Register the translation unit and request diagnostics from the
clangbackend as soon as the project part is determined. There is no
reason to wait until the parser is finished for the highlighter.
Change-Id: Iebccbf59ebd205389462dcee97363746fb651bb2
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Provide the language option (e.g. "-x c++-header") when registering a
translation unit for the editor.
Task-number: QTCREATORBUG-14787
Change-Id: Ie06f9fdab302f1b21ba72cdb65b6aabf9f7bc04c
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* Set the category apart.
* Show only the disable option and only in debug mode.
Change-Id: If5f65f9bd04c8e37e376a9862035005f4456394a
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Fix the following use case:
* Open foo.h
* Open foo.cpp
* Change both files externally (e.g. git checkout) e.g. by adding a
function (declaration + definition)
* Confirm the reload dialog in Qt Creator
* The added function in foo.cpp gets a diagnostic that it's out of line
although foo.h is also reloaded.
TextDocument::contentsChangedWithPosition() is also emitted during a
reload. However, the revision of the document at that point is not yet
updated. This led to an out-dated copy of the unsaved files in the clang
backend.
Change-Id: I70580d32bb7a34dc43356dc05019cc18addf950e
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Same test as the first version, but without having the header open in
the editor. This one is also skipped since we can't make it reliable
without adding extra messages.
Follow up changes will improve the names of both tests and will make
them both reliable so that the can be activated again.
Change-Id: Ie3ca52e01aedd612bc07e7429dd64d92eb1a23b5
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
If an editor is changing all translation units independent of their project
part they must be updated too. So we introduce a new message to update all
translation units with the same file path.
Change-Id: I70d0ea2bbca9fa880111ff7219573e54f3277026
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diagnostics should be not computed after a file change but after creator
is requesting them. Now we wait for the dialog if the file should be
reloaded.
Change-Id: Id0d51874b95e0f8743002a91511d07e0ed47ecdc
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
File containers were generates in many places. To reduce the noise this
getters are introduced.
Change-Id: I059745c27ac2dd0515bc23b3438d6d264ba071d7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Ensure that first the editors unregister with the removed project part,
then unregister the project part.
This makes testing and following the message logs easier.
It also fixes the following race condition:
* Unload project of opened file
* Immediately close the editor before a new project part is calculated
==> The editor is closed, but the translation unit is not properly
unregistered.
Change-Id: I618930d221323435ba60ac6c051380bccc9fdaf1
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
It's actually tricky because the standard says that zero arguments should
be not possible in variadic macros but certain compilers support it and we
using it in the logging framework.
Change-Id: Ib9e1832748e8c57f149dfcfefead9618fd5e51f4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Add logging and don't send if sendMode is IgnoreSendRequests.
Change-Id: Ia3df9fd2c1c75cfec720233518401fc9df5e0017
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
If a file is reloaded it should update every translation unit.
Change-Id: Ib61d933e95fcd9fe4d32363ddc06f5edcca55e35
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
...which could lead to undesired asserts:
SOFT ASSERT: "!"Got ProjectPartsDoNotExistMessage"" in file
clangbackendipcintegration.cpp, line 184
Change-Id: If6d67b9f617394ce8f72e7e56699423d47879688
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
They are invokable by the usual means (Alt+Enter, editor's context menu
> Refactor) plus by the context menu of the editor's left margin for the
related line.
The fixit text comes directly from libclang and is thus not translated.
We modify the text slighty by stripping the diagnostic category prefix
("note:", "error:", ...) and capitalizing the first letter.
A follow-up change should properly indicate available refactorings with
a refactoring icon in the editor's left margin.
Task-number: QTCREATORBUG-14868
Change-Id: I86157c9f824d2a9dedf19087476d02ad1e6cc854
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
...by introducing ClangDiagnosticManager and the helper class
ClangDiagnosticFilter.
ClangDiagnosticManager will get more state in a follow-up change.
Change-Id: Id2c312bc897ea41ed67292b56b24dcfb7975ff4a
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Reparsing a document is expensive so we should avoid it by all means. In
this patch we prevent that the same document is send again. It isn't send
too in advance of a code completion if there was no changes before the
the completion position.
Change-Id: I0bb786ba1d4e7ce08611a518cb32f8cf8f4d0037
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
The colors are different from issus colors to give the user a better
impression.
Change-Id: I0f9bdae8d96434512851460d4eef05e94280ee8e
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
registerCurrentUnsavedFiles was misleading.
Change-Id: I5a2444d81d141ced4b8a0fae7236484c9e919d8d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>