diff --git a/modules/lsp/config.nix b/modules/lsp/config.nix index acec921..581556e 100644 --- a/modules/lsp/config.nix +++ b/modules/lsp/config.nix @@ -8,61 +8,6 @@ with lib; with builtins; let cfg = config.vim.lsp; in { - options.vim.lsp = { - enable = mkEnableOption "neovim lsp support"; - formatOnSave = mkEnableOption "Format on save"; - nix = { - enable = mkEnableOption "Nix LSP"; - server = mkOption { - type = with types; enum ["rnix" "nil"]; - default = "nil"; - description = "Which LSP to use"; - }; - - pkg = mkOption { - type = types.package; - default = - if (cfg.nix.server == "rnix") - then pkgs.rnix-lsp - else pkgs.nil; - description = "The LSP package to use"; - }; - - formatter = mkOption { - type = with types; enum ["nixpkgs-fmt" "alejandra"]; - default = "alejandra"; - description = "Which nix formatter to use"; - }; - }; - rust = { - enable = mkEnableOption "Rust LSP"; - rustAnalyzerOpts = mkOption { - type = types.str; - default = '' - ["rust-analyzer"] = { - experimental = { - procAttrMacros = true, - }, - }, - ''; - description = "options to pass to rust analyzer"; - }; - }; - python = mkEnableOption "Python LSP"; - clang = { - enable = mkEnableOption "C language LSP"; - c_header = mkEnableOption "C syntax header files"; - cclsOpts = mkOption { - type = types.str; - default = ""; - }; - }; - sql = mkEnableOption "SQL Language LSP"; - go = mkEnableOption "Go language LSP"; - ts = mkEnableOption "TS language LSP"; - zig.enable = mkEnableOption "Zig language LSP"; - }; - config = mkIf cfg.enable ( let writeIf = cond: msg: diff --git a/modules/lsp/module.nix b/modules/lsp/module.nix index 513ec53..42ed054 100644 --- a/modules/lsp/module.nix +++ b/modules/lsp/module.nix @@ -9,8 +9,57 @@ with builtins; let cfg = config.vim.lsp; in { options.vim.lsp = { - /* - ... - */ + enable = mkEnableOption "neovim lsp support"; + formatOnSave = mkEnableOption "Format on save"; + nix = { + enable = mkEnableOption "Nix LSP"; + server = mkOption { + type = with types; enum ["rnix" "nil"]; + default = "nil"; + description = "Which LSP to use"; + }; + + pkg = mkOption { + type = types.package; + default = + if (cfg.nix.server == "rnix") + then pkgs.rnix-lsp + else pkgs.nil; + description = "The LSP package to use"; + }; + + formatter = mkOption { + type = with types; enum ["nixpkgs-fmt" "alejandra"]; + default = "alejandra"; + description = "Which nix formatter to use"; + }; + }; + rust = { + enable = mkEnableOption "Rust LSP"; + rustAnalyzerOpts = mkOption { + type = types.str; + default = '' + ["rust-analyzer"] = { + experimental = { + procAttrMacros = true, + }, + }, + ''; + description = "options to pass to rust analyzer"; + }; + }; + python = mkEnableOption "Python LSP"; + clang = { + enable = mkEnableOption "C language LSP"; + c_header = mkEnableOption "C syntax header files"; + cclsOpts = mkOption { + type = types.str; + default = ""; + }; + }; + sql = mkEnableOption "SQL Language LSP"; + go = mkEnableOption "Go language LSP"; + ts = mkEnableOption "TS language LSP"; + zig.enable = mkEnableOption "Zig language LSP"; }; }