1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:07:35 +00:00

HackStudio: Abstract away language-server details

This commit moves all the logic that deals with the language server
(from HackStudio) into a LanguageClient class, provides some functions
to make constructing them easier, and makes all language servers use a
singular IPC definition.
Also fixes the FIXME about making the autocompletion async.
This makes adding language servers in the future significantly less
duplicate-y, and significantly easier :^)
This commit is contained in:
AnotherTest 2020-10-02 03:01:33 +03:30 committed by Andreas Kling
parent 44f9637e20
commit ac5e08a541
17 changed files with 291 additions and 118 deletions

View file

@ -1,16 +1,15 @@
compile_ipc(CppLanguageServer.ipc CppLanguageServerEndpoint.h)
compile_ipc(CppLanguageClient.ipc CppLanguageClientEndpoint.h)
set(SOURCES
ClientConnection.cpp
main.cpp
CppLanguageServerEndpoint.h
CppLanguageClientEndpoint.h
AutoComplete.cpp
)
set(GENERATED_SOURCES
../LanguageServerEndpoint.h
../LanguageClientEndpoint.h)
serenity_bin(CppLanguageServer)
# We link with LibGUI because we use GUI::TextDocument to update
# We link with LibGUI because we use GUI::TextDocument to update
# the content of files according to the edit actions we receive over IPC.
target_link_libraries(CppLanguageServer LibIPC LibCpp LibGUI)