Prevent implicit converting of the null type to JsonObjects or
JsonValues.
Change-Id: Ib1b74d8a7962cbb308ad0d1bca117cfd2130fb1b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Instead of always defining the templates of the response type by hand
add a using construct in the Request where all the template types are
known.
Change-Id: I0dc00bd9aef9c37c9454e35aca200a30fcf2ebda
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
...and remove pointless white space.
Change-Id: I2b737058ad6c598b8d8034a7a05c29a6d629dbac
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Alternative way to the more complex way of de-registering
opened documents from the respective client that do no
more match the language filter settings.
Change-Id: I1968a928480e49cf203b91d7d36cf7db26f6d56c
Reviewed-by: David Schulz <david.schulz@qt.io>
... in the language client code assist by making the
code assist provider a member of the client.
Change-Id: I8ea22300a2c824ff00b87cdeaf8ea5f0cf95e4a9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Instead, set the default level of all logs to QtWarningMsg.
The call to setFilterRules overrides the user preferences in qtlogging.ini.
Change-Id: Id5f6cd550d14ff7f45ae04c5d3110e0bafb0f072
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: hjk <hjk@qt.io>
And move the static init function to a separate class.
Change-Id: I7c924ce72ad74047e6bfdb04fa04a6132050a360
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
In preperation for specialized settings other than the stdio client
Change-Id: I20ca33fd1d714e4e0ca527de86261c0a58740d15
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
We highlight the current symbol on cursor changes
(="documentHighlight"), but when the contents change the text editor
widget first informs us about the cursor change, then the content
change. This resulted in the highlighting being done on the old content.
Delay the symbol highlight by a short amount of time, so it always
operates on the new content.
Change-Id: Ic24b2a853697c588ae73b102868e8f74e4437606
Reviewed-by: David Schulz <david.schulz@qt.io>
All showMessage notification are send to the GeneralMessages Pane and
the showMessageRequest will show a message box
Change-Id: Ida3f2a43669ec4c08694ed74e086a281d3d66f9d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
If we receive messages with incomplete header we seek to the position
before we started to read any data from the buffer. Writing to this
buffer where the current position is not at the end results in
misordered data.
Change-Id: Ifaea5c07abee59c803ed08094ed1fdaf40d1cb7b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Also store the executable and arguments in the stdio client to get a
more accurate comparison of clients.
Change-Id: I84fdd4ea5f32b17198d3f08e7f5d494f7fbe67dc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
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>