diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 0e5103c1..39bbce0c 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -337,9 +337,13 @@ [Noah765](https://github.com/Noah765): +[vim-sleuth]: https://github.com/tpope/vim-sleuth + - Add missing `flutter-tools.nvim` dependency `plenary.nvim`. - Add necessary dependency of `flutter-tools.nvim` on lsp. - Add the `vim.languages.dart.flutter-tools.flutterPackage` option. +- Fix the type of the `highlight` color options. +- Add [vim-sleuth] plugin under `vim.utility.sleuth`. [howird](https://github.com/howird): @@ -349,4 +353,5 @@ [avante-nvim]: https://github.com/yetone/avante.nvim +- Fix [render-markdown.nvim] file_types option type to list, to accept merging. - Add [avante.nvim] plugin under `vim.assistant.avante-nvim`. diff --git a/modules/neovim/init/highlight.nix b/modules/neovim/init/highlight.nix index 7e992fd1..9c6b7214 100644 --- a/modules/neovim/init/highlight.nix +++ b/modules/neovim/init/highlight.nix @@ -5,15 +5,14 @@ }: let inherit (lib.options) mkOption; inherit (lib.types) nullOr attrsOf listOf submodule bool ints str enum; - inherit (lib.strings) hasPrefix concatLines; + inherit (lib.strings) concatLines; inherit (lib.attrsets) mapAttrsToList; inherit (lib.nvim.dag) entryBetween; inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.types) hexColor; mkColorOption = target: mkOption { - type = nullOr hexColor; + type = nullOr str; default = null; example = "#ebdbb2"; description = '' diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 62081549..4563bc44 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkEnableOption mkOption; inherit (lib.lists) isList; - inherit (lib.types) bool enum either package listOf str; + inherit (lib.types) bool enum either package listOf str nullOr; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption; inherit (lib.nvim.dag) entryAnywhere; @@ -117,7 +117,18 @@ in { ''; }; - setupOpts = mkPluginSetupOption "render-markdown" {}; + setupOpts = mkPluginSetupOption "render-markdown" { + file_types = lib.mkOption { + type = nullOr (listOf str); + default = null; + description = '' + List of buffer filetypes to enable this plugin in. + + This will cause the plugin to attach to new buffers who + have any of these filetypes. + ''; + }; + }; }; }; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index d6dec1c2..9905716e 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -125,7 +125,7 @@ end end - dap.configurations.debugpy = { + dap.configurations.python = { { -- The first three options are required by nvim-dap type = 'debugpy'; -- the type here established the link to the adapter definition: `dap.adapters.debugpy` diff --git a/modules/plugins/mini/cursorword/config.nix b/modules/plugins/mini/cursorword/config.nix new file mode 100644 index 00000000..bc5ab2cb --- /dev/null +++ b/modules/plugins/mini/cursorword/config.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.nvim.lua) toLuaObject; + + cfg = config.vim.mini.cursorword; +in { + vim = mkIf cfg.enable { + startPlugins = ["mini-cursorword"]; + + pluginRC.mini-ai = entryAnywhere '' + require("mini.cursorword").setup(${toLuaObject cfg.setupOpts}) + ''; + }; +} diff --git a/modules/plugins/mini/cursorword/cursorword.nix b/modules/plugins/mini/cursorword/cursorword.nix new file mode 100644 index 00000000..f2b8903a --- /dev/null +++ b/modules/plugins/mini/cursorword/cursorword.nix @@ -0,0 +1,9 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.mini.cursorword = { + enable = mkEnableOption "mini.cursorword"; + setupOpts = mkPluginSetupOption "mini.cursorword" {}; + }; +} diff --git a/modules/plugins/mini/cursorword/default.nix b/modules/plugins/mini/cursorword/default.nix new file mode 100644 index 00000000..f0aae6c8 --- /dev/null +++ b/modules/plugins/mini/cursorword/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./cursorword.nix + ./config.nix + ]; +} diff --git a/modules/plugins/mini/default.nix b/modules/plugins/mini/default.nix index 8f035285..f066b172 100644 --- a/modules/plugins/mini/default.nix +++ b/modules/plugins/mini/default.nix @@ -11,6 +11,7 @@ ./colors ./comment ./completion + ./cursorword ./diff ./doc ./extra diff --git a/modules/plugins/utility/default.nix b/modules/plugins/utility/default.nix index 62b07574..e3ae7c5e 100644 --- a/modules/plugins/utility/default.nix +++ b/modules/plugins/utility/default.nix @@ -18,6 +18,7 @@ ./oil-nvim ./outline ./preview + ./sleuth ./snacks-nvim ./surround ./telescope diff --git a/modules/plugins/utility/sleuth/config.nix b/modules/plugins/utility/sleuth/config.nix new file mode 100644 index 00000000..d25cc140 --- /dev/null +++ b/modules/plugins/utility/sleuth/config.nix @@ -0,0 +1,10 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + cfg = config.vim.utility.sleuth; +in { + vim.startPlugins = mkIf cfg.enable ["vim-sleuth"]; +} diff --git a/modules/plugins/utility/sleuth/default.nix b/modules/plugins/utility/sleuth/default.nix new file mode 100644 index 00000000..04cb4158 --- /dev/null +++ b/modules/plugins/utility/sleuth/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./sleuth.nix + ]; +} diff --git a/modules/plugins/utility/sleuth/sleuth.nix b/modules/plugins/utility/sleuth/sleuth.nix new file mode 100644 index 00000000..a86d414d --- /dev/null +++ b/modules/plugins/utility/sleuth/sleuth.nix @@ -0,0 +1,7 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; +in { + options.vim.utility.sleuth.enable = mkEnableOption '' + automatically adjusting options such as `shiftwidth` or `expandtab`, using `vim-sleuth` + ''; +} diff --git a/npins/sources.json b/npins/sources.json index cc4cf05d..0fe81d49 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -1033,6 +1033,22 @@ "url": "https://github.com/echasnovski/mini.completion/archive/35130cebc63ace7d6e4583f349af8cd3f3141af7.tar.gz", "hash": "0h5z5i62cc780bzw60rbizngvpyl4vk7j858pndyi2g572plz929" }, + "mini-cursorword": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "echasnovski", + "repo": "mini.cursorword" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "v0.15.0", + "revision": "6683f04509c380e3147cca368f90bbdb99641775", + "url": "https://api.github.com/repos/echasnovski/mini.cursorword/tarball/v0.15.0", + "hash": "0vqr4hkzq13ap6giyyp8asn5g6nnm406piq1a07a5nmkfxiskp9v" + }, "mini-diff": { "type": "Git", "repository": { @@ -2404,6 +2420,19 @@ "url": "https://github.com/tpope/vim-repeat/archive/65846025c15494983dafe5e3b46c8f88ab2e9635.tar.gz", "hash": "0n8sx6s2sbjb21dv9j6y5lyqda9vvxraffg2jz423daamn96dxqv" }, + "vim-sleuth": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "tpope", + "repo": "vim-sleuth" + }, + "branch": "master", + "submodules": false, + "revision": "be69bff86754b1aa5adcbb527d7fcd1635a84080", + "url": "https://github.com/tpope/vim-sleuth/archive/be69bff86754b1aa5adcbb527d7fcd1635a84080.tar.gz", + "hash": "0wqxdjgplf04nq428ialw1w03f8nh5vb629a17vl5gc9gf3zfanq" + }, "vim-startify": { "type": "Git", "repository": {