From 8bb6abc6d44981e98288f3d749ae5c82040d98db Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Thu, 26 Dec 2024 17:21:27 +0200 Subject: [PATCH] Finally added a formatter and LSP for nix --- .../nvim/lua/custom/config/language-servers.lua | 17 +++++++++++++++++ .config/nvim/lua/custom/plugins/conform.lua | 8 +++++--- hosts/laptop-nixos/home.nix | 8 ++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.config/nvim/lua/custom/config/language-servers.lua b/.config/nvim/lua/custom/config/language-servers.lua index edb6d44..7cc4946 100644 --- a/.config/nvim/lua/custom/config/language-servers.lua +++ b/.config/nvim/lua/custom/config/language-servers.lua @@ -137,4 +137,21 @@ return { }, }, }, -- zig + nixd = { + mason = false, + cmd = { 'nixd' }, + settings = { + nixd = { + nixpkgs = { expr = 'import { }' }, + options = { + nixos = { + expr = '(builtins.getFlake "/home/kyren/dotfiles/flake.nix").nixosConfigurations.laptop-nixos.options', + }, + home_manager = { + expr = '(builtins.getFlake "/home/kyren/dotfiles/flake.nix").homeConfigurations.laptop-nixos.options', + }, + }, + }, + }, + }, } diff --git a/.config/nvim/lua/custom/plugins/conform.lua b/.config/nvim/lua/custom/plugins/conform.lua index 30d7588..84a2385 100644 --- a/.config/nvim/lua/custom/plugins/conform.lua +++ b/.config/nvim/lua/custom/plugins/conform.lua @@ -3,10 +3,10 @@ return { event = { 'BufWritePre' }, cmd = { 'ConformInfo' }, keys = { - { 'ft', 'FormatToggle', desc = '[F]ormat [T]oggle Globally' }, + { 'ft', 'FormatToggle', desc = '[F]ormat [T]oggle Globally' }, { 'fT', 'FormatToggle!', desc = '[F]ormat [T]oggle Locally' }, - { 'ff', 'Format', desc = '[F]ormat [F]ile' }, - { 'f', 'Format', desc = '[F]ormat', mode = 'v' }, + { 'ff', 'Format', desc = '[F]ormat [F]ile' }, + { 'f', 'Format', desc = '[F]ormat', mode = 'v' }, }, ---@module "conform" ---@type conform.setupOpts @@ -24,6 +24,8 @@ return { ['css'] = { 'prettierd', 'prettier', stop_after_first = true }, ['javascript'] = { 'prettierd', 'prettier', stop_after_first = true }, ['typescript'] = { 'prettierd', 'prettier', stop_after_first = true }, + -- ['nix'] = { 'nixfmt' }, + -- ['nix'] = { 'alejandra' }, }, format_on_save = function(bufnr) -- Disable with a global or buffer local variable diff --git a/hosts/laptop-nixos/home.nix b/hosts/laptop-nixos/home.nix index 1371966..f4e9958 100644 --- a/hosts/laptop-nixos/home.nix +++ b/hosts/laptop-nixos/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: { home.username = "kyren"; @@ -78,8 +78,13 @@ gitleaks rar gomodifytags + nixfmt-rfc-style + alejandra + nixd ]; + nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"]; + # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { @@ -114,7 +119,6 @@ }; }; - # Let Home Manager install and manage itself. programs.home-manager.enable = true; }