diff --git a/marimo/_server/lsp.py b/marimo/_server/lsp.py index 07ffb67deae..03863aff6f7 100644 --- a/marimo/_server/lsp.py +++ b/marimo/_server/lsp.py @@ -196,7 +196,7 @@ def get_command(self) -> list[str]: LOGGER.debug("LSP binary not found at %s", lsp_bin) return [] - copilot_bin = self._lsp_dir() / "copilot" / "language-server.js" + copilot_bin = self._lsp_dir() / "copilot" / "language-server.cjs" log_file = _loggers.get_log_directory() / "github-copilot-lsp.log" # Use typed format to avoid quoting issues: copilot: diff --git a/packages/lsp/move.js b/packages/lsp/move.js new file mode 100644 index 00000000000..4011c6d735b --- /dev/null +++ b/packages/lsp/move.js @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +const fs = require("node:fs"); +const path = require("node:path"); + +// Copy node_modules/@github/copilot-language-server/dist/ to dist/ +const srcDir = path.join( + __dirname, + "node_modules/@github/copilot-language-server/dist", +); +const destDir = path.join(__dirname, "dist"); + +// Recursively copy directory +fs.cpSync(srcDir, destDir, { recursive: true, dereference: true }); + +// Rename language-server.js to language-server.cjs +const oldPath = path.join(destDir, "language-server.js"); +const newPath = path.join(destDir, "language-server.cjs"); +fs.renameSync(oldPath, newPath); + +// biome-ignore lint/suspicious/noConsole: build script +console.log("Successfully copied and renamed language-server files"); diff --git a/packages/lsp/package.json b/packages/lsp/package.json index 0cecdf0e353..e42d4b0019d 100644 --- a/packages/lsp/package.json +++ b/packages/lsp/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "scripts": { "build:ts": "tsup index.ts --format cjs --minify", - "build:deps": "cp -LR node_modules/@github/copilot-language-server/dist/ dist/", + "build:deps": "node move.js", "typecheck": "tsgo", "build": "pnpm run build:ts && pnpm run build:deps", "test": "vitest" diff --git a/tests/_server/test_lsp.py b/tests/_server/test_lsp.py index 43696c6a12b..fb39fdb916d 100644 --- a/tests/_server/test_lsp.py +++ b/tests/_server/test_lsp.py @@ -150,7 +150,7 @@ def test_copilot_server_uses_typed_format(tmp_path: Path) -> None: copilot_dir = lsp_dir_with_spaces / "copilot" copilot_dir.mkdir() - copilot_bin = copilot_dir / "language-server.js" + copilot_bin = copilot_dir / "language-server.cjs" copilot_bin.touch() # Mock the _lsp_dir method to return our test directory