diff --git a/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua b/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua index c936012..3bf386c 100644 --- a/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua @@ -64,7 +64,7 @@ local on_attach_def = function(client, bufnr) }, i = { function() - vim.lsp.inlay_hint(bufnr, nil) + vim.lsp.inlay_hint.enable(bufnr, not vim.lsp.inlay_hint.is_enabled(bufnr)) end, "LSP inlay hints", }, diff --git a/statix.toml b/statix.toml new file mode 100644 index 0000000..daefa4c --- /dev/null +++ b/statix.toml @@ -0,0 +1,3 @@ +disabled = [] +nix_version = '2.4' +ignore = ['.direnv' 'templates'] diff --git a/templates/rust/.cargo/config.toml b/templates/rust/.cargo/config.toml deleted file mode 100644 index 4b929fe..0000000 --- a/templates/rust/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[target.x86_64-unknown-linux-gnu] -linker = "clang" diff --git a/templates/rust/flake.nix b/templates/rust/flake.nix index 3c67202..317e679 100644 --- a/templates/rust/flake.nix +++ b/templates/rust/flake.nix @@ -1,50 +1,59 @@ { inputs = { - crane = { - url = "github:ipetkov/crane"; - inputs = { - flake-utils.follows = "flake-utils"; - nixpkgs.follows = "nixpkgs"; - }; - }; - fenix = { - url = "github:nix-community/fenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + crane.url = "github:ipetkov/crane"; + crane.inputs.nixpkgs.follows = "nixpkgs"; + fenix.url = "github:nix-community/fenix"; + fenix.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "nixpkgs/nixos-unstable"; }; - outputs = { self, crane, fenix, flake-utils, nixpkgs }: + outputs = { self, crane, flake-utils, nixpkgs, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: let - pkgs = (import nixpkgs) { - inherit system; - }; - toolchain = fenix.packages.${system}.stable; + inherit (pkgs) lib; + pkgs = import nixpkgs { inherit system; }; + fenix = inputs.fenix.packages.${system}; craneLib = crane.lib.${system}.overrideToolchain toolchain.toolchain; + mkSrc = extraPaths: with lib.fileset; let + root = ./.; + rustFiles = fromSource (craneLib.cleanCargoSource root); + fileset = union rustFiles (unions extraPaths); + in + toSource { inherit root fileset; }; + + ## Customize here ## + toolchain = fenix.complete; # or fenix.stable; + stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv; in { - packages.default = - let - inherit (pkgs.lib) fileset; - in - craneLib.buildPackage { - src = fileset.toSource { - root = ./.; - fileset = fileset.intersection - (fileset.difference ./. - (fileset.unions [ ./.cargo ./flake.nix ./flake.lock ./.envrc ])) - (fileset.gitTracked ./.); - }; - }; + packages.default = craneLib.buildPackage { + inherit stdenv; + src = mkSrc [ ]; + strictDeps = true; + buildInputs = [ + # Add additional build inputs here + ] ++ lib.optionals pkgs.stdenv.isDarwin [ + # Additional darwin specific inputs can be set here + pkgs.libiconv + ]; + # Additional environment variables can be set directly + # MY_CUSTOM_VAR = "some value"; + }; - devShell = pkgs.mkShell.override + devShells.default = pkgs.mkShell.override { inherit stdenv; } { - stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.clangStdenv; - } - { - nativeBuildInputs = with toolchain; [ rustc cargo rust-analyzer clippy ]; + nativeBuildInputs = with pkgs; [ + # Add additional build inputs here + ] ++ (with toolchain; [ + cargo + clippy + rustfmt + rustc + fenix.rust-analyzer + ]); + RUST_SRC_PATH = "${toolchain.rust-src}/lib/rustlib/src/rust/library"; }; - }); + } + ); }