Skip to content

Commit 8ba9662

Browse files
committed
Factor JS<->WASM interface out of VS Code extension
1 parent a5c5202 commit 8ba9662

17 files changed

+59
-21
lines changed

.github/workflows/build-and-test-plugin-vscode.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: C++ build
3333
run: emmake cmake --build build --target quick-lint-js-vscode quick-lint-js-vscode-licenses
3434
- name: C++ install
35-
run: emmake cmake --install build --component vscode --prefix plugin/vscode
35+
run: emmake cmake --install build --component vscode --prefix wasm
3636

3737
- name: JS configure
3838
run: cd plugin/vscode && yarn

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ endif ()
3232
add_subdirectory(docs)
3333
add_subdirectory(fuzz)
3434
add_subdirectory(plugin/vim)
35-
add_subdirectory(plugin/vscode)
3635
add_subdirectory(plugin/emacs)
3736
add_subdirectory(src)
3837
add_subdirectory(tools)
38+
add_subdirectory(wasm)
3939
add_subdirectory(website/demo)
4040
add_subdirectory(completions)
4141
include(CTest)

plugin/vscode/.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
/.vscode-test/
2-
/build-emscripten/
3-
/dist/
42
/node_modules/
53
/quick-lint-js-*.vsix

plugin/vscode/.vscodeignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
!LICENSE
44
!README.md
5-
!dist/copyright.txt
6-
!dist/quick-lint-js-vscode.wasm
75
!extension.js
6+
!node_modules/quick-lint-js-wasm/dist/copyright.txt
7+
!node_modules/quick-lint-js-wasm/dist/quick-lint-js-vscode.wasm
8+
!node_modules/quick-lint-js-wasm/quick-lint-js.js
89
!package.json
9-
!quick-lint-js.js

plugin/vscode/BUILDING.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,8 @@ editor][VisualStudioCode].
55

66
## Building
77

8-
To build the extension, install the [emscripten SDK][emscripten-sdk], [Ninja][],
9-
and [Node.js][], then run the following commands:
10-
11-
$ cd plugin/vscode/ # Navigate to this directory.
12-
$ emcmake cmake -S ../.. -B build-emscripten -G Ninja -DCMAKE_BUILD_TYPE=Release
13-
$ emmake ninja -C build-emscripten quick-lint-js-vscode quick-lint-js-vscode-licenses
14-
$ emmake cmake --install build-emscripten --component vscode --prefix .
8+
To build this extension, first [build the quick-lint-js-wasm
9+
package](../../wasm/README.md#Building).
1510

1611
Then, run the following command to create `quick-lint-js-0.2.0.vsix`:
1712

@@ -22,11 +17,6 @@ Then, run the following command to create `quick-lint-js-0.2.0.vsix`:
2217
After [building](#Building), run `yarn test` to run the automated test suite.
2318
Packaging is not necessary to run `yarn test`.
2419

25-
To manually test the extension's WebAssembly bindings, [build](#Building), then
26-
run `cli.js` :
27-
28-
$ node plugin/vscode/cli.js PATH_TO_YOUR_JS_FILE.js
29-
3020
[Ninja]: https://ninja-build.org/
3121
[Node.js]: https://nodejs.org/
3222
[VisualStudioCode]: https://code.visualstudio.com/

plugin/vscode/extension.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ let {
99
DiagnosticSeverity,
1010
ProcessCrashed,
1111
createProcessFactoryAsync,
12-
} = require("./quick-lint-js.js");
12+
} = require("quick-lint-js-wasm/quick-lint-js.js");
1313

1414
// TODO(strager): Allow developers to reload the .wasm file.
1515
let processFactoryPromise = createProcessFactoryAsync();

plugin/vscode/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,8 @@
4040
"prettier": "2.1.2",
4141
"tape": "5.0.1",
4242
"vscode-test": "1.4.1"
43+
},
44+
"dependencies": {
45+
"quick-lint-js-wasm": "../../wasm"
4346
}
4447
}

plugin/vscode/test/other-tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ require("module").Module._initPaths();
1010

1111
let assert = require("assert");
1212
let extension = require("../extension.js");
13-
let qljs = require("../quick-lint-js.js");
13+
let qljs = require("quick-lint-js-wasm/quick-lint-js.js");
1414
let vscode = require("./mock/vscode.js");
1515
let { testMainAsync } = require("./test-support.js");
1616

plugin/vscode/yarn.lock

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,9 @@ [email protected]:
433433
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5"
434434
integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==
435435

436+
quick-lint-js-wasm@../../wasm:
437+
version "0.0.0"
438+
436439
regexp.prototype.flags@^1.3.0:
437440
version "1.3.0"
438441
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"

wasm/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/build-emscripten/
2+
/dist/
3+
/node_modules/

0 commit comments

Comments
 (0)