Commit Graph

1448 Commits

Author SHA1 Message Date
Nikolai Kosjar
4b99d218d5 CppEditor: Dump also merged entities if invoking CppCodeModelInspector
Change-Id: I6a167b47363fb14452bd8ba3dc9d4242d17c25b6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-26 15:57:41 +01:00
Nikolai Kosjar
25be7e087d CppEditor: Extract CodeModelInspector::Dumper
Change-Id: I58acfb2d049dd4239a3f41b0a5795bfaab7b4f2f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-26 15:57:27 +01:00
Nikolai Kosjar
0d84603c41 CodeModel(s): Unify name/values of accessed environment variables
Format: QTC_*=(1|0).

Now it's easier to change them in the Run Configuration of Qt Creator.

Change-Id: Ifc45cecb89b33a31942b4c3e2d03851a1d72d0bf
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-26 15:57:21 +01:00
Przemyslaw Gorszkowski
6bf75acac7 C++: fix support for nested anonymous class
The case when anonymous class is inside function. Fixed:
* highlighting
* completion

Task-number: QTCREATORBUG-11711
Change-Id: Ic8fc5fdfb1aed62a74bf148ab7ed449d08214dda
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-26 09:56:54 +01:00
Przemyslaw Gorszkowski
e3f5977311 C++: nested class in function
Case when nested class declaration contains object name for this class.
Example:
void fun()
{
    struct S
    {
        int i;
    } s;
    s.i;
}

Fixes:
* highlighting
* completion
* tests

Task-number: QTCREATORBUG-11710
Change-Id: I32e234f57655c388a87a199edc8be750d7bf823f
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-03-25 15:52:39 +01:00
Dave Lewis
a8c858acdd CppTools: Fix indent after ">>" in return type
Add case for ">>" token in declaration_start state to prevent
falling through to stream_op.

Task-number: QTCREATORBUG-9199
Change-Id: I53710be55eff4574de89f9159e95bbc1de2ba34e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-25 15:33:32 +01:00
Dave Lewis
5510ec0552 CppTools: Fix indent after template params
Add case for ">>" token when in template_param state.

Task-number: QTCREATORBUG-9640
Change-Id: Icc5fc868202d6503d2afd954aa739cd2634cdff1
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-25 15:29:08 +01:00
Przemyslaw Gorszkowski
5d3c070174 C++: Do not set binding block as instantiationOrigin
The binding in a block should not be used as an instantiationOrigin,
because it will be deleted if it does not contain any blocks or
namespaces or classes or enums.
Instead of that we should look for first enclosing class or namespace.

Task-number: QTCREATORBUG-11424
Change-Id: I0fc6e935495478f71372b0fe6f611887f45b2eda
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-25 15:08:35 +01:00
Nikolai Kosjar
cbf98ba819 CppEditor: Allow force highlighting if using clang
...so we can rehighlight if it's requested by the editor. This is e.g.
necessary if the font size changes.

Task-number: QTCREATORBUG-11502
Change-Id: I608921899fc37fcf1394db9ff041e6b378196bdd
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-17 14:39:50 +01:00
Nikolai Kosjar
18e6be55d7 CppTools: Tag incomplete semantic info
...in order to be able to full-rehighlight on the next turn.

The following sequence was problematic:

1. recalculateSemanticInfoDetached(true)
   * e.g. triggered by opening the document
2. recalculateSemanticInfoDetached(false)
   * e.g. triggered by moving the cursor
   * cancels 1. and leads to incompletely parsed/checked document - OK
3. startHighlighting()
   * triggered by 1.; starts highlighting on incomplete document - OK
4. startHighlighting()
   * gets a completely parsed/checked document - OK
   * not forced, so just compare revisions; they are the same, so
     skip/return - a partly highlighted document is left behind.

Task-number: QTCREATORBUG-11367
Change-Id: Ic56e00e862ec4a1ffa197b2fc8b48be56a3562de
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-17 14:39:19 +01:00
Nikolai Kosjar
1f0fd959fa CppEditor: Do not cancel highlighter on user interaction
e.g. changing cursor position or editing text.

CPPEditorWidget::updateUses() does not depend on the highlighter, but
only on the semantic info update.

Task-number: QTCREATORBUG-11367
Change-Id: Ia9f5ed7c2adc6899995a5d966a20e45b2f87d9e3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-17 14:38:32 +01:00
Nikolai Kosjar
349de9331c C++: Fix weird logic in usage of TopLevelDeclarationProcessor::processDeclaration
As the name function name suggests, true should be returned if the
declaration should be processed. Otherwise false.

Change-Id: I8d266d99c579b331fee8772bde47aa1a466dae9c
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-13 15:41:01 +01:00
Nikolai Kosjar
0832a0deac CppTools: Replace 1-bit bit field by bool
...since it's aligned away anyway.

Change-Id: Id8a3c6feeb53f5d6f4f4338ea9031d7c57f312d0
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-03-13 15:40:25 +01:00
Nikolai Kosjar
8f6b4c784d CppTools: Remove useless parameter in recalculateSemanticInfo()
Change-Id: I24b6f6d698051d1ccfe3f0d83078c26d8de193fb
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-13 15:40:07 +01:00
Jarek Kobus
96a3fd53e8 Fix tooltips, add lacking dots
Change-Id: Id54a11b6868d5033fd1ecfd6324b7e50b94e305c
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-03-13 12:06:27 +01:00
Nikolai Kosjar
60f9046d5b CppTools: Save some stats by using correct include paths
..while initial parsing.

Change-Id: I202da3f4f9e445a28e9726352fc005488efe2893
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-12 21:03:40 +01:00
Nikolai Kosjar
7c0bb193d8 CppTools/QmlJSEditor: Hide "Preserve Case" for Replace Symbol Under Cursor
...since it does not make sense for symbols.

Task-number: QTCREATORBUG-11669
Change-Id: Ic249cb15cdb3b324a9b215323acd802a33797100
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-03-12 21:01:33 +01:00
Przemyslaw Gorszkowski
376f77952e C++: fix support for nested anonymous classes
A member of nested anonymous class should be visible as a member of
enclosing class(if there is no declaration of this nested anonymous
class).

Fix:
* marking
* find usage
* follow symbol
* completion

Task-number: QTCREATORBUG-10876
Task-number: QTCREATORBUG-11170
Change-Id: If5b4d198e9075f2a8aa899ae59190f2c05f7b1ff
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-12 14:07:58 +01:00
Joerg Bornemann
84df758ec6 use new base import style in qbs files
Change-Id: Iecf32122df41f304ec6df538bb0dd8a263238a86
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-03-11 14:20:22 +01:00
Nikolai Kosjar
cd507af476 CppTools: CppPreprocessor: Read file only if necessary
Change-Id: Ia60d3e1907f9238f873f016d844095084b76ad6b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-10 17:36:43 +01:00
Nikolai Kosjar
4bf11c7df6 CppTools: Add diagnostic message for non-existent absolute paths
Change-Id: I9a05a92c1adc37db0c918127715714d1f6d2a78d
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-10 13:42:51 +01:00
Nikolai Kosjar
aa796a9fc0 CppTools: Add all diagnostic messages
...of type 'No such file or directory' to the CPlusPlus::Document. Only
the first one was added and as a result, the editor only wavely
underlined that one.

Add also diagnostic messages if it's not possible to get the file
contents.

Change-Id: I8389d8e6af9480ea6712759ce5e130e1dd8912f1
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-03-10 13:42:43 +01:00
Leena Miettinen
80b1bb929a CPP tools: add punctuation to tooltips
Change-Id: I422cd3ea2573a7530d1de504852cac4ac3637d9d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-03-06 15:08:28 +01:00
Sergio Ahumada
c375436847 Fix some typos
Change-Id: I3be73c2a4d256a0d28e863fd2517a4d7442b34d8
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-03-05 09:39:42 +01:00
Orgad Shaneh
151899b1b8 CppTools: Avoid matching function by name only
Compare full function signature, or at least argument count.

Task-number: QTCREATORBUG-10295
Change-Id: Iead4d067209a8aea77cfcea2cd1ca5d08f87b165
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-03-04 14:37:56 +01:00
Erik Verbruggen
346e84d219 C++: introduce a project config file field in the projectPart.
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>
2014-02-27 15:58:17 +01:00
Erik Verbruggen
36dccb42fa C++: fix indentation for static var decls of anonymous classes.
Task-number: QTCREATORBUG-11392

Change-Id: Ie5dd9014383b639e63653e8abc856fea9e620e49
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-27 15:57:40 +01:00
Nikolai Kosjar
c2803b00be CppTools: Avoid self-include
...in CPlusPlus::Document due to cyclic includes.

Task-number: QTCREATORBUG-11457
Change-Id: I1ca19c901c26d9984d795a61879dd6b41c57096c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-24 14:08:11 +01:00
Nikolai Kosjar
bbdfd0fb82 CppTools: Do not block GUI thread for completions
The GUI was blocked while waiting for the parsed document. Now the
blocking operation is executed in the completion thread.

Task-number: QTCREATORBUG-11037
Task-number: QTCREATORBUG-11433
Change-Id: Ia7c1b1b7eea0ba75010ff667ba05273c62c18491
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-21 17:46:35 +01:00
Nikolai Kosjar
f785402972 CppTools: Cleanup test_cpppreprocessor_includes
Use QCOMPARE instead of QVERIFY where appropriate.

Change-Id: I7965a00fd004b8c3a20186bb692bf541f154d12b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-02-20 13:47:43 +01:00
Fawzi Mohamed
d24cb60d48 qml: moving most of ModelManager logic to ModelManageInterface
Currently ModelManager contains lot logic, but as it sits in QmlJSTools
it is not possible to use it in standalone tests.
Moving most of the logic to ModelManagerInterface (and cleanup)
to allow better testing, and refactoring.
This introduces a dependency of the qmljs lib on the cplusplus lib
Also a (small) part of the CppTool::ModelManagerInterface has been
moved to CPlusPlus::CppModelManagerBase to remove the dependency on
CppTools to gather the Qml types exposed from C++.

Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-02-19 21:18:58 +01:00
Eike Ziller
b5be4d2866 CppEditor: Fix missing semantic highlighting
In case the editor is hidden before semantic highlighting started
(because semantic parsing hasn't finished yet).
Just disable the logic that tries to optimize that for now, since it is
not working, and fixing it will require more work (that's done later
anyhow).

Task-number: QTCREATORBUG-11367
Change-Id: I7ef3cc558e514968f90d2ea56b2df362606d879a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-18 11:55:35 +01:00
Orgad Shaneh
91def5a8ff CodeAssistant: Replace virtual with QTC_OVERRIDE
Change-Id: I18ea4ea410ac811972447e9395f2eef76bda8084
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 21:22:21 +01:00
Orgad Shaneh
87de153345 CppEditor: Use explicit Functions for overrides list
Change-Id: Icb6c8ece3ba64d35dcd1a695cf400546f3254921
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 18:28:23 +01:00
Orgad Shaneh
9f06081a0a TextEditor: Cleanup some redundant virtual keywords
Change-Id: Ic6157a1d780551977ffbb65ba4fc374a40e95662
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 18:24:05 +01:00
Orgad Shaneh
35309ad539 CppTools: Do not duplicate function overrides entries
When function's class is the same as the static class

Change-Id: Ifb509b996b4628c3b56d7540fd133ef370713214
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-02-17 17:03:17 +01:00
Orgad Shaneh
7ed1576083 Clean up single namespace forward-declarations
Done using the following ruby script:

Dir.glob('**/*.h').each { |file|
  if File.file?(file)
    s = File.read(file)
    t = s.gsub(/^namespace .+ \{\n\s*class .*;\n\s*\}.*$/) { |m| m.gsub(/\n\s*/, ' ').gsub(/\s*\/\/.*$/, '') }
    if t != s
      puts file
      File.open(file, 'w').write(t)
    end
  end
}

Change-Id: Iffcb966e90eb8e1a625eccd5dd0b94f000ae368e
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-02-12 09:30:37 +01:00
Tobias Hunger
8c1c284789 Qbs/qmake: Fix dependencies of plugins
... based on output from dependencyinfo.py script

Change-Id: I9532f6d259f15c16b62fae0ca18f8a8cad95bd11
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-02-11 13:23:26 +01:00
Eike Ziller
db897f8146 Fix build on Windows
For some reason it doesn't like signals with QFutures. Going back to
pointers, but copying the future from there when it's used.

Change-Id: I8dea0817b4e59ede6874ab8be01f22a92e7402a0
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-06 10:49:04 +01:00
Erik Verbruggen
58af02f074 C++: release more futures.
The CPPEditorWidget retained two futures, as did the attached future
watchers retained them too. Together, each future and the watcher held
on to a complete snapshot that would only get released when another
future was set. This could result into retaining old snapshots in
editors that were invisible/unused for long.

Change-Id: I1133e857c620437b4a69b9dad468f6bd458304b8
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-05 15:42:46 +01:00
Orgad Shaneh
e600424648 C++: Fix support for incremental input with \n
Also fix false positive line continuation on blank line

e.g.
"foo \

bar"

Change-Id: Ic6d345a4b578c955411d119b8438c8dc5065c072
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-02-04 11:33:54 +01:00
Thiago Macieira
f1606a9f58 Normalize signal & slot signatures in connection
Profiling shows Qt Creator spends 2% of its load time normalizing

Change-Id: I7c38825875c8db58813792dcb86b3a88945466f7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-02-03 20:19:44 +01:00
Orgad Shaneh
fbecf2f3fd CppTools: Add tests for nested enums
Discarded during merge from 3.0

Task-number: QTCREATORBUG-5456
Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-24 11:34:50 +01:00
Eike Ziller
3fa6b6737c TextEditors: Move font settings to document
Change-Id: I325764cbaa9684fa2758b0ea6c6ea58de142cb73
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-01-24 08:00:07 +01:00
Eike Ziller
c6f965f792 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h

Change-Id: I4e786745e8abab8d15b75fd962c21b4b28620d47
2014-01-21 14:18:22 +01:00
Orgad Shaneh
80a3caa396 CppTools: Fix completion for nested enums
Task-number: QTCREATORBUG-5456

Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 14:06:16 +01:00
Orgad Shaneh
1fd576c1f6 C++: Add support for prefixes in switch header/source
Task-number: QTCREATORBUG-11031

Change-Id: I93cce0ebf46984eb06094e1f1519717be2bbaa79
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 12:20:15 +01:00
Eike Ziller
4eff289e03 TextEditors: Remove widget's setTabSettings method
Change-Id: If212b45e2d526534b7853f3fa23b170f61e1976e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 11:22:16 +01:00
Orgad Shaneh
f506104f29 CppTools: Cleanup header/source test
Dynamically create data files in tempPath and clean them up when
finished.

Change-Id: Ie78f557b185b264acc0d0f5814646c203d8a93f4
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 11:07:49 +01:00
Eike Ziller
dcba4a2715 Use document instead of widget in TextEditor::RefactoringChangesData
Change-Id: I938041c9774fbebd1edc6dc29ccfa569bae94f70
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-01-21 10:53:25 +01:00