From 19fc6838cde3b4b10e63aa2b9b29958ddb43fcea Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Fri, 30 Aug 2024 10:58:18 -0400 Subject: [PATCH] feat: add quint-language-server --- nix/base-system/flake.nix | 2 + nix/packages/quint/node-packages.json | 3 +- nix/packages/quint/node-packages.nix | 173 ++++++++++++++++++++++++++ 3 files changed, 177 insertions(+), 1 deletion(-) diff --git a/nix/base-system/flake.nix b/nix/base-system/flake.nix index d3f9711..d2943ae 100644 --- a/nix/base-system/flake.nix +++ b/nix/base-system/flake.nix @@ -259,6 +259,7 @@ EOF"; meta.broken = false; }); quint = (pkgs.callPackage ../packages/quint/default.nix {})."@informalsystems/quint"; + quint-lsp = (pkgs.callPackage ../packages/quint/default.nix {})."@informalsystems/quint-language-server"; }) rust-overlay ]; @@ -288,6 +289,7 @@ EOF"; isabelle lean4 quint + quint-lsp terraform # TODO(jeremy): Replace with opentofu when that is an option. nomad oha diff --git a/nix/packages/quint/node-packages.json b/nix/packages/quint/node-packages.json index bc593e9..2c02f9b 100644 --- a/nix/packages/quint/node-packages.json +++ b/nix/packages/quint/node-packages.json @@ -1,3 +1,4 @@ [ - "@informalsystems/quint" + "@informalsystems/quint", + "@informalsystems/quint-language-server" ] diff --git a/nix/packages/quint/node-packages.nix b/nix/packages/quint/node-packages.nix index aeb2dbd..b08cfa6 100644 --- a/nix/packages/quint/node-packages.nix +++ b/nix/packages/quint/node-packages.nix @@ -22,6 +22,15 @@ let sha512 = "AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw=="; }; }; + "@informalsystems/quint-0.20.0" = { + name = "_at_informalsystems_slash_quint"; + packageName = "@informalsystems/quint"; + version = "0.20.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@informalsystems/quint/-/quint-0.20.0.tgz"; + sha512 = "q3jxvzVw0hw4yxOJcGzAMIguGfcyScs/BP5efqCxQeVMDxLsqy+SAgLH5CnM7UNJFXLawwuyRaCbIvq9+2BXRg=="; + }; + }; "@js-sdsl/ordered-map-4.4.2" = { name = "_at_js-sdsl_slash_ordered-map"; packageName = "@js-sdsl/ordered-map"; @@ -634,6 +643,60 @@ let sha512 = "yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="; }; }; + "vscode-jsonrpc-6.0.0" = { + name = "vscode-jsonrpc"; + packageName = "vscode-jsonrpc"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz"; + sha512 = "wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg=="; + }; + }; + "vscode-languageserver-7.0.0" = { + name = "vscode-languageserver"; + packageName = "vscode-languageserver"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz"; + sha512 = "60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw=="; + }; + }; + "vscode-languageserver-protocol-3.16.0" = { + name = "vscode-languageserver-protocol"; + packageName = "vscode-languageserver-protocol"; + version = "3.16.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz"; + sha512 = "sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A=="; + }; + }; + "vscode-languageserver-textdocument-1.0.12" = { + name = "vscode-languageserver-textdocument"; + packageName = "vscode-languageserver-textdocument"; + version = "1.0.12"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz"; + sha512 = "cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA=="; + }; + }; + "vscode-languageserver-types-3.16.0" = { + name = "vscode-languageserver-types"; + packageName = "vscode-languageserver-types"; + version = "3.16.0"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz"; + sha512 = "k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA=="; + }; + }; + "vscode-uri-3.0.8" = { + name = "vscode-uri"; + packageName = "vscode-uri"; + version = "3.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz"; + sha512 = "AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="; + }; + }; "wrap-ansi-7.0.0" = { name = "wrap-ansi"; packageName = "wrap-ansi"; @@ -794,4 +857,114 @@ in bypassCache = true; reconstructLock = true; }; + "@informalsystems/quint-language-server" = nodeEnv.buildNodePackage { + name = "_at_informalsystems_slash_quint-language-server"; + packageName = "@informalsystems/quint-language-server"; + version = "0.14.4"; + src = fetchurl { + url = "https://registry.npmjs.org/@informalsystems/quint-language-server/-/quint-language-server-0.14.4.tgz"; + sha512 = "ZM8sCj5JsyWnI/Z9fspnwofuYpekcu3ke3A1wtrMndH4Vs2AHaJAiCGNy5wINLQho87LuvLL5eOGERbARgct/Q=="; + }; + dependencies = [ + sources."@grpc/grpc-js-1.11.1" + sources."@grpc/proto-loader-0.7.13" + sources."@informalsystems/quint-0.20.0" + sources."@js-sdsl/ordered-map-4.4.2" + sources."@octokit/endpoint-9.0.5" + sources."@octokit/openapi-types-22.2.0" + sources."@octokit/request-8.4.0" + sources."@octokit/request-error-5.1.0" + sources."@octokit/types-13.5.0" + sources."@protobufjs/aspromise-1.1.2" + sources."@protobufjs/base64-1.1.2" + sources."@protobufjs/codegen-2.0.4" + sources."@protobufjs/eventemitter-1.1.0" + sources."@protobufjs/fetch-1.1.0" + sources."@protobufjs/float-1.0.2" + sources."@protobufjs/inquire-1.1.0" + sources."@protobufjs/path-1.1.2" + sources."@protobufjs/pool-1.1.0" + sources."@protobufjs/utf8-1.1.0" + sources."@sweet-monads/either-3.2.0" + sources."@sweet-monads/interfaces-3.3.0" + sources."@sweet-monads/maybe-3.2.0" + sources."@types/line-column-1.0.2" + sources."@types/lodash-4.17.7" + sources."@types/lodash.clonedeep-4.5.0" + sources."@types/node-22.5.1" + sources."@types/seedrandom-3.0.8" + sources."ansi-regex-5.0.1" + sources."ansi-styles-4.3.0" + sources."antlr4ts-0.5.0-alpha.4" + sources."bignumber.js-9.1.2" + sources."buffer-from-1.1.2" + sources."chalk-4.1.2" + sources."chownr-2.0.0" + sources."cliui-8.0.1" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."deprecation-2.3.1" + sources."emoji-regex-8.0.0" + sources."eol-0.9.1" + sources."escalade-3.2.0" + (sources."fs-minipass-2.1.0" // { + dependencies = [ + sources."minipass-3.3.6" + ]; + }) + sources."get-caller-file-2.0.5" + sources."has-flag-4.0.0" + sources."immutable-4.3.7" + sources."is-fullwidth-code-point-3.0.0" + sources."isarray-1.0.0" + sources."isobject-2.1.0" + sources."json-bigint-1.0.0" + sources."line-column-1.0.2" + sources."lodash-4.17.21" + sources."lodash.camelcase-4.3.0" + sources."lodash.clonedeep-4.5.0" + sources."lodash.isequal-4.5.0" + sources."long-5.2.3" + sources."minipass-5.0.0" + (sources."minizlib-2.1.2" // { + dependencies = [ + sources."minipass-3.3.6" + ]; + }) + sources."mkdirp-1.0.4" + sources."once-1.4.0" + sources."protobufjs-7.4.0" + sources."require-directory-2.1.1" + sources."seedrandom-3.0.5" + sources."source-map-0.6.1" + sources."source-map-support-0.5.21" + sources."string-width-4.2.3" + sources."strip-ansi-6.0.1" + sources."supports-color-7.2.0" + sources."tar-6.2.1" + sources."undici-types-6.19.8" + sources."universal-user-agent-6.0.1" + sources."vscode-jsonrpc-6.0.0" + sources."vscode-languageserver-7.0.0" + sources."vscode-languageserver-protocol-3.16.0" + sources."vscode-languageserver-textdocument-1.0.12" + sources."vscode-languageserver-types-3.16.0" + sources."vscode-uri-3.0.8" + sources."wrap-ansi-7.0.0" + sources."wrappy-1.0.2" + sources."y18n-5.0.8" + sources."yallist-4.0.0" + sources."yargs-17.7.2" + sources."yargs-parser-21.1.1" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "Language Server for the Quint specification language"; + homepage = "https://github.com/informalsystems/quint#readme"; + license = "Apache 2.0"; + }; + production = true; + bypassCache = true; + reconstructLock = true; + }; }