diff --git a/devshells/idris2.nix b/devshells/idris2.nix new file mode 100644 index 0000000..ed2ed75 --- /dev/null +++ b/devshells/idris2.nix @@ -0,0 +1,48 @@ +{ withSystem, inputs, ... }: +{ + perSystem = + { + config, + pkgs, + lib, + inputs', + ... + }: + { + devShells.idris2 = + let + rakudo_env = pkgs.buildEnv { + name = "rakudo-env"; + paths = with pkgs; [ + rakudo + zef + ]; + pathsToLink = [ + "/bin" + "/lib" + "/share" + ]; + }; + libPackages = with pkgs; [ readline70 ]; + in + pkgs.mkShell { + buildInputs = + with pkgs; + [ + # Idris toolchain + inputs'.nixpkgs-unstable.legacyPackages.idris2Packages.pack + inputs'.nixpkgs-unstable.legacyPackages.idris2 + pkg-config + gmp + gnumake + chez + rlwrap + rakudo_env + ] + ++ libPackages; + shellHook = '' + export LD_LIBRARY_PATH=${lib.makeLibraryPath libPackages} + ''; + }; + }; +} diff --git a/devshells/raku.nix b/devshells/raku.nix new file mode 100644 index 0000000..0cce9d3 --- /dev/null +++ b/devshells/raku.nix @@ -0,0 +1,41 @@ +{ withSystem, inputs, ... }: +{ + perSystem = + { + config, + pkgs, + lib, + inputs', + ... + }: + { + devShells.raku = + let + rakudo_env = pkgs.buildEnv { + name = "rakudo-env"; + paths = with pkgs; [ + rakudo + zef + ]; + pathsToLink = [ + "/bin" + "/lib" + "/share" + ]; + }; + libPackages = with pkgs; [ readline70 ]; + in + pkgs.mkShell { + buildInputs = + with pkgs; + [ + # Raku toolchain + rakudo_env + ] + ++ libPackages; + shellHook = '' + export LD_LIBRARY_PATH=${lib.makeLibraryPath libPackages} + ''; + }; + }; +} diff --git a/devshells/rust.nix b/devshells/rust.nix index 7a8160a..5207e18 100644 --- a/devshells/rust.nix +++ b/devshells/rust.nix @@ -3,21 +3,8 @@ perSystem = { config, pkgs, ... }: { - devshells.rust = { - env = [ - { - name = "RUSTC_WRAPPER"; - value = "${pkgs.sccache}/bin/sccache"; - } - ]; - commands = [ - # { - # help = "print hello"; - # name = "hello"; - # command = "echo hello"; - # } - ]; - packages = with pkgs; [ + devShells.rust = pkgs.mkShell { + buildInputs = with pkgs; [ # Rust toolchain clang rustup diff --git a/flake.lock b/flake.lock index 0d72145..67aad86 100644 --- a/flake.lock +++ b/flake.lock @@ -21,11 +21,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -39,11 +39,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -75,11 +75,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -110,11 +110,11 @@ ] }, "locked": { - "lastModified": 1732466619, - "narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=", + "lastModified": 1734366194, + "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", "owner": "nix-community", "repo": "home-manager", - "rev": "f3111f62a23451114433888902a55cf0692b408d", + "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", "type": "github" }, "original": { @@ -166,11 +166,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1731682434, - "narHash": "sha256-HnZFPB7akVIy0KuPq/tEkiB+Brt1qi0DUIDzR8z25qI=", + "lastModified": 1733854371, + "narHash": "sha256-K9qGHniYBbjqVcEiwXyiofj/IFf78L5F0/FCf+CKyr0=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "a6b9cf0b7805e2c50829020a73e7bde683fd36dd", + "rev": "dee4425dcee3149475ead0cb6a616b8a028c5888", "type": "github" }, "original": { @@ -198,23 +198,23 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1730504152, - "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1732758367, - "narHash": "sha256-RzaI1RO0UXqLjydtz3GAXSTzHkpb/lLD1JD8a0W4Wpo=", + "lastModified": 1734649271, + "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fa42b5a5f401aab8a32bd33c9a4de0738180dc59", + "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "type": "github" }, "original": { @@ -226,11 +226,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1729973466, - "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", + "lastModified": 1733384649, + "narHash": "sha256-K5DJ2LpPqht7K76bsxetI+YHhGGRyVteTPRQaIIKJpw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "rev": "190c31a89e5eec80dd6604d7f9e5af3802a58a13", "type": "github" }, "original": { @@ -242,11 +242,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1732824227, - "narHash": "sha256-fYNXgpu1AEeLyd3fQt4Ym0tcVP7cdJ8wRoqJ+CtTRyY=", + "lastModified": 1735141468, + "narHash": "sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c71ad5c34d51dcbda4c15f44ea4e4aa6bb6ac1e9", + "rev": "4005c3ff7505313cbc21081776ad0ce5dfd7a3ce", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 4546751..c13f841 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,8 @@ ./nixos/machines/wsl/configuration.nix ./home-manager/machines/wsl/home.nix ./devshells/rust.nix + ./devshells/idris2.nix + ./devshells/raku.nix ]; systems = [ "x86_64-linux" diff --git a/home-manager/modules/programs/emacs.nix b/home-manager/modules/programs/emacs.nix index 4fa60bc..cf61e4d 100644 --- a/home-manager/modules/programs/emacs.nix +++ b/home-manager/modules/programs/emacs.nix @@ -30,7 +30,7 @@ in # For spelling myAspell # For nix - # rnix-lsp + nil manix nix-doc # For email @@ -38,6 +38,9 @@ in meson pkg-config glib + # Ripgrep for projectile + ripgrep + fd # Desktop file for org-protocol (makeDesktopItem { name = "org-protocol"; @@ -53,12 +56,20 @@ in programs.emacs = { enable = true; package = emacsPackage'; - extraPackages = epkgs: [ - epkgs.mu4e - epkgs.vterm - epkgs.pdf-tools - epkgs.emacsql - epkgs.emacsql-sqlite - ]; + extraPackages = + epkgs: with pkgs; [ + epkgs.mu4e + epkgs.vterm + epkgs.pdf-tools + epkgs.emacsql + epkgs.emacsql-sqlite + (tree-sitter.withPlugins ( + grammars: with grammars; [ + tree-sitter-nix + tree-sitter-rust + tree-sitter-toml + ] + )) + ]; }; } diff --git a/home-manager/modules/programs/neovim.nix b/home-manager/modules/programs/neovim.nix index 45cd344..7aa636c 100644 --- a/home-manager/modules/programs/neovim.nix +++ b/home-manager/modules/programs/neovim.nix @@ -31,7 +31,9 @@ } vim-surround vim-commentary - nvim-treesitter.withAllGrammars + { + plugin = nvim-treesitter.withAllGrammars; + } nvim-nu null-ls-nvim vim-fugitive @@ -39,6 +41,11 @@ extraLuaConfig = '' vim.o.termguicolors = true require'nu'.setup{} + require'nvim-treesitter.configs'.setup { + highlight = { + enable = true, + }, + } ''; extraConfig = '' " Show relative line numbers @@ -49,6 +56,8 @@ set shiftwidth=4 " Keep 4 lines off the edge of the screen when scrolling set scrolloff=4 + " Djot setup + au BufNewFile,BufRead *.dj set filetype=djot ''; withPython3 = true; };