diff --git a/.github/typos.toml b/.github/typos.toml index b6211a80..25d5c0e1 100644 --- a/.github/typos.toml +++ b/.github/typos.toml @@ -9,7 +9,6 @@ default.extend-ignore-words-re = [ "edn", "esy", "BA", # somehow "BANanaD3V" is valid, but BA is not... - "Emac", - "tese" # for glsl shaders + "Emac" ] diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index a6371d72..49736bdd 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -100,13 +100,6 @@ jobs: substituters = https://cache.nixos.org/ https://feel-co.cachix.org trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= feel-co.cachix.org-1:nwEFNnwZvtl4KKSH5LDg+/+K7bV0vcs6faMHAJ6xx0w= - - uses: cachix/cachix-action@v16 - with: - authToken: ${{ secrets.CACHIX_TOKEN }} - extraPullNames: nix-community - name: nvf - pushFilter: '(ndg-\d+\.\d+\.\d+$)' - - name: Set default git branch (to reduce log spam) run: git config --global init.defaultBranch main diff --git a/configuration.nix b/configuration.nix index cb0a2385..13d3cf5d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -55,7 +55,6 @@ isMaximal: { # Languages that are enabled in the maximal configuration. bash.enable = isMaximal; clang.enable = isMaximal; - cmake.enable = isMaximal; css.enable = isMaximal; html.enable = isMaximal; json.enable = isMaximal; @@ -76,7 +75,6 @@ isMaximal: { xml.enable = isMaximal; # Language modules that are not as common. - arduino.enable = false; assembly.enable = false; astro.enable = false; nu.enable = false; @@ -86,7 +84,6 @@ isMaximal: { scala.enable = false; r.enable = false; gleam.enable = false; - glsl.enable = false; dart.enable = false; ocaml.enable = false; elixir.enable = false; diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index c275b0d3..1c9bab61 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -27,20 +27,6 @@ [Snoweuph](https://github.com/snoweuph) -- "Correct `languages.go.treesitter` to contain all Go file types. - `languages.go.treesitter.package` is now `languages.go.treesitter.goPackage`. - New are: - - - `languages.go.treesitter.goPackage`. - - - `languages.go.treesitter.gomodPackage`. - - - `languages.go.treesitter.gosumPackage`. - - - `languages.go.treesitter.goworkPackage`. - - - `languages.go.treesitter.gotmplPackage`. - - Fix `vim.assistant.codecompanion-nvim.setupOpts.display.diff.provider` to only allow valid options. `default` is no longer valid. `inline` and `split` are two new valid options. @@ -183,30 +169,15 @@ - Added [Selenen](https://github.com/kampfkarren/selene) for more diagnostics in `languages.lua`. -- Added [`mdformat`](https://mdformat.rtfd.io/) support to `languages.python`. - - Added XML syntax highlighting, LSP support and formatting -- Added [mypy](https://www.mypy-lang.org/) to `languages.python` for extra - diagnostics. - - Added [tera](https://keats.github.io/tera/) language support (syntax highlighting only). -- Added Debugging support to `languages.odin` with - [nvim-dap-odin](https://github.com/NANDquark/nvim-dap-odin). - - Added [`golangci-lint`](https://golangci-lint.run/) for more diagnostics. -- updated default filetypes for - [harper-ls](https://github.com/Automattic/harper) to match what they are - supposed to be. - - Added Makefile support via `languages.make`. -- Fix `languages.hcl` init, depending on `comment-nvim` by checking if it is - enabled. Fixes a crash (#1350). - - Added Debugging support to `languages.php`. - Added Formatting support to `languages.php` via @@ -241,14 +212,4 @@ https://github.com/gorbit99/codewindow.nvim - Ignore terminals by default in spell-checking -[poz](https://poz.pet): - -[neocmakelsp]: https://github.com/neocmakelsp/neocmakelsp -[arduino-language-server]: https://github.com/arduino/arduino-language-server -[glsl_analyzer]: https://github.com/nolanderc/glsl_analyzer - -- Add CMake support with [neocmakelsp]. -- Add Arduino support with [arduino-language-server]. -- Add GLSL support with [glsl_analyzer]. - diff --git a/modules/plugins/languages/arduino.nix b/modules/plugins/languages/arduino.nix deleted file mode 100644 index b22c6d9d..00000000 --- a/modules/plugins/languages/arduino.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.generators) mkLuaInline; - inherit (lib.meta) getExe getExe'; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) enum listOf str; - inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) mkGrammarOption; - - cfg = config.vim.languages.arduino; - - defaultServers = ["arduino-language-server"]; - servers = { - arduino-language-server = { - enable = true; - cmd = - [ - (getExe pkgs.arduino-language-server) - "-clangd" - (getExe' pkgs.clang-tools "clangd") - "-cli" - (getExe pkgs.arduino-cli) - "-cli-config" - "$HOME/.arduino15/arduino-cli.yaml" - ] - ++ cfg.lsp.extraArgs; - filetypes = ["arduino"]; - root_dir = - mkLuaInline - /* - lua - */ - '' - function(bufnr, on_dir) - local fname = vim.api.nvim_buf_get_name(bufnr) - on_dir(util.root_pattern("*.ino")(fname)) - end - ''; - capabilities = { - textDocument = { - semanticTokens = mkLuaInline "vim.NIL"; - }; - workspace = { - semanticTokens = mkLuaInline "vim.NIL"; - }; - }; - }; - }; -in { - options.vim.languages.arduino = { - enable = mkEnableOption "Arduino support"; - - treesitter = { - enable = mkEnableOption "Arduino treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "arduino"; - }; - - lsp = { - enable = mkEnableOption "Arduino LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Arduino LSP servers to use"; - }; - - extraArgs = mkOption { - type = listOf str; - default = []; - description = "Extra arguments passed to the Arduino LSP"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; - }) - ]); -} diff --git a/modules/plugins/languages/cmake.nix b/modules/plugins/languages/cmake.nix deleted file mode 100644 index 6c6fa287..00000000 --- a/modules/plugins/languages/cmake.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.meta) getExe; - inherit (lib.types) enum listOf package; - inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) mkGrammarOption; - - cfg = config.vim.languages.cmake; - - defaultServers = ["neocmakelsp"]; - servers = { - neocmakelsp = { - enable = true; - cmd = [(getExe pkgs.neocmakelsp) "--stdio"]; - filetypes = ["cmake"]; - root_markers = [".gersemirc" ".git" "build" "cmake"]; - capabilities = { - textDocument.completion.completionItem.snippetSupport = true; - }; - }; - }; - - defaultFormat = "gersemi"; - formats = { - gersemi = { - package = pkgs.gersemi; - }; - }; -in { - options.vim.languages.cmake = { - enable = mkEnableOption "CMake language support"; - - treesitter = { - enable = mkEnableOption "CMake treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "cmake"; - }; - - lsp = { - enable = mkEnableOption "CMake LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "CMake LSP servers to use"; - }; - }; - - format = { - enable = mkEnableOption "CMake formatting" // {default = config.vim.languages.enableFormat;}; - - type = mkOption { - description = "CMake formatter to use"; - type = enum (attrNames formats); - default = defaultFormat; - }; - - package = mkOption { - description = "CMake formatter package"; - type = package; - default = formats.${cfg.format.type}.package; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; - }) - - (mkIf cfg.format.enable { - vim.formatter.conform-nvim = { - enable = true; - setupOpts.formatters_by_ft.cmake = [cfg.format.type]; - setupOpts.formatters.${cfg.format.type} = { - command = getExe cfg.format.package; - }; - }; - }) - ]); -} diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 1cdead76..0986e1e1 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -3,7 +3,6 @@ inherit (lib.nvim.languages) mkEnable; in { imports = [ - ./arduino.nix ./asm.nix ./astro.nix ./bash.nix @@ -11,12 +10,10 @@ in { ./dart.nix ./clang.nix ./clojure.nix - ./cmake.nix ./css.nix ./elixir.nix ./fsharp.nix ./gleam.nix - ./glsl.nix ./go.nix ./hcl.nix ./helm.nix diff --git a/modules/plugins/languages/glsl.nix b/modules/plugins/languages/glsl.nix deleted file mode 100644 index b555b008..00000000 --- a/modules/plugins/languages/glsl.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) enum listOf; - inherit (lib.meta) getExe; - inherit (lib.nvim.attrsets) mapListToAttrs; - - cfg = config.vim.languages.glsl; - - defaultServers = ["glsl_analyzer"]; - servers = { - glsl_analyzer = { - enable = true; - cmd = [(getExe pkgs.glsl_analyzer)]; - filetypes = ["glsl" "vert" "tesc" "tese" "frag" "geom" "comp"]; - root_markers = [".git"]; - }; - }; -in { - options.vim.languages.glsl = { - enable = mkEnableOption "GLSL language support"; - - treesitter = { - enable = mkEnableOption "GLSL treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "glsl"; - }; - - lsp = { - enable = mkEnableOption "GLSL LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "GLSL LSP server to use"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter = { - enable = true; - grammars = [cfg.treesitter.package]; - }; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; - }) - ]); -} diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index da3700a7..bfaafd0d 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -20,7 +20,7 @@ servers = { gopls = { cmd = [(getExe pkgs.gopls)]; - filetypes = ["go" "gomod" "gosum" "gowork" "gotmpl"]; + filetypes = ["go" "gomod" "gowork" "gotmpl"]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) @@ -170,11 +170,7 @@ in { treesitter = { enable = mkEnableOption "Go treesitter" // {default = config.vim.languages.enableTreesitter;}; - goPackage = mkGrammarOption pkgs "go"; - gomodPackage = mkGrammarOption pkgs "gomod"; - gosumPackage = mkGrammarOption pkgs "gosum"; - goworkPackage = mkGrammarOption pkgs "gowork"; - gotmplPackage = mkGrammarOption pkgs "gotmpl"; + package = mkGrammarOption pkgs "go"; }; lsp = { @@ -236,13 +232,7 @@ in { config = mkIf cfg.enable (mkMerge [ (mkIf cfg.treesitter.enable { vim.treesitter.enable = true; - vim.treesitter.grammars = [ - cfg.treesitter.goPackage - cfg.treesitter.gomodPackage - cfg.treesitter.gosumPackage - cfg.treesitter.goworkPackage - cfg.treesitter.gotmplPackage - ]; + vim.treesitter.grammars = [cfg.treesitter.package]; }) (mkIf cfg.lsp.enable { diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index c20c7872..e32719b9 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -76,14 +76,9 @@ in { end }) - ${ - if config.vim.comments.comment-nvim.enable - then '' - local ft = require('Comment.ft') - ft.set('hcl', '#%s') - '' - else "" - } + local ft = require('Comment.ft') + ft + .set('hcl', '#%s') ''; } (mkIf cfg.treesitter.enable { diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index f0cf1aa1..a2634e6d 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -5,7 +5,7 @@ ... }: let inherit (builtins) attrNames; - inherit (lib.meta) getExe getExe'; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkEnableOption mkOption; inherit (lib.types) bool enum listOf str nullOr; @@ -55,14 +55,6 @@ prettierd = { command = getExe pkgs.prettierd; }; - mdformat = { - command = getExe' (pkgs.python313Packages.python.withPackages (p: - with p; [ - mdformat - mdformat-gfm - mdformat-frontmatter - ])) "mdformat"; - }; }; defaultDiagnosticsProvider = ["markdownlint-cli2"]; diagnosticsProviders = { diff --git a/modules/plugins/languages/odin.nix b/modules/plugins/languages/odin.nix index 6c2f7b8e..fa2254c5 100644 --- a/modules/plugins/languages/odin.nix +++ b/modules/plugins/languages/odin.nix @@ -7,15 +7,12 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum package; - inherit (lib.nvim.dag) entryAfter; + inherit (lib.types) enum; inherit (lib.meta) getExe; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; - cfg = config.vim.languages.odin; - defaultServers = ["ols"]; servers = { ols = { @@ -35,19 +32,7 @@ }; }; - defaultDebugger = "codelldb"; - debuggers = { - codelldb = { - package = pkgs.lldb; - dapConfig = '' - dap.adapters.codelldb = { - type = 'executable', - command = '${cfg.dap.package}/bin/lldb-dap', - name = 'codelldb' - } - ''; - }; - }; + cfg = config.vim.languages.odin; in { options.vim.languages.odin = { enable = mkEnableOption "Odin language support"; @@ -66,22 +51,6 @@ in { description = "Odin LSP server to use"; }; }; - - dap = { - enable = mkEnableOption "Enable Odin Debug Adapter" // {default = config.vim.languages.enableDAP;}; - - debugger = mkOption { - description = "Odin debugger to use"; - type = enum (attrNames debuggers); - default = defaultDebugger; - }; - - package = mkOption { - description = "Odin debugger package."; - type = package; - default = debuggers.${cfg.dap.debugger}.package; - }; - }; }; config = mkIf cfg.enable (mkMerge [ @@ -98,16 +67,5 @@ in { }) cfg.lsp.servers; }) - - (mkIf cfg.dap.enable { - vim = { - startPlugins = ["nvim-dap-odin"]; - debugger.nvim-dap.sources.odin-debugger = debuggers.${cfg.dap.debugger}.dapConfig; - pluginRC.nvim-dap-odin = entryAfter ["nvim-dap"] '' - require('nvim-dap-odin').setup() - ''; - debugger.nvim-dap.enable = true; - }; - }) ]); } diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index 4c777e3e..04d2554f 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -11,7 +11,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum package bool; inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) deprecatedSingleOrListOf diagnostics; + inherit (lib.nvim.types) deprecatedSingleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; inherit (lib.trivial) warn; @@ -278,14 +278,6 @@ ''; }; }; - defaultDiagnosticsProvider = ["mypy"]; - diagnosticsProviders = { - mypy = { - config = { - cmd = getExe' pkgs.mypy "mypy"; - }; - }; - }; in { options.vim.languages.python = { enable = mkEnableOption "Python language support"; @@ -343,15 +335,6 @@ in { ''; }; }; - - extraDiagnostics = { - enable = mkEnableOption "extra Python diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; - types = diagnostics { - langDesc = "Python"; - inherit diagnosticsProviders; - inherit defaultDiagnosticsProvider; - }; - }; }; config = mkIf cfg.enable (mkMerge [ @@ -421,15 +404,5 @@ in { vim.debugger.nvim-dap.enable = true; vim.debugger.nvim-dap.sources.python-debugger = debuggers.${cfg.dap.debugger}.dapConfig; }) - - (mkIf cfg.extraDiagnostics.enable { - vim.diagnostics.nvim-lint = { - enable = true; - linters_by_ft.python = cfg.extraDiagnostics.types; - linters = - mkMerge (map (name: {${name} = diagnosticsProviders.${name}.config;}) - cfg.extraDiagnostics.types); - }; - }) ]); } diff --git a/modules/plugins/lsp/harper-ls/config.nix b/modules/plugins/lsp/harper-ls/config.nix index 41a51c62..d6e27bfc 100644 --- a/modules/plugins/lsp/harper-ls/config.nix +++ b/modules/plugins/lsp/harper-ls/config.nix @@ -11,47 +11,9 @@ in { config = mkIf (cfg.enable && cfg.harper-ls.enable) { vim.lsp.servers.harper-ls = { - root_markers = [".git" ".harper-dictionary.txt"]; + root_markers = [".git"]; cmd = [(getExe pkgs.harper) "--stdio"]; settings = {harper-ls = cfg.harper-ls.settings;}; - filetypes = - # - [ - "asciidoc" - "c" - "clojure" - "cmake" - "cpp" - "cs" - "daml" - "dart" - "gitcommit" - "go" - "haskell" - "html" - "ink" - "java" - "javascript" - "javascriptreact" - "kotlin" - "lhaskell" - "lua" - "mail" - "markdown" - "nix" - "php" - "python" - "ruby" - "rust" - "scala" - "sh" - "swift" - "text" - "toml" - "typescript" - "typescriptreact" - "typst" - ]; }; }; } diff --git a/npins/sources.json b/npins/sources.json index 38b14425..f07d0d70 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -1873,19 +1873,6 @@ "url": "https://github.com/leoluz/nvim-dap-go/archive/b4421153ead5d726603b02743ea40cf26a51ed5f.tar.gz", "hash": "sha256-wg9kiW2eAMmg4bvgqaAS9kt7qaVsIWl36BNqRbhZIgo=" }, - "nvim-dap-odin": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "NANDquark", - "repo": "nvim-dap-odin" - }, - "branch": "main", - "submodules": false, - "revision": "4df40d467f4ea5195e2f3b813d970eb15172b052", - "url": "https://github.com/NANDquark/nvim-dap-odin/archive/4df40d467f4ea5195e2f3b813d970eb15172b052.tar.gz", - "hash": "sha256-/bW22gWrPamK4jDMJYDv/3od+vIUb/eYICnHWnv8MVU=" - }, "nvim-dap-ui": { "type": "Git", "repository": {