Commit Graph

1785 Commits

Author SHA1 Message Date
Nikolai Kosjar
cb3c7538be CppTools: Fix flaky test_cpplocatorfilters_CppLocatorFilter
The GenericProjectManager tests left over some state in CppModelManager.

Change-Id: I3f5c5bf27b9443e6753eb6c24114e2e5b99e7372
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-19 10:25:03 +01:00
Nikolai Kosjar
b94b7b3ee6 CppTools: Fix test_modelmanager_extraeditorsupport_uiFiles
The test was broken since the QmakeProject was changed to work
asynchronously.

FAIL!  : CppTools::Internal::CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles() Compared values are not the same
   Actual   (workingCopy.size()): 1
   Expected (2)                 : 2

Change-Id: I6f7d05fb70af3def5fc371a9783b606309686e32
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-19 10:24:55 +01:00
Nikolai Kosjar
ef403a4515 GenericProjectManager: Tests: Clean up
* Get rid of CppModelManagerHelper.
  Now we simply use CppModelManager::projectInfo(someProject).isValid() to
  test whether a project is loaded.

* Copy project data to temporary dir before opening the projects.
  This avoids creating *.user files in the Qt Creator source tree and
  annoying pop ups on test start.

Change-Id: I1a57441ca2099beb6bb96cf620390d669fb47601
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2014-12-19 10:24:48 +01:00
Nikolai Kosjar
fb8e3b9963 CppTools: Clean up commentssettings
Change-Id: I397195a3e6d8b40a55d2a68429daf6c812f52da2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-19 10:24:26 +01:00
Nikolai Kosjar
205170a9e5 CppTools: Create ProjectInfos explicitly
...instead of going through CppModelManager::projectInfo().

Now CppModelManager::projectInfo() returns an invalid ProjectInfo in
case there is no valid data for the given Project.

Change-Id: I11908bf2ddf865b1d3d71ff176eaf4139292b21c
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-19 10:16:37 +01:00
Eike Ziller
b2bb7ea2da Locator: Shuffle the priorities a bit
Introduce a "Highest" priority for the filters-filter. Keep "Low"
available for lower priority than the default all projects and current
project filter.

Change-Id: I9152d2e6c64b65478416cee18183bce1240ee187
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2014-12-18 12:30:47 +01:00
Erik Verbruggen
7d377850d0 C++: handle case-insensitive file names for project files.
... by keying on Utils::FileName.

Task-number: QTCREATORBUG-12390
Change-Id: Ib99eefcf3440d4383f624a614a3093f427efffbd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-12-18 11:54:12 +01:00
Erik Verbruggen
a48adcf9be C++: handle case-insensitive file names in the CPlusPlus::Snapshot
... by keying on Utils::FileName

Task-number: QTCREATORBUG-12390
Change-Id: Ia98afb5a9160a7fd9225a2f9e02539ff3c35ae86
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-12-17 14:32:17 +01:00
Ulf Hermann
4b5d38c8cc C++: Avoid digraph "<:" in template specialization
This translates into "[" on compilers that handle digraphs.

Change-Id: Iba650d6929a1d3850018203b4f8331888ec8a257
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-12-15 17:06:05 +01:00
Erik Verbruggen
be4a030696 C++: handle case-insensitive file names in the WorkingCopy
... by keying on Utils::FileName

Task-number: QTCREATORBUG-12390
Change-Id: Ia1a59d2e422b4f92300ac6a8e0e52dd7456a6e70
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-12-15 15:58:25 +01:00
Nikolai Kosjar
e3977de08e C++: Finish gcc's include_next support
This implements the actual include_next logic and thus completes

    commit b934cc1
    C++: pass #include_next down to CppPreprocessor::tryIncludeFile

    commmit 140b502
    C++: Highlight argument to gcc's #include_next extension

Based on https://gcc.gnu.org/onlinedocs/cpp/Wrapper-Headers.html

Task-number: QTCREATORBUG-10225
Change-Id: I7eef7f5ea64a114f6d092304d32b72c55c2ce134
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-15 15:37:36 +01:00
Nikolai Kosjar
ec6c13d02c TextEditor: Make automatic completion timeout configurable
Allow to configure the timeout in the range from 0 to 500ms.

Task-number: QTCREATORBUG-13393
Change-Id: I3e421109db919ab0dd5d63b8cbb9339fce132dbb
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-15 15:24:37 +01:00
Nikolai Kosjar
65bb5856d0 CppTools: Do not append '/' to fallback header paths
...since this will confuse the completer.

Task-number: QTCREATORBUG-13567
Change-Id: I4172d433f23f3907690d4c00f92fadb68fa354e8
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2014-12-15 14:33:52 +01:00
Eike Ziller
541d00453a Merge remote-tracking branch 'origin/3.3'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/projectexplorer/projectexplorer.cpp
	src/shared/qbs

Change-Id: I6d91042bb48314d00be721099aed19feca74e0ce
2014-12-10 13:20:02 +01:00
Nikolai Kosjar
6b894b50e6 CppTools: Remove QTC_ASSERT in CppModelManager::editorDocument()
This fixes

    SOFT ASSERT: "!filePath.isEmpty()" in file
    /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppmodelmanager.cpp,
    line 467

which can be triggered by e.g. a "git show" document
(onCurrentEditorChanged does not check for an empty file path).

Change-Id: If4ed8e552069b290cb4ac93da52427b7ed2b91e8
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2014-12-03 13:07:58 +01:00
Daniel Teske
4943510b60 Completely rework currentNode/currentProject handling
Centralize the handling inside a new class ProjectTree.
React to moving focus and remove most special handling.

This properly fixes the linked task.

Task-number: QTCREATORBUG-13357
Change-Id: I6b06aa32b1e4305ec8a6d432857b302585d8734b
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2014-12-03 12:36:20 +01:00
Nikolai Kosjar
cb0d136926 CppTools: Update document on activation
...if the project was updated in the meanwhile.

If a project is updated mark invisible editor documents dirty and update
them if they get focus.

This also fixes document highlighting when restoring a session for
documents that the user "switched away" before the project info is
pushed to CppModelManager.

This completes

    CppTools: Update visible documents on project update
    commit c2eb91e053

which only takes care of visible documents.

Task-number: QTCREATORBUG-13270
Change-Id: Id445e7f509deac5d03194aecc54ce4629b7926ce
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-03 10:53:39 +01:00
Nikolai Kosjar
9cd552a165 CppTools: Do not offer pointless ")" signature completion
If "Automatically insert matching characters" is activated and '(' is
typed before the semicolon in the declaration

    int f;

we offered the ')' completion, although the ')' was already inserted.

Change-Id: Id5a50fa94c2cb7b5c4056d87028501b0b90afc73
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-12-03 10:37:24 +01:00
Eike Ziller
d341c48246 Merge remote-tracking branch 'origin/3.3' 2014-12-01 15:44:30 +01:00
Nikolai Kosjar
9ccb6b81c9 CppTools: Fix include hierarchy for clang code model
This makes the editor document snapshot accessible through
BaseEditorDocumentProcessor since we need it for the include hierarchy
if the the clang code model is activated.

Task-number: QTCREATORBUG-13553
Change-Id: I7214cc578d05fe5cad6e12b4d29fe6f840a88e8d
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-11-28 14:20:29 +01:00
Nikolai Kosjar
488bf91797 CppTools: Always check for a valid BuiltinEditorDocumentParser*
This fixes a crash if the include hierarchy sidebar is invoked with the
clang code model. BuiltinEditorDocumentParser::get(editorFilePath)
returns 0 in that case.

Task-number: QTCREATORBUG-13553
Change-Id: I9292691c8156bdaaffcac1c3864201ba8a6cbdef
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-11-28 14:20:23 +01:00
Eike Ziller
938326ef2c Merge remote-tracking branch 'origin/3.3' 2014-11-26 11:11:46 +01:00
hjk
96be6ae15f TextEditor: Shuffle some convenience functions
Remove rarely used ones, add a currentTextEditorWidget()

Change-Id: I27b97c17927c71e07dc3b489785b7f2f76eb801e
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2014-11-25 10:49:41 +01:00
Eike Ziller
a47fbb8309 Merge remote-tracking branch 'origin/3.3'
Conflicts:
	src/plugins/coreplugin/coreplugin.cpp
	src/plugins/coreplugin/themesettingswidget.cpp
	src/plugins/qbsprojectmanager/qbsprojectmanager.cpp
	src/plugins/qbsprojectmanager/qbsprojectmanager.h
	src/plugins/qmlprofiler/qml/Overview.js
	src/shared/qbs

Change-Id: Ibe92c166fc5bfbcb4d6964e50ca7298d8459d60e
2014-11-24 15:43:48 +01:00
Nikolai Kosjar
2f3e8c7981 CppTools: Remove QTC_ASSERT
A DiffEditorDocument has an empty file path.

Change-Id: If097497514afa82b1ed220a37cae410f4a81aa9a
Task-number: QTCREATORBUG-13489
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-11-24 13:28:58 +01:00
jkobus
e338e78e85 Add an explanation to the "Automatically Split Strings" feature.
Change-Id: Ie046c9db2544e22937968d6673f0813d59e2dc93
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-11-21 16:54:07 +01:00
Christian Stenger
38c08abde5 ProjectPartBuild: Fix framework paths
Task-number: QTCREATORBUG-13137
Change-Id: I71a222a4048db65db462da07726ea5d6b917da8d
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-11-20 15:06:19 +01:00
Nikolai Kosjar
beac7b9539 C++: Fix highlighting after "invalid code"
For the semantic info document we do not expand function like macros and
because of that certain macro invocations lead to invalid code that we
need to handle, e.g.:

	Q_GLOBAL_STATIC(CppTools::SymbolFinder, symbolFinder)
	class Foo {};

This change makes parsing Foo in the semantic info document successfully
again, which affects highlighting of that class.

Change-Id: I389265ac64d3f0b8b8f406d38fa58d78820b14ba
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2014-11-19 16:10:56 +01:00
Erik Verbruggen
6cfd843580 C++: Only start/stop timers from the UI thread.
Change-Id: Ib694d2aeaef3b62caf3d3624e6b1c3e643197c2d
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-11-18 11:02:24 +01:00
Eike Ziller
2d03b59f53 Merge remote-tracking branch 'origin/3.3'
Change-Id: I0ab4982e229d475b8e3575414b4bebbfea07498d
2014-11-12 12:55:10 +01:00
Christian Kandeler
9d677e3302 qbs build: Remove unneeded import statements.
The respective items are available without it.

Change-Id: Idc840cf08e7bec84f561c096afe8de25b1fb8468
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-11-10 15:45:14 +01:00
Nikolai Kosjar
e510c80c92 CppTools: Provide whether a sub project is selected for building
Analyzers can use this to rule out irrelevant (sub) projects.

Change-Id: I5a9eb66f06156f0619dc639f6f4080a8fc761ee6
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
2014-11-07 12:10:22 +01:00
Nikolai Kosjar
33359a7922 CppTools: Add API to set/query compiler call data
...and make some comparison functions public.

Change-Id: If4c9a95031dece32073ce111484a890230190688
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-07 10:27:17 +01:00
Eike Ziller
ec176b4bf4 Merge remote-tracking branch 'origin/3.3'
Change-Id: I3a8ef73222c64fb93f1d00adbea2057d2f8dcf43
2014-11-07 08:19:34 +01:00
Nikolai Kosjar
5a1ffe6f1c CppTools: Remove ProjectInfo::operator bool()
This one does not buy us much...

Change-Id: I1d6c4667c038d319d2c16166505a386653a9f066
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-06 16:45:24 +01:00
hjk
ca151d07fa CPlusPlus: Use QVector<Token> instead of QList
Better suited to avoid the indirection (sizeof(Token) > sizeof(void *))

Change-Id: Ia5f42781e720ef6aa8161f8f81ae8ddd8e58c837
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-11-06 16:13:58 +01:00
Eike Ziller
3f1deee5e1 Merge remote-tracking branch 'origin/3.3' 2014-11-06 12:38:37 +01:00
Nikolai Kosjar
d23d81f951 CppTools: Locator: Do not index *.moc files
The symbols of these files do not provide much value.

Change-Id: Ie81b12dc795c068742600e272807f9e6a87609ea
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
2014-11-05 12:58:43 +01:00
lemelisk
b72a9dd239 CppTools: Fix auto-indent for break in switch statement
Change-Id: I954acb3acc1d7848517a079ffdd254b50052b67d
Task-number: QTCREATORBUG-13155
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-11-04 16:18:31 +01:00
Nikolai Kosjar
9cddeef036 CppTools: Make use of QLoggingCategory
...for document processing and highlighting.

Change-Id: I31d42a5a5010260643ec76688080fd14a486f7e3
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-11-03 12:11:01 +01:00
hjk
a439483d70 Use QFileInfo::exist(f) instead of QFileInfo(f).exists() if possible
Faster.

Change-Id: I91aa67462e11ff3258600d7f158de79942d0dc81
Reviewed-by: Marc Reilly <marc.reilly@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-11-03 09:31:28 +01:00
Nikolai Kosjar
c183386144 CppTools: Remove un-used function
Change-Id: Ib346359487cb06c0fc95ff5796e9dd6f220b9d16
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-30 10:03:31 +01:00
Francois Ferrand
7e544073c0 CppTools: restore C++ diagnostics messages.
The messages were computed, but not added to the document.

Change-Id: Ibeea802cf9f291ad14b2fe2e9d2a285c927a4449
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-10-23 13:39:02 +02:00
Francois Ferrand
acf79d7fc6 CppTools: Fix C++ diagnostics hightlighting.
When the length of the highlight is specified, the code does not properly
check for end of line. This causes some lines to be highlighted when only
the last word was supposed to be.

For example, with this code:
   1: void foo(int x);
   2: int a = foo
   3:            ();
   4: int b = foo(
   5:             );
line 2 and 4 used to be completely highlighted (underlined), instead of
just 'foo'.

Change-Id: I40e895410ce0f38bad0adbccd509fd2943c93c97
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2014-10-23 10:51:54 +02:00
Nikolai Kosjar
4fc5eeb97b CppTools: Remove last traces of CppEditorSupport
Superseded by commit

    commit 89bd4ee3c4
    C++: Base parsing on editor document instead of widget

Change-Id: Iffa6e47bddc0fa3de1eab9b65fe8f711520d2d7f
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-10-21 13:33:24 +02:00
Nikolai Kosjar
f07b876a93 Move some functions from ClangCodeModel to CppTools
Most of the functions were quite generic and not specific to clang.

Change-Id: I160cfeb7eca5b69ad6a8932a4f76db5bf5c1d42d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-10-20 13:11:08 +02:00
Francois Ferrand
32b960db47 C++: support smart splitting of strings.
If 'enter' is pressed while the cursor is in the middle of a string,
the string is ended at the current cursor position, and a new string
is started on the next line.  This makes it very easy to split a long
string onto multiple lines.

In addition, Shift+Enter insert an escape in the string, to continue the
string at the beginning of next line.

A setting can be used to enable or disable this option.

Change-Id: Ia5f3c6989fc00d40d06bc4fe1182fe8b1318f565
Reviewed-by: Francois Ferrand <thetypz@gmail.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-10-15 15:59:18 +02:00
Eike Ziller
9c7019f0b2 License update.
Change-Id: I0acde2c3b995693de682679471f03af85bdd0a61
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-15 15:19:55 +02:00
Nikolai Kosjar
0c107b33d1 CppTools: Do not re-use semantic document if dependencies changed
Changes from the current editor snapshot to the previous one represent
dependency changes (include paths, defines, ...) for the document. Use
this to stop the semantic info updater from re-using the previous
document for highlighthing.

Task-number: QTCREATORBUG-12267
Change-Id: I91308700122ded7c458c267b685c00b966874a64
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-10-15 10:33:27 +02:00
Nikolai Kosjar
756fba0dfb CppTools: Use mutex when accessing m_fileToProjectParts
projectPartFromDependencies() is also called from another thread.

Change-Id: Ic1319569d1b9b934a1be0916caa2e5bd68dce4fb
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-10-15 10:09:26 +02:00