This change solves only problem with Qt containers.
stl containers need separate change.
Problem was with predeclaration of template class after
declaration of this template class.
(there is unit test added which shows the problem).
Task-number: QTCREATORBUG-8228 (cover only Qt containers)
Change-Id: If1f76c88c955b7b55347d302b353f5cd52b244a4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Unit tests for code completion for nested class when enclosing is a template
Change-Id: I409f742923468db23dd9a8e4c18cbb21b1e52dd9
Reviewed-by: hjk <qthjk@ovi.com>
This method is called when the QTCREATOR_DUMP_PROJECT_INFO environment
variable is defined.
Change-Id: Id314994a2eed79cf688f5ef82f597524dba7a5cd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
More complex situation.
Base class is a template and derived class is a template.
Task-number: QTCREATORBUG-8072
Task-number: QTCREATORBUG-7962
Change-Id: I7e8aa727fccd2bd4a779e6fe781553cd12196682
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
For example locals and function argument names appear early whereas
macros and keywords are way down. That should move helpful
items to the top of the list.
Change-Id: Ibcfe973ebbac2e3bce9cafbe14dc4c71430ddca7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Record revisions of documents in macro definitions and usages. Then,
when searching for usages, check the revision of the documents against
the revision of the macros. If they are out-of-sync, repreprocess the
documents to get up-to-date info.
Task-number: QTCREATORBUG-7872
Change-Id: I846bb52ec660024728ab117a9fb7e43382a50e63
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
If the result lines contain non-Latin1 characters (e.g. in comments),
the output is garbled. Using QByteArrays with toUtf8() and fromUtf8()
doesn't seem to be an alternative, as in this case the macro.offset() is
no longer valid.
So it seems to be the best to use QString for the result lines.
Task-number: QTCREATORBUG-7122
Change-Id: I57128c9c9f3eb182f079e305e97e9c5ac0a1bc61
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
The old implementation readed the file and converted the QString toUtf8,
which seems wrong. Now use Creators default encoding.
This fixes at least wrong macro offsets that leaded to highlighting
errors in Find Usages, if there were non-ASCII characters before the
macro definition.
This should also partially solve QTCREATORBUG-7122.
Change-Id: Ic4a5add5f4769bd3d5b62fc2d67598e7abf352d9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Avoid using "." as includePath when it is unneeded
Change-Id: I9bc6f4ebe50409f49782520033fd5f098aed10d0
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Problem was with cyclic recurrence.
To solve it we need to check if derived class is different class than its base class.
Keep completion corrected.
Include some unit tests when base class has the same name as derived.
Task-number: QTCREATORBUG-7887
Change-Id: I7973c0b06e3b62d2da3d06048f4327d18a0b8011
Reviewed-by: hjk <qthjk@ovi.com>
This use case is deprecated in Qt 5. Use QPointer instead.
Change-Id: Id6c32542032656d7cb31cf838d93a680ab9e9327
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This time in the 'new' expression. Changed it to make
new C(1, abc...) and new C{1, abc}
work.
Change-Id: I7232798fd083b653ee04ef9ede386d6536133e16
Reviewed-by: hjk <qthjk@ovi.com>
The commit looks big, but it's mostly trivial. Also any build/run
related popups are now "flashes" if the current mode has no placeholder.
Task-number: QTCREATORBUG-7875
Change-Id: I3af40557f7af01798f905c0d1829423c80058cb6
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
I.e. define WITH_TESTS for debug builds or if the respective
environment variable is set.
Change-Id: I2764ece50d0783e8cb030b1695e6f59cf6063248
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>