Commit Graph

7307 Commits

Author SHA1 Message Date
Eike Ziller
cc1e03a649 Merge remote-tracking branch 'origin/master' into 4.8
Change-Id: Ic7fc44a9533d5d5abd384ff1185ec10811912314
2018-09-25 13:23:13 +02:00
Orgad Shaneh
015a19ac97 Tests: Remove use of deprecated QDateTime::toTime_t
Change-Id: I7d9f4e13deb8f375840f9da0c84b165a1dd744ee
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-09-25 10:17:07 +00:00
Marco Bubke
4e6d09d8e1 Clang: Reuse thread based pipeline for pch creation
The pch creation so far used signal and slots but there was no explicit
pipeline. This patch is introducing the same architecture like the
refactoring plugin. It is filtering out older project parts from the
pipeline.

Change-Id: Iaa6bd2ca1272231b97ebe1f5f7b2ce8e43bc590c
Task-number: QTCREATORBUG-21111
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-24 14:33:05 +00:00
Christian Stenger
3e4dc83a95 Tests: Fix compile for boost > 1.64
Change-Id: Idf5d68e4528fd49023b21912a48a3cc109a1bbfa
Reviewed-by: hjk <hjk@qt.io>
2018-09-24 09:58:57 +00:00
Orgad Shaneh
41dee83bec TextEditor: Modernize
override, auto, nullptr, member initializers.

Change-Id: I04c6ebb683849568973bd7782fb5a3279267141e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-09-20 08:48:49 +00:00
Nikolai Kosjar
9dea4c0743 Tests: Fix generichighlighter/highlighterengine test
highlighter.cpp: In member function ‘void TextEditor::Highlighter::applyFormat(...)
highlighter.cpp:572:22: error: ‘fontSettings’ was not declared in this scope

Broken by 6ea686faa9.

Fix by adapting the mock/fake header.

Change-Id: I700a7ed4573c44f04ead5a2e6f2df198edaaebb4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-09-20 06:12:33 +00:00
hjk
83a8b8bf8f Debugger: Do not count not matching test as failed
Change-Id: I37a109915426d17b65ab0782e90f238a5da94a1c
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-09-18 06:13:43 +00:00
Ivan Donchevskii
0bd095aa45 ProjectExplorer: Rename compiler includes from System to BuiltIn
System include are those used with -isystem keyword, built-in
includes on the other hand come from compiler and always
follow in the end of the include list (after system includes).

Change-Id: I95c2fec36d2e5b43f014fe0a88d59c6769edfa1f
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-17 11:24:32 +00:00
hjk
e507abf6a6 Debugger: Use new CheckSet infrastructure in AnonymousStruct test
Change-Id: Ib3e2ea2ab8a70ebfe94d80a0b0bf4b57fdb9027a
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-09-17 09:22:23 +00:00
Orgad Shaneh
cc1693c4ce Tests: Fix build
This amends commit 11245564da.

Change-Id: I1ca887a69d85064c4e1a3cfdfc618070615f00c3
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-14 11:36:54 +00:00
Eike Ziller
4c914c6b43 Merge remote-tracking branch 'origin/4.7'
Change-Id: I562b0b8afb98940e03b67cbd7d7c3e756b77d736
2018-09-14 09:59:48 +02:00
Tobias Hunger
1df553a683 ProjectExplorer: Rename IncludePathType to HeaderPathType
It is the type used by the HeaderPath class, so reflect that in
the name.

I also considered to rename HeaderPath to IncludePath, but
that name is reflected in a lot of users, which would also need
to be adjusted for consistency. That would blow up the patch size
for little value IMHO.

Change-Id: I51421dbd3ab8b2874dc32fc82dc394c9b93ce5e9
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-13 11:32:31 +00:00
Ivan Donchevskii
50e5aacb02 Highlighting: Add highlighting style for punctuation
Currently only operators have their own style but not
punctuation tokens. Make possible to highlight both.

Task-number: QTCREATORBUG-20666
Change-Id: I9533e0f1bef65b86c4e4f5c9756571103584124b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-13 11:15:05 +00:00
Marco Bubke
b173c3d83f Clang: Add generated files support for pch manager
Change-Id: I69aae62dd1091a1958d4b0f23a37758c9f58c97b
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-12 15:08:46 +00:00
Marco Bubke
e0b7a28333 Clang: Add refactoring project updater
The project parts are now first used by the pch manager and then notified
by the pch manager to the refactoring plugin.

Change-Id: I88074d8891cd0de9721497bbafee0deffc0b6339
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-12 14:32:34 +00:00
Marco Bubke
75c95d4b73 ClangRefactoring: Fix project part id
We used display name which is part of project part id instead of the id
getter.

Change-Id: I97aa343c4380f9eb8c8e6a4400156eeac1f40863
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-12 10:35:12 +00:00
Marco Bubke
0aced361bf Clang: Cleanup symbol indexer
Change-Id: I1a7bcc807bf222ae0d8f622bca512c47489bfb79
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-12 10:34:46 +00:00
Ulf Hermann
2b582ed455 QmlJS: Fix reformatter test
Apparently the reformatting truncates any sequence of multiple empty
lines into one. That seems to be by design. Therefore, remove one of the
two adjacent empty lines from commments.qml. Also, don't invert the
actual and expected values in the test code.

Change-Id: Id87c6fa0b2c7a03884d42d109b7d55f5040a927a
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-12 08:09:51 +00:00
Ulf Hermann
88074a4aa8 QmlJSEditor: Remove disabled qmllookup test
This test has been disabled since Qt4 times and is unfixable. In order
to test lookup of QML types, we need to write a new test.

Change-Id: I13909c277d0b9552c158b74529c350cb28fb3794
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-11 11:59:41 +00:00
Ulf Hermann
51adb199ab QmlJS: Fix and enable remaining pieces of importscheck test
Change-Id: Idaaf19cee1a0a971b9c3bf5ad3371a68ebd81f40
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-11 11:13:29 +00:00
Ulf Hermann
b6195f3de7 QmlJS: Fix case-fallthrough.qml test
The warning about strange interactions between QtQuick1 and QtQuick2
doesn't exist anymore, and I don't see why it would show up in that case
anyway. QmlJS::StaticAnalysis::Type used to have a member 324, and the
comment references that.

Change-Id: I4f0a256588919a146068b8771954bcabf0468dbc
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-09-11 10:31:31 +00:00
Marco Bubke
3abaf647d0 Add system include path to HeaderPath and merge ProjectPartHeaderPath
System include paths are appended after other includes by the compiler. So
we should set them as system includes and not as normal includes. Otherwise
we change the include order. Headers in system include paths are not
cluttering the screen with unwanted warning and by the way improve
performance too.

ProjectPartHeaderPath was a dopperganger of HeaderPath, so we merged them.

Change-Id: I7c394b4098b697de79761499ffcd5913cc02d652
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2018-09-10 09:31:32 +00:00
Eike Ziller
eccc24e5c9 Merge "Merge remote-tracking branch 'origin/4.7'" 2018-09-07 13:27:01 +00:00
Christian Stenger
28ab852e53 Squish: Wait for a clean shutdown when restarting QC
This fixes a race condition in tst_CSUP06 where the next run
of QC removed .user* but the first instance was not completely
finished with the shutdown process. The .user files of the project
got updated (or recreated) before the second instance tried to
open the same project again. Ensure the first instance is closed
to be sure that project's .user files got created or updated
before the second instance tries to remove and re-open them.
Follow the same approach for other tests to avoid the same issue
later on.

Change-Id: I37721f4dd647f9bbf7c6fed6e753a2906e30db81
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2018-09-07 12:48:28 +00:00
Christian Stenger
0dc1b4e7b3 Dumper: Tests: Fix handling of skipped single tests
Amends b3b4465b2.

Change-Id: Ie268a97af944d17f20077363fa37c89ad998f53e
Reviewed-by: hjk <hjk@qt.io>
2018-09-07 12:48:17 +00:00
Eike Ziller
ac9f1f798c Merge remote-tracking branch 'origin/4.7'
Change-Id: Ifb51ca9893549c478e99c9fc3ea6c32d5d5a28a2
2018-09-07 14:39:42 +02:00
Robert Loehning
1a64efd863 Squish: Stabilize tst_CSUP06
Change-Id: I2cac53f69d15763770fe3955408867ec668bfccd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-07 11:12:29 +00:00
hjk
9a0030a8ba Debugger: Make inheritance dumper test pass again
Change-Id: I2dcb6f811c34beda52e4b4d01526222b4e2abfd7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-07 08:55:33 +00:00
hjk
4cb0b3fa73 Debugger: Make enum class dumper test pass again for gdb
Change-Id: Iaded82ab13f30e7222eb14f548ac72d1c6502b7d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-06 13:41:51 +00:00
hjk
b3b4465b2f Debugger: Make std::unordered_set test pass again
For some reason order is not important in that context...

Change-Id: I0961dd5be7775d190b9bef6b739dc9d690eb36a9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-09-06 13:11:18 +00:00
Marco Bubke
2a30f0e5d6 Clang: Improve generated files handling
Generated files are referenced by the system collector directly to set the
unsaved files.

Change-Id: I24be3ee544b7824b8b0e518eafd409f32bd002ab
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-06 11:26:00 +00:00
Christian Stenger
1016dc0603 Squish: Refactor starting Qt Creator from Squish
Change-Id: I7cbce7db2a22a7cb327965b9b7918eb46266b260
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2018-09-05 09:24:18 +00:00
Marco Bubke
3d9974db95 Utils: Fix small string
Change-Id: I6a746eb28c6c803b9ade9f626a950cf93ba6fe99
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-03 14:26:05 +00:00
Marco Bubke
7cac843343 ClangRefactoring: Remove unused code
Change-Id: I752d688039e8bb85654fd54b61a0c8a4e6677954
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-03 12:14:24 +00:00
Marco Bubke
a86867eb8a Clang: Introduce parallel indexing
Change-Id: I522cb18e6d24b7dbed5d5dfa3a732e5b3b5113bb
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-03 12:13:10 +00:00
Marco Bubke
2f41886c4b ClangRefactoring: Process tasks after a task has been finished
It could be that processTasks is executed before the future is finished
but in that case there are other tasks which will be called later.

Change-Id: I9b1bfb6fdd642f23842b9c70d60d5b1552193b99
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-09-03 09:40:03 +00:00
David Schulz
d61d29cf16 Introduce a basic client for the language server protocol
The language server protocol is used to transport language specific
information needed to efficiently edit source files. For example
completion, go to operations and symbol information. These information
are transferred via JSON-RPC. The complete definition can be found under
https://microsoft.github.io/language-server-protocol/specification.

This language server protocol support consists of two major parts, the
C++ representation of the language server protocol, and the client part
for the communication with an external language server.

The TypeScript definitions of the protocol interfaces are transferred to
C++ classes. Those classes have getter and setter for every interface
value. Optional values from the protocol are represented by
Utils::optional<ValueType>. The JSON objects that are used to transfer
the data between client and server are hidden by a specialized
JsonObject class derived from QJsonObject. Additionally this JsonObject
provides a validity check that is capable of creating a detailed error
message for malformed, or at least unexpected JSON representation of the
protocol.

The client is the interface between Qt Creator and language server
functionality, like completion, diagnostics, document and workspace
synchronization. The base client converts the data that is sent from/to
the server between the raw byte array and the corresponding C++ objects.
The transportat layer is defined in a specialized base client (this
initial change will only support stdio language server). The running
clients are handled inside the language client manager, which is also
used to connect global and exclusive Qt Creator functionality to the
clients.

Task-number: QTCREATORBUG-20284
Change-Id: I8e123e20c3f14ff7055c505319696d5096fe1704
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-09-03 08:00:46 +00:00
Ulf Hermann
67b09f5132 Tracing: Adapt aggregator test to new ctor signature
Change-Id: Ifb94c1e1f14b26aa2bb365cd08d36fa67642ecc7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-31 08:14:04 +00:00
Christian Stenger
f38932dd72 Tests: Fix compile after referred file has moved
Amends 5c658ac968.

Change-Id: Ia876cbd49edc60aeeaf564b787f3ec05c4b303aa
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-08-31 07:44:46 +00:00
Ivan Donchevskii
8b6a16c95b Clang: Fix completion after '{'
Follow-up fix for 8d0391a4f9.

Do not complete after '{' coming not after an identifier.
Take constructor completions only for '{' and function
completions only for '('. Filter constructor completions by
class/struct type.

Task-number: QTCREATORBUG-21004
Change-Id: I7ae2d6bee23cf907648c42b93eb12742942833f6
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-08-30 13:36:52 +00:00
hjk
cc198547e9 Debugger: Replace module polling in gdb by handling notifications
Explicit polling is still available and accessible as fall back in
the gui, but is at least in theory not necessary anymore.

Change-Id: Ifd184fb88bdbf5de53f5776e2c94a03f8ad44a06
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-30 12:07:20 +00:00
Christian Stenger
09b611acde Squish: Fix checking for plugin loader issues
Change-Id: Ibf894f3792f78c496be5fcbdfcd6c19b8b1246e4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2018-08-30 11:01:43 +00:00
Eike Ziller
8e05783019 Merge remote-tracking branch 'origin/4.7'
Change-Id: I4332eba9f1f66fef185359c79c4d96420d8b78ca
2018-08-30 08:31:25 +02:00
Christian Kandeler
faccb8fd71 qbs build: Fix highlighter engine autotest
We link against the TextEditor plugin as of 601eebd832, so don't pretend
anymore that we are the plugin.

Change-Id: I8afdce57ceffdcbf965e16e7a24c0a9ab6d7d234
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-28 13:06:32 +00:00
Marco Bubke
b2c3e683cf ClangRefactoring: Add SymbolIndexerTaskScheduler
The scheduler is managing the asynchronous tasks by using the symbols
collector manager. Every symbols collector can be used by only one thread,
so the we have to pass the symbols collector around by the future interface
to make the available again after a task is finished.

Change-Id: Ic2eeaa986c2d93978d043216c46e8cb38cea769f
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-08-27 13:46:34 +00:00
Marco Bubke
5bd7af7a90 ClangRefactoring: Add SymbolIndexerTaskQueue
A first step for concurrent index task.

Change-Id: I9a0dba9f4a67ee605281516785697045b34e2694
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-08-27 09:17:39 +00:00
Marco Bubke
6fba0be280 ClangRefactoring: Improve symbol parsing
Declarations are only indexed if their file has been changed and references
has to be indexed if the file or any included file has been changed.

Change-Id: I07c6de1379bce2462c1e0fad34d4378a3da4397b
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-08-27 08:51:29 +00:00
Eike Ziller
601eebd832 Fix painting of current line in generic and python editors
The generic highlighter and the python editor explicitly map some tokens
to the format C_TEXT. Unfortunately this format is special, because it's
foreground and background colors are handled by setting the editor's
palette, and should not be used for setting the format on characters.

If the format is explicitly set on characters, their background will be
oblique and overpaint e.g. the highlight for the current line, which
looks pretty ugly.

Handle this directly in SyntaxHighlighter::formatForCategory for all
syntax highlighters, by returning an empty QTextCharFormat for C_TEXT.

Change-Id: Ifaeb556754ca8106ad6e55d7062b13b45457a809
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-08-24 08:15:21 +00:00
Robert Loehning
bba35ceff4 Squish: Remove remaining mentions of Squish hooking
Change-Id: If4fde6d47433b1c8e46c68c5b225004446214797
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-23 12:11:36 +00:00
Marco Bubke
aca14a36e9 Clang: Use only filePathId for comparison
The filePathId is already unique and the directoryId is there only to
improve the access time for the directory. So it is already strongly
ordered if we compare only filePathId.

Change-Id: I67255bea1d36d41a59421eeb51964440c053b1e3
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-08-23 08:42:10 +00:00