Skip to content

Commit a05f617

Browse files
authored
Makes language server executable (#133)
1 parent dd5b63d commit a05f617

File tree

7 files changed

+46
-23
lines changed

7 files changed

+46
-23
lines changed

.changeset/nervous-rabbits-greet.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'neo4j-cypher-vscode-extension': patch
3+
'@neo4j-cypher/language-server': patch
4+
---
5+
6+
Makes language server executable with npx

.changeset/pre.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@
1111
"antlr4": "4.13.1",
1212
"antlr4-c3": "3.0.1"
1313
},
14-
"changesets": ["brown-ravens-obey", "fuzzy-rice-train"]
14+
"changesets": [
15+
"brown-ravens-obey",
16+
"fuzzy-rice-train",
17+
"nervous-rabbits-greet"
18+
]
1519
}

packages/language-server/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @neo4j-cypher/language-server
22

3+
## 2.0.0-next.1
4+
5+
### Patch Changes
6+
7+
- Makes language server executable with npx
8+
39
## 2.0.0-next.0
410

511
### Major Changes

packages/language-server/README.md

+9-14
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ A language server wrapper for the `@neo4j-cypher/language-support` package.
44

55
## Installation
66

7-
We will provide a quick way to install the serer via npm soon™️. For now you can build it yourself, see instructions below.
7+
You can install the language server using npm:
88

9-
### Bundling and usage from typescript
9+
```
10+
npm i -g @neo4j-cypher/language-server
11+
```
1012

11-
To package the language server into a single javascript bundle, go to the root of the project and
12-
do `npm run build`.
13-
After that a file `./packages/language-server/dist/cypher-language-server.js` will be generated.
13+
### Usage
1414

15-
You can run the language server with `node ./cypher-language-server.js --stdio`.
15+
Once installed, you can run the language server using `cypher-language-server --stdio`.
1616

1717
Below you can find a few examples in Typescript on how to send messages to that server.
1818

@@ -21,9 +21,7 @@ Below you can find a few examples in Typescript on how to send messages to that
2121
```typescript
2222
import * as child_process from 'child_process';
2323

24-
let lspProcess = child_process.fork('cypher-language-server.js', [
25-
'--node-ipc',
26-
]);
24+
let lspProcess = child_process.spawn('cypher-language-server', ['--ipc']);
2725
let messageId = 1;
2826

2927
function send(method: string, params: object) {
@@ -99,7 +97,7 @@ const server = net.createServer((socket: net.Socket) => {
9997
});
10098

10199
server.listen(3000, () => {
102-
child_process.spawn('node', ['cypher-language-server.js', '--socket=3000']);
100+
child_process.spawn('cypher-language-server', ['--socket=3000']);
103101
});
104102
```
105103

@@ -109,10 +107,7 @@ server.listen(3000, () => {
109107
import * as child_process from 'child_process';
110108
import * as rpc from 'vscode-jsonrpc/node';
111109

112-
let lspProcess = child_process.spawn('node', [
113-
'cypher-language-server.js',
114-
'--stdio',
115-
]);
110+
let lspProcess = child_process.spawn('cypher-language-server', ['--stdio']);
116111
let messageId = 1;
117112

118113
const reader = new rpc.StreamMessageReader(lspProcess.stdout);

packages/language-server/package.json

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"author": "Neo4j Inc.",
55
"license": "Apache-2.0",
66
"files": [
7-
"./dist/cypher-language-server.js",
7+
"./dist/cypher-language-server",
88
"./src",
99
"package.json",
1010
"README.md",
@@ -16,8 +16,8 @@
1616
"cypher",
1717
"language server"
1818
],
19-
"version": "2.0.0-next.0",
20-
"main": "./dist/cypher-language-server.js",
19+
"version": "2.0.0-next.1",
20+
"main": "./dist/server.js",
2121
"types": "src/server.ts",
2222
"repository": {
2323
"type": "git",
@@ -30,15 +30,19 @@
3030
"engines": {
3131
"node": ">=18.18.2"
3232
},
33+
"bin": {
34+
"cypher-language-server": "./dist/cypher-language-server"
35+
},
3336
"dependencies": {
3437
"@neo4j-cypher/language-support": "2.0.0-next.0",
3538
"neo4j-driver": "^5.3.0",
3639
"vscode-languageserver": "^8.1.0",
3740
"vscode-languageserver-textdocument": "^1.0.8"
3841
},
3942
"scripts": {
40-
"build": "tsc -b && npm run bundle",
41-
"bundle": "esbuild ./src/server.ts --bundle --format=cjs --platform=node --outfile=dist/cypher-language-server.js",
43+
"build": "tsc -b && npm run bundle && npm run make-executable",
44+
"bundle": "esbuild ./src/server.ts --bundle --format=cjs --platform=node --outfile=dist/cypher-language-server.js --minify",
45+
"make-executable": "cd dist && echo '#!/usr/bin/env node' > cypher-language-server && cat cypher-language-server.js >> cypher-language-server",
4246
"clean": "rm -rf dist",
4347
"watch": "tsc -b -w"
4448
},

packages/vscode-extension/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# @neo4j-cypher/vscode-extension
22

3+
## 2.0.0-next.1
4+
5+
### Patch Changes
6+
7+
- Makes language server executable with npx
8+
- Updated dependencies
9+
- @neo4j-cypher/language-server@2.0.0-next.1
10+
311
## 2.0.0-next.0
412

513
### Major Changes

packages/vscode-extension/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Enables support for Neo4j and its query language Cypher",
55
"author": "Neo4j Inc.",
66
"license": "Apache-2.0",
7-
"version": "2.0.0-next.0",
7+
"version": "2.0.0-next.1",
88
"publisher": "Neo4j Inc.",
99
"activationEvents": [
1010
"onLanguage:cypher"
@@ -83,14 +83,14 @@
8383
},
8484
"scripts": {
8585
"vscode:prepublish": "npm run build",
86-
"bundle-language-server": "cd ../language-server && npm run bundle -- --minify && cp dist/cypher-language-server.js ../vscode-extension/dist/",
86+
"bundle-language-server": "cd ../language-server && npm run bundle && cp dist/cypher-language-server.js ../vscode-extension/dist/",
8787
"bundle-extension": "esbuild ./src/extension.ts --bundle --external:vscode --format=cjs --platform=node --minify --outfile=dist/extension.js",
8888
"build": "tsc -b && npm run bundle-extension && npm run bundle-language-server",
8989
"clean": "rm -rf dist",
9090
"test:e2e": "npm run build && rm -rf .vscode-test/user-data && node ./dist/e2e_tests/main.js"
9191
},
9292
"dependencies": {
93-
"@neo4j-cypher/language-server": "2.0.0-next.0",
93+
"@neo4j-cypher/language-server": "2.0.0-next.1",
9494
"vscode-languageclient": "^8.1.0"
9595
},
9696
"devDependencies": {

0 commit comments

Comments
 (0)