Commit Graph

1032 Commits

Author SHA1 Message Date
Christian Kamm
8dc0f69ed1 C++: Fix broken merge of 9121c21230.
Change-Id: I0cca1851132245430d59840728362ddea1475655
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
2012-07-23 07:19:26 +02:00
Christian Kamm
9121c21230 C++: Fix class scope completion for templates.
* You now get completion for std::vector<int>::[complete].
* Also added a test.

Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h

Change-Id: I596ebf6bd18ec9a347113f8d162cc124c8a0d6b4
Reviewed-by: hjk <qthjk@ovi.com>
2012-07-20 13:41:15 +02:00
Eike Ziller
e0e8cf3ada Contact -> qt-project.org
Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 13:23:21 +02:00
Leandro Melo
441c652ce5 C++: Change back highlighting of types
The type highlighting change part of the recent patch
4a2a17af8a didn't seem to
please much from a visual point of view. It's a better
idea to keep the type highlighting as it was for now
and in the future try again the approach with an explicit
option and perhaps a more restrictive context.

The other patch is not reverted entirely because it does
fix a couple of bugs.

Change-Id: I806afa3d8c1c4b241080b8704255d737f61ee12c
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-07-17 16:23:52 +02:00
Leandro Melo
4a2a17af8a C++: Changes in semantic highlighting
- Fix issues with virtual/non-virtual destructors. They were not
  being correctly identified in some cases - in particular on certain
  uses in derived classes.

- Since now we do have a highlighting item for regular functions,
  constructors and destructors are now highlighted as such. This is
  more semantically correct and actually makes navigation and readiblity
  more distinguishable, since it cleary differentiates the type itself
  from its uses in expressions and declarators. (This seems to be what
  other IDEs like Eclipse, Visual Studio, KDevelop are doing.)

  NOTE: There's a switch to disable this item in the case it doesn't
  get good acceptance. Actually, the switch can be made a user
  setting...?

- Change the default color scheme so regular and virtual functions
  have the same color (virtuals continue to be italic). This makes
  sense given the above mentioned changes in constructors/destructors
  highlighting behavior. (In other schemes virtual funcions don't have
  different color, so this shouldn't be necessary in those.)

- Small renaming: "members" are now "fields" - consistent, since
  they apply for data and it's the term used in the UI.

Change-Id: Ib1aa9c0bbf28a31d09f5696460b0095fbe29de80
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-07-17 13:53:19 +02:00
Sergey Shambir
edabcb40fa Added tooltips on completions proposals
Change-Id: Ic22b99e25159edfa4977e13c98f334ce75809af7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-07-17 10:19:43 +02:00
Leandro Melo
7d63548964 C++: Fix potentially infinite loop in completion
Could be reproduced in code as below (cursor at |):

    QFormLayout|formLayout *fl = new QFormLayout(this);

Change-Id: I7f5e9ac8ff8dfffbca63d7ab9f837333440c9810
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-29 15:41:40 +02:00
Tobias Hunger
bf880ee8b0 Remove unused member variables
Change-Id: I60b95723813cc660d7907fa6f06c6452dc959fe4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-06-29 13:57:40 +02:00
Nicolas Arnaud-Cormos
62a22e0aa3 Don't cache mapping between source and private header
When switching from a header to a source file, the source->header
mapping is cached. It's not the case anymore for private headers (_p).

Change-Id: I481c0613e29db0a3fb4e17f339626abb49ffa8e2
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-06-28 17:14:50 +02:00
Leandro Melo
04094c274e C++: Enable C++11 keywords in macro uses
Just in case compilers id defining such things.

Change-Id: Ica6af8462e90bfab2bfa883ec12d5e648d6d33db
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-06-28 13:50:36 +02:00
Leandro Melo
d6ccffc06c C++: Core changes in preprocessing
Summary of most relevant items:

- Preprocessor output format change. No more gen true/false. Instead
  a more intuitive and natural expansion (like from a real compiler) is
  performed directly corresponding to the macro invocation. Notice that
  information about the generated tokens is not lost, because it's now
  embedded in the expansion section header (in terms of lines and columns
  as explained in the code). In addition the location on where the macro
  expansion happens is also documented for future use.

- Fix line control directives and associated token line numbers.
  This was not detected in tests cases because some of them were
  actually wrong: Within expansions the line information was being
  considered as originally computed in the macro definition, while
  the desired and expected for Creator's reporting mechanism (just
  like regular compilers) is the line from the expanded version
  of the tokens.

- Do not allow for eager expansion. This was previously being done
  inside define directives. However, it's not allowed and might
  lead to incorrect results, since the argument substitution should
  only happen upon the macro invocation (and following nested ones).
  At least GCC and clang are consistent with that. See test case
  tst_Preprocessor:dont_eagerly_expand for a detailed explanation.

- Revive the 'expanded' token flag. This is used to mark every token
  that originates from a macro expansion. Notice, however, that
  expanded tokens are not necessarily generated tokens (although
  every generated token is a expanded token). Expanded tokens that
  are not generated are those which are still considered by our
  code model features, since they are visible on the editor. The
  translation unit is smart enough to calculate line/column position
  for such tokens based on the information from the expansion section
  header.

- How expansions are tracked has also changed. Now, we simply add
  two surrounding marker tokens to each "top-level" expansion
  sequence. There is an enumeration that control expansion states.
  Also, no "previous" token is kept around.

- Preprocessor client methods suffered a change in signature so
  they now receive the line number of the action in question as
  a paramater. Previously such line could be retrieved by the client
  implementation by accessing the environment line. However, this
  is not reliable because we try to avoid synchronization of the
  output/environment lines in order to avoid unnecessary output,
  while expanding macros or handling preprocessor directives.

- Although macros are not expanded during define directives (as
  mentioned above) the preprocessor client is now "notified"
  when it sees a macro. This is to allow usage tracking.

- Other small stuff.

This is all in one patch because the fixes are a consequence
of the change in preprocessing control.

Change-Id: I8f4c6e6366f37756ec65d0a93b79f72a3ac4ed50
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-06-25 15:49:27 +02:00
Leandro Melo
93894ab160 C++: Do not reuse content in completion if it's unfinished identifier
Taskn-number: QTCREATORBUG-7521

Change-Id: I7b8edb93d143f599c93a82c82bf2c0d49c8e49e9
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-06-20 16:08:23 +02:00
Eike Ziller
e3c354d8f2 Make PluginManager mostly static.
Change-Id: Ib938aa4999c7c418a82304c5cca2e8748ef9d228
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-19 16:11:40 +02:00
Yuchen Deng
0d20c5b796 Fix qbs code style
Change-Id: Ia3e4df528d391580064efbeeab75016335a4299d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 11:22:40 +02:00
Leandro Melo
23c637c4f6 C++: Introduce unicode char/strings support
Those are the types char16_t and char32_t along with the new
char/string literals u'', U'', u"", u8"", and U"".

This is particularly important for the use of QStringLiteral
since in some platforms it relies on expansion such as above.

Note: The string literals quickfixes still need some tunning.

Task-number: QTCREATORBUG-7449
Change-Id: Iebcfea15677dc8e0ebb6143def89a5477e1be7d4
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-06 14:55:07 +02:00
Andre Hartmann
44a3a5e070 Implemented Rename Macro Usages
Works the same way as Rename Usages for C++ Symbols.

For now, no Search Again as this requieres further work.

Task-number: QTCREATORBUG-413

Change-Id: I09e85ea1e8c247f5ce0b6bc566aba8018c1569e4
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-06-06 14:10:07 +02:00
Eike Ziller
ddc0c89bd6 Show warning with continue/cancel in case of many search results
Task-number: QTCREATORBUG-6116
Change-Id: I57a66b8989f1cc4137b02df370704dfe43d392ac
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-06-05 10:08:40 +02:00
Francois Ferrand
809611f346 CppHighlighter: highlight all functions/methods.
- Highlight all function/methods (not just virtual methods).
- Highlight as a function even if number of arguments does not match. In
  that case, add a diagnostic message to indicate there are too many/too
  few arguments.
- Fix highlighting of parameters in function declarations.
  These used to be handled indiferently, and they could be mistaken for
  type or field references.
- Properly highlight template method calls.

Change-Id: I6e61c9ee47763db95c62314f9cc1c4d398df38b3
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-06-05 09:30:54 +02:00
Leandro Melo
ca7ac8c035 C++: Fix macro uses line info
Make sure the environment line is consistent during preprocessor
directives and identifier handling so clients can rely on consistent
information. Particularly important for macro usages.

New tests also added.

Change-Id: I962a39a86cd17b8d945d2959c2c95e2d258ea3e6
Reviewed-by: hjk <qthjk@ovi.com>
2012-06-01 14:28:03 +02:00
Eike Ziller
3934347fe9 ActionManager API cleanup.
d-pointer instead of inheritance
static methods

Change-Id: I7b2f0c8b05ad3951e1ff26a7d4e08e195d2dd258
Reviewed-by: hjk <qthjk@ovi.com>
2012-05-25 10:08:24 +02:00
hjk
f77cd29e54 IOptionsPage: replace virtual fuctions by data members
Change-Id: I8297df85109b67b79f90c33263a5dc7b89efbb60
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-05-23 10:48:04 +02:00
Eike Ziller
8a7bc472dc Mark canceled searches as such.
Task-number: QTCREATORBUG-6820

Change-Id: Ic14c0ea6f26e4a05c642012b87578f30c817fef7
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-05-22 13:41:46 +02:00
hjk
21bf0046c3 editormanager: simplify use of interface
Less code on the user side, same meaning.

Change-Id: I14e54a5d2ed8e024a51cce74eaf7c8419ad544be
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-05-11 13:51:14 +02:00
Bradley T. Hughes
fb9146a9c3 Compile after qt5/qtbase commit 75a0c7f9
Commit 75a0c7f9b52cde47f20fdc1b89e1264d60350848 in qt5/qtbase changed
some QRegExp methods to be non-const (they were previously const). This
change makes Qt Creator compile again.

Change-Id: Ibc98c678126c3b3189df7fcc043463b940951445
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-04-30 14:32:08 +02:00
hjk
6d393252c4 preprocessor: rename operator() into run.
Easier to follow.

Change-Id: I6da1ca862ddb7048a6d16bf5e6ea18d6b2cfc7f8
Reviewed-by: hjk <qthjk@ovi.com>
2012-04-19 19:37:14 +02:00
hjk
acf6f8f0cb preprocessor: make Environment::{resolve,remove} work on ByteArrayRefs only
Change-Id: Idb93d359bd45696a38cb863dcea30c5c377eeabb
Reviewed-by: hjk <qthjk@ovi.com>
2012-04-19 18:41:18 +02:00
hjk
17c114fde8 preprocessor: make CPlusPlus::Internal::ByteArrayRef public
Change-Id: Ief6ea71f750b6ba19b650050bae376f4ad82d9d2
Reviewed-by: hjk <qthjk@ovi.com>
2012-04-19 18:37:31 +02:00
hjk
d4b4a75603 preprocessor: save cycles by using ByteArrayRef
Change-Id: I339696763b045ef1bda17dd55746738ef4ddbb67
Reviewed-by: hjk <qthjk@ovi.com>
2012-04-19 18:36:33 +02:00
Francois Ferrand
85609aff8e CppHighlighter: highlight macro references.
Change-Id: I7c90957aa67e03a109af0a722160d4e1c759d716
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-04-13 02:07:37 +02:00
Joerg Bornemann
96a7fbe3ae qbs files: use Qt5 module dependencies
Renamed gui -> widgets.
Renamed declarative -> quick1.

With qbs the usage of qt.widgets and qt.quick1 with Qt4 is supported.

Change-Id: I6cadaf34527f1f880d74ced7d2d18dd9801b7de1
Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
2012-04-10 18:02:39 +02:00
Andre Hartmann
998e4ae139 Fix C++ Macro Usages definition line in Search Results.
Add the complete line to the Search Results window,
including '#', "define", macro and macro value and
all possible white spaces between them.
Also covers the case of line continuation in macro
definitions from commit 3dec48557a.

Task-number: QTCREATORBUG-7217

Change-Id: I8b9d0c23d31ef76244833a9b9d67469c5c4a5635
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-04-04 09:12:59 +02:00
Erik Verbruggen
31fc4c41b8 [C++] Added env. var. to show file name that is being parsed.
When setting the environment variable
QTCREATOR_DUMP_FILENAME_WHILE_PARSING, the indexer will write the file
name of the file it is processing to stderr.

Change-Id: Iaed582512b87fd0584feb4e459a4094be32d5745
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-30 10:10:27 +02:00
Erik Verbruggen
210c191216 Revert "CppHighlighter: highlight all functions/methods."
This reverts commit e3e67467cfea5934f16a95385761455b0c495a0d

Reason is that it shows errors for calls to function-like macros. For example, any use of Q_DISABLE_COPY results in invalid errors.

Change-Id: I1fd1473ac5a30da5b9aebf6a3f0f11055bdbe8ad
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-29 15:53:23 +02:00
Francois Ferrand
e639a2381f CppHighlighter: highlight all functions/methods.
- Highlight all function/methods (not just virtual methods).
- Highlight as a function even if number of arguments does not match. In
  that case, add a diagnostic message to indicate there are too many/too
  few arguments.
- Fix highlighting of parameters in function declarations.
  These used to be handled indiferently, and they could be mistaken for
  type or field references.
- Properly highlight template method calls.

Change-Id: I6ab463996dda47554839f482da47f561f76663a7
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-29 14:53:48 +02:00
Andre Hartmann
3dec48557a Fix C++ Macro Usages when Definition contains Newline.
Now truncates the displayed line at the first Newline character after
the Macro name.

Task-number: QTCREATORBUG-7113

Change-Id: Ifb13c01d10b97098b54ac4346a80f0dcff3a35f3
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-29 14:34:39 +02:00
Erik Verbruggen
60db573660 [C++] Rewrite of the preprocessor.
This rewrite fixes a couple of issues with the pre-processor. It now
supports:
- macros in macro bodies
- stringification of parameters [cpp.stringize]
- the concatenation operator [cpp.concat]
- #include MACRO_HERE
- defined() inside macro bodies used in pp-conditions.

Change-Id: Ifdb78041fb6afadf44f939a4bd66ce2832b8601f
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-29 14:28:17 +02:00
Eike Ziller
8f6d915948 Merge remote-tracking branch 'origin/2.5' 2012-03-28 16:31:29 +02:00
Erik Verbruggen
0f21515277 Fix: do not put in duplicate definitions.
Change-Id: Ia3f248d013a1b4f98ad3e85d13cfcf214d3c97c7
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-03-28 13:34:16 +02:00
Eike Ziller
dc49fdd5ed Don't pass native file names to internal API.
Task-number: QTCREATORBUG-7191

Change-Id: I89889a3580f4a27a912eacb09e893b428c5c5351
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-03-27 11:18:55 +02:00
Erik Verbruggen
e685a96da6 Fixed debug output.
Change-Id: I2edff4126f3504661957529c198a1fc1ea169a08
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-27 10:08:48 +02:00
Marco Bubke
d3e25481f9 Fix qbs project files
Change-Id: Iae72cd8f65779617dfa3ae03e9c894a95d151e81
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-21 10:58:06 +01:00
Francois Ferrand
1e7a0d3f65 CppEditor: do not highlight generated local symbols.
Change-Id: I75a1ed30cbc4d329f65901b856bc19b95e711f3e
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-20 14:06:17 +01:00
Andre Hartmann
04679f8071 Improved highlighting in C++ Macro Usages.
Only highlight the Macro name, not the whole definition line
or the parameter list in function-like Macros.

Change-Id: I5732dd5dd18cee150755ea35a5fbb67fdaed51c4
Reviewed-by: Francois Ferrand <thetypz@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-03-16 15:11:07 +01:00
Erik Verbruggen
dfd28a1d32 Fix build breakage after making plugins dependent on cpptools.
Change-Id: Iae2c15efe25580fb616bdc3dd4b8ff3581cd481a
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-03-15 15:28:17 +01:00
Eike Ziller
e5e3f91ed2 Merge remote-tracking branch 'origin/2.5'
Conflicts:
	src/libs/qmljsdebugclient/qmlprofilereventlist.cpp

Change-Id: Ic6251d47ecd032ea1db4fc58dc80e19b6e6cf23d
2012-03-15 15:01:54 +01:00
Erik Verbruggen
51de4ed21a Add flag for semantic highlighter to set diagnostics.
If the semantic highlighter does not take care of setting showing the wiggly
lines for diagnostics in the editor, the model manager will do.

Change-Id: Ie69fb798dd53d60ddca1668b8f586266a0daca4b
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-15 11:40:46 +01:00
Francois Ferrand
cbc328e2d7 CppEditor: fix indentation of auto-completed comments.
Fix indentation of auto-completed Doxygen comments, as well as auto-
leading characters from the block, to make it work with both spaces and
tabs.

Change-Id: I6c1c1665675cc25e01983e6d39b472f1b1c9683e
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2012-03-15 06:39:29 +01:00
Erik Verbruggen
f1b2100e34 Move the ModelManagerInterface out of the CPlusPlus library.
Change-Id: Iffaa18f848a22f6961b49dff048672b194570df6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-03-14 11:46:24 +01:00
Eike Ziller
63f0c0a62f Merge remote-tracking branch 'origin/2.5'
Conflicts:
	qtcreator.pri

Change-Id: Ic24b756b41d2a13f3d696dee69553d2c3241ab95
2012-03-14 09:33:25 +01:00
Francois Ferrand
c1f3b7170d Do not add parentheses when completing dereferenced function.
When completing function name, scan text backwards to find if we are
trying to dereference the function.

Change-Id: I32cabecb651ff35d949600d9fdeb61c8e68ae98f
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
2012-03-13 11:12:45 +01:00