- Jan 19, 2016
-
-
Tobias Hunger authored
* Update files in src/plugins Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22 Reviewed-by:
Tobias Hunger <tobias.hunger@theqtcompany.com>
-
- Jan 13, 2016
-
-
Marco Bubke authored
Also extracting inline HeaderPath class and change projects list in vector because the size is larger than a pointer. Change-Id: I885fdff3fe9bccc877634d1615249755f5b674fd Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Dec 16, 2015
-
-
Nikolai Kosjar authored
...nowadays we only need the working copy. Change-Id: I30924b3c5dc68b428d6c10f6ba015b0640b476d2 Reviewed-by:
Marco Bubke <marco.bubke@theqtcompany.com>
-
Nikolai Kosjar authored
Change-Id: I0ba340dcf0ee23e61588f17262d07e7088751836 Reviewed-by:
Marco Bubke <marco.bubke@theqtcompany.com>
-
- Dec 15, 2015
-
-
Nikolai Kosjar authored
...so the built-in parser can handle them. Change-Id: Iff69638f8939c3c4dced99699a3357dd94b23c71 Task-number: QTCREATORBUG-15431 Reviewed-by:
Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-
- Sep 02, 2015
-
-
Nikolai Kosjar authored
Fix use-after-free for the following case: 1. Open an editor 2. Trigger a long processing completion (e.g. simulate with QThread::msleep in CppCompletionAssistInterface::getCppSpecifics) 3. ...and immediately close the editor (e.g. with Ctrl+W) 4. Wait until it crashes. The completion thread relied on the BuiltinEditorDocumentParser object, which is deleted once the editor is closed. Fixed by sharing the ownership of that object between the *EditorDocumentProcessor and the completion assist interface. This case came up when doing tests for the bug report below. Task-number: QTCREATORBUG-14991 Change-Id: I0b009229e68fc6b7838740858cdc41a32403fe6f Reviewed-by:
David Schulz <david.schulz@theqtcompany.com>
-
- Jul 10, 2015
-
-
Nikolai Kosjar authored
This is unsafe. Change-Id: I8ac075a7289afa0d84785e37b1325d186a153000 Reviewed-by:
Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-
Nikolai Kosjar authored
...so derived classes are freed from doing this. Change-Id: I73f3eca54be14cfd6542a466f0e9c024457bef07 Reviewed-by:
Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-
Nikolai Kosjar authored
Among others, BaseEditorDocumentParser::projectPart() was a blocking operation in case the parser was running. This led to noticeable GUI freezes for the ClangCodeModel since the function was called from the main thread. Rework *EditorDocumentParser to clearly separate the configuration data (input) from the actual object state. Querying/setting configuration or (last) state does not block anymore. update() is supposed to get the necessary configuration and the last state at the beginning and to set the new state at end. Change-Id: Ib4b534fa6ff373c3059826726b3f10ece95acc21 Reviewed-by:
Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-
Nikolai Kosjar authored
...and rename to "determineProjectPart". This is in preparation for a follow-up change. determineProjectPart() should not set any state. Change-Id: Iad7be8638fd97a79a4227a944896ac9af0a36862 Reviewed-by:
Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-
- Feb 20, 2015
-
-
Orgad Shaneh authored
Task-number: QTCREATORBUG-8007 Change-Id: Ic96aaa433442812a99bac9d16bb9124d66762e8c Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Jan 16, 2015
-
-
Eike Ziller authored
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by:
Alessandro Portale <alessandro.portale@digia.com>
-
- Dec 17, 2014
-
-
Erik Verbruggen authored
... by keying on Utils::FileName Task-number: QTCREATORBUG-12390 Change-Id: Ia98afb5a9160a7fd9225a2f9e02539ff3c35ae86 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Sep 19, 2014
-
-
hjk authored
Replace the CppModelManagerInterface/derived CppModelManager combo by a more common CppModelManager/CppModelManagerPrivate pimpl pattern. Change-Id: Ia4582845ed94d5ef60b8571bab9b2260c6290287 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
hjk authored
It logically depends on the Snapshot and has a related lifetime. Keeping it in the Snapshot avoids some code compelxity. Change-Id: I24ee4483b44d9b0d7f2e4d494ae7ea624b949f9c Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Aug 29, 2014
-
-
Nikolai Kosjar authored
...so that SemanticInfoUpdater does not depend anymore on the EditorDocumentParser. Accessing the snapshot was a blocking operation that delayed the semantic info update longer than actually needed. Change-Id: I348d22ef83ab310d4319b2e8b9678fe90ee24d6a Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Aug 25, 2014
-
-
Nikolai Kosjar authored
This mainly takes CppEditorSupport apart. * Parsing is now invoked by CPPEditorDocument itself by listening to QTextDocument::contentsChanged(). * Upon construction and destruction CPPEditorDocument creates and deletes an EditorDocumentHandle for (un)registration in the model manager. This handle provides everything to generate the working copy and to access the editor document processor. * A CPPEditorDocument owns a BaseEditorDocumentProcessor instance that controls parsing, semantic info recalculation and the semantic highlighting for the document. This is more or less what is left from CppEditorSupport and can be considered as the backend of a CPPEditorDocument. CPPEditorDocument itself is quite small. * BuiltinEditorDocumentProcessor and ClangEditorDocumentProcessor derive from BaseEditorDocumentProcessor and implement the gaps. * Since the semantic info calculation was bound to the widget, it also calculated the local uses, which depend on the cursor position. This calculation got moved into the extracted class UseSeletionsUpdater in the cppeditor plugin, which is run once the cursor position changes or the semantic info document is updated. * Some more logic got extracted: - SemanticInfoUpdater (logic was in CppEditorSupport) - SemanticHighlighter (logic was in CppEditorSupport) * The *Parser and *Processor classes can be easily accessed by the static function get(). * CppHighlightingSupport is gone since it turned out to be useless. * The editor dependency in CompletionAssistProviders is gone since we actually only need the file path now. Change-Id: I49d3a7bd138c5ed9620123e34480772535156508 Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Aug 20, 2014
-
-
Nikolai Kosjar authored
Change-Id: I554b5e9e3f1ef7c167fa45b5cd0c230fdf63073b Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
Nikolai Kosjar authored
Change-Id: If89e81eec6d600d3d39cc09203cf434d0768c1b4 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
Nikolai Kosjar authored
Change-Id: I447acf28849bffb52c1e6b6eafdde221ec0b179e Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Aug 07, 2014
-
-
Nikolai Kosjar authored
Adding QTC_FIND_ERRORS_INDEXING=1 to the run environment will Creator force to do some "extended indexing" in order to find bugs: 1) The project files are parsed as if they would be opened in an editor. That is, parsing happens as precisely as possible, based on the ProjectPart information. 2) Symbols are looked up by invoking CheckSymbols, the backend of the semantic highlighter. 3) A "Task List File" (*.tasks) will be written with all diagnostic messages. This special indexing mode is meant for testing purposes. E.g. it can be run nightly on some bigger projects to find regressions. Note that Qt Creator will quit exactly after the first time some source files are indexed. E.g. that will happen if you open a file manually or if you open a new unconfigured project. Therefore it's required to configure projects as needed before invoking in this indexing mode. Change-Id: If25b83e67d24df9e28e107cb062f21cbf3b4c643 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Jul 24, 2014
-
-
Nikolai Kosjar authored
So far the pre-compiled headers were processed (thus defines from those headers were visible), but the actual includes for the documents were not added, which is necessary for lookup/completion. Note that this will be only done if pre-compiled headers are not ignored (Options > C++ > Code Model > [] Ignore pre-compiled headers). Change-Id: I54a8e6b00597af164d958e3e9f2a1075ea187788 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Jul 04, 2014
-
-
Erik Verbruggen authored
Instead of having two lists of paths, now only one list is used where both include paths and framework paths can be mixed. This reflects the way the compiler is invoked, and retains the (correct) search order. Task-number: QTCREATORBUG-11599 Change-Id: I373953e3e305df5b7a0d10920e12d146584adf9f Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jun 18, 2014
-
-
Erik Verbruggen authored
Change-Id: Iac6c9fe1ada27ac0d96417e490cc5723e6969541 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jun 04, 2014
-
-
Nikolai Kosjar authored
...since it does quite a bit more than only preprocessing, as the name suggests. We use that class to process source files in general. The output is not a preprocessed source, but a set of CPlusPlus::Documents with symbols. Change-Id: I787d0f22f9f042ddf0c99e8c2f0bdb9aa7001735 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Feb 27, 2014
-
-
Erik Verbruggen authored
This field is used by the generic project manager which passes the ".config" file in it. The advantage is that both the SnapshotUpdater and the clang code model do not need to do anything smart, but can pass it directly to the preprocessor. Task-number: QTCREATORBUG-11390 Change-Id: I44fc7b20afd28fb59608412f2cce86af6f7e7d6b Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jan 08, 2014
-
-
Robert Loehning authored
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by:
Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Dec 10, 2013
-
-
Erik Verbruggen authored
So we can ignore possibly problematic toolchain-defines, while can still unconditionally apply project-defines. Change-Id: I7cb96f35a963d080011fe888ef71bfc098dd33ef Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Nov 12, 2013
-
-
Erik Verbruggen authored
- fix memory leak in find-usages - do not retain snapshot in search history - when an editor is invisible for more than 2 minutes, release the backing snapshot Retaining snapshots will retain their documents, and if done for too long, the memory consumption might grow. This is especially the case when switching to a different kit (Qt version): in that case, the new versions of headers will be indexed, while the old ones stay around. Task-number: QTCREATORBUG-5583 Task-number: QTCREATORBUG-7645 Task-number: QTCREATORBUG-9842 Change-Id: I045eda1565e0a3fa702baeffaab9c12662f90289 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Oct 23, 2013
-
-
Erik Verbruggen authored
Task-number: QTCREATORBUG-10280 Change-Id: Ibc6ffeedb97a31a35a2d1f00625506f844692e16 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Oct 22, 2013
-
-
Nikolai Kosjar authored
... when invoked on a macro that is defined inside that dialog. Change-Id: I419c6675d70cfb8dd174f6a33f502b4c584baa3a Reviewed-by:
David Schulz <david.schulz@digia.com>
-
- Oct 09, 2013
-
-
Nikolai Kosjar authored
Task-number: QTCREATORBUG-10282 Change-Id: Ia58359f774c72260956caecd5f63d44b612d1451 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Oct 01, 2013
-
-
Erik Verbruggen authored
Change-Id: Ic3578bd98c2f1aefcaef61f5b993dc9a67ca5a77 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Erik Verbruggen authored
The UI side will come in another commit. Change-Id: I1038a438587fe4cef70408f7f627d08837fc192d Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Erik Verbruggen authored
Task-number: QTCREATORBUG-476 Change-Id: I82ed92acdcda551d2c6a9ca221832ac20117a08f Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Erik Verbruggen authored
If two files from different (sub-)projects include the same header file, and the defined macros differ for both files, the header file will be parsed with only the appropriate macros for the including file. Task-number: QTCREATORBUG-9802 Task-number: QTCREATORBUG-1249 Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-