Commit Graph

131 Commits

Author SHA1 Message Date
Nikolai Kosjar
f7741ef63c Clang: Report only diagnostics that can be shown in the editor
Change-Id: I9c258159d240c6ba7eeff34702d8512d9220b3af
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-11-16 14:18:37 +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
Nikolai Kosjar
be1e0f7ec0 Clang: De-duplicate in Messages::registerMessages()
Change-Id: Id3c73249f562abd89de8e76290ea712c2fe7fae1
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-10-19 09:21:21 +00:00
Marco Bubke
250c8d662b Clang: Add UpdateTranslationUnitsForEditorMessage
If an editor is changing all translation units independent of their project
part they must be updated too. So we introduce a new message to update all
translation units with the same file path.

Change-Id: I70d0ea2bbca9fa880111ff7219573e54f3277026
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-10-13 14:03:11 +00:00
Nikolai Kosjar
f1300df6b3 Strip BOM from files
Change-Id: I9167c016760fe1e8378cdf84144c4bed5cd4e57c
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-10-01 10:51:10 +00:00
Marco Bubke
87baaee78d Clang: Add environment variable to disable alive timer
Change-Id: I558ff0fe83cce9ee921819c6fd9c18534fad9bcf
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-09-21 13:28:45 +00:00
Eike Ziller
fb73a87033 Clang: Fix compilation on OS X / clang
Change-Id: I7cc5738971b00dfcf012584d4b51f86914ec874b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-09-01 10:28:41 +00:00
David Schulz
d5c29ada95 Clang: Add QDataStream includes to ipc container.
Change-Id: I6f73a1daa3e8b934896ceb6fd0c1185e24d60236
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-09-01 05:45:35 +00:00
Marco Bubke
7eee8061f6 Clang: Add unsaved files messages
We have auto generated buffers from ui files which are not open but have no
file representation. So we need to provide them as unsaved files only.

Change-Id: I48a426c18e06eeda2fa707864f32f293e17ac651
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-31 15:02:19 +00:00
Marco Bubke
6e14eb6940 Clang: Rename ForCodeCompletion in ForEditor
It reflects that the translation units and projects have a tied
relationship with an editor.

Change-Id: I3c01d5776980fe079af1fdef82feded83fdf5463
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-31 15:02:02 +00:00
Marco Bubke
f2b7371af1 Clang: Reparse only if files are changed
Includes are now watched by a file watcher. Unsaved file changes are
watched too. If they are changed the translation units which depend on
them are set to a state which require a reparse. Later the diagnostics
of this units are collected and send back to creator.

Change-Id: I2fb5c7dd6644687f22399edd8d18edd6215c9505
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-31 15:00:07 +00:00
Marco Bubke
aa6aaee510 Clang: Add brief comment support
Change-Id: I5af23b6694d3d0bf45ed0a30b4d91b350f0515df
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-31 14:59:50 +00:00
Marco Bubke
b278dc87ca Clang: Add diagnostics
Diagnostics are now moved to the clang backend process. Fixits are
supported too.

Change-Id: I20faacf466bbf78dec479220c3d7b336a47bc453
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-31 14:59:16 +00:00
Marco Bubke
ec4d002857 Clang: Rename command in message
Change-Id: I1e2671d15b0db3c670b86dd0d4bed5ee09e866f1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-08-25 12:54:27 +00:00
Nikolai Kosjar
db3dc92202 Clang: Clarify stdout/stderr prefix of backend
Change-Id: I936e75ddc26b812c4570859e6a61c2a09590ed98
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-07-29 08:53:37 +00:00
Nikolai Kosjar
b783bcea60 Clang: Allow to time high-level functions
...by enabling the logging rule:

    qtc.clangbackend.timers=true

Change-Id: I085c6bbebc0343b74bcb90119d1ebb80ad49518d
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-07-29 08:53:24 +00:00
Nikolai Kosjar
e4748fe801 Clang: Typedef some often used types
using CodeCompletions = QVector<CodeCompletion>;
using CodeCompletionChunks = QVector<CodeCompletionChunk>;

Change-Id: Id729a43566c23dc000e44d79ccf4a49e4f235f51
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-07-23 11:48:26 +00:00
Nikolai Kosjar
b4464d8f4b Clang: Shorten debug output
...by writing unsaved file content and project part arguments to
temporary dirs.

Change-Id: Ic411700cb3da756788bbb315851ff38b0100fe71
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-07-20 09:58:34 +00:00
Nikolai Kosjar
09ce021627 Clang: Fix command name for QDebug
Change-Id: If29a41aaefeda725965a85f0c7ff47124e2a23c7
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-07-17 11:33:33 +00:00
Marco Bubke
5df8085529 Clang: Remove the hint and snippet field from the CodeCompletion
It is not used and is producing overhead.

Change-Id: I1398b18a40c0f5c0b90fe4c058996d7eb109f9f2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-07-16 12:54:58 +00:00
Marco Bubke
89bc1fc4c4 Clang: Rename filePaths in ids
UnregisterProjectPartsForCodeCompletionCommand is using them as ids
and not as file paths.

Change-Id: I13a82c1995c60bdb60c72f4fd794aa354fcbb4ef
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-07-15 08:57:42 +00:00
Nikolai Kosjar
b2ec03c74c Clang: Fix potential infinite loop
Change-Id: I373a652db8811b0ebb416f5914aa4af12a23a3c9
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-07-02 17:06:46 +00:00
Christian Kandeler
028709876a ClangBackendIPC: Fix qbs build on Windows.
Change-Id: I3dee9256cf9b49b3a5651d8534aec630c2d1ae5d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-30 08:48:49 +00:00
Nikolai Kosjar
2eb3bda5a8 Clang: Indicate lines from ClangBackEnd
...with a prefix.

Change-Id: I6e23e00254d7b7316057514d1234cde66ab44a0d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-26 07:56:44 +00:00
Marco Bubke
0e0f8b318e Clang: Filter out connection errors
The connections server needs some time to start and so the first connect
can be fail. Don't print an error in that case.

Change-Id: I38fe5401cd47a4ad1a552dcbdfafcc851e5dd7cf
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-25 13:08:03 +00:00
Christian Stenger
83957912fe Clang: Fix compilation with clang
Change-Id: I7c81e5d06564c43fb6ac2ee5d538ad6b7565c73c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-24 11:32:38 +00:00
Nikolai Kosjar
b105917b97 Clang: Quote project part arguments for easier debugging
Now we can copy paste to the shell and make tests there more easily.

Change-Id: Ic17ea23c4040583ba3af9e60ae73b242a574ab9b
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-24 10:22:27 +00:00
Nikolai Kosjar
5d51bd9324 Clang: Ensure end command is send before waiting for process finish
This reverts

    CmbIpc: Remove workaround
    287a263083

since the bug still exists. However, we use waitForBytesWritten()
instead of QCoreApplication::processEvents() since this seems to be fine
(QAbstractSocket::waitForBytesWritten is not called on Windows).

The bug was:
 1. Open a bigger project, like qtcreator.pro.
 2. After 2 seconds, quit it.
 ==> The Qt Creator window is gone but the Qt Creator process waits
     until the clangbackend process is finished.

Change-Id: I25c475d2a6db94a1c3a8d827a41f8c0b2624eaea
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
2015-06-24 10:03:26 +00:00
Orgad Shaneh
3ea517636f ClangBackEnd: Fix another operator<
Missed in 2fc604e699

Change-Id: I520cff39f806213b92f5f49bd8d22153ecdfe62b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-18 07:50:57 +00:00
Marco Bubke
2b84d7611b Clang: Reorder includes
Change-Id: I324e88c0d295114390c1fac2745c0d2d47637ece
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-16 13:53:30 +00:00
Marco Bubke
1402c067b1 Clang: Rename CodeModelBackEnd in ClangBackEnd
Change-Id: I13e8a458634110456375956d4d4da7239c86957f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
2015-06-16 13:29:27 +00:00