diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt b/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt index 998fb9b06a..3ea2679652 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/CMakeLists.txt @@ -17,4 +17,4 @@ serenity_bin(CppLanguageServer) # 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 LibLanguageServer) +target_link_libraries(CppLanguageServer LibIPC LibCpp LibGUI LibLanguageServer LibMain) diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/main.cpp b/Userland/DevTools/HackStudio/LanguageServers/Cpp/main.cpp index dc19786c96..70c78735c3 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/main.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/main.cpp @@ -9,48 +9,38 @@ #include #include #include -#include #include #include -#include +#include +#include #include -static int mode_server(); +static ErrorOr mode_server(); -int main(int argc, char** argv) +ErrorOr serenity_main(Main::Arguments arguments) { bool tests = false; Core::ArgsParser parser; parser.add_option(tests, "Run tests", "tests", 't'); - parser.parse(argc, argv); + parser.parse(arguments); - if (tests) { + if (tests) return run_tests(); - } return mode_server(); } -int mode_server() +ErrorOr mode_server() { Core::EventLoop event_loop; - if (pledge("stdio unix recvfd rpath ", nullptr) < 0) { - perror("pledge"); - return 1; - } + TRY(System::pledge("stdio unix recvfd rpath ", nullptr)); auto socket = Core::LocalSocket::take_over_accepted_socket_from_system_server(); IPC::new_client_connection(socket.release_nonnull(), 1); - if (pledge("stdio recvfd rpath", nullptr) < 0) { - perror("pledge"); - return 1; - } - if (unveil("/usr/include", "r") < 0) { - perror("unveil"); - return 1; - } + TRY(System::pledge("stdio recvfd rpath", nullptr)); + TRY(System::unveil("/usr/include", "r")); // unveil will be sealed later, when we know the project's root path. return event_loop.exec();