From 4b7d17a8b0ddd088ecb35331fb299b8e069db13c Mon Sep 17 00:00:00 2001 From: Sasha Koss Date: Thu, 2 Jan 2025 21:18:24 +0800 Subject: [PATCH] Prepare LSP builds --- .github/workflows/build.yml | 147 +++++++++++++++-------------- .gitignore | 3 +- Cargo.lock | 11 +-- Cross.toml | 11 +++ Justfile | 3 + lsp/.gitignore | 2 + lsp/Justfile | 56 ++++++++++- lsp/npm/darwin-arm64/README.md | 3 + lsp/npm/darwin-arm64/bin/.gitkeep | 0 lsp/npm/darwin-arm64/package.json | 18 ++++ lsp/npm/darwin-x64/README.md | 3 + lsp/npm/darwin-x64/bin/.gitkeep | 0 lsp/npm/darwin-x64/package.json | 18 ++++ lsp/npm/linux-arm64/README.md | 3 + lsp/npm/linux-arm64/bin/.gitkeep | 0 lsp/npm/linux-arm64/package.json | 18 ++++ lsp/npm/linux-x64/README.md | 3 + lsp/npm/linux-x64/bin/.gitkeep | 0 lsp/npm/linux-x64/package.json | 18 ++++ lsp/npm/win32-arm64/README.md | 3 + lsp/npm/win32-arm64/bin/.gitkeep | 0 lsp/npm/win32-arm64/package.json | 18 ++++ lsp/npm/win32-x64/README.md | 3 + lsp/npm/win32-x64/bin/.gitkeep | 0 lsp/npm/win32-x64/package.json | 18 ++++ lsp/package.json | 13 +++ package.json | 6 ++ pnpm-lock.yaml | 152 ++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 6 ++ vscode/Justfile | 5 + vscode/client/package-lock.json | 148 ++++------------------------- vscode/client/package.json | 2 +- vscode/package-lock.json | 31 ------ vscode/package.json | 2 +- vscode/server/package-lock.json | 80 ++++------------ vscode/server/package.json | 2 +- 36 files changed, 500 insertions(+), 306 deletions(-) create mode 100644 Cross.toml create mode 100644 lsp/.gitignore create mode 100644 lsp/npm/darwin-arm64/README.md create mode 100644 lsp/npm/darwin-arm64/bin/.gitkeep create mode 100644 lsp/npm/darwin-arm64/package.json create mode 100644 lsp/npm/darwin-x64/README.md create mode 100644 lsp/npm/darwin-x64/bin/.gitkeep create mode 100644 lsp/npm/darwin-x64/package.json create mode 100644 lsp/npm/linux-arm64/README.md create mode 100644 lsp/npm/linux-arm64/bin/.gitkeep create mode 100644 lsp/npm/linux-arm64/package.json create mode 100644 lsp/npm/linux-x64/README.md create mode 100644 lsp/npm/linux-x64/bin/.gitkeep create mode 100644 lsp/npm/linux-x64/package.json create mode 100644 lsp/npm/win32-arm64/README.md create mode 100644 lsp/npm/win32-arm64/bin/.gitkeep create mode 100644 lsp/npm/win32-arm64/package.json create mode 100644 lsp/npm/win32-x64/README.md create mode 100644 lsp/npm/win32-x64/bin/.gitkeep create mode 100644 lsp/npm/win32-x64/package.json create mode 100644 lsp/package.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml delete mode 100644 vscode/package-lock.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ad43c47..7571be7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,76 +25,77 @@ jobs: - name: Run tests run: cargo nextest run - build: - needs: - - test - - runs-on: ${{ matrix.os }} - - strategy: - matrix: - include: - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - cli-name: gt - lsp-name: gts - - - os: macos-latest - target: x86_64-apple-darwin - cli-name: gt - lsp-name: gts - - - os: windows-latest - target: x86_64-pc-windows-msvc - cli-name: gt.exe - lsp-name: gts.exe - - steps: - - name: Check out repo - uses: actions/checkout@v4 - - - name: Set up Rust - uses: ./.github/actions/rust-setup - - - name: Cache target - uses: actions/cache@v4 - with: - path: target - key: ${{ runner.os }}-target-${{ matrix.target }}-${{ hashFiles('cli/Cargo.lock') }} - restore-keys: | - ${{ runner.os }}-target-${{ matrix.target }}- - - - name: Add target - run: rustup target add ${{ matrix.target }} - - - name: Build CLI - working-directory: cli - run: cargo build --release --target ${{ matrix.target }} - - - name: Build LSP - working-directory: lsp - run: cargo build --release --target ${{ matrix.target }} - - - name: Archive binaries - if: runner.os != 'Windows' - run: | - tar -czvf ${{ matrix.cli-name }}-${{ matrix.os }}.tar.gz -C target/${{ matrix.target }}/release ${{ matrix.cli-name }} - tar -czvf ${{ matrix.lsp-name }}-${{ matrix.os }}.tar.gz -C target/${{ matrix.target }}/release ${{ matrix.lsp-name }} - - - name: Archive binaries - if: runner.os == 'Windows' - run: | - Compress-Archive -Path target\${{ matrix.target }}\release\${{ matrix.cli-name }} -DestinationPath ${{ matrix.cli-name }}-${{ matrix.os }}.zip - Compress-Archive -Path target\${{ matrix.target }}\release\${{ matrix.lsp-name }} -DestinationPath ${{ matrix.lsp-name }}-${{ matrix.os }}.zip - - - name: Upload CLI binaries - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.cli-name }}-${{ matrix.os }} - path: ${{ matrix.cli-name }}-${{ matrix.os }}.* - - - name: Upload LSP binaries - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.lsp-name }}-${{ matrix.os }} - path: ${{ matrix.lsp-name }}-${{ matrix.os }}.* + # [TODO] Remove or reenable with practical setup + # build: + # needs: + # - test + + # runs-on: ${{ matrix.os }} + + # strategy: + # matrix: + # include: + # - os: ubuntu-latest + # target: x86_64-unknown-linux-gnu + # cli-name: gt + # lsp-name: gts + + # - os: macos-latest + # target: x86_64-apple-darwin + # cli-name: gt + # lsp-name: gts + + # - os: windows-latest + # target: x86_64-pc-windows-msvc + # cli-name: gt.exe + # lsp-name: gts.exe + + # steps: + # - name: Check out repo + # uses: actions/checkout@v4 + + # - name: Set up Rust + # uses: ./.github/actions/rust-setup + + # - name: Cache target + # uses: actions/cache@v4 + # with: + # path: target + # key: ${{ runner.os }}-target-${{ matrix.target }}-${{ hashFiles('cli/Cargo.lock') }} + # restore-keys: | + # ${{ runner.os }}-target-${{ matrix.target }}- + + # - name: Add target + # run: rustup target add ${{ matrix.target }} + + # - name: Build CLI + # working-directory: cli + # run: cargo build --release --target ${{ matrix.target }} + + # - name: Build LSP + # working-directory: lsp + # run: cargo build --release --target ${{ matrix.target }} + + # - name: Archive binaries + # if: runner.os != 'Windows' + # run: | + # tar -czvf ${{ matrix.cli-name }}-${{ matrix.os }}.tar.gz -C target/${{ matrix.target }}/release ${{ matrix.cli-name }} + # tar -czvf ${{ matrix.lsp-name }}-${{ matrix.os }}.tar.gz -C target/${{ matrix.target }}/release ${{ matrix.lsp-name }} + + # - name: Archive binaries + # if: runner.os == 'Windows' + # run: | + # Compress-Archive -Path target\${{ matrix.target }}\release\${{ matrix.cli-name }} -DestinationPath ${{ matrix.cli-name }}-${{ matrix.os }}.zip + # Compress-Archive -Path target\${{ matrix.target }}\release\${{ matrix.lsp-name }} -DestinationPath ${{ matrix.lsp-name }}-${{ matrix.os }}.zip + + # - name: Upload CLI binaries + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.cli-name }}-${{ matrix.os }} + # path: ${{ matrix.cli-name }}-${{ matrix.os }}.* + + # - name: Upload LSP binaries + # uses: actions/upload-artifact@v4 + # with: + # name: ${{ matrix.lsp-name }}-${{ matrix.os }} + # path: ${{ matrix.lsp-name }}-${{ matrix.os }}.* diff --git a/.gitignore b/.gitignore index eb68687..8bc0d05 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -/target +target +node_modules /tmp \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 2fe8315..81f067c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1011,9 +1011,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "linux-raw-sys" @@ -1128,11 +1128,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -1714,7 +1713,7 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", + "mio 1.0.3", "parking_lot", "pin-project-lite", "signal-hook-registry", diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 0000000..bcbc77c --- /dev/null +++ b/Cross.toml @@ -0,0 +1,11 @@ +[target.x86_64-apple-darwin] +image = "ghcr.io/cross-rs/x86_64-apple-darwin-cross:local" + +[target.aarch64-apple-darwin] +image = "ghcr.io/cross-rs/aarch64-apple-darwin-cross:local" + +[target.aarch64-pc-windows-msvc] +image = "ghcr.io/cross-rs/aarch64-pc-windows-msvc-cross:local" + +[target.x86_64-pc-windows-msvc] +image = "ghcr.io/cross-rs/x86_64-pc-windows-msvc-cross:local" diff --git a/Justfile b/Justfile index a33a98e..49ebb81 100644 --- a/Justfile +++ b/Justfile @@ -11,6 +11,9 @@ test-watch: version version: cargo release version {{version}} --exclude literals --exclude genotype_runtime --execute + cd lsp && just version {{version}} + # [TODO] Include into the release process? + # cd vscode && just version {{version}} publish: cargo release publish --exclude literals --exclude genotype_runtime --execute \ No newline at end of file diff --git a/lsp/.gitignore b/lsp/.gitignore new file mode 100644 index 0000000..cc0b325 --- /dev/null +++ b/lsp/.gitignore @@ -0,0 +1,2 @@ +npm/*/bin/* +!npm/*/bin/.gitkeep \ No newline at end of file diff --git a/lsp/Justfile b/lsp/Justfile index 740945e..30f4d18 100644 --- a/lsp/Justfile +++ b/lsp/Justfile @@ -1,5 +1,59 @@ +install: + cargo install cross + test: cargo test test-watch: - cargo watch -x test \ No newline at end of file + cargo watch -x test + +build: + # aarch64-apple-darwin + cross build --release --target aarch64-apple-darwin --target-dir target + cp target/aarch64-apple-darwin/release/gts npm/darwin-arm64/bin/ + chmod +x npm/darwin-arm64/bin/gts + # x86_64-apple-darwin + cross build --release --target x86_64-apple-darwin --target-dir target + cp target/x86_64-apple-darwin/release/gts npm/darwin-x64/bin/ + chmod +x npm/darwin-x64/bin/gts + # aarch64-unknown-linux-gnu + cross build --release --target aarch64-unknown-linux-gnu --target-dir target + cp target/aarch64-unknown-linux-gnu/release/gts npm/linux-arm64/bin/ + chmod +x npm/linux-arm64/bin/gts + # x86_64-unknown-linux-gnu + cross build --release --target x86_64-unknown-linux-gnu --target-dir target + cp target/aarch64-unknown-linux-gnu/release/gts npm/linux-x64/bin/ + chmod +x npm/linux-x64/bin/gts + # aarch64-pc-windows-msvc + cross build --release --target aarch64-pc-windows-msvc --target-dir target + cp target/aarch64-pc-windows-msvc/release/gts.exe npm/win32-x64/bin/ + # x86_64-pc-windows-msvc + cross build --release --target x86_64-pc-windows-msvc --target-dir target + cp target/x86_64-pc-windows-msvc/release/gts.exe npm/win32-arm64/bin/ + +version version: + npm version {{version}} + cd npm/darwin-arm64 && npm version {{version}} + cd npm/darwin-x64 && npm version {{version}} + cd npm/linux-arm64 && npm version {{version}} + cd npm/linux-x64 && npm version {{version}} + cd npm/win32-x64 && npm version {{version}} + cd npm/win32-arm64 && npm version {{version}} + +publish: build + cd npm/darwin-arm64 && npm publish --access public + cd npm/darwin-x64 && npm publish --access public + cd npm/linux-arm64 && npm publish --access public + cd npm/linux-x64 && npm publish --access public + cd npm/win32-x64 && npm publish --access public + cd npm/win32-arm64 && npm publish --access public + npm publish + +publish-next: build + cd npm/darwin-arm64 && pnpm publish --tag next --access public + cd npm/darwin-x64 && pnpm publish --tag next --access public + cd npm/linux-arm64 && pnpm publish --tag next --access public + cd npm/linux-x64 && pnpm publish --tag next --access public + cd npm/win32-x64 && pnpm publish --tag next --access public + cd npm/win32-arm64 && pnpm publish --tag next --access public + npm publish --tag next diff --git a/lsp/npm/darwin-arm64/README.md b/lsp/npm/darwin-arm64/README.md new file mode 100644 index 0000000..6b41618 --- /dev/null +++ b/lsp/npm/darwin-arm64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/darwin-arm64` + +This is the **aarch64-apple-darwin** binary for `genotype-lsp` diff --git a/lsp/npm/darwin-arm64/bin/.gitkeep b/lsp/npm/darwin-arm64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/darwin-arm64/package.json b/lsp/npm/darwin-arm64/package.json new file mode 100644 index 0000000..f832e00 --- /dev/null +++ b/lsp/npm/darwin-arm64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/darwin-arm64", + "version": "0.6.0-alpha.1", + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "files": [ + "bin/gts", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts')\"" + } +} diff --git a/lsp/npm/darwin-x64/README.md b/lsp/npm/darwin-x64/README.md new file mode 100644 index 0000000..4e914da --- /dev/null +++ b/lsp/npm/darwin-x64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/darwin-x64` + +This is the **x86_64-apple-darwin** binary for `genotype-lsp` diff --git a/lsp/npm/darwin-x64/bin/.gitkeep b/lsp/npm/darwin-x64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/darwin-x64/package.json b/lsp/npm/darwin-x64/package.json new file mode 100644 index 0000000..bfd09ae --- /dev/null +++ b/lsp/npm/darwin-x64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/darwin-x64", + "version": "0.6.0-alpha.1", + "os": [ + "darwin" + ], + "cpu": [ + "x64" + ], + "files": [ + "bin/gts", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts')\"" + } +} diff --git a/lsp/npm/linux-arm64/README.md b/lsp/npm/linux-arm64/README.md new file mode 100644 index 0000000..4a94315 --- /dev/null +++ b/lsp/npm/linux-arm64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/linux-arm64` + +This is the **aarch64-unknown-linux-gnu** binary for `genotype-lsp` diff --git a/lsp/npm/linux-arm64/bin/.gitkeep b/lsp/npm/linux-arm64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/linux-arm64/package.json b/lsp/npm/linux-arm64/package.json new file mode 100644 index 0000000..5d86a49 --- /dev/null +++ b/lsp/npm/linux-arm64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/linux-arm64", + "version": "0.6.0-alpha.1", + "os": [ + "linux" + ], + "cpu": [ + "arm64" + ], + "files": [ + "bin/gts", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts')\"" + } +} diff --git a/lsp/npm/linux-x64/README.md b/lsp/npm/linux-x64/README.md new file mode 100644 index 0000000..7c88850 --- /dev/null +++ b/lsp/npm/linux-x64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/linux-x64` + +This is the **x86_64-unknown-linux-gnu** binary for `genotype-lsp` diff --git a/lsp/npm/linux-x64/bin/.gitkeep b/lsp/npm/linux-x64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/linux-x64/package.json b/lsp/npm/linux-x64/package.json new file mode 100644 index 0000000..89a8f03 --- /dev/null +++ b/lsp/npm/linux-x64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/linux-x64", + "version": "0.6.0-alpha.1", + "os": [ + "linux" + ], + "cpu": [ + "x64" + ], + "files": [ + "bin/gts", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts')\"" + } +} diff --git a/lsp/npm/win32-arm64/README.md b/lsp/npm/win32-arm64/README.md new file mode 100644 index 0000000..e5a82e6 --- /dev/null +++ b/lsp/npm/win32-arm64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/win32-msvc-arm64` + +This is the **aarch64-pc-windows-msvc** binary for `genotype-lsp` diff --git a/lsp/npm/win32-arm64/bin/.gitkeep b/lsp/npm/win32-arm64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/win32-arm64/package.json b/lsp/npm/win32-arm64/package.json new file mode 100644 index 0000000..726af0b --- /dev/null +++ b/lsp/npm/win32-arm64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/win32-arm64", + "version": "0.6.0-alpha.1", + "os": [ + "win32" + ], + "cpu": [ + "arm64" + ], + "files": [ + "bin/gts.exe", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts.exe')\"" + } +} diff --git a/lsp/npm/win32-x64/README.md b/lsp/npm/win32-x64/README.md new file mode 100644 index 0000000..935316f --- /dev/null +++ b/lsp/npm/win32-x64/README.md @@ -0,0 +1,3 @@ +# `@genotype-lsp/win32-x64` + +This is the **x86_64-pc-windows-msvc** binary for `genotype-lsp` diff --git a/lsp/npm/win32-x64/bin/.gitkeep b/lsp/npm/win32-x64/bin/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/lsp/npm/win32-x64/package.json b/lsp/npm/win32-x64/package.json new file mode 100644 index 0000000..d5a515e --- /dev/null +++ b/lsp/npm/win32-x64/package.json @@ -0,0 +1,18 @@ +{ + "name": "@genotype-lsp/win32-x64", + "version": "0.6.0-alpha.1", + "os": [ + "win32" + ], + "cpu": [ + "x64" + ], + "files": [ + "bin/gts.exe", + "README.md" + ], + "license": "MIT", + "scripts": { + "prepublish": "node -e \"require('fs').lstatSync('bin/gts.exe')\"" + } +} diff --git a/lsp/package.json b/lsp/package.json new file mode 100644 index 0000000..927b6aa --- /dev/null +++ b/lsp/package.json @@ -0,0 +1,13 @@ +{ + "name": "genotype-lsp", + "version": "0.6.0-alpha.1", + "license": "MIT", + "optionalDependencies": { + "@genotype-lsp/darwin-arm64": "workspace:*", + "@genotype-lsp/darwin-x64": "workspace:*", + "@genotype-lsp/linux-arm64": "workspace:*", + "@genotype-lsp/linux-x64": "workspace:*", + "@genotype-lsp/win32-arm64": "workspace:*", + "@genotype-lsp/win32-x64": "workspace:*" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..854725f --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "name": "genotype", + "version": "0.6.0", + "license": "MIT", + "packageManager": "pnpm@10.0.0-rc.2+sha512.b6e59b96f90ca92449ac2f6dca9b430880448fc97d21f0fa9200e3d5ddb5289ad535255400554f7f3486e2d60058492161aaa9b58828e81f50c096718be9d156" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..9164d49 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,152 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + lsp: + optionalDependencies: + '@genotype-lsp/darwin-arm64': + specifier: workspace:* + version: link:npm/darwin-arm64 + '@genotype-lsp/darwin-x64': + specifier: workspace:* + version: link:npm/darwin-x64 + '@genotype-lsp/linux-arm64': + specifier: workspace:* + version: link:npm/linux-arm64 + '@genotype-lsp/linux-x64': + specifier: workspace:* + version: link:npm/linux-x64 + '@genotype-lsp/win32-arm64': + specifier: workspace:* + version: link:npm/win32-arm64 + '@genotype-lsp/win32-x64': + specifier: workspace:* + version: link:npm/win32-x64 + + lsp/npm/darwin-arm64: {} + + lsp/npm/darwin-x64: {} + + lsp/npm/linux-arm64: {} + + lsp/npm/linux-x64: {} + + lsp/npm/win32-arm64: {} + + lsp/npm/win32-x64: {} + + vscode: + devDependencies: + typescript: + specifier: ^5.7.2 + version: 5.7.2 + + vscode/client: + dependencies: + vscode-languageclient: + specifier: ^9.0.1 + version: 9.0.1 + devDependencies: + '@types/vscode': + specifier: ^1.96.0 + version: 1.96.0 + + vscode/server: + dependencies: + vscode-languageserver: + specifier: ^9.0.1 + version: 9.0.1 + vscode-languageserver-textdocument: + specifier: ^1.0.12 + version: 1.0.12 + +packages: + + '@types/vscode@1.96.0': + resolution: {integrity: sha512-qvZbSZo+K4ZYmmDuaodMbAa67Pl6VDQzLKFka6rq+3WUTY4Kro7Bwoi0CuZLO/wema0ygcmpwow7zZfPJTs5jg==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageclient@9.0.1: + resolution: {integrity: sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==} + engines: {vscode: ^1.82.0} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + +snapshots: + + '@types/vscode@1.96.0': {} + + balanced-match@1.0.2: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + semver@7.6.3: {} + + typescript@5.7.2: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageclient@9.0.1: + dependencies: + minimatch: 5.1.6 + semver: 7.6.3 + vscode-languageserver-protocol: 3.17.5 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..ebb060d --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "lsp" + - "lsp/npm/*" + - "vscode" + - "vscode/server" + - "vscode/client" diff --git a/vscode/Justfile b/vscode/Justfile index bb767bb..f23c6f6 100644 --- a/vscode/Justfile +++ b/vscode/Justfile @@ -4,5 +4,10 @@ install: build: toml2json ./src/syntax.toml --pretty > ./syntaxes/genotype.tmLanguage.json +version: + npm version {{version}} + cd client && npm version {{version}} + cd server && npm version {{version}} + publish: build npx @vscode/vsce publish \ No newline at end of file diff --git a/vscode/client/package-lock.json b/vscode/client/package-lock.json index 1df1618..166d8dd 100644 --- a/vscode/client/package-lock.json +++ b/vscode/client/package-lock.json @@ -1,12 +1,12 @@ { "name": "genotype-client", - "version": "0.1.0", - "lockfileVersion": 2, + "version": "0.6.0", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "genotype-client", - "version": "0.1.0", + "version": "0.6.0", "license": "MIT", "dependencies": { "vscode-languageclient": "^9.0.1" @@ -18,144 +18,36 @@ "vscode": "^1.90.0" } }, - "node_modules/@types/vscode": { + "../../node_modules/.pnpm/@types+vscode@1.96.0/node_modules/@types/vscode": { "version": "1.96.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.96.0.tgz", - "integrity": "sha512-qvZbSZo+K4ZYmmDuaodMbAa67Pl6VDQzLKFka6rq+3WUTY4Kro7Bwoi0CuZLO/wema0ygcmpwow7zZfPJTs5jg==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "engines": { - "node": ">=14.0.0" - } + "dev": true, + "license": "MIT" }, - "node_modules/vscode-languageclient": { + "../../node_modules/.pnpm/vscode-languageclient@9.0.1/node_modules/vscode-languageclient": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", - "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", + "license": "MIT", "dependencies": { "minimatch": "^5.1.0", "semver": "^7.3.7", "vscode-languageserver-protocol": "3.17.5" }, + "devDependencies": { + "@types/minimatch": "^3.0.5", + "@types/semver": "^7.3.10", + "@types/vscode": "1.82.0", + "shx": "^0.3.4" + }, "engines": { "vscode": "^1.82.0" } }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" - } - }, - "dependencies": { - "@types/vscode": { - "version": "1.96.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.96.0.tgz", - "integrity": "sha512-qvZbSZo+K4ZYmmDuaodMbAa67Pl6VDQzLKFka6rq+3WUTY4Kro7Bwoi0CuZLO/wema0ygcmpwow7zZfPJTs5jg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" - }, - "vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==" - }, - "vscode-languageclient": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", - "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", - "requires": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.5" - } - }, - "vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "requires": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } + "node_modules/@types/vscode": { + "resolved": "../../node_modules/.pnpm/@types+vscode@1.96.0/node_modules/@types/vscode", + "link": true }, - "vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + "node_modules/vscode-languageclient": { + "resolved": "../../node_modules/.pnpm/vscode-languageclient@9.0.1/node_modules/vscode-languageclient", + "link": true } } } diff --git a/vscode/client/package.json b/vscode/client/package.json index 015657c..c4bde49 100644 --- a/vscode/client/package.json +++ b/vscode/client/package.json @@ -1,6 +1,6 @@ { "name": "genotype-client", - "version": "0.1.0", + "version": "0.6.0", "description": "Genotype language LSP client", "author": "Sasha Koss ", "license": "MIT", diff --git a/vscode/package-lock.json b/vscode/package-lock.json deleted file mode 100644 index d9521b4..0000000 --- a/vscode/package-lock.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "genotype", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "genotype", - "version": "0.1.0", - "devDependencies": { - "typescript": "^5.7.2" - }, - "engines": { - "vscode": "^1.90.0" - } - }, - "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - } - } -} diff --git a/vscode/package.json b/vscode/package.json index 94edc77..6c60443 100644 --- a/vscode/package.json +++ b/vscode/package.json @@ -1,6 +1,6 @@ { "name": "genotype", - "version": "0.1.0", + "version": "0.6.0", "description": "Genotype language support", "author": "Sasha Koss ", "license": "MIT", diff --git a/vscode/server/package-lock.json b/vscode/server/package-lock.json index 003e781..cb29a5d 100644 --- a/vscode/server/package-lock.json +++ b/vscode/server/package-lock.json @@ -1,12 +1,13 @@ { "name": "genotype-server", - "version": "0.1.0", - "lockfileVersion": 2, + "version": "0.6.0", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "genotype-server", - "version": "0.1.0", + "version": "0.6.0", + "license": "MIT", "dependencies": { "vscode-languageserver": "^9.0.1", "vscode-languageserver-textdocument": "^1.0.12" @@ -15,77 +16,30 @@ "vscode": "^1.90.0" } }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "engines": { - "node": ">=14.0.0" - } + "../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.12/node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "license": "MIT" }, - "node_modules/vscode-languageserver": { + "../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", - "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" + }, + "devDependencies": { + "vscode-languageserver-textdocument": "1.0.11" } }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } + "node_modules/vscode-languageserver": { + "resolved": "../../node_modules/.pnpm/vscode-languageserver@9.0.1/node_modules/vscode-languageserver", + "link": true }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", - "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==" - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" - } - }, - "dependencies": { - "vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==" - }, - "vscode-languageserver": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", - "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", - "requires": { - "vscode-languageserver-protocol": "3.17.5" - } - }, - "vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "requires": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "vscode-languageserver-textdocument": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", - "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==" - }, - "vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + "resolved": "../../node_modules/.pnpm/vscode-languageserver-textdocument@1.0.12/node_modules/vscode-languageserver-textdocument", + "link": true } } } diff --git a/vscode/server/package.json b/vscode/server/package.json index 7d492f5..0ac7cdf 100644 --- a/vscode/server/package.json +++ b/vscode/server/package.json @@ -1,6 +1,6 @@ { "name": "genotype-server", - "version": "0.1.0", + "version": "0.6.0", "description": "Genotype language LSP server", "author": "Sasha Koss ", "license": "MIT",