{ lib, rustPlatform, fetchFromGitHub, pkg-config, libgit2, openssl, zlib, stdenv, darwin, versionCheckHook, nix-update-script, vscode-extensions, }: rustPlatform.buildRustPackage rec { pname = "tinymist"; # Please update the corresponding vscode extension when updating # this derivation. version = "0.12.0"; src = fetchFromGitHub { owner = "Myriad-Dreamin"; repo = "tinymist"; rev = "refs/tags/v${version}"; hash = "sha256-z0JfHEG01q83iHAQA/Ke/DPhKQYwkWv9HRpeUdXmTxs="; }; cargoLock = { lockFile = ./Cargo.lock; outputHashes = { "typst-0.12.0" = "sha256-E2wSVHqY3SymCwKgbLsASJYaWfrbF8acH15B2STEBF8="; "typst-syntax-0.7.0" = "sha256-yrtOmlFAKOqAmhCP7n0HQCOQpU3DWyms5foCdUb9QTg="; "typstfmt_lib-0.2.7" = "sha256-LBYsTCjZ+U+lgd7Z3H1sBcWwseoHsuepPd66bWgfvhI="; }; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libgit2 openssl zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk_11_0.frameworks.CoreFoundation darwin.apple_sdk_11_0.frameworks.CoreServices darwin.apple_sdk_11_0.frameworks.Security darwin.apple_sdk_11_0.frameworks.SystemConfiguration ]; checkFlags = [ "--skip=e2e" # Require internet access "--skip=docs::package::tests::cetz" "--skip=docs::package::tests::tidy" "--skip=docs::package::tests::touying" ]; nativeInstallCheckInputs = [ versionCheckHook ]; versionCheckProgramArg = [ "-V" ]; doInstallCheck = true; passthru = { updateScript = nix-update-script { }; tests = { vscode-extension = vscode-extensions.myriad-dreamin.tinymist; }; }; meta = { changelog = "https://github.com/Myriad-Dreamin/tinymist/blob/${src.rev}/CHANGELOG.md"; description = "Tinymist is an integrated language service for Typst"; homepage = "https://github.com/Myriad-Dreamin/tinymist"; license = lib.licenses.asl20; mainProgram = "tinymist"; maintainers = with lib.maintainers; [ GaetanLepage lampros ]; }; }