Commit Graph

37 Commits

Author SHA1 Message Date
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
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
210321377e Editors: Some renamings to enhance consistency
The base pattern is FooEditor for BaseTextEditor derived classes
and FooEditorWidget for BaseTextEditorWidget derived classes. So:

CPPEditorWidget -> CppEditorWidget
CPPEditorWidgetPrivate -> CppEditorWidgetPrivate
...::EditorWidget -> PythonEditorWidget
GLSLTextEditorWidget -> GlslEditorWidget
GLSLEditorEditable -> GlslEditor

Change-Id: I76d34a3694c2fb35491982d86e83f7e4774c0be6
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-31 10:54:58 +02:00
Nikolai Kosjar
26a9f01d72 CppEditor: Check for a valid document
...from the semantic info before trying to use it.

Just after opening a file and using Follow Symbol the semantic document
might not be yet calculated.

Change-Id: I62deaf86415a2e2b0d7f1285f90bdcd9b5925a2e
Reviewed-by: Nikita Baryshnikov <nib952051@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-04 13:53:04 +02:00
Nikolai Kosjar
b497a34655 CppEditor: Fix always-false-condition
The condition didn't make sense. tk.kind() can't be < T_FIRST_QT_KEYWORD
*and* tk.kind() > T_LAST_KEYWORD at the same time.

Change-Id: Id300ad84f37eeff5081b0389c00d574a9cb23f35
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2014-06-24 17:25:13 +02:00
Nikolai Kosjar
c6358e5d38 C++: Add utf16 indices to Macro and Document::MacroUse
In most cases we need to work with the utf16 indices. Only in
cppfindreferences the byte interface is still needed since there we read
in files and work on a QByteArray to save memory.

Change-Id: I6ef6a93fc1875a8c9a305c075d51a9ca034c41bb
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-05-23 14:34:01 +02:00
Nikolai Kosjar
bb7da966b8 Cpp{Tools,Editor}: Respect multi-QChar code points when handling identifiers
* Consolidate code dealing with C++ identifiers into cpptoolsreuse.h
* Handle code points that are represented with two QChars

Change-Id: I4fb4435aa539f65d88598cac0b50629f33f32440
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-05-23 14:33:34 +02:00
Nikolai Kosjar
41aa2cb3bd C++: Use Token::utf16chars{Begin,End} where appropriate
...especially in CppTools/CppEditor where the offsets are used with a
QString/QTextDocument.

Change-Id: Ic6d18fbc01fb9cc899a9bd2d7424cd2edae487f1
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-05-23 14:23:51 +02:00
Erik Verbruggen
ee200a7be0 C++: fix follow-symbol-under-cursor for #import <xyz>
Task-number: QTCREATORBUG-12254
Change-Id: I4179c78f3ce6bf2236f8375da1765122a974118c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-05-22 13:11:41 +02:00
Nikolai Kosjar
126e69137a C++: Clarify units of a Token
This will avoid confusion when later more length and indices methods are
added.

In Token:
    length() --> bytes()
    begin() --> bytesBegin()
    end() --> bytesEnd()

Change-Id: I244c69b022e239ee762b4114559e707f93ff344f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-05-15 15:55:38 +02:00
Orgad Shaneh
0ae6905525 CppEditor: Avoid repetitive function calls
Change-Id: I1f3e316336376887ec2e546fcb0cb714c777ee0b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-05-13 04:20:27 +02:00
Eike Ziller
236ea9efb9 Merge remote-tracking branch 'origin/3.0'
Conflicts:
	share/qtcreator/debugger/dumper.cpp
	share/qtcreator/debugger/dumper_p.h
	share/qtcreator/debugger/test/main.cpp
	src/plugins/debugger/gdb/classicgdbengine.cpp
	src/plugins/debugger/gdb/pythongdbengine.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.cpp
	src/plugins/debugger/lldblib/guest/lldbengineguest.h
	src/plugins/debugger/lldblib/guest/main.cpp
	src/plugins/debugger/lldblib/ipcengineguest.cpp
	src/plugins/debugger/lldblib/ipcengineguest.h
	src/plugins/debugger/lldblib/ipcenginehost.cpp
	src/plugins/debugger/lldblib/ipcenginehost.h
	src/plugins/debugger/lldblib/lldbenginehost.cpp
	src/plugins/debugger/lldblib/lldboptionspage.cpp
	src/plugins/qbsprojectmanager/qbsstep.cpp
	src/plugins/qbsprojectmanager/qbsstep.h
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
	src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h
	src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp
	src/plugins/qnx/blackberrycheckdevmodestep.cpp
	src/plugins/qtsupport/debugginghelper.cpp

Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
2014-01-08 11:01:06 +01:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Orgad Shaneh
dbb23c7fbc CppEditor: Remove unused member from VirtualFunctionHelper
Change-Id: Icc73522fe108685aa09de37172a61dfa8d16ea9b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 19:17:41 +01:00
Orgad Shaneh
fe9bb880ae CppEditor: Fix override lookup for double call and casting
Possibly fixes other use-cases

Task-number: QTCREATORBUG-11159
Task-number: QTCREATORBUG-11165

Change-Id: I375143c9658c581267c7c8d61ce03c27858f2de5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-28 19:16:52 +01:00
Eike Ziller
1adab4c4cc Merge BaseTextEditorWidget::editorDocument() and ::baseTextDocument()
Doesn't really make sense to have the additional IDocument *editorDocument()
method.

Change-Id: I0a7420eb1afaa76f63c3f7e9c4b373acf624ffb9
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-12-18 11:34:34 +01:00
Nikolai Kosjar
273192759b CppEditor/CppTools: Move FunctionHelper to CppTools
...and rename it to FunctionUtils.

Change-Id: If076ec01fd82e8ba728764bdeab7e87e8bc1ff3b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-12-11 11:46:33 +01:00
Orgad Shaneh
056db85657 CppEditor: Accept LookupContext in virtual function lookup
Required for correct resolving of first virtual appearance

Change-Id: I2307027f769fb2f4c0942f4aa4e0d2b5327562b5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-12-04 14:45:43 +01:00
Nikolai Kosjar
796fcaf1d2 Revert "C++: Fix highlighting for lines with predefined macros"
This takes too much memory. For qtcreator.pro the numbers are as
follows:

    Patch applied:  ~ 1600MB (RES)
    Patch reverted: ~  510MB (RES)

This reverts commit 4c2daa90ce.

Task-number: QTCREATORBUG-10973
Change-Id: I843bd7c1ea4a26a1ec55ddc14c2a34a98d040922
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-12-03 09:53:26 +01:00
Nikolai Kosjar
4c2daa90ce C++: Fix highlighting for lines with predefined macros
This adds definitions for the macros __FILE__, __LINE__, __DATE__ and
__TIME__ on demand.

As a side effect, this also introduces highlighting for the uses of
these macros.

Task-number: QTCREATORBUG-8036
Change-Id: Ib7546c7d45d2eecbc50c7883fc684e3497154405
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-29 15:11:27 +01:00
Nikolai Kosjar
27fe5df146 CppEditor: Skip also forward declarations of templates on F2
Task-number: QTCREATORBUG-20

Change-Id: If6349605e1f396e88c8e3e008328fc2cac8a4119
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-27 17:09:12 +01:00
Przemyslaw Gorszkowski
4132011238 CppEditor:follow symbol:cursor is at the end of virtual function name
If the cursor is at the end of the virtual function name but before '('
then scope is a function.

Task-number: QTCREATORBUG-10294

Change-Id: I83699d3fa33bc0f33d6524fa6d84cfc2b9e71f85
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-11-25 12:24:16 +01:00
Orgad Shaneh
4442a92729 Braces cleanup
Change-Id: I8413252c90a1487d291f15d92837c30ab697b245
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-14 08:13:52 +01:00
Nikolai Kosjar
4a06dab30a CppEditor: Handle classes that do not override
...when searching the overrides for virtual functions.

In case there is no override for the static type of a function call
expression, make sure to:

1) include the last provided override (look up bases)
2) and all overrides whose classes are derived from that static type

Task-number: QTCREATORBUG-10470

Change-Id: I2c01bfdc6cb35c5a01a000ebd81a2b322ce2b795
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-11-12 16:42:38 +01:00
Nikolai Kosjar
65f13fe05c CppEditor: Clean up cppvirtualfunctionassistprovider.cpp
- Moves the findMatchingClassDeclaration() call from
  FollowSymbolUnderCursor::findLink into VirtualFunctionsAssistProcessor
  since we already have a SymbolFinder there
- Make canLookupVirtualFunctionOverrides a class member because we plan
  to add some methods
- Better parameter names/order for FunctionHelper::overrides()

Change-Id: I0a93ff5445352d47e808adad45485e520f06946e
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-31 11:00:04 +01:00
Nikolai Kosjar
8f0be66d3d CppEditor: Fix crash on virtual function override lookup
...involving templates.

Task-number: QTCREATORBUG-10496

Change-Id: I485d691043f27b03e120353f0dfd6a2fb0aa07ec
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-31 10:57:14 +01:00
Nikolai Kosjar
170cf87c5c CppEditor: Underline text for a virtual function call link
...when using the mouse (Ctrl + Hover).

Task-number: QTCREATORBUG-10480

Change-Id: Ifac5cf7859e724da910a2f7b2fcecd901eca5e13
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-24 11:52:11 +02:00
Nikolai Kosjar
0c62b29f97 CppEditor: Fix position of virtual override list
...when using the mouse (Ctrl + Left click).

Task-number: QTCREATORBUG-10479

Change-Id: I54a21c449d8bb8e608d383752beb3b31c9c81783
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-24 11:50:28 +02:00
Nikolai Kosjar
61c0de88c2 CppEditor: Simplify VirtualFunctionAssist{Processor,Provider}
...by extracting parameters to a dedicated struct.

Change-Id: I2f3b83cbc62a8b4a91b44b3a729d0f0c578b53f2
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-24 11:50:11 +02:00
Nikolai Kosjar
3e79d33d85 CppEditor: Trigger override search for reference types
...if the access token is T_DOT.

Task-number: QTCREATORBUG-10286
Change-Id: I85621a8166d4f18b3099488ac0ac05a0d6982c43
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-10-24 11:47:49 +02:00
Nikolai Kosjar
e79d4ed2e1 CppEditor: Follow Symbol Under Cursor opens the preprocessor dialog
... when invoked on a macro that is defined inside that dialog.

Change-Id: I419c6675d70cfb8dd174f6a33f502b4c584baa3a
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-10-22 15:58:54 +02:00
hjk
2b532c73ee CPlusPlus: Make (sub-)languague selection more generic
Change-Id: I4e2df6992b446adec662ab07671acd41715e41fd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-15 16:22:28 +02:00
Friedemann Kleint
31b8fbbcbf Fix MSVC-warnings in CppEditor.
cppfollowsymbolundercursor.cpp(174) : warning C4100: 'widget' :
unreferenced parameter

cppvirtualfunctionassistprovider.cpp(61) : warning C4138: '*/' found
outside of comment

Change-Id: I9c14aff54b88daa6eda9a217db2fc314e9f07742
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-04 09:43:41 +02:00
Joerg Bornemann
1ee1416646 CppEditor: fix follow symbol under cursor in SIGNAL/SLOT macros
If the cursor was on the first character of a SIGNAL/SLOT name in a
QObject::connect call, the detection in findLinkAt failed.
Token::end() is the first position behind the token, so we must check
if positionInBlock is less than tk.end().
An extra branch has been added to handle the case where the cursor is
on the opening parenthesis after the identifier within a SIGNAL/SLOT
macro. This worked before, because of the "fuzziness" of the former
condition.

Task-number: QTCREATORBUG-10264

Change-Id: I2122bc2c13af1eb6c37dba9134d2b5ab931f80a9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-01 15:53:02 +02:00
Joerg Bornemann
321ac6cc51 CppEditor: fix "follow symbol under cursor" for operators
Like for functions we can call attemptFuncDeclDef for operators. The
check for function names has been enhanced to take operators into
account.
For the switch from definition to declaration
SymbolFinder::findMatchingDeclaration has been enriched with operator
knowledge.

Task-number: QTCREATORBUG-7485

Change-Id: I29eebee337e26c8bf67dc8b4a15c43883045589d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-01 15:43:33 +02:00
Nikolai Kosjar
11aeaea86f CppEditor: "Follow Symbol Under Cursor" for virtual functions
F2 on a virtual function call presents a list of overrides in derived
classes. The function declaration of the static type is shown
immediately at the top.

Task-number: QTCREATORBUG-9611

Change-Id: I80ce906fa06272dc9fbd1662cd17500b8c77067f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 14:23:00 +02:00
Nikolai Kosjar
ab9846a9f8 CppEditor: findLinkAt() delegates to FollowSymbolUnderCursor
Moves functionality of CPPEditorWidget::findLinkAt into a newly created
class FollowSymbolUnderCursor. This slim downs cppeditor.cpp a bit and
makes Follow Symbol Under Cursor more easily testable.

Change-Id: I106c7fbfc6869dd13c75381fbe87c90dc88998a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-01 12:22:50 +02:00