Commit Graph

1594 Commits

Author SHA1 Message Date
hjk
aa52cd83a6 CppEditor: Remove unused Project parameter
Change-Id: I3bfa201352127b34d46fe5bb4b18fab12aeafa3a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-09-04 12:01:18 +02:00
Eike Ziller
49db3a450a Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/coreplugin/editormanager/editormanager.cpp
	src/plugins/cppeditor/cppeditor.cpp
	src/plugins/remotelinux/remotelinuxdebugsupport.cpp
	src/plugins/texteditor/basetexteditor.cpp

Change-Id: I0da7c1cf2506b12d0563795aa8177fc45e97050f
2014-09-03 16:08:02 +02:00
Eike Ziller
7224ccb2e7 Editors: Automatically add editor/document id to context and use that
instead of manually adding a context everywhere.

Change-Id: I4336015a6d19349171a255e949da89b0013d6700
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-02 16:48:13 +02:00
Eike Ziller
b5b6a46b4e ExtensionSystem: Use Qt 5 plugin metadata instead of .pluginspec files
Change-Id: I2b2c704260c613985a4bda179658ec1f8879e70f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-09-02 15:11:24 +02:00
Nikolai Kosjar
c4ace44141 CppTools/Clang: Remove QScopedPointers in *EditorDocumentParsers
...since they are pointless.

Change-Id: I1c7925d3b1ad33ac0f1dc372797e3ab9a4bdc4b3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-29 16:13:02 +02:00
Nikolai Kosjar
45570d4068 CppTools: Provide the editor snapshot for SemanticInfoUpdater
...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>
2014-08-29 16:12:57 +02:00
Nikolai Kosjar
46b5ed2ba9 CppTools: Mini refactoring in BuiltinEditorDocumentProcessor
Change-Id: I9239430f809bb9270fd9f1a99aad1136f10124d7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-29 16:12:50 +02:00
Erik Verbruggen
c8c2aaafdf C++: Fix possible use-after-free of AST.
The CppRefactoringChanges::fileNoEditor takes a Document from the
snapshot it has. Although this snapshot is a safe copy, it might have
been gotten right after it was updated by indexing. Such a document will
still have its AST. If this AST is used by any refactoring action
without retaining it, the pointers will be dangling after a short while
(specifically: after the locator has extracted all the information).

The fileNoEditor method is called by the declDefLinkFinder to search
the target document. The snapshot is obtained before, and contains the
document for the semantic info. However, the target document will not
come from the semantic info, but from the indexer.

Change-Id: I212ff41dde6910e94e80552b2c3e5911fe9496ae
Task-number: QTCREATORBUG-11262
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-29 14:14:37 +02:00
Christian Kandeler
1d5091e48f Do not use deprecated Qt functionality.
Replace all* remaining deprecated Qt 4 functions with
their Qt 5 counterparts. This means we no longer need to
define the QT_DISABLE_DEPRECATED_BEFORE macro.
This patch is relatively small because most source-compatible
changes of this kind have been done before.

* The one exception is the QmlDesigner, which uses QWeakPointer
in a deprecated way all over the place.

Change-Id: Id4b839c6685f3b5bdf2b89137f95231758ec53c7
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-29 14:10:41 +02:00
hjk
7ba0f8a4c4 CppTools: De-slot some private document processor functions
Change-Id: Ia91b4262d9dad60492f9175e453c950473689a8a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-29 13:51:51 +02:00
Erik Verbruggen
4a3cc6d2b2 C++: set the objectName of QTimers.
This will hopefully help a bit in resolving the crashes that happen in
QCoreApplication::notifyInternal.

Change-Id: Ib3aa8c1a1f50778bd89938d7c529d8399ccf91ea
Task-number: QTCREATORBUG-11262
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-29 13:21:06 +02:00
Erik Verbruggen
8b2cff4b8b C++: introduce the unique ProjectPart::id()
And change the code-model inspector dialog to use them in the
ProjectParts tab to sync the master/details view, and in the
CppPreProcessorDialog to save/reload the selected part.

Change-Id: I7cc8ac1c21d31122f8650985d0b85177ebabdfb8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-28 18:58:26 +02:00
Nikolai Kosjar
eedd47657f Cpp{Editor,Tools}: Remove some Qt4-only code
Change-Id: I94ca7b239e974b6b400933466ee2ef5ae4def336
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-08-28 18:49:57 +02:00
hjk
2a5c602341 TextEditor: Introduce some convenience text accessors in the editor
And adjust users.

Change-Id: I9329257cfa5f3298731deb07c2881bc37d9a051d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-27 15:00:36 +02:00
hjk
7b67701dea TextEditor: Fix failure in cpptools autotest
The issue only appeared in the test due to the different
editor construction there. Now use the same factory access.

Change-Id: I3a8534fbe683bb88f04ad68850cecdfe32b11433
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-27 12:35:32 +02:00
Eike Ziller
aa6495a261 ExtensionSystem: Remove Qt4 support
Remove usage of the Q_EXPORT_PLUGIN macros, which do not exist in Qt 5.

Change-Id: I678c3cf10b9c5d5c1b9f252b0ecd1c97dc810a47
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-27 08:44:34 +02:00
Nikolai Kosjar
89bd4ee3c4 C++: Base parsing on editor document instead of widget
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>
2014-08-25 13:06:01 +02:00
hjk
6431ab2c79 Use Qt 5's QStringList::join(QChar)
Less typing and less cycles than join(QString) where appropriate

Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-08-25 08:21:14 +02:00
Nikolai Kosjar
bb9edec99a Add copyright comment
Change-Id: Ia16f38f4823a0d740391ef4450b858d10f3184e5
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-22 10:06:51 +02:00
Nikolai Kosjar
6d70418e2c CppTools: Remove concurrent write access to diagnostic messages
...in CheckSymbols (highlighting backend). CheckSymbols might run
concurrently several times with the same CPlusPlus::Document and modify
the diagnostic messages in an unsave manner. See stack straces below.

While the generated diagnostic messages ("Only virtual functions can be
marked 'final'", "Too few arguments", ...) are useful, they weren't
propagated to the editor widget since several minor versions.

=================================================================
==23724==ERROR: AddressSanitizer: attempting double-free on 0x60c0072fcd00 in thread T528 (Thread (pooled)):
    #0 0x4787c1 in __interceptor_free (/home/nik/dev/creator/creator-ut_clang-qt5/bin/qtcreator+0x4787c1)
    #1 0x7fa15e5da4ac in QTypedArrayData<unsigned short>::deallocate(QArrayData*) /home/nik/usr/qt-5.3.1/include/QtCore/qarraydata.h:234
    #2 0x7fa15e5d87db in QString::~QString() /home/nik/usr/qt-5.3.1/include/QtCore/qstring.h:995
    #3 0x7fa15e5f4f6a in CPlusPlus::Document::DiagnosticMessage::~DiagnosticMessage() /home/nik/dev/creator/creator-ut/src/libs/cplusplus/CppDocument.h:140
    #4 0x7fa15e5f4de2 in QList<CPlusPlus::Document::DiagnosticMessage>::node_destruct(QList<CPlusPlus::Document::DiagnosticMessage>::Node*, QList<CPlusPlus::Document::DiagnosticMessage>::Node*) /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:432
    #5 0x7fa15e5f4ae9 in QList<CPlusPlus::Document::DiagnosticMessage>::dealloc(QListData::Data*) /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:784
    #6 0x7fa15e5f47ed in QList<CPlusPlus::Document::DiagnosticMessage>::~QList() /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:760
    #7 0x7fa15e7533c2 in QList<CPlusPlus::Document::DiagnosticMessage>::clear() /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:793
    #8 0x7fa15e6f2ed2 in CPlusPlus::Document::clearDiagnosticMessages() /home/nik/dev/creator/creator-ut/src/libs/cplusplus/CppDocument.h:205
    #9 0x7fa15e6c5f5b in CppTools::CheckSymbols::run() /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppchecksymbols.cpp:337
    #10 0x7fa15e6c83c2 in non-virtual thunk to CppTools::CheckSymbols::run() /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppchecksymbols.cpp:348
    #11 0x7fa17f0ccab1 (/home/nik/usr/qt-5.3.1/lib/libQt5Core.so.5+0x98ab1)
    #12 0x7fa17f0cfa5e (/home/nik/usr/qt-5.3.1/lib/libQt5Core.so.5+0x9ba5e)
    #13 0x7fa17eaeb181 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8181)
    #14 0x7fa17dbec38c (/lib/x86_64-linux-gnu/libc.so.6+0xfb38c)

0x60c0072fcd00 is located 0 bytes inside of 128-byte region [0x60c0072fcd00,0x60c0072fcd80)
freed by thread T539 (Thread (pooled)) here:
    #0 0x4787c1 in __interceptor_free (/home/nik/dev/creator/creator-ut_clang-qt5/bin/qtcreator+0x4787c1)
    #1 0x7fa15e5da4ac in QTypedArrayData<unsigned short>::deallocate(QArrayData*) /home/nik/usr/qt-5.3.1/include/QtCore/qarraydata.h:234
    #2 0x7fa15e5d87db in QString::~QString() /home/nik/usr/qt-5.3.1/include/QtCore/qstring.h:995
    #3 0x7fa15e5f4f6a in CPlusPlus::Document::DiagnosticMessage::~DiagnosticMessage() /home/nik/dev/creator/creator-ut/src/libs/cplusplus/CppDocument.h:140
    #4 0x7fa15e5f4de2 in QList<CPlusPlus::Document::DiagnosticMessage>::node_destruct(QList<CPlusPlus::Document::DiagnosticMessage>::Node*, QList<CPlusPlus::Document::DiagnosticMessage>::Node*) /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:432
    #5 0x7fa15e5f4ae9 in QList<CPlusPlus::Document::DiagnosticMessage>::dealloc(QListData::Data*) /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:784
    #6 0x7fa15e5f47ed in QList<CPlusPlus::Document::DiagnosticMessage>::~QList() /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:760
    #7 0x7fa15e7533c2 in QList<CPlusPlus::Document::DiagnosticMessage>::clear() /home/nik/usr/qt-5.3.1/include/QtCore/qlist.h:793
    #8 0x7fa15e6f2ed2 in CPlusPlus::Document::clearDiagnosticMessages() /home/nik/dev/creator/creator-ut/src/libs/cplusplus/CppDocument.h:205
    #9 0x7fa15e6c5f5b in CppTools::CheckSymbols::run() /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppchecksymbols.cpp:337
    #10 0x7fa15e6c83c2 in non-virtual thunk to CppTools::CheckSymbols::run() /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppchecksymbols.cpp:348

Change-Id: Ifab2842ea43aeb26099835966b02d8afc4b85df4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-21 13:16:14 +02:00
Erik Verbruggen
876ea282d2 GenericProject: put different languages into separate project parts.
This is in preparation for changes to the ProjectParts, where one part
can only hold files for 1 language.

Change-Id: I5e9a1a803ecc3ecbb36added0d0094df63922549
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-21 13:11:03 +02:00
Nikolai Kosjar
7c21f2ec69 CppTools: Denoise with BuiltinEditorDocumentParser::Ptr
Change-Id: I1d572e8cc3e76ef6bbae720e3c3482292aab9609
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 11:13:51 +02:00
Nikolai Kosjar
7d35212f60 CppTools: Rename SnapshotUpdater to BuiltinEditorDocumentParser
Change-Id: I554b5e9e3f1ef7c167fa45b5cd0c230fdf63073b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 11:12:48 +02:00
Nikolai Kosjar
27e343b970 CppTools: Extract BaseEditorDocumentParser out of SnapshotUpdater
Change-Id: If89e81eec6d600d3d39cc09203cf434d0768c1b4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 10:29:21 +02:00
Nikolai Kosjar
6b5298faf9 CppTools: Move Project{Part,Info} to new cppprojects.{h,cpp}
Change-Id: Ieff216017b9da1e6a12121688ea9572bdd81fd9b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 10:28:35 +02:00
Nikolai Kosjar
b8a6a4dd4e CppTools: Move WorkingCopy to new cppworkingcopy.{h,cpp}
Change-Id: I447acf28849bffb52c1e6b6eafdde221ec0b179e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 10:26:47 +02:00
Filipp
077bbf6803 search for partial specialization for arrays
A<int[]> now prefer second specialization for
template<typename T> class A
template<typename T> class A<[]>

Change-Id: I32e874f78b2f5b363d088fbab6a8897e42e44035
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-20 10:26:11 +02:00
Nikolai Kosjar
fa4e839bbe CppEditor: Move two functions to cpptoolsreuse.{h,cpp}
They do not really depend on CppEditorWidget and will be re-used in a
follow-up change.

    CppEditorWidget::identifierUnderCursor()
    CppEditorWidget::findCanonicalMacro()

Change-Id: I553bb68694fb4b5f1baa331debf33ae234e3dedf
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-20 10:24:23 +02:00
hjk
d2ec7d80d9 TextEditor: Merge the two sets of *EditorWidget constructors
Change-Id: I45d87d0be722ac36d64af222f03f8cb76242c9df
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-08-19 09:19:33 +02:00
Eike Ziller
8a31388f40 EditorManager: Close documents instead of editors where appropriate
This is the first step in actually making "closeEditor(s)" close editors
instead of documents.

Change-Id: I02761e0cef950b8fc093f65a90df04a9a7550681
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-18 15:36:01 +02:00
Przemyslaw Gorszkowski
b514d4d7b2 C++: fix code completion for typedef of pointer array
Example:
struct Foo { int foo; };
typedef Foo *FooArr[10];

void func()
{
    FooArr arr;
    arr[0]-> // No completion
}

Task-number: QTCREATORBUG-12703
Change-Id: I1898dbf83eaa0a6dfa8c401390f28c78e5739bc4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-18 09:02:57 +02:00
Nikolai Kosjar
0f3032f840 CppTools: Tests: Add "Find Errors Indexing" mode
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>
2014-08-07 11:04:53 +02:00
Nikolai Kosjar
8bf4a5b089 CppTools: Builtin-Indexer: Fix potential memory leak
In case the list of source files to be parsed is empty, the
CppSourceProcessor is never deleted.

This was never a real problem because of the guard in
CppModelManager::updateSourceFiles().

Change-Id: Icfd6962d11f2b2bf2ac28825f2fa0af0838a09c8
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-07 11:04:47 +02:00
Nikolai Kosjar
70ca7496e3 CppTools: Builtin-Indexer: Remove superfluous member
Change-Id: Ia76a59f0c2739bec5e145edce3ca8711f54b5fa4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-08-07 11:04:40 +02:00
Oswald Buddenhagen
f3a61e8bf7 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/androidglobal.h

Change-Id: I3367bf2ea47c088989175dddeed2210294346f4c
2014-08-05 14:24:23 +02:00
hjk
d7c2b0b681 TextEditor: Consolidate document access functions.
There was document(), textDocument() and baseTextDocument().
Two should be enough...

Change-Id: Id9e41c8d857c5cb3269a9fce5ab594d34448c982
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-08-04 10:43:56 +02:00
hjk
f5b0bd32b2 TextEditor: Remove one stack of EditorWidget constructors
There are conceptually only two: one that operates a new document,
and one that shares one. Being explicit makes moving data over to
the Editor hierarchy easier. Convenience can be re-added there,
later.

Change-Id: I9b34ff26628c99ffff01201dcf99332d5e7253e9
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-08-01 14:10:23 +02:00
Przemyslaw Gorszkowski
ba42ceb0cb C++: nested class with enclosing template class
The parent of instantiation of nested class of template class
should be the instantiation of enclosing template class.

To prevent the infinite loop for case with local typedef of enclosing
template we should not change a parent of typedefed instatiation of
enclosing template. Example:
template <typename T>
struct Enclosing
{
  typedef Enclosing<T> EnclosingT;// first case
  struct Nested
  {
    typedef Enclosing<T> EnclosingT;// second case
  };
};

Task-number: QTCREATORBUG-11752
Task-number: QTCREATORBUG-11999
Change-Id: Iadd7b5ef73ee0c4881f59c9dabfe03339f55827b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-08-01 09:59:59 +02:00
Przemyslaw Gorszkowski
0bc202d52f C++: use pointer in template specialization and initialization
Fix code completion for using pointer in template specialization and
initialization.
Example:
template <typename T>
struct S {};

template <typename T>
struct S<T*> { T* t; };

struct Foo { int foo; };

int main()
{
  S<Foo*> s;
  s.t-> //no code completion
  return 0;
}

Task-number: QTCREATORBUG-12638
Change-Id: Idcd461806a22f08b76236f2db6346f157b12f5d3
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-07-31 22:53:14 +02:00
hjk
6a52868cdd TextEditor: Update tab settings for all tab changes
Not just for selected documents. This also removes the need for
the separate setupAsPlainTextDocument function.

Change-Id: I51a04eebbad37a7598068ce6e157a53c1519464f
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-30 16:21:43 +02:00
hjk
1924fdb90f TextEditor: Merge PlainTextEditor into Base
Same patter. Plain is fully merged now, so remove the files, too.

Change-Id: Id8c0ba5689ad9980a0db3580cb9833344fd911f3
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-30 15:17:53 +02:00
hjk
068462e52d TextEditor: Replace PlainTextDocument by Base + a setup function
Change-Id: I1088062d0b74fd0dd69e92c55cc8bb80da61ae2d
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-30 15:17:50 +02:00
hjk
faa0e5b96c TextEditor: Replace PlainTextEditorWidget by Base + a setup function
Change-Id: I91a3bfb66a72e9234ca59f97d5260bbfc3ccb0d3
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-30 14:41:09 +02:00
hjk
01822144d1 TextEditor: Remove indenter construction from PlainTextEditorWidget
Do it in the users "that know" and remove the special constructor case.

Change-Id: I9298c8d13118068adc7958c0894dccb7af4d7855
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-30 14:20:21 +02:00
hjk
bf5e43be94 TextEditor: Merge ITextEditor and BaseTextEditor
Adjust all callers, de-export BaseTextEditorAnimator

Change-Id: I2329d976c1398e2449844bb480a4d4ed29859506
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-25 13:45:55 +02:00
Nikolai Kosjar
6a9ae7e25f CppTools: Auto-include pre-compiled headers
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>
2014-07-24 12:25:02 +02:00
Nikolai Kosjar
4e9d3b044e CppTools: Fix Switch Header/Source going to wrong file
Check only other projects if the current file is not part of any
project.

Task-number: QTCREATORBUG-12328
Change-Id: I7db65b26313a26773bbbf17e966abd668ea9a1a5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-24 12:24:03 +02:00
Erik Verbruggen
3a242495fe ObjC++: also index ObjC symbols.
@classes, @protocols, @properties and -methods (and +methods) will now
show up in the locator.

Change-Id: I33f904c456c321fc80b8aba7ff52d5f1207c58be
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-24 11:38:54 +02:00
hjk
cf8a614419 Merge ITextMark and BaseTextMark
Turns out we don't even need two-phase initialization,
by transparently postponing registration until we get
a non-empty file name, either at constuction, or at
file name change times.

Change-Id: I3e87e47c820066e6707e946fc474ab9c1993e61f
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-07-23 10:38:31 +02:00
hjk
b100d3bc9c Compile fix with gcc 4.7.2
Looks like a compiler bug, but it's a supported environment.

Change-Id: I73d67a74e1adbac6747cbc96e3fbd96eeee9556c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-18 09:07:36 +02:00