diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e22f2d5..a9cc3c0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -8,7 +8,7 @@ on: types: [ published ] jobs: - build-release: + build-server: runs-on: ubuntu-latest steps: @@ -44,13 +44,6 @@ jobs: exit 1 fi - - uses: cachix/install-nix-action@v27 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - - name: Check Flake - run: nix flake check - - name: Set up Go uses: actions/setup-go@v5 with: @@ -65,3 +58,79 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GH_CONFIGLSP_TOKEN }} + build-extension: + name: Build extension for ${{ matrix.target }} + runs-on: ${{ matrix.os }} + needs: + # Wait for server to build so that we know the checks have passed + - build-server + strategy: + fail-fast: false + matrix: + include: + - target: x86_64-apple-darwin + os: macos-latest + cross: false + - target: aarch64-apple-darwin + os: macos-latest + cross: false + + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + cross: false + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + cross: false + + - target: x86_64-pc-windows-msvc + os: windows-latest + cross: false + - target: aarch64-pc-windows-msvc + os: windows-latest + cross: false + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: cachix/install-nix-action@v27 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Check Flake + run: nix flake check + + - name: Build extension + run: nix build .#"vs-code-extension" + + - name: Rename extension + run: mv result/*.vsix result/$(basename result/*.vsix)-${{ matrix.target }}.vsix + + - uses: actions/upload-artifact@v4 + with: + path: result/*.vsix + + - name: Target to vs code target + id: vscode_target + run: | + if [ "${{ matrix.target }}" = "x86_64-apple-darwin" ]; then + echo "target=darwin-x64" >> $GITHUB_OUTPUT + elif [ "${{ matrix.target }}" = "aarch64-apple-darwin" ]; then + echo "target=darwin-arm64" >> $GITHUB_OUTPUT + elif [ "${{ matrix.target }}" = "x86_64-unknown-linux-gnu" ]; then + echo "target=linux-x64" >> $GITHUB_OUTPUT + elif [ "${{ matrix.target }}" = "aarch64-unknown-linux-gnu" ]; then + echo "target=linux-arm64" >> $GITHUB_OUTPUT + elif [ "${{ matrix.target }}" = "x86_64-pc-windows-msvc" ]; then + echo "target=win32-x64" >> $GITHUB_OUTPUT + elif [ "${{ matrix.target }}" = "aarch64-pc-windows-msvc" ]; then + echo "target=win32-arm64" >> $GITHUB_OUTPUT + fi + + - name: Upload extension to VS Code Marketplace + run: nix develop .#"vs-code-extension" --command bash -c "cd result && vsce publish --target ${{ steps.vscode_target.outputs.target }} --packagePath *.vsix" + env: + VSCE_PAT: ${{ secrets.VSCE_TOKEN }} + diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..e69de29 diff --git a/flake.nix b/flake.nix index 2a3ff7c..0273264 100644 --- a/flake.nix +++ b/flake.nix @@ -23,7 +23,7 @@ "aarch64-windows" ] (system: let - version = "0.1.0"; # CI:CD-VERSION + version = "0.1.1"; # CI:CD-VERSION pkgs = import nixpkgs { inherit system; overlays = [ @@ -37,7 +37,7 @@ inputs = [ pkgs.go_1_22 ]; - server = pkgs.buildGoModule { + serverUncompressed = pkgs.buildGoModule { nativeBuildInputs = inputs; pname = "github.com/Myzel394/config-lsp"; version = version; @@ -48,11 +48,28 @@ go test -v $(pwd)/... ''; }; + server = pkgs.stdenv.mkDerivation { + name = "config-lsp-${version}"; + src = serverUncompressed; + buildInputs = [ + pkgs.upx + ]; + buildPhase = '' + mkdir -p $out/bin + cp $src/bin/config-lsp $out/bin/ + chmod +rw $out/bin/config-lsp + + # upx is currently not supported for darwin + if [ "${system}" != "x86_64-darwin" ] && [ "${system}" != "aarch64-darwin" ]; then + upx --ultra-brute $out/bin/config-lsp + fi + ''; + }; in { packages = { default = server; "vs-code-extension" = let - name = "config-lsp-vs-code-extension"; + name = "config-lsp"; node-modules = pkgs.mkYarnPackage { src = ./vs-code-extension; name = name; @@ -61,13 +78,26 @@ yarnNix = ./vs-code-extension/yarn.nix; buildPhase = '' - yarn --offline run compile + yarn --offline run compile:prod ''; installPhase = '' - mv deps/${name}/out $out - cp ${server}/bin/config-lsp $out/ + mkdir -p extension + + # No idea why this is being created + rm deps/${name}/config-lsp + + cp -rL deps/${name}/. extension + cp ${server}/bin/config-lsp extension/out/config-lsp + + cd extension && ${pkgs.vsce}/bin/vsce package + mkdir -p $out + cp *.vsix $out ''; distPhase = "true"; + + buildInputs = [ + pkgs.vsce + ]; }; in node-modules; }; @@ -83,6 +113,8 @@ devShells."vs-code-extension" = pkgs.mkShell { buildInputs = [ pkgs.nodejs + pkgs.vsce + pkgs.yarn2nix ]; }; } diff --git a/server/root-handler/handler.go b/server/root-handler/handler.go index 6884739..81e36cd 100644 --- a/server/root-handler/handler.go +++ b/server/root-handler/handler.go @@ -11,7 +11,7 @@ const lsName = "config-lsp" // The comment below at the end of the line is required for the CI:CD to work. // Do not remove it -var version = "0.1.0" // CI:CD-VERSION +var version = "0.1.1" // CI:CD-VERSION var lspHandler protocol.Handler diff --git a/vs-code-extension/.vscodeignore b/vs-code-extension/.vscodeignore deleted file mode 100644 index 0740772..0000000 --- a/vs-code-extension/.vscodeignore +++ /dev/null @@ -1,17 +0,0 @@ -.vscode/** -**/*.ts -**/*.map -.gitignore -**/tsconfig.json -**/tsconfig.base.json -contributing.md -.travis.yml -client/node_modules/** -!client/node_modules/vscode-jsonrpc/** -!client/node_modules/vscode-languageclient/** -!client/node_modules/vscode-languageserver-protocol/** -!client/node_modules/vscode-languageserver-types/** -!client/node_modules/semver/** - -flake.nix -build-extension.sh diff --git a/vs-code-extension/LICENSE.md b/vs-code-extension/LICENSE.md new file mode 100644 index 0000000..e69de29 diff --git a/vs-code-extension/README.md b/vs-code-extension/README.md index 9b1bd25..cd3bfb3 100644 --- a/vs-code-extension/README.md +++ b/vs-code-extension/README.md @@ -1,27 +1,21 @@ -# LSP Example for Embedded Language using Language Service +# config-lsp for VS Code -Heavily documented sample code for https://code.visualstudio.com/api/language-extensions/embedded-languages#language-services +`config-lsp` provides language support for various config files. +Currently it supports completions, diagnostics, hints, formatting, hover information, +and definition requests. -## Functionality +Install this extension and load your config files in VS Code to get started. -This extension contributes a new language, `html1`. The new language is for illustration purpose and has basic syntax highlighting. +If `config-lsp` is unable to detect the language of your config file, you can manually +specify it by adding a line in the form of: -This Language Server works for `html1` file. HTML1 is like HTML file but has file extension `.html1`. You can create a `test.html1` file to play with below functionalities: +```plaintext +#?lsp.language= -- Completions for HTML tags -- Completions for CSS in `` to try CSS completion - - Have `` to see CSS Diagnostics diff --git a/vs-code-extension/build-extension.sh b/vs-code-extension/build-extension.sh deleted file mode 100755 index aa68497..0000000 --- a/vs-code-extension/build-extension.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -rm -rf ./result -rm -rf ./vs-code-extension/out - -nix build .#"vs-code-extension" -mkdir ./vs-code-extension/out -cp ./result/* ./vs-code-extension/out -chmod 777 ./vs-code-extension/out -R - diff --git a/vs-code-extension/esbuild.js b/vs-code-extension/esbuild.js new file mode 100644 index 0000000..2f12533 --- /dev/null +++ b/vs-code-extension/esbuild.js @@ -0,0 +1,57 @@ +const esbuild = require('esbuild'); + +const production = process.argv.includes('--production'); +const watch = process.argv.includes('--watch'); + +async function main() { + const ctx = await esbuild.context({ + entryPoints: ['src/extension.ts'], + bundle: true, + format: 'cjs', + minify: production, + sourcemap: !production, + sourcesContent: false, + platform: 'node', + outfile: 'out/extension.js', + external: ['vscode'], + logLevel: 'silent', + // According to https://github.com/ewanharris/vscode-versions, VS Code ships with NodeJS version 16.14.2 + // and according to https://node.green/ this version supports ES2022. + target: "es2022", + plugins: [ + /* add to the end of plugins array */ + esbuildProblemMatcherPlugin + ] + }); + if (watch) { + await ctx.watch(); + } else { + await ctx.rebuild(); + await ctx.dispose(); + } +} + +/** + * @type {import('esbuild').Plugin} + */ +const esbuildProblemMatcherPlugin = { + name: 'esbuild-problem-matcher', + + setup(build) { + build.onStart(() => { + console.log('[watch] build started'); + }); + build.onEnd(result => { + result.errors.forEach(({ text, location }) => { + console.error(`✘ [ERROR] ${text}`); + console.error(` ${location.file}:${location.line}:${location.column}:`); + }); + console.log('[watch] build finished'); + }); + } +}; + +main().catch(e => { + console.error(e); + process.exit(1); +}); diff --git a/vs-code-extension/icon.png b/vs-code-extension/icon.png new file mode 100644 index 0000000..596c2d6 Binary files /dev/null and b/vs-code-extension/icon.png differ diff --git a/vs-code-extension/package.json b/vs-code-extension/package.json index ce8ce48..6d57c3b 100644 --- a/vs-code-extension/package.json +++ b/vs-code-extension/package.json @@ -2,14 +2,51 @@ "name": "config-lsp", "description": "Language Features (completions, diagnostics, etc.) for your config files: gitconfig, fstab, aliases, hosts, wireguard, ssh_config, sshd_config, and more to come!", "author": "Myzel394", - "version": "0.1.0", + "version": "0.1.1", "repository": { "type": "git", "url": "https://github.com/Myzel394/config-lsp" }, "publisher": "myzel394", - "categories": [], - "keywords": [], + "categories": [ + "Programming Languages", + "Formatters" + ], + "preview": true, + "sponsor": { + "url": "https://github.com/Myzel394/contact-me" + }, + "icon": "icon.png", + "galleryBanner": { + "color": "#C8ACA3", + "theme": "dark" + }, + "files": [ + "out", + "package.json", + "LICENSE.md", + "icon.png" + ], + "keywords": [ + "config", + "lsp", + "language", + "configuration", + "help", + "autocomplete", + "completions", + "diagnostics", + "hints", + "format", + + "ssh", + "ssh_config", + "sshd_config", + "wireguard", + "fstab", + "hosts", + "aliases" + ], "engines": { "vscode": "^1.74.0" }, @@ -17,22 +54,24 @@ "onLanguage:plaintext", "onLanguage:yaml" ], - "main": "./out/extension", + "main": "./out/extension.js", "scripts": { - "compile": "tsc -b", + "compile": "node esbuild.js", + "compile:prod": "node esbuild.js --production", "watch": "tsc -b -w", "lint": "eslint ./src --ext .ts,.tsx" }, "dependencies": { - "vscode-languageclient": "^9.0.1" + "vscode-languageclient": "^9.0.1", + "esbuild": "^0.24.0" }, "devDependencies": { "@types/mocha": "^5.2.7", "@types/node": "^22.7.4", + "@types/vscode": "^1.74.0", "@typescript-eslint/eslint-plugin": "^7.14.0", "@typescript-eslint/parser": "^7.14.0", "eslint": "^9.11.1", - "typescript": "^5.5.2", - "@types/vscode": "^1.74.0" + "typescript": "^5.5.2" } } diff --git a/vs-code-extension/update-yarn.sh b/vs-code-extension/update-yarn.sh new file mode 100755 index 0000000..3b50451 --- /dev/null +++ b/vs-code-extension/update-yarn.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd vs-code-extension && yarn install --no-frozen-lockfile && yarn2nix > yarn.nix + diff --git a/vs-code-extension/yarn.lock b/vs-code-extension/yarn.lock index 1c40492..c92bd7b 100644 --- a/vs-code-extension/yarn.lock +++ b/vs-code-extension/yarn.lock @@ -2,6 +2,126 @@ # yarn lockfile v1 +"@esbuild/aix-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz#b57697945b50e99007b4c2521507dc613d4a648c" + integrity sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw== + +"@esbuild/android-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz#1add7e0af67acefd556e407f8497e81fddad79c0" + integrity sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w== + +"@esbuild/android-arm@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz#ab7263045fa8e090833a8e3c393b60d59a789810" + integrity sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew== + +"@esbuild/android-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz#e8f8b196cfdfdd5aeaebbdb0110983460440e705" + integrity sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ== + +"@esbuild/darwin-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz#2d0d9414f2acbffd2d86e98253914fca603a53dd" + integrity sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw== + +"@esbuild/darwin-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz#33087aab31a1eb64c89daf3d2cf8ce1775656107" + integrity sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA== + +"@esbuild/freebsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz#bb76e5ea9e97fa3c753472f19421075d3a33e8a7" + integrity sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA== + +"@esbuild/freebsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz#e0e2ce9249fdf6ee29e5dc3d420c7007fa579b93" + integrity sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ== + +"@esbuild/linux-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz#d1b2aa58085f73ecf45533c07c82d81235388e75" + integrity sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g== + +"@esbuild/linux-arm@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz#8e4915df8ea3e12b690a057e77a47b1d5935ef6d" + integrity sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw== + +"@esbuild/linux-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz#8200b1110666c39ab316572324b7af63d82013fb" + integrity sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA== + +"@esbuild/linux-loong64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz#6ff0c99cf647504df321d0640f0d32e557da745c" + integrity sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g== + +"@esbuild/linux-mips64el@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz#3f720ccd4d59bfeb4c2ce276a46b77ad380fa1f3" + integrity sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA== + +"@esbuild/linux-ppc64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz#9d6b188b15c25afd2e213474bf5f31e42e3aa09e" + integrity sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ== + +"@esbuild/linux-riscv64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz#f989fdc9752dfda286c9cd87c46248e4dfecbc25" + integrity sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw== + +"@esbuild/linux-s390x@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz#29ebf87e4132ea659c1489fce63cd8509d1c7319" + integrity sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g== + +"@esbuild/linux-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz#4af48c5c0479569b1f359ffbce22d15f261c0cef" + integrity sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA== + +"@esbuild/netbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz#1ae73d23cc044a0ebd4f198334416fb26c31366c" + integrity sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg== + +"@esbuild/openbsd-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz#5d904a4f5158c89859fd902c427f96d6a9e632e2" + integrity sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg== + +"@esbuild/openbsd-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz#4c8aa88c49187c601bae2971e71c6dc5e0ad1cdf" + integrity sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q== + +"@esbuild/sunos-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz#8ddc35a0ea38575fa44eda30a5ee01ae2fa54dd4" + integrity sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA== + +"@esbuild/win32-arm64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz#6e79c8543f282c4539db684a207ae0e174a9007b" + integrity sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA== + +"@esbuild/win32-ia32@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz#057af345da256b7192d18b676a02e95d0fa39103" + integrity sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw== + +"@esbuild/win32-x64@0.24.0": + version "0.24.0" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz#168ab1c7e1c318b922637fad8f339d48b01e1244" + integrity sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -113,7 +233,7 @@ dependencies: undici-types "~6.19.2" -"@types/vscode@^1.93.0": +"@types/vscode@^1.74.0": version "1.94.0" resolved "https://registry.npmjs.org/@types/vscode/-/vscode-1.94.0.tgz#ccd2111b6ecaba6ad4da19c2d524828fa73ae250" integrity sha512-UyQOIUT0pb14XSqJskYnRwD2aG0QrPVefIfrW1djR+/J4KeFQ0i1+hjZoaAmeNf3Z2jleK+R2hv+EboG/m8ruw== @@ -326,6 +446,36 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +esbuild@^0.24.0: + version "0.24.0" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz#f2d470596885fcb2e91c21eb3da3b3c89c0b55e7" + integrity sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ== + optionalDependencies: + "@esbuild/aix-ppc64" "0.24.0" + "@esbuild/android-arm" "0.24.0" + "@esbuild/android-arm64" "0.24.0" + "@esbuild/android-x64" "0.24.0" + "@esbuild/darwin-arm64" "0.24.0" + "@esbuild/darwin-x64" "0.24.0" + "@esbuild/freebsd-arm64" "0.24.0" + "@esbuild/freebsd-x64" "0.24.0" + "@esbuild/linux-arm" "0.24.0" + "@esbuild/linux-arm64" "0.24.0" + "@esbuild/linux-ia32" "0.24.0" + "@esbuild/linux-loong64" "0.24.0" + "@esbuild/linux-mips64el" "0.24.0" + "@esbuild/linux-ppc64" "0.24.0" + "@esbuild/linux-riscv64" "0.24.0" + "@esbuild/linux-s390x" "0.24.0" + "@esbuild/linux-x64" "0.24.0" + "@esbuild/netbsd-x64" "0.24.0" + "@esbuild/openbsd-arm64" "0.24.0" + "@esbuild/openbsd-x64" "0.24.0" + "@esbuild/sunos-x64" "0.24.0" + "@esbuild/win32-arm64" "0.24.0" + "@esbuild/win32-ia32" "0.24.0" + "@esbuild/win32-x64" "0.24.0" + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" diff --git a/vs-code-extension/yarn.nix b/vs-code-extension/yarn.nix index 2f4876a..f480218 100644 --- a/vs-code-extension/yarn.nix +++ b/vs-code-extension/yarn.nix @@ -1,6 +1,198 @@ { fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec { offline_cache = linkFarm "offline" packages; packages = [ + { + name = "https___registry.npmjs.org__esbuild_aix_ppc64___aix_ppc64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_aix_ppc64___aix_ppc64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz"; + sha512 = "WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_android_arm64___android_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_android_arm64___android_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz"; + sha512 = "Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_android_arm___android_arm_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_android_arm___android_arm_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz"; + sha512 = "arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_android_x64___android_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_android_x64___android_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz"; + sha512 = "t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_darwin_arm64___darwin_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_darwin_arm64___darwin_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz"; + sha512 = "CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_darwin_x64___darwin_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_darwin_x64___darwin_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz"; + sha512 = "rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_freebsd_arm64___freebsd_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_freebsd_arm64___freebsd_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz"; + sha512 = "6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_freebsd_x64___freebsd_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_freebsd_x64___freebsd_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz"; + sha512 = "D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_arm64___linux_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_arm64___linux_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz"; + sha512 = "TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_arm___linux_arm_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_arm___linux_arm_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz"; + sha512 = "gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_ia32___linux_ia32_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_ia32___linux_ia32_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz"; + sha512 = "K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_loong64___linux_loong64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_loong64___linux_loong64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz"; + sha512 = "0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_mips64el___linux_mips64el_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_mips64el___linux_mips64el_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz"; + sha512 = "hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_ppc64___linux_ppc64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_ppc64___linux_ppc64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz"; + sha512 = "HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_riscv64___linux_riscv64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_riscv64___linux_riscv64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz"; + sha512 = "bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_s390x___linux_s390x_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_s390x___linux_s390x_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz"; + sha512 = "ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_linux_x64___linux_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_linux_x64___linux_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz"; + sha512 = "vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_netbsd_x64___netbsd_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_netbsd_x64___netbsd_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz"; + sha512 = "hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_openbsd_arm64___openbsd_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_openbsd_arm64___openbsd_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz"; + sha512 = "MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_openbsd_x64___openbsd_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_openbsd_x64___openbsd_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz"; + sha512 = "4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_sunos_x64___sunos_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_sunos_x64___sunos_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz"; + sha512 = "jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_win32_arm64___win32_arm64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_win32_arm64___win32_arm64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz"; + sha512 = "iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_win32_ia32___win32_ia32_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_win32_ia32___win32_ia32_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz"; + sha512 = "vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw=="; + }; + } + { + name = "https___registry.npmjs.org__esbuild_win32_x64___win32_x64_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org__esbuild_win32_x64___win32_x64_0.24.0.tgz"; + url = "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz"; + sha512 = "7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA=="; + }; + } { name = "https___registry.npmjs.org__eslint_community_eslint_utils___eslint_utils_4.4.0.tgz"; path = fetchurl { @@ -369,6 +561,14 @@ sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="; }; } + { + name = "https___registry.npmjs.org_esbuild___esbuild_0.24.0.tgz"; + path = fetchurl { + name = "https___registry.npmjs.org_esbuild___esbuild_0.24.0.tgz"; + url = "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz"; + sha512 = "FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ=="; + }; + } { name = "https___registry.npmjs.org_escape_string_regexp___escape_string_regexp_4.0.0.tgz"; path = fetchurl {