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 ]; }; }