diff --git a/.gitignore b/.gitignore index 475e487..9ea8ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ client/out server/out +server/src/perlnavigator.ts browser-ext/out node_modules client/server diff --git a/package.json b/package.json index de6b1b7..c696744 100644 --- a/package.json +++ b/package.json @@ -384,7 +384,7 @@ "install-browser": "cd browser-ext && npm install", "postinstall": "npm run-script install-client && npm run-script install-server && npm run-script install-browser", "ci-client": "cd client && npm ci", - "ci-server": "cd server && npm ci", + "ci-server": "node update-version.js && cd server && npm ci", "ci-all": "npm ci && npm run ci-client && npm run ci-server", "clean": "rm -rf ./node-modules ./server/node-modules ./client/node-modules", "foo": "(cd client && npm ci && cd ../); (cd server && npm c )", diff --git a/server/src/server.ts b/server/src/server.ts index 600a511..a6318b0 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -37,6 +37,13 @@ import { getPerlAssetsPath } from "./assets"; var LRU = require("lru-cache"); +import { VERSION, NAME } from "./perlnavigator"; + +if (process.argv.includes ("--version")) { + console.log(NAME + " " + VERSION); + process.exit(0); +} + // It the editor doesn't request node-ipc, use stdio instead. Make sure this runs before createConnection if (process.argv.length <= 2) { process.argv.push("--stdio"); @@ -82,6 +89,10 @@ connection.onInitialize(async (params: InitializeParams) => { triggerCharacters: ["(", ",", ")"], }, }, + serverInfo: { + name: NAME, + version: VERSION, + } }; if (hasWorkspaceFolderCapability) { result.capabilities.workspace = { diff --git a/update-version.js b/update-version.js new file mode 100755 index 0000000..fdcee4c --- /dev/null +++ b/update-version.js @@ -0,0 +1,10 @@ +const fs = require("node:fs"); +const pkg = require("./package.json"); + +const content = ` +export const VERSION = "${pkg.version}"; +export const NAME = "${pkg.name}"; +`; + +fs.writeFileSync("server/src/perlnavigator.ts", content); +console.log("Generated server/src/perlnavigator.ts");