Commit Graph

2563 Commits

Author SHA1 Message Date
Marco Bubke
cc1ed420c2 Clang: Break dependency to visible Core::EditorManager::visibleEditors()
Change-Id: I4157cd190a8c00b07c0e2f3eeeab18409f2405b7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-02-02 11:56:23 +00:00
Marco Bubke
f41c6b0c4b Clang: Remove TextEditorWidget from AssistProposalItemInterface
Change-Id: I0ac924f88c1347d1b0027c47118b7ed21daf4869
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-02-02 11:26:58 +00:00
Marco Bubke
c903f4974f TextEditor: Introduce AssistProposalItemInterface
For unit test we need to break every dependency to the TextEditor
Widget etc.. With an abstract interface we can implement it in clang
without relying on unwanted dependencies. It makes it also easier to
compute the values deferred.

Change-Id: I1b313a1625f4e80bd324ab4bf1a7c4f6b690abe9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-02-01 14:01:35 +00:00
Marco Bubke
e42bf6ebc6 CppTools: Remove all references to the tool chain in the project part
Change-Id: I5fd55eadf94c8a185c2082b93b27bf4432e5cabf
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-02-01 13:13:32 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
Marco Bubke
ddd1d4c9cc CppTools: Remove cpptools/cppprojects.[h|cpp]
Change-Id: Ida0e8552d371972c141cf561b28667f4428c6fff
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-13 14:47:27 +00:00
Marco Bubke
68bd9a881f CppTools: Moving CompilerOptionsBuilder in its own header file
Change-Id: I503ffd72a98db6668f6449ce95e695e035a79a29
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-13 14:47:20 +00:00
Marco Bubke
1ae509541c CppTools: Moving ProjectPartBuilder in its own header
Change-Id: I0aa65ec6c80dcd437f13ff70021388b0da57ccfd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-13 14:47:11 +00:00
Marco Bubke
da1f8e66e5 CppTools: Move ProjectInfo in its own header file
Change-Id: I0fc4c73553a29585d4ff7c8d6593acb6975d1607
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-13 14:47:04 +00:00
Marco Bubke
2b4cadf1fe CppTools: Move ProjectPart in its own header file
Also extracting inline HeaderPath class and change projects list in vector
because the size is  larger than a pointer.

Change-Id: I885fdff3fe9bccc877634d1615249755f5b674fd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-13 14:46:56 +00:00
Marco Bubke
6fe9b0ccc4 CppTools: Add CppToolsBridge
We broke the dependency of
BaseEditorDocumentProcessor *BaseEditorDocumentProcessor::get(const QString &filePath)

It's hiding static calls and it is much easier to do it that way than to
provide a reference to every user. It's also possible to exchange it with
different implementations for different test cases.

Change-Id: Ic74699b45948e8b48f7efb6a1b295ba2641b8951
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-12 10:21:30 +00:00
Marco Bubke
0fca74d501 CppTools: Break TextDocument dependency of BaseEditorDocumentProcessor
BaseEditorDocumentProcessor was holding a TextEditor::TextDocument but
only used the QTextDocument and the file path.

Change-Id: I349cc95d973adeaf9f94638d84333f592c14e7f9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2016-01-12 10:20:49 +00:00
Tobias Hunger
d144ea58e0 Project: Add setRootProjectNode method
Add setRootProjectNode method and a default implementation of
rootProjectNode to Project. Use that in all derived classes.

Change-Id: Id28cde04457a20a8963d43020785ef9d77fea57c
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-11 15:33:26 +00:00
Tobias Hunger
219b2d9c16 Project: Do not save filenames in derived classes
Change-Id: I23960c61676e96c429b59ad8f8247e1b88606b1a
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-11 15:33:11 +00:00
Tobias Hunger
21d204ad5c Project: Add setProjectManager method
Implement default projectManager method in Project and use
these two everywhere.

Change-Id: I27e011e6fdc17b36aff1b8b931527307320e347c
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-01-11 15:31:04 +00:00
Tobias Hunger
b386dd0e99 Project: Add setDocument method
Add setDocument method, implement document method, use this in all
projects.

Change-Id: I5018bf7c2739665c13eee340184ce7c41fd319bb
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
2016-01-11 12:18:11 +00:00
Tobias Hunger
d134bdfb13 Project: Sprinkle override over all the projects
Change-Id: I5e03ef5a9fee03473152f8a7511d75a1818c3e05
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-07 17:23:29 +00:00
Nikolai Kosjar
9abfd73204 CppTools/Clang: Remove InMemoryInfo
...nowadays we only need the working copy.

Change-Id: I30924b3c5dc68b428d6c10f6ba015b0640b476d2
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-16 13:29:21 +00:00
Nikolai Kosjar
cbdcd1e4a7 CppTools: Move function to BuiltinEditorDocumentProcessor
It's only needed there.

Change-Id: Id12aa9d0fdf50b3292316426587677f79a09a9e9
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-16 13:29:12 +00:00
Nikolai Kosjar
ca63359386 CppTools/Clang: Clean-up of includes
Change-Id: I0ba340dcf0ee23e61588f17262d07e7088751836
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-16 13:15:38 +00:00
Nikolai Kosjar
f89d3dca8b Clang: Activate code model automatically if plugin is loaded
This removes also the need to close editor documents.

Change-Id: I96c68105bceb37841053f3dbd8a264e059a02cb8
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-16 12:23:58 +00:00
Eike Ziller
ff60bf37c9 Merge remote-tracking branch 'origin/3.6'
Change-Id: I8223551aec66539dd8c55262e5000c1621410334
2015-12-15 12:21:58 +01:00
Nikolai Kosjar
7bb2d833f1 CppTools: Predefine __func__ and friends
...so the built-in parser can handle them.

Change-Id: Iff69638f8939c3c4dced99699a3357dd94b23c71
Task-number: QTCREATORBUG-15431
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-12-15 09:57:28 +00:00
Nikolai Kosjar
536e7fb893 CppTools: Apply font settings for diagnostics immediately
...and not on document reload.

Change-Id: Idb6a9ba640a573c153aeab304dd280b6f6cf8ea0
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-09 14:16:07 +00:00
Marco Bubke
6e5f90917f Use text settings instead of hard coded diagnostic text formats
Change-Id: Id51d03a46b4403d9224508ff3c7647b829ee69cd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-12-09 11:31:02 +00:00
Oswald Buddenhagen
100ea30a1a Merge remote-tracking branch 'origin/3.6'
Conflicts:
	src/plugins/projectexplorer/toolchainmanager.cpp
	src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp

Change-Id: Id736c6922670c921c689219cb817b1541eaaf304
2015-12-02 18:42:05 +01:00
Nikolai Kosjar
475b11aad1 Clang: Fix recovering on clangbackend crash
The translation unit was updated, but not re-registered.

Handle the editor documents this way:
  1. Reset all ClangEditorDocumentProcessors (this will send an
     unregister message, but that's not problematic).
  2. For the visible editor documents, run their processors so that the
     translation units will be re-registered.
  3. For the invisible editor documents, mark them dirty. Once the user
     makes an invisible document visible again, the processor will run
     and also re-register the translation unit.

Change-Id: I23693ac197bd34a183f3a0020eb5372268636599
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-12-02 16:04:31 +00:00
Tobias Hunger
71b4ce6673 Qt: Remove platformName and platformDisplayName methods
Fix fallout of this in KitInformation/Kit/KitManager and the wizards.

Change-Id: I5cb88cc381dc04409401909b810940ab6dccf86a
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
2015-12-02 14:49:29 +00:00
Marco Bubke
d579608e8a Clang: Prioritize current and visible translation units
We reparse first the current and then the visible translation units before
we reparse all other units.

The signals connections are queued to wait for the visible editor update.

Change-Id: I5e2b8bc80568450268ca24e26720b3f5af640995
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-12-01 11:14:39 +00:00
Marco Bubke
7ce9ef9db4 Clang: Integrate highlighting results from backend
Change-Id: I2c3fb69aabfe075bde76d63eafc2ca370f17493c
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-26 15:19:27 +00:00
Nikolai Kosjar
eaa93e8631 CppTools: Enable not exporting symbols
Having a dllexport in the sources for a TEMPLATE=app project (e.g.
unittest.pro) will create a library on Windows, which is not needed.

Change-Id: I0d454cdb7e3eb862200766ea101d41cef2758986
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-26 13:56:59 +00:00
Eike Ziller
fa227a4eef Merge remote-tracking branch 'origin/3.6'
Conflicts:
	src/libs/qmldebug/qmldebugclient.cpp
	src/libs/qmldebug/qmldebugclient.h
	src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp

Change-Id: I9594b4e9befc78f8138deb121f0bfc4212f7edbf
2015-11-26 13:01:20 +01:00
Nikolai Kosjar
6deaf6b23d CppTools: Guard against doubled header paths
Change-Id: If183b6d2210028f74dae839db782114ce79911c4
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-23 14:22:24 +00:00
Eike Ziller
3f63635053 Merge remote-tracking branch 'origin/3.6'
Conflicts:
    src/libs/3rdparty/modeling/qmt/model_widgets_ui/classmembersedit.cpp
    src/plugins/git/gitplugin.cpp

Change-Id: I78a21510d484b655e01141a3543e08ee2123f9cd
2015-11-23 14:25:38 +01:00
Nikolai Kosjar
0498fb68ff C++: Revert lookup to 3.4.2
...which was least buggy.

The bugs fixed by the changes we revert here (highlighting/completion
for code involving templates) were minor compared to ones we currently
have. Those bugs will be addressed by the clang code model anyway.

Relevant commits were collected via:

  $ cd ${QTC}/src/libs/cplusplus
  $ git log \
   --no-merges \
   --format=oneline \
   v3.4.2..HEAD \
   -- LookupContext.* ResolveExpression.* TypeResolver.* TypeOfExpression.* \
      ../../plugins/cpptools/cppcompletion_test.cpp

From this list the following were skipped due to irrelevance:

  88c5b47e53 # CppTools: Minor cleanup in completion tests
  e5255a1f5c # CppTools: Add a test for ObjC not replacing dot with arrow
  5b12c8d63a # CppTools: Support ObjC in member access operator tests
  9fef4fb9ca # CPlusPlus: Fix warnings about overriding visit(...) methods

There were only minor conflicts while reverting those.

This changes touches so many files because there were quite some
cleanups and renames after the 3.4.2 release.

Task-number: QTCREATORBUG-14889
Task-number: QTCREATORBUG-15211
Task-number: QTCREATORBUG-15213
Task-number: QTCREATORBUG-15257
Task-number: QTCREATORBUG-15264
Task-number: QTCREATORBUG-15291
Task-number: QTCREATORBUG-15329
Change-Id: I01f759f8f35ecb4228928a4f22086e279c1a5435
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-19 14:48:38 +00:00
Eike Ziller
1dc8d0f032 Merge remote-tracking branch 'origin/3.6'
Change-Id: Ibee24c1c80984cdc45e7bcf3e4fbb5f1e6b81454
2015-11-17 09:38:05 +01:00
Nikolai Kosjar
439db76f64 CppTools: Clean up CppCodeModelSettingsWidget
Change-Id: Iee93d2d656a8a5c991b292d3e591cedd3e86f9e3
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-16 14:18:30 +00:00
Nikolai Kosjar
48952084a6 Clang: Remove per-mimetype settings
Related to

    commit c47079f97f7d42db0c581525a2ce6fddbc0995f2
    Clang: Activate the code model with a check box

Change-Id: Ief11768ba0dd27788032e2dd3ad9b7ae39a8f52b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-16 14:08:25 +00:00
Adam Strzelecki
9b3723d6f4 CppTools: Do not highlight instantiation as call
Underlying C++ model sometimes marks C++ object instantiation using initializer
as a (forward) function declaration. This leads to incorrect highlighting of
object variables as if they were function calls.

C++ model however marks in this case (and not any other case) such symbols as
ambiguous function types, see CPlusPlus::Bind::visit. This change skips such
ambiguous functions for highlighting as function call.

Also add test case for related bug report.

Task-number: QTCREATORBUG-15212
Change-Id: Ifde8db407f2fa8275a3f991bfa3d3b73eca8c14e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-11-16 10:18:05 +00:00
Eike Ziller
d13b22e6bc Merge remote-tracking branch 'origin/3.6'
Conflicts:
	src/plugins/coreplugin/editormanager/editormanager.cpp

Change-Id: Ibdf433b54e36e58182b7094f78d47ed3e8c81684
2015-11-12 13:43:17 +01:00
Orgad Shaneh
ba02ec3b03 CppTools: Initialize a local variable
Change-Id: I5cded88ce7c26a80246df79ad4ec43d82619b6eb
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-11-12 09:16:08 +00:00
Nikolai Kosjar
d8f119c8a2 Clang: Allow to provide extra command line options
This can be used to experiment with clang options that e.g. affect
diagnostics.

Changes take effect on editor re-open.

Change-Id: Ie46d0ff085a3700a748dbcf4b94b93b0bf9c4642
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-11-11 15:14:56 +00:00
Nikolai Kosjar
72785e3a11 Clang: Activate the code model with a check box
If the plugin is not activated, show a hint.

The underlying settings are still mime type based. This will be
addressed in a follow-up change.

Change-Id: I24b232365d505a0022a78e96eb496d219a8b7c5b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-11-11 15:12:19 +00:00
Nikolai Kosjar
4d1a1981a8 CppTools: CompilerOptionsBuilder takes project part by reference
...since it assumes a project part != 0 and does not participate in
ownership.

Change-Id: Ia9c1eca52776990576a2dac61e9144234b04c59c
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-11 09:51:19 +00:00
Nikolai Kosjar
9d7b054120 CppTools: Fix potential race condition
...when acessing m_headerPaths, m_projectFiles or m_definedMacros from
different threads.

ensureUpdated() locked the mutex before writing the variables, but
reading them happened with an unlocked mutex.

Change-Id: I4951fd58f1939e4e50534a018dd600004789668e
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-09 12:10:14 +00:00
Nikolai Kosjar
56f37f78b2 Clang: Speed up requesting diagnostics
Register the translation unit and request diagnostics from the
clangbackend as soon as the project part is determined. There is no
reason to wait until the parser is finished for the highlighter.

Change-Id: Iebccbf59ebd205389462dcee97363746fb651bb2
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-06 11:55:39 +00:00
Nikolai Kosjar
23fa5a7efd Clang: Provide the language option to the backend
Provide the language option (e.g. "-x c++-header") when registering a
translation unit for the editor.

Task-number: QTCREATORBUG-14787
Change-Id: Ie06f9fdab302f1b21ba72cdb65b6aabf9f7bc04c
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-06 11:54:16 +00:00
Christian Stenger
4ed5afba27 CppTools: Fix compile with gcc 4.7.3
Change-Id: I6a6f0a8ab065fb2c02373165a4b43d76f039d1f3
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-11-04 11:10:41 +00:00
Tobias Hunger
e1ed5e4804 FileUtils: Replace FileNameList with an alias
The functionality in that class is covered by initializers and
Utils::unique, so there is no need to keep a custom class.

This way FileNameList plays way nicer with utils/algorithm.h.

Change-Id: I8eeae6aca0558ecd998920c4fdfc5ea56bf75501
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-11-04 09:10:01 +00:00
Leena Miettinen
a2ae98557d Cpp: Add full stop to end of message
Change-Id: Idbda9e71fcd2322c2925c5dbfdca540992660282
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2015-10-23 08:05:18 +00:00