From 67cb37423c6a540dbce43424671c5f4b2481276e Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sun, 5 Jul 2020 12:54:05 -0600 Subject: [PATCH] Get clangd working for C/C++/Objective-C --- backend/src/api.ts | 4 +++- backend/src/langs.ts | 1 + frontend/src/app.ts | 12 ++++++++++++ scripts/docker-install-phase3a.bash | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/backend/src/api.ts b/backend/src/api.ts index a92d501..8f596c5 100644 --- a/backend/src/api.ts +++ b/backend/src/api.ts @@ -250,7 +250,9 @@ export class Session { this.lsp.reader.listen((data) => { this.ws.send(JSON.stringify({ event: "lspOutput", output: data })); }); - this.ws.send(JSON.stringify({ event: "lspStarted" })); + this.ws.send( + JSON.stringify({ event: "lspStarted", root: `/tmp/riju/${this.uuid}` }) + ); } }; cleanup = async () => { diff --git a/backend/src/langs.ts b/backend/src/langs.ts index 0cd07d3..8cdaa63 100644 --- a/backend/src/langs.ts +++ b/backend/src/langs.ts @@ -147,6 +147,7 @@ implement main0 () = () main: "main.c", compile: "clang -Wall -Wextra main.c -o main", run: "./main", + lsp: "clangd", template: `#include int main() { diff --git a/frontend/src/app.ts b/frontend/src/app.ts index 499885a..29ef230 100644 --- a/frontend/src/app.ts +++ b/frontend/src/app.ts @@ -22,6 +22,7 @@ const DEBUG = window.location.hash === "#debug"; interface RijuConfig { id: string; monacoLang: string; + main: string; lspInit?: any; lspConfig?: any; template: string; @@ -151,6 +152,17 @@ async function main() { term.write(message.output); return; case "lspStarted": + if (typeof message.root !== "string") { + console.error("Unexpected message from server:", message); + return; + } + editor.setModel( + monaco.editor.createModel( + editor.getModel()!.getValue(), + undefined, + monaco.Uri.parse(`file://${message.root}/${config.main}`) + ) + ); const connection = createMessageConnection( new RijuMessageReader(socket!), new RijuMessageWriter(socket!) diff --git a/scripts/docker-install-phase3a.bash b/scripts/docker-install-phase3a.bash index ea98b4c..97044f3 100755 --- a/scripts/docker-install-phase3a.bash +++ b/scripts/docker-install-phase3a.bash @@ -30,6 +30,7 @@ beef # C/C++ clang +clangd # C# mono-mcs