From 3830722f673b7002b917fa39f851263402800a1a Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Thu, 9 Sep 2021 11:24:03 -0500 Subject: [PATCH] vscode --- .vscode/settings.json | 5 +++++ flake.nix | 34 ++++++++++++++++++++++++---------- 2 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..80b15b31 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "vim.insertModeKeyBindings": [ + { "before": ["k", "j"], "after": [""] } + ] +} \ No newline at end of file diff --git a/flake.nix b/flake.nix index d9d10f1f..0e81e753 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; + agda = pkgs.agda.withPackages (p: [ p.standard-library (p.mkDerivation { @@ -28,22 +29,35 @@ src = plfa; }) ]); - emacsWithPackages = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages - (epkgs: (with epkgs.melpaPackages; [ - gruvbox-theme - agda2-mode - evil - ]) ++ (with epkgs.elpaPackages; [ - undo-tree - ])); + agda-mode = pkgs.vscode-utils.extensionFromVscodeMarketplace { + name = "agda-mode"; + publisher = "banacorn"; + version = "0.2.19"; + sha256 = "2PFfFySOoxFEZdYb2BF6XQeYEygbTn/WJub/8IKfc1Y="; + }; + combinedExtensionsDrv = pkgs.buildEnv { + name = "vscodium-extensions"; + paths = [ + agda-mode + pkgs.vscode-extensions.vscodevim.vim + ]; + }; + vscodium = pkgs.runCommand "vscodium-with-extensions" { + nativeBuildInputs = [ pkgs.makeWrapper ]; + buildInputs = [ pkgs.vscodium ]; + meta = pkgs.vscodium.meta; + } '' + mkdir -p $out/bin + makeWrapper "${pkgs.vscodium}/bin/codium" "$out/bin/codium" \ + --add-flags "--extensions-dir ${combinedExtensionsDrv}/share/vscode/extensions" + ''; in { devShell = pkgs.mkShell { buildInputs = [ - emacsWithPackages agda - pkgs.vscodium + vscodium ]; }; }