Currently we are just using the first that is found. Which could lead
to unexpected behavior. Adjust the API to make clear just one assistant
is supported per editor type.
Change-Id: I711e66b4c5c5f347118357a8bafa0ffc6d650f7e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Use case to reproduce:
1. Open some bigger project, e.g. qtcreator.pro
2. As soon as "Parsing C/C++ files" is reported, add a character to
qmake's additional arguments in project mode (indexing should not be
finished at this point).
3. The indexing gets canceled.
==> ...but reindexing is not triggered.
Fix by checking whether the future was canceled.
Task-number: QTCREATORBUG-16134
Change-Id: I520c6a64a6adc1cb04cafb5e0aa56c8bf41d7b14
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This leads to the "-x c++" arguments to libclang for these file types
and thus avoids crashes of libclang 3.6.
Task-number: QTCREATORBUG-16140
Change-Id: I6141615a1b0b7ad92d7151ad58c304eaf99fb4f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Similar to QTC_CHECK, but has the boolean result of the condition as
value. Use it in the form
if (QTC_GUARD(condition)) { ... }
Replace some occurrences of
QTC_CHECK(condition)
if (condition) { .... }
Change-Id: I8eea02f869eb7a183dfbf4810dace48097880519
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
Problematic use case was:
1. Go to projects mode, select "Clang Code Model"
2. Click "Copy...", click "OK" and add e.g. " -Wbla"
3. Click "Remove"
==> The configuration is reset (combobox), but the warning options are
not (" -Wbla" is still there).
Change-Id: Ifc445a3fa0e3b3191915cf7bca220f4bef848069
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
For some reason, clang 3.8.0 on Windows does not enable exceptions anymore,
which leads to parse errors in MSVC headers (reported upstream [1]).
With this change, we can finally parse main/mainwindow.cpp of a Qt Widgets
Application for a MSVC2015 Kit and libclang 3.8.0 without any error.
[1] https://llvm.org/bugs/show_bug.cgi?id=27324
Change-Id: I532ad4852a06318baf083d363378bc577b3c4309
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This applies the following change for the clang code model, too.
commit d13d179524
Clang Static Analyzer: Workaround analyzing MSVC2015 projects with clang 3.8.0 II
Change-Id: Ia229d7e8b24c2e1c0a83d9a53c623ea1f79c4a06
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Infer the version from the _MSC_FULL_VER macro, so it cannot get out of sync
with that.
Adapt the analyzer to do the same.
Based on
commit daf08d8702
Clang Static Analyzer: Workaround analyzing MSVC2015 projects with clang 3.8.0
Change-Id: I9d34abdbe2c83fe271eadd8d051caad43aca6772
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
We will need the id in a follow-up change to match the corresponding project
part.
Change-Id: Id7686503f96fb238c9fa9857e7fde5cf94b0bcc7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
As for the analyzer, this makes us independent of the default triple and will
most likely reduce the maintenance - e.g. the target implies certain internal
command line arguments, we will profit from added ones.
This fixes parsing of mingw headers with the clang code model.
Change-Id: I722b981125a80fac5f62a7af40a83ecdd7bbf811
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This avoids multiple instatiations and reloading of the same image files.
Change-Id: I4d0bb955e23c1cb817671c25bff4e74fb7b3d0f4
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
We will update them, so having them sorted is better for finding
duplicates.
Change-Id: I1159ed1f1fce1275d630935a297e85787947ba61
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Braces all over the place since the tool does not respect the coding
style and cppdoxygen.cpp was changed with regard to the braces coding
style in the meantime:
commit 29a93998df
Remove braces for single lines of conditions
Next step is to use the tool for updating the qdoc/doxygen keywords.
Change-Id: Ib95b5991ebd794d144848ae052fa7f28a6d10850
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
There are two versions of startOfOperator:
* InternalCppCompletionAssistProcessor::startOfOperator
* ClangCompletionAssistProcessor::startOfOperator
The latter started as a copy of the former, but the former got some bug
fixes in the meantime. Adjust both versions to each other, so it's easy
to diff them and to extract the duplication in a follow-up change.
Change-Id: Icf48386bf1ad0fa473bec476c5412be9b1890139
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
For assist processors that run in a worker thread, the QTextDocument is
recreated with AssistInterface::prepareForAsyncUse and
AssistInterface::recreateTextDocument.
Since some assist processors (C++, QmlJS) rely on the user states of the
QTextBlocks, these must be recreated, too.
In the referenced bug report the lexer state (user state) of the
previous QTextBlock was invalid and thus the "Doxygen tag completion"
failed.
Task-number: QTCREATORBUG-9373
Change-Id: If668e98aa6f9fe9fc107c7476fc831e92a0d7572
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
There are three cases that must be handled:
1. Completion in C++ style comment
2. Completion in first line of a C style comment
3. Completion in non-first line of a C style comment
This change fixes case 1 + 2. Case 3 will be addressed in a follow-up
change, same goes for the duplication.
Task-number: QTCREATORBUG-15143
Change-Id: I449711f965ddcbbe6158870a8a5ae33218e0d238
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
in places where we do not need it
Change-Id: Ibf35f8144da859fffa3e0a7b6bb262284ec2292a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Have the mimetypes and their registration in the same plugin
as their constants.
Change-Id: I350ab4eb0da3941ca9282ff98d8d0e158b568ef3
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Add a new constant for qdoc mimetype to cpptoolsconstants.
Make the CppEditor handle qdoc mimetype.
This change has one user user visible effect:
Adding qdoc files to a qmake project will no longer put those files
into SOURCES where qmake will then try to compile them. They will show
up in "Other Files" instead.
Task-number: QTCREATORBUG-15872
Change-Id: Ibbf9af0a84fab59138f6b9ab41f1bba737b455c2
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
and make sure there are not too many of these threads
running at any time. This stops the massive process
startup when loading a project with many UI files, etc.
Task-number: QTCREATORBUG-15795
Change-Id: Icfcddd80d04e36b61ecafbbefe5a1a8b7ea02ec6
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
...at least for object-like macros. This handles the common case where a
macro before the function signature annotates the DLL import/export.
Task-number: QTCREATORBUG-15819
Change-Id: I79f22508188019402fb7345222408aaf90106f20
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
A warning configuration is a list of command line (warning) options for
libclang. Three non-editable built-in configurations are provided by
default. The user can copy a configuration to customize it.
This is still a global setting and it changes take effect after
re-opening a document. Both issues will be addressed in follow-up
changes.
Change-Id: I86667d7dc39ad31b88666454220e6da563797740
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Implement selection expanding / shrinking, that is aware of C++
semantics, thus giving smart selection changing.
Change-Id: I1386a20597fa6bb85c3aa0d8ddfb87cdb3fd7c38
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
...of resolved files.
This is an issue when first a misconfigured project (missing include
paths) is indexed. E.g. then <QtTest> resolves to "", which is inserted
into the cache. Resolving the same header for subsequent projects has
returned the empty string although their header paths were correct.
This led to wrong includes of documents from the global snapshot.
Task-number: QTCREATORBUG-15736
Change-Id: Ia3e3a06775a50dd75bc62a46d674c7b46a1c5965
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
We already had this workarounded, but it got lost in the refactorings.
Task-number: QTCREATORBUG-12067
Change-Id: Ie01f9d41f25d17d1b595204748634bc87ef44378
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
...by removing the unneeded ProjectFileAdder. Its job is already done
earlier, so use the results.
Change-Id: Ifd865e6203ed6162a0d852c2128fb6d30208a52b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Without this, too many threads are spawned, and loading a project takes
forever.
Change-Id: I3c22557ddd7bfb0c70f7b089c276432e3b003097
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Avoid conversions when they're not needed.
Change-Id: I7e996bc6e87be4327d75f0d743ff2de38d6ccc32
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
...at the end of the line, just like for the "Apply Function Signature
Changes" refactor action.
* Hovering the light bulb shows the tooltip "Inspect available fixits".
* Clicking the light bulb leads to the refactoring menu, as if the user
hit Alt+Return.
Change-Id: Iaf7b3734c43e21fc28e6b0658f517d98858c0e0c
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Allow for different extra compilers which may get called to generate
additional code for the code model. The build system is expected to
know what files are generated from which source file and the extra
compilers know how to generate the content of those files, without
touching the build directory. the uic adapter is refactored to be
the first such extra compiler.
The extra compiler is run when an editor for its source document
loses focus, or after a timeout of 1s when the source document has
been changed.
Change-Id: I13c110c61120c812f02639a3684144daf8979b37
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>