From dcf05988521a14c21e391a68b662c2b6e2e18040 Mon Sep 17 00:00:00 2001 From: Valtteri Karesto Date: Mon, 29 Nov 2021 10:58:04 +0200 Subject: [PATCH] Update file uris --- components/HooksEditor.tsx | 18 ++++++++++++++---- utils/languageClient.ts | 5 +++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/components/HooksEditor.tsx b/components/HooksEditor.tsx index 863fa49..941725e 100644 --- a/components/HooksEditor.tsx +++ b/components/HooksEditor.tsx @@ -48,18 +48,28 @@ const HooksEditor = () => { keepCurrentModel defaultLanguage={snap.files?.[snap.active]?.language} language={snap.files?.[snap.active]?.language} - path={snap.files?.[snap.active]?.name} + path={`file://tmp/c/${snap.files?.[snap.active]?.name}`} defaultValue={snap.files?.[snap.active]?.content} beforeMount={(monaco) => { - // @ts-expect-error - window.monaco = monaco; + if (!snap.editorCtx) { + snap.files.forEach((file) => + monaco.editor.createModel( + file.content, + file.language, + monaco.Uri.parse(`file://tmp/c/${file.name}`) + ) + ); + } + monaco.languages.register({ id: "c", extensions: [".c", ".h"], aliases: ["C", "c", "H", "h"], mimetypes: ["text/plain"], }); - MonacoServices.install(monaco); + MonacoServices.install(monaco, { rootUri: "file://tmp/c" }); + + // monaco.editor.createModel(value, 'c', monaco.Uri.parse('file:///tmp/c/file.c')) // create the web socket const webSocket = createWebSocket( process.env.NEXT_PUBLIC_LANGUAGE_SERVER_API_ENDPOINT || "" diff --git a/utils/languageClient.ts b/utils/languageClient.ts index 693bcea..7a1193d 100644 --- a/utils/languageClient.ts +++ b/utils/languageClient.ts @@ -5,7 +5,7 @@ import ReconnectingWebSocket from "reconnecting-websocket"; export function createLanguageClient(connection: MessageConnection): MonacoLanguageClient { return new MonacoLanguageClient({ - name: "Sample Language Client", + name: "Clangd Language Client", clientOptions: { // use a language id as a document selector documentSelector: ['c', 'h'], @@ -13,7 +13,8 @@ export function createLanguageClient(connection: MessageConnection): MonacoLangu errorHandler: { error: () => ErrorAction.Continue, closed: () => CloseAction.Restart - } + }, + }, // create a language client connection from the JSON RPC connection on demand connectionProvider: {