Skip to content

Commit a6b4b95

Browse files
committed
fix: correct TypeScript language server path resolution
The path to typescript-language-server was incorrect (3 levels up instead of 4). Fixed path: src/extensions/default/TypeScriptLanguageServer/ → project root - Was: ../../../node_modules/ (goes to src/node_modules - wrong!) - Now: ../../../../node_modules/ (goes to project root - correct!) Also added architecture documentation to clarify: - Phoenix runs in browser - client.js runs in Node.js via NodeDomain - Language server runs as child process of client.js - LSP protocol bridges browser ↔ Node.js ↔ language server This was a critical bug that would prevent the language server from starting because it couldn't find the typescript-language-server binary.
1 parent 043ffa0 commit a6b4b95

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

  • src/extensions/default/TypeScriptLanguageServer

src/extensions/default/TypeScriptLanguageServer/client.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,29 @@
2424
/*eslint-env es6, node*/
2525
/*eslint max-len: ["error", { "code": 200 }]*/
2626

27+
/**
28+
* TypeScript Language Server Client (Node.js side)
29+
*
30+
* ARCHITECTURE NOTE:
31+
* Phoenix runs in the browser, but this file runs in Node.js via Phoenix's NodeDomain.
32+
* Flow: Browser (main.js) → NodeDomain → Node.js (this file) → TypeScript LSP server
33+
*
34+
* This file:
35+
* 1. Runs in a Node.js process spawned by Phoenix's NodeConnection
36+
* 2. Creates a LanguageClient to manage the TypeScript language server
37+
* 3. Spawns the actual typescript-language-server as a child process
38+
* 4. Bridges LSP protocol between Phoenix (browser) and the language server (Node.js)
39+
*/
40+
2741
var LanguageClient = require(global.LanguageClientInfo.languageClientPath).LanguageClient,
2842
path = require("path"),
2943
clientName = "TypeScriptLanguageServer",
3044
client = null;
3145

3246
function getServerOptions() {
3347
// Path to the typescript-language-server executable
34-
var serverPath = path.resolve(__dirname, "../../../node_modules/.bin/typescript-language-server");
48+
// Go from: src/extensions/default/TypeScriptLanguageServer/ to project root
49+
var serverPath = path.resolve(__dirname, "../../../../node_modules/.bin/typescript-language-server");
3550

3651
var serverOptions = {
3752
command: serverPath,

0 commit comments

Comments
 (0)