diff --git a/.github/labels.yml b/.github/labels.yml deleted file mode 100644 index 34c3bf2c..00000000 --- a/.github/labels.yml +++ /dev/null @@ -1,55 +0,0 @@ -# This file is used by .github/workflows/labels.yml -"topic: plugins": - - any: - - changed-files: - - any-glob-to-any-file: - - modules/plugins/**/* - -"topic: modules": - - any: - - changed-files: - - any-glob-to-any-file: - - modules/**/* - -"topic: dependencies": - - any: - - changed-files: - - any-glob-to-any-file: - - npins - - flake.lock - -"topic: CI": - - any: - - changed-files: - - any-glob-to-any-file: - - .github/workflows/*.yml - - .github/typos.toml - - .github/dependabot.yml - -"topic: meta": - - any: - - changed-files: - - any-glob-to-any-file: - - .github/CODEOWNERS - - LICENSE - - .github/README.md - - .github/funding.yml - - .github/assets - - .github/*_TEMPLATE - - .gitignore - - .editorconfig - - release.json - -"topic: documentation": - - any: - - changed-files: - - any-glob-to-any-file: - - docs/**/* - - .github/CONTRIBUTING.md - - .github/README.md -"topic: packaging": - - any: - - changed-files: - - any-glob-to-any-file: - - flake.nix - - flake/packages.nix diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml deleted file mode 100644 index 0a558fb8..00000000 --- a/.github/workflows/backport.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Backport PR on Label - -on: - pull_request_target: - types: - - labeled - -# Permissions needed for the korthout/backport-action to create branches and PRs -permissions: - contents: write - pull-requests: write - -jobs: - backport: - name: Create Backport PR - runs-on: ubuntu-latest - if: | - github.event.pull_request.merged == true && startsWith(github.event.label.name, 'backport-') - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} - token: ${{ steps.app-token.outputs.token }} - - - name: Backport Action - uses: korthout/backport-action@v3 - with: - # Regex pattern for labels that should trigger a backport AND extracts the target branch - # from the name (e.g. v0.x or v0.x.y; we use zerover). This action will ONLY proceed if - # the label that triggered the workflow fully matches this pattern. - # Example matching labels: "backport-v0.1", "backport-v0.10.1" - # Example non-matching labels: "backport-foo", "backport-v1.0" - label_pattern: '^backport-(v0\.\d+(\.\d+)?)$' diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index fc2e0d65..00000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: "Label PR" - -on: - pull_request_target: - types: [edited, opened, synchronize, reopened] - -permissions: - contents: read - pull-requests: write - -jobs: - labels: - name: "Label PR" - runs-on: ubuntu-latest - if: "!contains(github.event.pull_request.title, '[skip ci]')" - steps: - - uses: actions/labeler@v5 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: .github/labels.yml - sync-labels: true diff --git a/configuration.nix b/configuration.nix index 2995fee8..011d6fae 100644 --- a/configuration.nix +++ b/configuration.nix @@ -18,16 +18,12 @@ isMaximal: { }; lsp = { - # This must be enabled for the language modules to hook into - # the LSP API. - enable = true; - formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; trouble.enable = true; - lspSignature.enable = !isMaximal; # conflicts with blink in maximal + lspSignature.enable = true; otter-nvim.enable = isMaximal; nvim-docs-view.enable = isMaximal; }; @@ -42,7 +38,8 @@ isMaximal: { # This section does not include a comprehensive list of available language modules. # To list all available language module options, please visit the nvf manual. languages = { - enableFormat = true; # + enableLSP = true; + enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; @@ -127,15 +124,7 @@ isMaximal: { autopairs.nvim-autopairs.enable = true; - # nvf provides various autocomplete options. The tried and tested nvim-cmp - # is enabled in default package, because it does not trigger a build. We - # enable blink-cmp in maximal because it needs to build its rust fuzzy - # matcher library. - autocomplete = { - nvim-cmp.enable = !isMaximal; - blink-cmp.enable = isMaximal; - }; - + autocomplete.nvim-cmp.enable = true; snippets.luasnip.enable = true; filetree = { @@ -153,7 +142,6 @@ isMaximal: { binds = { whichKey.enable = true; cheatsheet.enable = true; - hardtime-nvim.enable = isMaximal; }; telescope.enable = true; @@ -199,7 +187,6 @@ isMaximal: { }; images = { image-nvim.enable = false; - img-clip.enable = isMaximal; }; }; @@ -248,7 +235,6 @@ isMaximal: { cmp.enable = isMaximal; }; codecompanion-nvim.enable = false; - avante-nvim.enable = isMaximal; }; session = { diff --git a/docs/default.nix b/docs/default.nix index 49f90b80..98b29db0 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -12,7 +12,6 @@ inherit ( (lib.evalModules { - specialArgs = {inherit inputs;}; modules = import ../modules/modules.nix { inherit lib pkgs; diff --git a/docs/manual/configuring.md b/docs/manual/configuring.md index 28c7e66a..f891c7a6 100644 --- a/docs/manual/configuring.md +++ b/docs/manual/configuring.md @@ -1,15 +1,5 @@ # Configuring nvf {#ch-configuring} -[helpful tips section]: #ch-helpful-tips - -nvf allows for _very_ extensive configuration in Neovim through the Nix module -interface. The below chapters describe several of the options exposed in nvf for -your convenience. You might also be interested in the [helpful tips section] for -more advanced or unusual configuration options supported by nvf. - -Note that this section does not cover module _options_. For an overview of all -module options provided by nvf, please visit the [appendix](/options.html) - ```{=include=} chapters configuring/custom-package.md configuring/custom-plugins.md @@ -17,5 +7,4 @@ configuring/overriding-plugins.md configuring/languages.md configuring/dags.md configuring/dag-entries.md -configuring/autocmds.md ``` diff --git a/docs/manual/configuring/autocmds.md b/docs/manual/configuring/autocmds.md deleted file mode 100644 index be10e726..00000000 --- a/docs/manual/configuring/autocmds.md +++ /dev/null @@ -1,119 +0,0 @@ -# Autocommands and Autogroups {#ch-autocmds-augroups} - -This module allows you to declaratively configure Neovim autocommands and -autogroups within your Nix configuration. - -## Autogroups (`vim.augroups`) {#sec-vim-augroups} - -Autogroups (`augroup`) organize related autocommands. This allows them to be -managed collectively, such as clearing them all at once to prevent duplicates. -Each entry in the list is a submodule with the following options: - -| Option | Type | Default | Description | Example | -| :------- | :----- | :------ | :--------------------------------------------------------------------------------------------------- | :---------------- | -| `enable` | `bool` | `true` | Enables or disables this autogroup definition. | `true` | -| `name` | `str` | _None_ | **Required.** The unique name for the autogroup. | `"MyFormatGroup"` | -| `clear` | `bool` | `true` | Clears any existing autocommands within this group before adding new ones defined in `vim.autocmds`. | `true` | - -**Example:** - -```nix -{ - vim.augroups = [ - { - name = "MyCustomAuGroup"; - clear = true; # Clear previous autocommands in this group on reload - } - { - name = "Formatting"; - # clear defaults to true - } - ]; -} -``` - -## Autocommands (`vim.autocmds`) {#sec-vim-autocmds} - -Autocommands (`autocmd`) trigger actions based on events happening within Neovim -(e.g., saving a file, entering a buffer). Each entry in the list is a submodule -with the following options: - -| Option | Type | Default | Description | Example | -| :--------- | :-------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | -| `enable` | `bool` | `true` | Enables or disables this autocommand definition. | `true` | -| `event` | `nullOr (listOf str)` | `null` | **Required.** List of Neovim events that trigger this autocommand (e.g., `BufWritePre`, `FileType`). | `[ "BufWritePre" ]` | -| `pattern` | `nullOr (listOf str)` | `null` | List of file patterns (globs) to match against (e.g., `*.py`, `*`). If `null`, matches all files for the given event. | `[ "*.lua", "*.nix" ]` | -| `callback` | `nullOr luaInline` | `null` | A Lua function to execute when the event triggers. Use `lib.nvim.types.luaInline` or `lib.options.literalExpression "mkLuaInline '''...'''"`. **Cannot be used with `command`.** | `lib.nvim.types.luaInline "function() print('File saved!') end"` | -| `command` | `nullOr str` | `null` | A Vimscript command to execute when the event triggers. **Cannot be used with `callback`.** | `"echo 'File saved!'"` | -| `group` | `nullOr str` | `null` | The name of an `augroup` (defined in `vim.augroups`) to associate this autocommand with. | `"MyCustomAuGroup"` | -| `desc` | `nullOr str` | `null` | A description for the autocommand (useful for introspection). | `"Format buffer on save"` | -| `once` | `bool` | `false` | If `true`, the autocommand runs only once and then automatically removes itself. | `false` | -| `nested` | `bool` | `false` | If `true`, allows this autocommand to trigger other autocommands. | `false` | - -:::{.warning} - -You cannot define both `callback` (for Lua functions) and `command` (for -Vimscript) for the same autocommand. Choose one. - -::: - -**Examples:** - -```nix -{ lib, ... }: -{ - vim.augroups = [ { name = "UserSetup"; } ]; - - vim.autocmds = [ - # Example 1: Using a Lua callback - { - event = [ "BufWritePost" ]; - pattern = [ "*.lua" ]; - group = "UserSetup"; - desc = "Notify after saving Lua file"; - callback = lib.nvim.types.luaInline '' - function() - vim.notify("Lua file saved!", vim.log.levels.INFO) - end - ''; - } - - # Example 2: Using a Vim command - { - event = [ "FileType" ]; - pattern = [ "markdown" ]; - group = "UserSetup"; - desc = "Set spellcheck for Markdown"; - command = "setlocal spell"; - } - - # Example 3: Autocommand without a specific group - { - event = [ "BufEnter" ]; - pattern = [ "*.log" ]; - desc = "Disable line numbers in log files"; - command = "setlocal nonumber"; - # No 'group' specified - } - - # Example 4: Using Lua for callback - { - event = [ "BufWinEnter" ]; - pattern = [ "*" ]; - desc = "Simple greeting on entering a buffer window"; - callback = lib.generators.mkLuaInline '' - function(args) - print("Entered buffer: " .. args.buf) - end - ''; - - # Run only once per session trigger - once = true; - } - ]; -} -``` - -These definitions are automatically translated into the necessary Lua code to -configure `vim.api.nvim_create_augroup` and `vim.api.nvim_create_autocmd` when -Neovim starts. diff --git a/docs/manual/configuring/custom-package.md b/docs/manual/configuring/custom-package.md index 3e9e324a..51d996b6 100644 --- a/docs/manual/configuring/custom-package.md +++ b/docs/manual/configuring/custom-package.md @@ -1,12 +1,12 @@ # Custom Neovim Package {#ch-custom-package} As of v0.5, you may now specify the Neovim package that will be wrapped with -your configuration. This is done with the [](#opt-vim.package) option. +your configuration. This is done with the `vim.package` option. ```nix {inputs, pkgs, ...}: { # using the neovim-nightly overlay - vim.package = inputs.neovim-overlay.packages.${pkgs.stdenv.system}.neovim; + vim.package = inputs.neovim-overlay.packages.${pkgs.system}.neovim; } ``` diff --git a/docs/manual/configuring/custom-plugins.md b/docs/manual/configuring/custom-plugins.md index bf986a0f..c621e03c 100644 --- a/docs/manual/configuring/custom-plugins.md +++ b/docs/manual/configuring/custom-plugins.md @@ -1,33 +1,22 @@ # Custom Plugins {#ch-custom-plugins} -**nvf** exposes a very wide variety of plugins by default, which are consumed by -module options. This is done for your convenience, and to bundle all necessary -dependencies into **nvf**'s runtime with full control of versioning, testing and -dependencies. In the case a plugin you need is _not_ available, you may consider -making a pull request to add the package you're looking for, or you may add it -to your configuration locally. The below section describes how new plugins may -be added to the user's configuration. +**nvf**, by default, exposes a wide variety of plugins as module options for +your convenience and bundles necessary dependencies into **nvf**'s runtime. In +case a plugin is not available in **nvf**, you may consider making a pull +request to **nvf** to include it as a module or you may add it to your +configuration locally. ## Adding Plugins {#ch-adding-plugins} -Per **nvf**'s design choices, there are several ways of adding custom plugins to -your configuration as you need them. As we aim for extensive configuration, it -is possible to add custom plugins (from nixpkgs, pinning tools, flake inputs, -etc.) to your Neovim configuration before they are even implemented in **nvf** -as a module. +There are multiple ways of adding custom plugins to your **nvf** configuration. -:::{.info} +You can use custom plugins, before they are implemented in the flake. To add a +plugin to the runtime, you need to add it to the [](#opt-vim.startPlugins) list +in your configuration. -To add a plugin to your runtime, you will need to add it to -[](#opt-vim.startPlugins) list in your configuration. This is akin to cloning a -plugin to `~/.config/nvim`, but they are only ever placed in the Nix store and -never exposed to the outside world for purity and full isolation. - -::: - -As you would configure a cloned plugin, you must configure the new plugins that -you've added to `startPlugins.` **nvf** provides multiple ways of configuring -any custom plugins that you might have added to your configuration. +Adding a plugin to `startPlugins` will not allow you to configure the plugin +that you have added, but **nvf** provides multiple ways of configuring any custom +plugins that you might have added to your configuration. ```{=include=} sections custom-plugins/configuring.md diff --git a/docs/manual/configuring/custom-plugins/configuring.md b/docs/manual/configuring/custom-plugins/configuring.md index a4b3ce19..5106d29b 100644 --- a/docs/manual/configuring/custom-plugins/configuring.md +++ b/docs/manual/configuring/custom-plugins/configuring.md @@ -1,20 +1,13 @@ # Configuring {#sec-configuring-plugins} Just making the plugin to your Neovim configuration available might not always -be enough., for example, if the plugin requires a setup table. In that case, you -can write custom Lua configuration using one of +be enough. In that case, you can write custom lua config using either +`config.vim.lazy.plugins.*.setupOpts` `config.vim.extraPlugins.*.setup` or +`config.vim.luaConfigRC`. -- `config.vim.lazy.plugins.*.setupOpts` -- `config.vim.extraPlugins.*.setup` -- `config.vim.luaConfigRC`. - -## Lazy Plugins {#ch-vim-lazy-plugins} - -`config.vim.lazy.plugins.*.setupOpts` is useful for lazy-loading plugins, and -uses an extended version of `lz.n's` `PluginSpec` to expose a familiar -interface. `setupModule` and `setupOpt` can be used if the plugin uses a -`require('module').setup(...)` pattern. Otherwise, the `before` and `after` -hooks should do what you need. +The first option uses an extended version of `lz.n`'s PluginSpec. `setupModule` +and `setupOpt` can be used if the plugin uses a `require('module').setup(...)` +pattern. Otherwise, the `before` and `after` hooks should do what you need. ```nix { @@ -32,61 +25,50 @@ hooks should do what you need. } ``` -## Standard API {#ch-vim-extra-plugins} - -`vim.extraPlugins` uses an attribute set, which maps DAG section names to a +The second option uses an attribute set, which maps DAG section names to a custom type, which has the fields `package`, `after`, `setup`. They allow you to set the package of the plugin, the sections its setup code should be after (note that the `extraPlugins` option has its own DAG scope), and the its setup code respectively. For example: ```nix -{pkgs, ...}: { - config.vim.extraPlugins = { - aerial = { - package = pkgs.vimPlugins.aerial-nvim; - setup = "require('aerial').setup {}"; - }; +config.vim.extraPlugins = with pkgs.vimPlugins; { + aerial = { + package = aerial-nvim; + setup = "require('aerial').setup {}"; + }; - harpoon = { - package = pkgs.vimPlugins.harpoon; - setup = "require('harpoon').setup {}"; - after = ["aerial"]; # place harpoon configuration after aerial - }; + harpoon = { + package = harpoon; + setup = "require('harpoon').setup {}"; + after = ["aerial"]; # place harpoon configuration after aerial }; } ``` -### Setup using luaConfigRC {#setup-using-luaconfigrc} - -`vim.luaConfigRC` also uses an attribute set, but this one is resolved as a DAG +The third option also uses an attribute set, but this one is resolved as a DAG directly. The attribute names denote the section names, and the values lua code. For example: ```nix { - # This will create a section called "aquarium" in the 'init.lua' with the - # contents of your custom configuration. By default 'entryAnywhere' is implied - # in DAGs, so this will be inserted to an arbitrary position. In the case you - # wish to control the position of this section with more precision, please - # look into the DAGs section of the manual. + # this will create an "aquarium" section in your init.lua with the contents of your custom config + # which will be *appended* to the rest of your configuration, inside your init.vim config.vim.luaConfigRC.aquarium = "vim.cmd('colorscheme aquiarum')"; } ``` -[DAG system]: #ch-using-dags -[DAG section]: #ch-dag-entries ::: {.note} -One of the **greatest strengths** of **nvf** is the ability to order -configuration snippets precisely using the [DAG system]. DAGs -are a very powerful mechanism that allows specifying positions -of individual sections of configuration as needed. We provide helper functions +One of the greatest strengths of nvf is the ability to order +snippets of configuration via the DAG system. It will allow specifying positions +of individual sections of configuration as needed. nvf provides helper functions in the extended library, usually under `inputs.nvf.lib.nvim.dag` that you may use. -Please refer to the [DAG section] in the nvf manual +Please refer to the [DAG section](#ch-dag-entries) in the nvf manual to find out more about the DAG system. ::: + diff --git a/docs/manual/configuring/custom-plugins/lazy-method.md b/docs/manual/configuring/custom-plugins/lazy-method.md index c16966b8..ae766535 100644 --- a/docs/manual/configuring/custom-plugins/lazy-method.md +++ b/docs/manual/configuring/custom-plugins/lazy-method.md @@ -1,8 +1,7 @@ # Lazy Method {#sec-lazy-method} -As of version **0.7**, an API is exposed to allow configuring lazy-loaded -plugins via `lz.n` and `lzn-auto-require`. Below is a comprehensive example of -how it may be loaded to lazy-load an arbitrary plugin. +As of version **0.7**, we exposed an API for configuring lazy-loaded plugins via +`lz.n` and `lzn-auto-require`. ```nix { @@ -42,8 +41,7 @@ how it may be loaded to lazy-load an arbitrary plugin. ## LazyFile event {#sec-lazyfile-event} -**nvf** re-implements `LazyFile` as a familiar user event to load a plugin when -a file is opened: +You can use the `LazyFile` user event to load a plugin when a file is opened: ```nix { @@ -57,6 +55,5 @@ a file is opened: } ``` -You can consider the `LazyFile` event as an alias to the combination of -`"BufReadPost"`, `"BufNewFile"` and `"BufWritePre"`, i.e., a list containing all -three of those events: `["BufReadPost" "BufNewFile" "BufWritePre"]` +You can consider `LazyFile` as an alias to +`["BufReadPost" "BufNewFile" "BufWritePre"]` diff --git a/docs/manual/configuring/custom-plugins/legacy-method.md b/docs/manual/configuring/custom-plugins/legacy-method.md index 6c399aaf..b2bddf43 100644 --- a/docs/manual/configuring/custom-plugins/legacy-method.md +++ b/docs/manual/configuring/custom-plugins/legacy-method.md @@ -1,31 +1,26 @@ # Legacy Method {#sec-legacy-method} -Prior to version **0.5**, the method of adding new plugins was adding the plugin -package to [](#opt-vim.startPlugins) and adding its configuration as a DAG under -one of `vim.configRC` or [](#opt-vim.luaConfigRC). While `configRC` has been -deprecated, users who have not yet updated to 0.5 or those who prefer a more -hands-on approach may choose to use the old method where the load order of the -plugins is explicitly determined by DAGs without internal abstractions. +Prior to version v0.5, the method of adding new plugins was adding the plugin +package to `vim.startPlugins` and add its configuration as a DAG under one of +`vim.configRC` or `vim.luaConfigRC`. Users who have not yet updated to 0.5, or +prefer a more hands-on approach may use the old method where the load order of +the plugins is determined by DAGs. -## Adding New Plugins {#sec-adding-new-plugins} +## Adding plugins {#sec-adding-plugins} -To add a plugin not available in **nvf** as a module to your configuration using -the legacy method, you must add it to [](#opt-vim.startPlugins) in order to make -it available to Neovim at runtime. +To add a plugin not available in nvf as a module to your configuration, you may +add it to [](#opt-vim.startPlugins) in order to make it available to Neovim at +runtime. ```nix {pkgs, ...}: { # Add a Neovim plugin from Nixpkgs to the runtime. - # This does not need to come explicitly from packages. 'vim.startPlugins' - # takes a list of *string* (to load internal plugins) or *package* to load - # a Neovim package from any source. vim.startPlugins = [pkgs.vimPlugins.aerial-nvim]; } ``` -Once the package is available in Neovim's runtime, you may use the `luaConfigRC` -option to provide configuration as a DAG using the **nvf** extended library in -order to configure the added plugin, +And to configure the added plugin, you can use the `luaConfigRC` option to +provide configuration as a DAG using the **nvf** extended library. ```nix {inputs, ...}: let @@ -34,8 +29,6 @@ order to configure the added plugin, # to specialArgs, the 'inputs' prefix may be omitted. inherit (inputs.nvf.lib.nvim.dag) entryAnywhere; in { - # luaConfigRC takes Lua configuration verbatim and inserts it at an arbitrary - # position by default or if 'entryAnywhere' is used. vim.luaConfigRC.aerial-nvim= entryAnywhere '' require('aerial').setup { -- your configuration here diff --git a/docs/manual/configuring/custom-plugins/non-lazy-method.md b/docs/manual/configuring/custom-plugins/non-lazy-method.md index 24ef7688..351af2eb 100644 --- a/docs/manual/configuring/custom-plugins/non-lazy-method.md +++ b/docs/manual/configuring/custom-plugins/non-lazy-method.md @@ -1,15 +1,14 @@ # Non-lazy Method {#sec-non-lazy-method} -As of version **0.5**, we have a more extensive API for configuring plugins that -should be preferred over the legacy method. This API is available as -[](#opt-vim.extraPlugins). Instead of using DAGs exposed by the library -_directly_, you may use the extra plugin module as follows: +As of version **0.5**, we have a more extensive API for configuring plugins, +under `vim.extraPlugins`. Instead of using DAGs exposed by the library, you may +use the extra plugin module as follows: ```nix -{pkgs, ...}: { - config.vim.extraPlugins = { +{ + config.vim.extraPlugins = with pkgs.vimPlugins; { aerial = { - package = pkgs.vimPlugins.aerial-nvim; + package = aerial-nvim; setup = '' require('aerial').setup { -- some lua configuration here @@ -18,12 +17,10 @@ _directly_, you may use the extra plugin module as follows: }; harpoon = { - package = pkgs.vimPlugins.harpoon; + package = harpoon; setup = "require('harpoon').setup {}"; after = ["aerial"]; }; }; } ``` - -This provides a level of abstraction over the DAG system for faster iteration. diff --git a/docs/manual/configuring/languages/lsp.md b/docs/manual/configuring/languages/lsp.md index 2ddc08b5..6d6ed5bc 100644 --- a/docs/manual/configuring/languages/lsp.md +++ b/docs/manual/configuring/languages/lsp.md @@ -1,22 +1,17 @@ # LSP Custom Packages/Command {#sec-languages-custom-lsp-packages} -One of the strengths of **nvf** is convenient aliases to quickly configure LSP -servers through the Nix module system. By default the LSP packages for relevant -language modules will be pulled into the closure. If this is not desirable, you -may provide **a custom LSP package** (e.g., a Bash script that calls a command) -or **a list of strings** to be interpreted as the command to launch the language -server. By using a list of strings, you can use this to skip automatic -installation of a language server, and instead use the one found in your `$PATH` -during runtime, for example: +In any of the `opt.languages..lsp.package` options you can provide +your own LSP package, or provide the command to launch the language server, as a +list of strings. You can use this to skip automatic installation of a language +server, and instead use the one found in your `$PATH` during runtime, for +example: ```nix vim.languages.java = { lsp = { enable = true; - - # This expects 'jdt-language-server' to be in your PATH or in - # 'vim.extraPackages.' There are no additional checks performed to see - # if the command provided is valid. + # this expects jdt-language-server to be in your PATH + # or in `vim.extraPackages` package = ["jdt-language-server" "-data" "~/.cache/jdtls/workspace"]; }; } diff --git a/docs/manual/default-configs.md b/docs/manual/default-configs.md new file mode 100644 index 00000000..96ffa81a --- /dev/null +++ b/docs/manual/default-configs.md @@ -0,0 +1,10 @@ +# Default Configs {#ch-default-configs} + +While you can configure **nvf** yourself using the builder, you can also use the +pre-built configs that are available. Here are a few default configurations you +can use. + +```{=include=} chapters +default-configs/maximal.md +default-configs/nix.md +``` diff --git a/docs/manual/default-configs/maximal.md b/docs/manual/default-configs/maximal.md new file mode 100644 index 00000000..e1f5273e --- /dev/null +++ b/docs/manual/default-configs/maximal.md @@ -0,0 +1,11 @@ +# Maximal {#sec-default-maximal} + +```bash +$ nix run github:notashelf/nvf#maximal -- test.nix +``` + +It is the same fully configured Neovim as with the [Nix](#sec-default-nix) +configuration, but with every supported language enabled. + +::: {.note} Running the maximal config will download _a lot_ of packages as it +is downloading language servers, formatters, and more. ::: diff --git a/docs/manual/default-configs/nix.md b/docs/manual/default-configs/nix.md new file mode 100644 index 00000000..5210ef39 --- /dev/null +++ b/docs/manual/default-configs/nix.md @@ -0,0 +1,9 @@ +# Nix {#sec-default-nix} + +```bash +$ nix run github:notashelf/nvf#nix test.nix +``` + +Enables all the of Neovim plugins, with language support for specifically Nix. +This lets you see what a fully configured neovim setup looks like without +downloading a whole bunch of language servers and associated tools. diff --git a/docs/manual/installation/custom-configuration.md b/docs/manual/installation/custom-configuration.md index 52f81573..940f35a3 100644 --- a/docs/manual/installation/custom-configuration.md +++ b/docs/manual/installation/custom-configuration.md @@ -39,7 +39,7 @@ An example flake that exposes your custom Neovim configuration might look like theme.enable = true; # Enable Treesitter - treesitter.enable = true; + tree-sitter.enable = true; # Other options will go here. Refer to the config # reference in Appendix B of the nvf manual. diff --git a/docs/manual/manual.md b/docs/manual/manual.md index 18932896..fd225766 100644 --- a/docs/manual/manual.md +++ b/docs/manual/manual.md @@ -8,6 +8,7 @@ try-it-out.md ``` ```{=include=} parts +default-configs.md installation.md configuring.md tips.md diff --git a/docs/manual/tips.md b/docs/manual/tips.md index 01bddc40..6e6dc9c2 100644 --- a/docs/manual/tips.md +++ b/docs/manual/tips.md @@ -1,14 +1,7 @@ # Helpful Tips {#ch-helpful-tips} -This section provides helpful tips that may be considered "unorthodox" or "too -advanced" for some users. We will cover basic debugging steps, offline -documentation, configuring **nvf** with pure Lua and using custom plugin sources -in **nvf** in this section. For general configuration tips, please see previous -chapters. - ```{=include=} chapters +tips/pure-lua-config.md tips/debugging-nvf.md tips/offline-docs.md -tips/pure-lua-config.md -tips/plugin-sources.md ``` diff --git a/docs/manual/tips/plugin-sources.md b/docs/manual/tips/plugin-sources.md deleted file mode 100644 index 7cf6a470..00000000 --- a/docs/manual/tips/plugin-sources.md +++ /dev/null @@ -1,131 +0,0 @@ -# Adding Plugins From Different Sources {#sec-plugin-sources} - -**nvf** attempts to avoid depending on Nixpkgs for Neovim plugins. For the most -part, this is accomplished by defining each plugin's source and building them -from source. - -[npins]: https://github.com/andir/npins - -To define plugin sources, we use [npins] and pin each plugin source using -builtin fetchers. You are not bound by this restriction. In your own -configuration, any kind of fetcher or plugin source is fine. - -## Nixpkgs & Friends {#ch-plugins-from-nixpkgs} - -`vim.startPlugins` and `vim.optPlugins` options take either a **string**, in -which case a plugin from nvf's internal plugins registry will be used, or a -**package**. If your plugin does not require any setup, or ordering for it s -configuration, then it is possible to add it to `vim.startPlugins` to load it on -startup. - -```nix -{pkgs, ...}: { - # Aerial does require some setup. In the case you pass a plugin that *does* - # require manual setup, then you must also call the setup function. - vim.startPlugins = [pkgs.vimPlugins.aerial-nvim]; -} -``` - -[`vim.extraPlugins`]: https://notashelf.github.io/nvf/options.html#opt-vim.extraPlugins - -This will fetch aerial.nvim from nixpkgs, and add it to Neovim's runtime path to -be loaded manually. Although for plugins that require manual setup, you are -encouraged to use [`vim.extraPlugins`]. - -```nix -{ - vim.extraPlugins = { - aerial = { - package = pkgs.vimPlugins.aerial-nvim; - setup = "require('aerial').setup {}"; - }; - }; -} -``` - -[custom plugins section]: https://notashelf.github.io/nvf/index.xhtml#ch-custom-plugins - -More details on the extraPlugins API is documented in the -[custom plugins section]. - -## Building Your Own Plugins {#ch-plugins-from-source} - -In the case a plugin is not available in Nixpkgs, or the Nixpkgs package is -outdated (or, more likely, broken) it is possible to build the plugins from -source using a tool, such as [npins]. You may also use your _flake inputs_ as -sources. - -Example using plugin inputs: - -```nix -{ - # In your flake.nix - inputs = { - aerial-nvim = { - url = "github:stevearc/aerial.nvim" - flake = false; - }; - }; - - # Make sure that 'inputs' is properly propagated into Nvf, for example, through - # specialArgs. - outputs = { ... }; -} -``` - -In the case, you may use the input directly for the plugin's source attribute in -`buildVimPlugin`. - -```nix -# Make sure that 'inputs' is properly propagated! It will be missing otherwise -# and the resulting errors might be too obscure. -{inputs, ...}: let - aerial-from-source = pkgs.vimUtils.buildVimPlugin { - name = "aerial-nvim"; - src = inputs.aerial-nvim; - }; -in { - vim.extraPlugins = { - aerial = { - package = aerial-from-source; - setup = "require('aerial').setup {}"; - }; - }; -} -``` - -Alternatively, if you do not want to keep track of the source using flake inputs -or npins, you may call `fetchFromGitHub` (or other fetchers) directly. An -example would look like this. - -```nix -regexplainer = buildVimPlugin { - name = "nvim-regexplainer"; - src = fetchFromGitHub { - owner = "bennypowers"; - repo = "nvim-regexplainer"; - rev = "4250c8f3c1307876384e70eeedde5149249e154f"; - hash = "sha256-15DLbKtOgUPq4DcF71jFYu31faDn52k3P1x47GL3+b0="; - }; - - # The 'buildVimPlugin' imposes some "require checks" on all plugins build from - # source. Failing tests, if they are not relevant, can be disabled using the - # 'nvimSkipModule' argument to the 'buildVimPlugin' function. - nvimSkipModule = [ - "regexplainer" - "regexplainer.buffers.init" - "regexplainer.buffers.popup" - "regexplainer.buffers.register" - "regexplainer.buffers.shared" - "regexplainer.buffers.split" - "regexplainer.component.descriptions" - "regexplainer.component.init" - "regexplainer.renderers.narrative.init" - "regexplainer.renderers.narrative.narrative" - "regexplainer.renderers.init" - "regexplainer.utils.defer" - "regexplainer.utils.init" - "regexplainer.utils.treesitter" - ]; -} -``` diff --git a/docs/manual/try-it-out.md b/docs/manual/try-it-out.md index 5f326b15..8244c2b7 100644 --- a/docs/manual/try-it-out.md +++ b/docs/manual/try-it-out.md @@ -26,12 +26,7 @@ $ nix run github:notashelf/nvf#nix $ nix run github:notashelf/nvf#maximal ``` -### Available Configurations {#sec-available-configs} - -::: {.info} - -The below configurations are provided for demonstration purposes, and are -**not** designed to be installed as is. You may +### Available Configs {#sec-available-configs} #### Nix {#sec-configs-nix} @@ -39,32 +34,15 @@ The below configurations are provided for demonstration purposes, and are a set of visual and functional plugins. By running `nix run .#`, which is the default package, you will build Neovim with this config. -```bash -$ nix run github:notashelf/nvf#nix test.nix -``` - -This command will start Neovim with some opinionated plugin configurations, and -is designed specifically for Nix. the `nix` configuration lets you see how a -fully configured Neovim setup _might_ look like without downloading too many -packages or shell utilities. - #### Maximal {#sec-configs-maximal} `Maximal` is the ultimate configuration that will enable support for more commonly used language as well as additional complementary plugins. Keep in mind, however, that this will pull a lot of dependencies. -```bash -$ nix run github:notashelf/nvf#maximal -- test.nix -``` +::: {.tip} -It uses the same configuration template with the [Nix](#sec-configs-nix) -configuration, but supports many more languages, and enables more utility, -companion or fun plugins. - -::: {.warning} - -Running the maximal config will download _a lot_ of packages as it is -downloading language servers, formatters, and more. +You are _strongly_ recommended to use the binary cache if you would like to try +the Maximal configuration. ::: diff --git a/docs/release-notes/rl-0.3.md b/docs/release-notes/rl-0.3.md index 089f01f7..87ae5648 100644 --- a/docs/release-notes/rl-0.3.md +++ b/docs/release-notes/rl-0.3.md @@ -50,8 +50,9 @@ soon. - A new section has been added for language support: `vim.languages.`. - - The options `enableLSP` [](#opt-vim.languages.enableTreesitter), etc. will - enable the respective section for all languages that have been enabled. + - The options [](#opt-vim.languages.enableLSP), + [](#opt-vim.languages.enableTreesitter), etc. will enable the respective + section for all languages that have been enabled. - All LSP languages have been moved here - `plantuml` and `markdown` have been moved here - A new section has been added for `html`. The old diff --git a/docs/release-notes/rl-0.5.md b/docs/release-notes/rl-0.5.md index 910c93d5..0ca02164 100644 --- a/docs/release-notes/rl-0.5.md +++ b/docs/release-notes/rl-0.5.md @@ -91,7 +91,7 @@ Release notes for release 0.5 - Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with `renamedOptionModule` -[poz](https://poz.pet): +[jacekpoz](https://jacekpoz.pl): - Fixed scrollOffset not being used diff --git a/docs/release-notes/rl-0.6.md b/docs/release-notes/rl-0.6.md index 309d6b16..1807a3e9 100644 --- a/docs/release-notes/rl-0.6.md +++ b/docs/release-notes/rl-0.6.md @@ -69,7 +69,7 @@ vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = - Added rose-pine theme. -[poz](https://poz.pet): +[jacekpoz](https://jacekpoz.pl): - Added `vim.autocomplete.alwaysComplete`. Allows users to have the autocomplete window popup only when manually activated. diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md index ed9d2d81..d62e3619 100644 --- a/docs/release-notes/rl-0.7.md +++ b/docs/release-notes/rl-0.7.md @@ -162,7 +162,7 @@ The changes are, in no particular order: - Add [lz.n] support and lazy-load some builtin plugins. - Add simpler helper functions for making keymaps -[poz](https://poz.pet): +[jacekpoz](https://jacekpoz.pl): [ocaml-lsp]: https://github.com/ocaml/ocaml-lsp [new-file-template.nvim]: https://github.com/otavioschwanck/new-file-template.nvim diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index d9007a12..edf90e62 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -19,11 +19,6 @@ unavailable as they have been refactored out of the main none-ls repository upstream. -- `vim.useSystemClipboard` has been deprecated as a part of removing most - top-level convenience options, and should instead be configured in the new - module interface. You may set [](#opt-vim.clipboard.registers) appropriately - to configure Neovim to use the system clipboard. - [NotAShelf](https://github.com/notashelf): [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim @@ -96,11 +91,6 @@ options for `vim.diagnostic.config()` can now be customized through the [](#opt-vim.diagnostics.config) in nvf. -- Add `vim.clipboard` module for easily managing Neovim clipboard providers and - relevant packages in a simple UI. - - This deprecates `vim.useSystemClipboard` as well, see breaking changes - section above for migration options. - [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim @@ -119,7 +109,6 @@ - Add tsx support in conform and lint - Moved code setting `additionalRuntimePaths` and `enableLuaLoader` out of `luaConfigPre`'s default to prevent being overridden -- Use conform over custom autocmds for LSP format on save [diniamo](https://github.com/diniamo): @@ -289,7 +278,6 @@ [BANanaD3V](https://github.com/BANanaD3V): - `alpha` is now configured with nix. -- Add `markview-nvim` markdown renderer. [viicslen](https://github.com/viicslen): @@ -308,7 +296,6 @@ `vim.diagnostics.nvim-lint.linters.*.required_files`. - Add global function `nvf_lint` under `vim.diagnostics.nvim-lint.lint_function`. -- Deprecate `vim.scrollOffset` in favor of `vim.options.scrolloff`. [Sc3l3t0n](https://github.com/Sc3l3t0n): @@ -325,8 +312,6 @@ - Fix fzf-lua having a hard dependency on fzf. - Enable inlay hints support - `config.vim.lsp.inlayHints`. - Add `neo-tree`, `snacks.picker` extensions to `lualine`. -- Add support for `vim.lsp.formatOnSave` and - `vim.lsp.mappings.toggleFormatOnSave` [tebuevd](https://github.com/tebuevd): @@ -340,15 +325,11 @@ [flash.nvim]: https://github.com/folke/flash.nvim [gitlinker.nvim]: https://github.com/linrongbin16/gitlinker.nvim -[nvim-treesitter-textobjects]: https://github.com/nvim-treesitter/nvim-treesitter-textobjects - Fix oil config referencing snacks - Add [flash.nvim] plugin to `vim.utility.motion.flash-nvim` - Fix default telescope ignore list entry for '.git/' to properly match - Add [gitlinker.nvim] plugin to `vim.git.gitlinker-nvim` -- Add [nvim-treesitter-textobjects] plugin to `vim.treesitter.textobjects` -- Default to disabling Conform for Rust if rust-analyzer is used - - To force using Conform, set `languages.rust.format.enable = true`. [rrvsh](https://github.com/rrvsh): @@ -370,60 +351,4 @@ [aionoid](https://github.com/aionoid): -[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`. - -[poz](https://poz.pet): - -- Fix gitsigns null-ls issue. - -[Haskex](https://github.com/haskex): - -[Hardtime.nvim]: https://github.com/m4xshen/hardtime.nvim - -- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and - `setupOpts` options - -[taylrfnt](https://github.com/taylrfnt): - -[nvim-tree](https://github.com/nvim-tree/nvim-tree.lua): - -- Add missing `right_align` option for existing `renderer.icons` options. -- Add missing `render.icons` options (`hidden_placement`, - `diagnostics_placement`, and `bookmarks_placement`). - -[cramt](https://github.com/cramt): - -- Add `rubylsp` option in `vim.languages.ruby.lsp.server` to use shopify's - ruby-lsp language server - -[Haskex](https://github.com/haskex): - -[solarized-osaka.nvim]: https://github.com/craftzdog/solarized-osaka.nvim - -- Add [solarized-osaka.nvim] theme - -[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim - -- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and - `setupOpts` -- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix - -[anil9](https://github.com/anil9): - -[clojure-lsp]: https://github.com/clojure-lsp/clojure-lsp -[conjure]: https://github.com/Olical/conjure - -- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] -- Add code evaluation environment [conjure] under `vim.repl.conjure` - -[CallumGilly](https://github.com/CallumGilly): - -- Add missing `transparent` option for existing - [onedark.nvim](https://github.com/navarasu/onedark.nvim) theme. - -[theutz](https://github.com/theutz): - -- Added "auto" flavour for catppuccin theme \ No newline at end of file diff --git a/flake.lock b/flake.lock index 5e02cd43..65243865 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1748278309, - "narHash": "sha256-JCeiMrUhFku44kfKsgiD9Ibzho4MblBD2WmOQYsQyTY=", + "lastModified": 1745705214, + "narHash": "sha256-XGfaHbFI4vvDuaoVO3IFYZKezXIO8rhUaMCGcjY71Ac=", "owner": "Gerg-L", "repo": "mnw", - "rev": "486a17ba1279ab2357cae8ff66b309db622f8831", + "rev": "c1f4587db4c53dcefa432c46c7a899a116d8e924", "type": "github" }, "original": { @@ -77,11 +77,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748217807, - "narHash": "sha256-P3u2PXxMlo49PutQLnk2PhI/imC69hFl1yY4aT5Nax8=", + "lastModified": 1745377448, + "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3108eaa516ae22c2360928589731a4f1581526ef", + "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e958f91c..6e716581 100644 --- a/flake.nix +++ b/flake.nix @@ -18,7 +18,10 @@ systems = import inputs.systems; imports = [ ./flake/templates + ./flake/apps.nix + ./flake/legacyPackages.nix + ./flake/overlays.nix ./flake/packages.nix ./flake/develop.nix ]; diff --git a/flake/avante-nvim/default.nix b/flake/avante-nvim/default.nix deleted file mode 100644 index 513a3117..00000000 --- a/flake/avante-nvim/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - nix-update-script, - openssl, - pkg-config, - rustPlatform, - stdenv, - vimPlugins, - vimUtils, - makeWrapper, - pkgs, - version, - src, - pins, -}: let - inherit version src; - avante-nvim-lib = rustPlatform.buildRustPackage { - pname = "avante-nvim-lib"; - inherit version src; - - useFetchCargoVendor = true; - cargoHash = "sha256-pmnMoNdaIR0i+4kwW3cf01vDQo39QakTCEG9AXA86ck="; - - nativeBuildInputs = [ - pkg-config - makeWrapper - pkgs.perl - ]; - - buildInputs = [ - openssl - ]; - - buildFeatures = ["luajit"]; - - checkFlags = [ - # Disabled because they access the network. - "--skip=test_hf" - "--skip=test_public_url" - "--skip=test_roundtrip" - "--skip=test_fetch_md" - ]; - }; -in - vimUtils.buildVimPlugin { - pname = "avante-nvim"; - inherit version src; - - dependencies = - [vimPlugins.nvim-treesitter] - ++ (builtins.map (name: let - pin = pins.${name}; - in - pkgs.fetchFromGitHub { - inherit (pin.repository) owner repo; - rev = pin.revision; - sha256 = pin.hash; - }) [ - "dressing-nvim" - "plenary-nvim" - "nui-nvim" - ]); - - postInstall = let - ext = stdenv.hostPlatform.extensions.sharedLibrary; - in '' - mkdir -p $out/build - ln -s ${avante-nvim-lib}/lib/libavante_repo_map${ext} $out/build/avante_repo_map${ext} - ln -s ${avante-nvim-lib}/lib/libavante_templates${ext} $out/build/avante_templates${ext} - ln -s ${avante-nvim-lib}/lib/libavante_tokenizers${ext} $out/build/avante_tokenizers${ext} - ln -s ${avante-nvim-lib}/lib/libavante_html2md${ext} $out/build/avante_html2md${ext} - ''; - - nvimSkipModules = [ - # Requires setup with corresponding provider - "avante.providers.azure" - "avante.providers.copilot" - "avante.providers.vertex_claude" - "avante.providers.ollama" - ]; - } diff --git a/flake/blink/default.nix b/flake/blink/default.nix deleted file mode 100644 index ef1498d8..00000000 --- a/flake/blink/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - rustPlatform, - fetchFromGitHub, - writeShellScriptBin, -}: -rustPlatform.buildRustPackage (finalAttrs: { - pname = "blink-cmp"; - version = "1.2.0"; - - src = fetchFromGitHub { - owner = "Saghen"; - repo = "blink.cmp"; - tag = "v${finalAttrs.version}"; - hash = "sha256-bKe8SSg1HPWE7b4iRQJwiOVCrvvgttuHCOIa4U/38AY="; - }; - - forceShare = [ - "man" - "info" - ]; - - postInstall = '' - cp -r {lua,plugin} "$out" - mkdir -p "$out/doc" - cp 'doc/'*'.txt' "$out/doc/" - mkdir -p "$out/target" - mv "$out/lib" "$out/target/release" - ''; - - cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; - useFetchCargoVendor = true; - - nativeBuildInputs = [ - (writeShellScriptBin "git" "exit 1") - ]; - - env.RUSTC_BOOTSTRAP = true; -}) diff --git a/flake/develop.nix b/flake/develop.nix index d92b8182..71c13688 100644 --- a/flake/develop.nix +++ b/flake/develop.nix @@ -3,14 +3,13 @@ pkgs, config, self', - inputs', ... }: { devShells = { default = self'.devShells.lsp; nvim-nix = pkgs.mkShellNoCC {packages = [config.packages.nix];}; lsp = pkgs.mkShellNoCC { - packages = with pkgs; [inputs'.nil.packages.default statix deadnix alejandra npins]; + packages = with pkgs; [nil statix deadnix alejandra npins]; }; }; diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix new file mode 100644 index 00000000..33aee0e3 --- /dev/null +++ b/flake/legacyPackages.nix @@ -0,0 +1,35 @@ +{ + inputs, + self, + ... +}: { + perSystem = { + system, + inputs', + ... + }: { + legacyPackages = import inputs.nixpkgs { + inherit system; + overlays = [ + inputs.self.overlays.default + + (final: prev: { + # Build nil from source to get most recent + # features as they are added. + nil = inputs'.nil.packages.default; + blink-cmp = let + pin = self.pins.blink-cmp; + in + final.callPackage ./legacyPackages/blink-cmp.nix { + inherit (pin) version; + src = prev.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }; + }; + }) + ]; + }; + }; +} diff --git a/flake/legacyPackages/blink-cmp.nix b/flake/legacyPackages/blink-cmp.nix new file mode 100644 index 00000000..435cb290 --- /dev/null +++ b/flake/legacyPackages/blink-cmp.nix @@ -0,0 +1,37 @@ +{ + stdenv, + rustPlatform, + vimUtils, + gitMinimal, + src, + version, +}: let + blink-fuzzy-lib = rustPlatform.buildRustPackage { + pname = "blink-fuzzy-lib"; + inherit version src; + + # TODO: remove this if plugin stops using nightly rust + env.RUSTC_BOOTSTRAP = true; + + useFetchCargoVendor = true; + cargoHash = "sha256-MWElqh7ENJ6CbLOnvz0DsP5YYu+e+y12GSUOfW1IKGU="; + + nativeBuildInputs = [gitMinimal]; + }; +in + vimUtils.buildVimPlugin { + pname = "blink-cmp"; + inherit version src; + + # blink references a repro.lua which is placed outside the lua/ directory + doCheck = false; + preInstall = let + ext = stdenv.hostPlatform.extensions.sharedLibrary; + in '' + mkdir -p target/release + ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy${ext} target/release/libblink_cmp_fuzzy${ext} + ''; + + # Module for reproducing issues + nvimSkipModules = ["repro"]; + } diff --git a/flake/overlays.nix b/flake/overlays.nix new file mode 100644 index 00000000..5d0ff6e8 --- /dev/null +++ b/flake/overlays.nix @@ -0,0 +1,19 @@ +{ + pkgs, + lib, + ... +}: let + inherit (lib.nvim) neovimConfiguration; + + buildPkg = pkgs: modules: (neovimConfiguration {inherit pkgs modules;}).neovim; + + nixConfig = import ../configuration.nix false; + maximalConfig = import ../configuration.nix true; +in { + flake.overlays.default = final: _prev: { + inherit neovimConfiguration; + neovim-nix = buildPkg final [nixConfig]; + neovim-maximal = buildPkg final [maximalConfig]; + devPkg = buildPkg pkgs [nixConfig {config.vim.languages.html.enable = pkgs.lib.mkForce true;}]; + }; +} diff --git a/flake/packages.nix b/flake/packages.nix index 5161b34f..7abe5ec0 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -1,8 +1,4 @@ -{ - inputs, - self, - ... -} @ args: { +{inputs, ...}: { perSystem = { config, pkgs, @@ -10,27 +6,8 @@ ... }: let docs = import ../docs {inherit pkgs inputs lib;}; - buildPkg = maximal: - (args.config.flake.lib.nvim.neovimConfiguration { - inherit pkgs; - modules = [(import ../configuration.nix maximal)]; - }).neovim; in { packages = { - blink-cmp = pkgs.callPackage ./blink {}; - avante-nvim = let - pin = self.pins.avante-nvim; - in - pkgs.callPackage ./avante-nvim { - version = pin.branch; - src = pkgs.fetchFromGitHub { - inherit (pin.repository) owner repo; - rev = pin.revision; - sha256 = pin.hash; - }; - pins = self.pins; - }; - inherit (docs.manual) htmlOpenTool; # Documentation docs = docs.manual.html; @@ -84,9 +61,9 @@ ''; # Exposed neovim configurations - nix = buildPkg false; - maximal = buildPkg true; - default = config.packages.nix; + nix = config.legacyPackages.neovim-nix; + maximal = config.legacyPackages.neovim-maximal; + default = config.legacyPackages.neovim-nix; }; }; } diff --git a/flake/templates/standalone/flake.nix b/flake/templates/standalone/flake.nix index 1057a6d5..79617260 100644 --- a/flake/templates/standalone/flake.nix +++ b/flake/templates/standalone/flake.nix @@ -26,22 +26,12 @@ config.vim = { theme.enable = true; - lsp = { - # Enable LSP functionality globally. This is required for modules found - # in `vim.languages` to enable relevant LSPs. - enable = true; - - # You may define your own LSP configurations using `vim.lsp.servers` in - # nvf without ever needing lspconfig to do it. This will use the native - # API provided by Neovim > 0.11 - servers = {}; - }; - # Language support and automatic configuration of companion plugins. # Note that enabling, e.g., languages..diagnostics will automatically # enable top-level options such as enableLSP or enableExtraDiagnostics as # they are needed. languages = { + enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; diff --git a/lib/default.nix b/lib/default.nix index c4388e82..952278a8 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -4,7 +4,7 @@ lib, ... }: { - types = import ./types {inherit lib self;}; + types = import ./types {inherit lib;}; config = import ./config.nix {inherit lib;}; binds = import ./binds.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;}; diff --git a/lib/languages.nix b/lib/languages.nix index c4074144..a202ff14 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -1,11 +1,10 @@ +# From home-manager: https://github.com/nix-community/home-manager/blob/master/modules/lib/booleans.nix {lib}: let inherit (builtins) isString getAttr; inherit (lib.options) mkOption; - inherit (lib.types) listOf bool str submodule attrsOf anything either nullOr; + inherit (lib.types) bool; inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) luaInline; in { - # TODO: remove diagnosticsToLua = { lang, config, @@ -33,48 +32,4 @@ in { type = bool; description = "Turn on ${desc} for enabled languages by default"; }; - - lspOptions = submodule { - freeformType = attrsOf anything; - options = { - enable = mkOption { - type = bool; - default = true; - description = "Whether to enable this LSP server."; - }; - - capabilities = mkOption { - type = nullOr (either luaInline (attrsOf anything)); - default = null; - description = "LSP capabilitiess to pass to lspconfig"; - }; - - on_attach = mkOption { - type = nullOr luaInline; - default = null; - description = "Function to execute when an LSP server attaches to a buffer"; - }; - - filetypes = mkOption { - type = nullOr (listOf str); - default = null; - description = "Filetypes to auto-attach LSP in"; - }; - - cmd = mkOption { - type = nullOr (listOf str); - default = null; - description = "Command used to start the LSP server"; - }; - - root_markers = mkOption { - type = nullOr (listOf str); - default = null; - description = '' - "root markers" used to determine the root directory of the workspace, and - the filetypes associated with this LSP server. - ''; - }; - }; - }; } diff --git a/lib/types/default.nix b/lib/types/default.nix index 044a8221..c6239227 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -1,9 +1,6 @@ -{ - lib, - self, -}: let +{lib}: let typesDag = import ./dag.nix {inherit lib;}; - typesPlugin = import ./plugins.nix {inherit lib self;}; + typesPlugin = import ./plugins.nix {inherit lib;}; typesLanguage = import ./languages.nix {inherit lib;}; customTypes = import ./custom.nix {inherit lib;}; in { diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index 4be39289..fc2bd083 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -1,7 +1,4 @@ -{ - lib, - self, -}: let +{lib}: let inherit (lib.options) mkOption; inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair; inherit (lib.strings) hasPrefix removePrefix; @@ -15,7 +12,7 @@ mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs); # Get the names of all npins - pluginInputNames = ["blink-cmp"] ++ attrNames self.pins; + pluginInputNames = attrNames (lib.importJSON ../../npins/sources.json).pins; # You can either use the name of the plugin or a package. pluginType = nullOr ( diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 0a5733ab..86497130 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -18,7 +18,7 @@ showSignColumn = "signcolumn"; # 2025-02-07 - scrollOffset = "scrolloff"; + scrollOff = "scrolloff"; }; in { imports = concatLists [ @@ -111,15 +111,6 @@ in { under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or 'vim.luaConfigRC' to configure LSP lines for Neovim through its own diagnostics API. '') - - # 2025-05-04 - (mkRemovedOptionModule ["vim" "useSystemClipboard"] '' - Clipboard behaviour should now be controlled through the new, more fine-grained module - interface found in 'vim.clipboard'. To replicate previous behaviour, you may either - add 'vim.opt.clipboard:append("unnamedplus")' in luaConfigRC, or preferably set it - in 'vim.clipboard.registers'. Please see the documentation for the new module for more - details, or open an issue if you are confused. - '') ] # Migrated via batchRenameOptions. Further batch renames must be below this line. diff --git a/modules/modules.nix b/modules/modules.nix index 97bfa211..c7e198dd 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -33,7 +33,6 @@ "minimap" "notes" "projects" - "repl" "rich-presence" "runner" "session" diff --git a/modules/neovim/init/basic.nix b/modules/neovim/init/basic.nix index 2f3934ae..47bfe500 100644 --- a/modules/neovim/init/basic.nix +++ b/modules/neovim/init/basic.nix @@ -6,10 +6,11 @@ inherit (lib.options) mkOption mkEnableOption literalMD; inherit (lib.strings) optionalString; inherit (lib.attrsets) optionalAttrs; - inherit (lib.types) enum bool str either; + inherit (lib.types) enum bool str int either; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.binds) pushDownDefault; + inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.types) luaInline; cfg = config.vim; @@ -21,12 +22,24 @@ in { description = "Hide search highlight so it doesn't stay highlighted"; }; + scrollOffset = mkOption { + type = int; + default = 8; + description = "Start scrolling this number of lines from the top or bottom of the page."; + }; + syntaxHighlighting = mkOption { type = bool; default = !config.vim.treesitter.highlight.enable; description = "Enable syntax highlighting"; }; + useSystemClipboard = mkOption { + type = bool; + default = false; + description = "Make use of the clipboard for default yank and paste operations. Don't use * and +"; + }; + lineNumberMode = mkOption { type = enum ["relative" "number" "relNumber" "none"]; default = "relNumber"; @@ -131,6 +144,10 @@ in { # to pre-set Neovim options. Fear not, though as the Lua DAG is still as powerful as it # could be. luaConfigRC.basic = entryAfter ["globalsScript"] '' + ${optionalString cfg.useSystemClipboard '' + vim.opt.clipboard:append("unnamedplus") + ''} + ${optionalString cfg.syntaxHighlighting '' vim.cmd("syntax on") ''} diff --git a/modules/neovim/init/clipboard.nix b/modules/neovim/init/clipboard.nix deleted file mode 100644 index 011effaf..00000000 --- a/modules/neovim/init/clipboard.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.options) mkOption mkEnableOption mkPackageOption; - inherit (lib.types) nullOr either str listOf submodule; - inherit (lib.attrsets) mapAttrs mapAttrsToList filterAttrs; - cfg = config.vim.clipboard; -in { - options = { - vim = { - clipboard = { - enable = mkEnableOption '' - clipboard management for Neovim. Users may still choose to manage their - clipboard through [](#opt-vim.options) should they wish to avoid using - this module. - ''; - - registers = mkOption { - type = either str (listOf str); - default = ""; - example = "unnamedplus"; - description = '' - The register to be used by the Neovim clipboard. Recognized types are: - - * unnamed: Vim will use the clipboard register `"*"` for all yank, delete, - change and put operations which would normally go to the unnamed register. - - * unnamedplus: A variant of the "unnamed" flag which uses the clipboard register - `"+"` ({command}`:h quoteplus`) instead of register `"*"` for all yank, delete, - change and put operations which would normally go to the unnamed register. - - When `unnamed` and `unnamedplus` is included simultaneously yank and delete - operations (but not put) will additionally copy the text into register `"*"`. - - Please see {command}`:h clipboard` for more details. - - ''; - }; - - providers = mkOption { - type = submodule { - options = let - clipboards = { - # name = "package name"; - wl-copy = "wl-clipboard"; - xclip = "xclip"; - xsel = "xsel"; - }; - in - mapAttrs (name: pname: { - enable = mkEnableOption name; - package = mkPackageOption pkgs pname {nullable = true;}; - }) - clipboards; - }; - default = {}; - description = '' - Clipboard providers for which packages will be added to nvf's - {option}`extraPackages`. The `package` field may be set to `null` - if related packages are already found in system packages to - potentially reduce closure sizes. - ''; - }; - }; - }; - }; - - config = mkIf cfg.enable { - vim = { - options.clipboard = cfg.registers; - extraPackages = mapAttrsToList (_: v: v.package) ( - filterAttrs (_: v: v.enable && v.package != null) cfg.providers - ); - }; - }; -} diff --git a/modules/neovim/init/default.nix b/modules/neovim/init/default.nix index 30a481a1..0e7a4c6b 100644 --- a/modules/neovim/init/default.nix +++ b/modules/neovim/init/default.nix @@ -2,11 +2,9 @@ imports = [ ./autocmds.nix ./basic.nix - ./clipboard.nix ./debug.nix ./diagnostics.nix ./highlight.nix - ./lsp.nix ./spellcheck.nix ]; } diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix deleted file mode 100644 index b89c3fde..00000000 --- a/modules/neovim/init/lsp.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (builtins) filter; - inherit (lib.modules) mkIf mkMerge mkDefault; - inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) attrsOf; - inherit (lib.strings) concatLines; - inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; - inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.languages) lspOptions; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; - - cfg = config.vim.lsp; - - lspConfigurations = - mapAttrsToList ( - name: value: '' - vim.lsp.config["${name}"] = ${toLuaObject value} - '' - ) - cfg.servers; - - enabledServers = filterAttrs (_: u: u.enable) cfg.servers; -in { - options = { - vim.lsp = { - enable = mkEnableOption '' - global LSP functionality for Neovim. - - This option controls whether to enable LSP functionality within modules under - {option}`vim.languages`. You do not need to set this to `true` for language - servers defined in {option}`vim.lsp.servers` to take effect, since they are - enabled automatically. - ''; - - servers = mkOption { - type = attrsOf lspOptions; - default = {}; - example = '' - { - "*" = { - root_markers = [".git"]; - capabilities = { - textDocument = { - semanticTokens = { - multilineTokenSupport = true; - }; - }; - }; - }; - - "clangd" = { - filetypes = ["c"]; - }; - } - ''; - description = '' - LSP configurations that will be managed using `vim.lsp.config()` and related - utilities added in Neovim 0.11. LSPs defined here will be added to the - resulting {file}`init.lua` using `vim.lsp.config` and enabled through - `vim.lsp.enable()` API from Neovim below the configuration table. - - You may review the generated configuration by running {command}`nvf-print-config` - in a shell. Please see {command}`:help lsp-config` for more details - on the underlying API. - ''; - }; - }; - }; - - config = mkMerge [ - { - vim.lsp.servers."*" = { - capabilities = mkDefault (mkLuaInline "capabilities"); - on_attach = mkDefault (mkLuaInline "default_on_attach"); - }; - } - - (mkIf (cfg.servers != {}) { - vim.luaConfigRC.lsp-servers = entryAnywhere '' - -- Individual LSP configurations managed by nvf. - ${concatLines lspConfigurations} - - -- Enable configured LSPs explicitly - vim.lsp.enable(${toLuaObject (filter (name: name != "*") (attrNames enabledServers))}) - ''; - }) - ]; -} diff --git a/modules/plugins/assistant/avante/avante-nvim.nix b/modules/plugins/assistant/avante/avante-nvim.nix deleted file mode 100644 index 7d52fab8..00000000 --- a/modules/plugins/assistant/avante/avante-nvim.nix +++ /dev/null @@ -1,325 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkOption mkEnableOption literalMD; - inherit (lib.types) int str enum nullOr attrs bool; - inherit (lib.nvim.types) mkPluginSetupOption; -in { - options.vim.assistant = { - avante-nvim = { - enable = mkEnableOption "complementary Neovim plugin for avante.nvim"; - setupOpts = mkPluginSetupOption "avante-nvim" { - provider = mkOption { - type = nullOr str; - default = null; - description = "The provider used in Aider mode or in the planning phase of Cursor Planning Mode."; - }; - - vendors = mkOption { - type = nullOr attrs; - default = null; - description = "Define Your Custom providers."; - example = literalMD '' - ```nix - ollama = { - __inherited_from = "openai"; - api_key_name = ""; - endpoint = "http://127.0.0.1:11434/v1"; - model = "qwen2.5u-coder:7b"; - max_tokens = 4096; - disable_tools = true; - }; - ollama_ds = { - __inherited_from = "openai"; - api_key_name = ""; - endpoint = "http://127.0.0.1:11434/v1"; - model = "deepseek-r1u:7b"; - max_tokens = 4096; - disable_tools = true; - }; - ``` - ''; - }; - - auto_suggestions_provider = mkOption { - type = str; - default = "claude"; - description = '' - Since auto-suggestions are a high-frequency operation and therefore expensive, - currently designating it as `copilot` provider is dangerous because: - https://github.com/yetone/avante.nvim/issues/1048 - Of course, you can reduce the request frequency by increasing `suggestion.debounce`. - ''; - }; - - cursor_applying_provider = mkOption { - type = nullOr str; - default = null; - description = '' - The provider used in the applying phase of Cursor Planning Mode, defaults to `nil`, - Config.provider will be used as the provider for the applying phase when `nil`. - ''; - }; - - dual_boost = { - enabled = mkEnableOption "dual_boost mode."; - - first_provider = mkOption { - type = str; - default = "openai"; - description = "The first provider to generate response."; - }; - - second_provider = mkOption { - type = str; - default = "claude"; - description = "The second provider to generate response."; - }; - - prompt = mkOption { - type = str; - default = '' - Based on the two reference outputs below, generate a response that incorporates - elements from both but reflects your own judgment and unique perspective. - Do not provide any explanation, just give the response directly. Reference Output 1: - [{{provider1_output}}], Reference Output 2: [{{provider2_output}}''; - description = "The prompt to generate response based on the two reference outputs."; - }; - - timeout = mkOption { - type = int; - default = 60000; - description = "Timeout in milliseconds."; - }; - }; - - behaviour = { - auto_suggestions = - mkEnableOption "auto suggestions."; - - auto_set_highlight_group = - mkEnableOption "automatically set the highlight group for the current line." - // { - default = true; - }; - - auto_set_keymaps = - mkEnableOption "automatically set the keymap for the current line." - // { - default = true; - }; - - auto_apply_diff_after_generation = - mkEnableOption "automatically apply diff after LLM response."; - - support_paste_from_clipboard = mkEnableOption '' - pasting image from clipboard. - This will be determined automatically based whether img-clip is available or not. - ''; - - minimize_diff = - mkEnableOption "remove unchanged lines when applying a code block." - // { - default = true; - }; - - enable_token_counting = - mkEnableOption "token counting." - // { - default = true; - }; - - enable_cursor_planning_mode = - mkEnableOption "Cursor Planning Mode."; - - enable_claude_text_editor_tool_mode = - mkEnableOption "Claude Text Editor Tool Mode."; - }; - - mappings = { - diff = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for diff."; - }; - - suggestion = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for suggestion actions."; - }; - - jump = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for jump actions."; - }; - - submit = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for submit actions."; - }; - - cancel = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for cancel actions."; - }; - - sidebar = mkOption { - type = nullOr attrs; - default = null; - description = "Define or override the default keymaps for sidebar actions."; - }; - }; - - hints.enabled = - mkEnableOption "" - // { - default = true; - description = '' - Whether to enable hints. - ''; - }; - - windows = { - position = mkOption { - type = enum ["right" "left" "top" "bottom"]; - default = "right"; - description = "The position of the sidebar."; - }; - - wrap = - mkEnableOption "" - // { - default = true; - description = '' - similar to vim.o.wrap. - ''; - }; - - width = mkOption { - type = int; - default = 30; - description = "Default % based on available width."; - }; - - sidebar_header = { - enabled = mkOption { - type = bool; - default = true; - description = "enable/disable the header."; - }; - - align = mkOption { - type = enum ["right" "center" "left"]; - default = "center"; - description = "Position of the title."; - }; - - rounded = mkOption { - type = bool; - default = true; - description = "Enable rounded sidebar header"; - }; - }; - - input = { - prefix = mkOption { - type = str; - default = "> "; - description = "The prefix used on the user input."; - }; - - height = mkOption { - type = int; - default = 8; - description = '' - Height of the input window in vertical layout. - ''; - }; - }; - - edit = { - border = mkOption { - type = str; - default = "rounded"; - description = "The border type on the edit window."; - }; - - start_insert = mkOption { - type = bool; - default = true; - description = '' - Start insert mode when opening the edit window. - ''; - }; - }; - - ask = { - floating = mkOption { - type = bool; - default = false; - description = '' - Open the 'AvanteAsk' prompt in a floating window. - ''; - }; - - start_insert = mkOption { - type = bool; - default = true; - description = '' - Start insert mode when opening the ask window. - ''; - }; - - border = mkOption { - type = str; - default = "rounded"; - description = "The border type on the ask window."; - }; - - focus_on_apply = mkOption { - type = enum ["ours" "theirs"]; - default = "ours"; - description = "Which diff to focus after applying."; - }; - }; - }; - - diff = { - autojump = - mkEnableOption "" - // { - default = true; - description = "Automatically jumps to the next change."; - }; - - override_timeoutlen = mkOption { - type = int; - default = 500; - example = -1; - description = '' - Override the 'timeoutlen' setting while hovering over a diff (see {command}`:help timeoutlen`). - Helps to avoid entering operator-pending mode with diff mappings starting with `c`. - Disable by setting to -1. - ''; - }; - }; - - suggestion = { - debounce = mkOption { - type = int; - default = 600; - description = "Suggestion debounce in milliseconds."; - }; - - throttle = mkOption { - type = int; - default = 600; - description = "Suggestion throttle in milliseconds."; - }; - }; - }; - }; - }; -} diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix deleted file mode 100644 index e140de89..00000000 --- a/modules/plugins/assistant/avante/config.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.lists) optionals; - - cfg = config.vim.assistant.avante-nvim; -in { - config = mkIf cfg.enable { - vim = { - startPlugins = - [ - "nvim-treesitter" - "plenary-nvim" - "dressing-nvim" - "nui-nvim" - ] - ++ (optionals config.vim.mini.pick.enable ["mini-pick"]) - ++ (optionals config.vim.telescope.enable ["telescope"]) - ++ (optionals config.vim.autocomplete.nvim-cmp.enable ["nvim-cmp"]) - ++ (optionals config.vim.fzf-lua.enable ["fzf-lua"]) - ++ (optionals config.vim.visuals.nvim-web-devicons.enable ["nvim-web-devicons"]) - ++ (optionals config.vim.utility.images.img-clip.enable ["img-clip"]); - - lazy.plugins = { - avante-nvim = { - package = "avante-nvim"; - setupModule = "avante"; - inherit (cfg) setupOpts; - event = ["DeferredUIEnter"]; - }; - }; - - treesitter.enable = true; - - languages.markdown.extensions.render-markdown-nvim.setupOpts.file_types = lib.mkAfter ["Avante"]; - }; - }; -} diff --git a/modules/plugins/assistant/avante/default.nix b/modules/plugins/assistant/avante/default.nix deleted file mode 100644 index c8ab1a1c..00000000 --- a/modules/plugins/assistant/avante/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./config.nix - ./avante-nvim.nix - ]; -} diff --git a/modules/plugins/assistant/codecompanion/config.nix b/modules/plugins/assistant/codecompanion/config.nix index fa863b74..08fc8cb2 100644 --- a/modules/plugins/assistant/codecompanion/config.nix +++ b/modules/plugins/assistant/codecompanion/config.nix @@ -21,17 +21,7 @@ in { }; }; - treesitter = { - enable = true; - - # Codecompanion depends on the YAML grammar being added. Below is - # an easy way of adding an user-configurable grammar package exposed - # by the YAML language module *without* enabling the whole YAML language - # module. The package is defined even when the module is disabled. - grammars = [ - config.vim.languages.yaml.treesitter.package - ]; - }; + treesitter.enable = true; autocomplete.nvim-cmp = { sources = {codecompanion-nvim = "[codecompanion]";}; diff --git a/modules/plugins/assistant/default.nix b/modules/plugins/assistant/default.nix index ab50ea4f..697d54f6 100644 --- a/modules/plugins/assistant/default.nix +++ b/modules/plugins/assistant/default.nix @@ -3,6 +3,5 @@ ./chatgpt ./copilot ./codecompanion - ./avante ]; } diff --git a/modules/plugins/completion/blink-cmp/blink-cmp.nix b/modules/plugins/completion/blink-cmp/blink-cmp.nix index d9e9945b..65b88815 100644 --- a/modules/plugins/completion/blink-cmp/blink-cmp.nix +++ b/modules/plugins/completion/blink-cmp/blink-cmp.nix @@ -10,7 +10,7 @@ freeformType = attrsOf (listOf (either str luaInline)); options = { preset = mkOption { - type = enum ["default" "none" "super-tab" "enter" "cmdline"]; + type = enum ["default" "none" "super-tab" "enter"]; default = "none"; description = "keymap presets"; }; @@ -48,7 +48,7 @@ in { cmdline = { sources = mkOption { type = nullOr (listOf str); - default = null; + default = []; description = "List of sources to enable for cmdline. Null means use default source list."; }; diff --git a/modules/plugins/completion/blink-cmp/config.nix b/modules/plugins/completion/blink-cmp/config.nix index 2efd8d79..9302332e 100644 --- a/modules/plugins/completion/blink-cmp/config.nix +++ b/modules/plugins/completion/blink-cmp/config.nix @@ -122,21 +122,6 @@ in { "fallback" ]; }; - - # cmdline is not enabled by default, we're just providing keymaps in - # case the user enables them - cmdline.keymap = { - ${mappings.complete} = ["show" "fallback"]; - ${mappings.close} = ["hide" "fallback"]; - ${mappings.scrollDocsUp} = ["scroll_documentation_up" "fallback"]; - ${mappings.scrollDocsDown} = ["scroll_documentation_down" "fallback"]; - # NOTE: mappings.confirm is skipped because our default, would - # lead to accidental triggers of blink.accept instead of executing - # the cmd - - ${mappings.next} = ["select_next" "show" "fallback"]; - ${mappings.previous} = ["select_prev" "fallback"]; - }; }; }; }; diff --git a/modules/plugins/filetree/nvimtree/nvimtree.nix b/modules/plugins/filetree/nvimtree/nvimtree.nix index c3beb38f..9c443a6e 100644 --- a/modules/plugins/filetree/nvimtree/nvimtree.nix +++ b/modules/plugins/filetree/nvimtree/nvimtree.nix @@ -683,48 +683,15 @@ in { }; git_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; + type = enum ["before" "after" "signcolumn"]; + description = "Place where the git icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; default = "before"; - description = '' - Place where the git icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; }; modified_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; + type = enum ["before" "after" "signcolumn"]; + description = "Place where the modified icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; default = "after"; - description = '' - Place where the modified icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - hidden_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the hidden icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - diagnostics_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the diagnostics icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; - }; - - bookmarks_placement = mkOption { - type = enum ["before" "after" "signcolumn" "right_align"]; - default = "after"; - description = '' - Place where the bookmark icons will be rendered. - `signcolumn` requires `view.signcolumn` to be enabled. - ''; }; padding = mkOption { diff --git a/modules/plugins/formatter/conform-nvim/conform-nvim.nix b/modules/plugins/formatter/conform-nvim/conform-nvim.nix index cfe89bf3..727985a3 100644 --- a/modules/plugins/formatter/conform-nvim/conform-nvim.nix +++ b/modules/plugins/formatter/conform-nvim/conform-nvim.nix @@ -1,9 +1,12 @@ -{lib, ...}: let - inherit (lib.generators) mkLuaInline; - inherit (lib.options) mkOption mkEnableOption literalMD; - inherit (lib.types) attrs either nullOr; - inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.types) luaInline mkPluginSetupOption; +{ + pkgs, + lib, + ... +}: let + inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.types) attrs enum nullOr; + inherit (lib.nvim.types) mkPluginSetupOption; + inherit (lib.nvim.lua) mkLuaInline; in { options.vim.formatter.conform-nvim = { enable = mkEnableOption "lightweight yet powerful formatter plugin for Neovim [conform-nvim]"; @@ -28,46 +31,26 @@ in { }; format_on_save = mkOption { - type = nullOr (either attrs luaInline); - default = mkLuaInline '' - function() - if not vim.g.formatsave or vim.b.disableFormatSave then - return - else - return {lsp_format = "fallback", timeout_ms = 500} - end - end - ''; - defaultText = literalMD '' - enabled by default, and respects {option}`vim.lsp.formatOnSave` and - {option}`vim.lsp.mappings.toggleFormatSave` - ''; + type = nullOr attrs; + default = { + lsp_format = "fallback"; + timeout_ms = 500; + }; description = '' - Attribute set or Lua function that will be passed to - `conform.format()`. If this is set, Conform will run the formatter - on save. + Table that will be passed to `conform.format()`. If this + is set, Conform will run the formatter on save. ''; }; - format_after_save = let - defaultFormatAfterSaveOpts = {lsp_format = "fallback";}; - in - mkOption { - type = nullOr (either attrs luaInline); - default = mkLuaInline '' - function() - if not vim.g.formatsave or vim.b.disableFormatSave then - return - else - return ${toLuaObject defaultFormatAfterSaveOpts} - end - end - ''; - description = '' - Table or function(luainline) that will be passed to `conform.format()`. If this - is set, Conform will run the formatter asynchronously after save. - ''; - }; + format_after_save = mkOption { + type = nullOr attrs; + default = {lsp_format = "fallback";}; + description = '' + Table that will be passed to `conform.format()`. If this + is set, Conform will run the formatter asynchronously after + save. + ''; + }; }; }; } diff --git a/modules/plugins/git/gitsigns/config.nix b/modules/plugins/git/gitsigns/config.nix index f5d9f910..99927546 100644 --- a/modules/plugins/git/gitsigns/config.nix +++ b/modules/plugins/git/gitsigns/config.nix @@ -81,11 +81,9 @@ in { (mkIf cfg.codeActions.enable { vim.lsp.null-ls = { enable = true; - setupOpts.sources = [ - (mkLuaInline '' - require("null-ls").builtins.code_actions.gitsigns - '') - ]; + setupOpts.sources.gitsigns-ca = mkLuaInline '' + require("null-ls").builtins.code_actions.gitsigns + ''; }; }) ]); diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index 9fe58a76..a0e96cef 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -20,7 +20,7 @@ in { }; lsp = { - enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.languages.enableLSP;}; package = mkOption { type = package; diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index b7a69bda..2ecbbe47 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -81,7 +81,7 @@ in { }; lsp = { - enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Astro LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index e02596cf..bfe01032 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -56,7 +56,7 @@ in { }; lsp = { - enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Bash LSP server to use"; diff --git a/modules/plugins/languages/clang.nix b/modules/plugins/languages/clang.nix index 2db178e9..bb30cc95 100644 --- a/modules/plugins/languages/clang.nix +++ b/modules/plugins/languages/clang.nix @@ -98,7 +98,7 @@ in { }; lsp = { - enable = mkEnableOption "clang LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "clang LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "The clang LSP server to use"; diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix deleted file mode 100644 index 0b932708..00000000 --- a/modules/plugins/languages/clojure.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.meta) getExe; - inherit (lib.lists) isList; - inherit (lib.types) either listOf package str; - inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.nvim.lua) expToLua; - - cfg = config.vim.languages.clojure; -in { - options.vim.languages.clojure = { - enable = mkEnableOption "Clojure language support"; - - treesitter = { - enable = mkEnableOption "Clojure treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "clojure"; - }; - - lsp = { - enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; - package = mkOption { - type = either package (listOf str); - default = pkgs.clojure-lsp; - description = "Clojure LSP"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.clojure-lsp = '' - lspconfig.clojure_lsp.setup { - capabilities = capabilities; - on_attach = default_on_attach; - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{"${getExe cfg.lsp.package}"}'' - }; - } - ''; - }) - - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - ]); -} diff --git a/modules/plugins/languages/csharp.nix b/modules/plugins/languages/csharp.nix index 49ae4985..af7f36e0 100644 --- a/modules/plugins/languages/csharp.nix +++ b/modules/plugins/languages/csharp.nix @@ -91,7 +91,7 @@ in { }; lsp = { - enable = mkEnableOption "C# LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "C# LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "C# LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/css.nix b/modules/plugins/languages/css.nix index 0147fba3..d103f241 100644 --- a/modules/plugins/languages/css.nix +++ b/modules/plugins/languages/css.nix @@ -80,7 +80,7 @@ in { }; lsp = { - enable = mkEnableOption "CSS LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "CSS LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "CSS LSP server to use"; diff --git a/modules/plugins/languages/cue.nix b/modules/plugins/languages/cue.nix index bd446cbf..313e3233 100644 --- a/modules/plugins/languages/cue.nix +++ b/modules/plugins/languages/cue.nix @@ -21,7 +21,7 @@ in { }; lsp = { - enable = mkEnableOption "CUE LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "CUE LSP support" // {default = config.vim.languages.enableLSP;}; package = mkOption { type = package; diff --git a/modules/plugins/languages/dart.nix b/modules/plugins/languages/dart.nix index c2a1810d..7b9584b9 100644 --- a/modules/plugins/languages/dart.nix +++ b/modules/plugins/languages/dart.nix @@ -77,7 +77,7 @@ in { flutter-tools = { enable = mkOption { type = bool; - default = config.vim.lsp.enable; + default = config.vim.languages.enableLSP; description = "Enable flutter-tools for flutter support"; }; @@ -143,6 +143,8 @@ in { }) (mkIf ftcfg.enable { + lsp.enable = true; + startPlugins = [ ( if ftcfg.enableNoResolvePatch diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 961d7cc5..c3312135 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -1,5 +1,4 @@ {lib, ...}: let - inherit (lib.modules) mkRenamedOptionModule; inherit (lib.nvim.languages) mkEnable; in { imports = [ @@ -9,7 +8,6 @@ in { ./cue.nix ./dart.nix ./clang.nix - ./clojure.nix ./css.nix ./elixir.nix ./fsharp.nix @@ -46,13 +44,10 @@ in { ./wgsl.nix ./yaml.nix ./ruby.nix - - # This is now a hard deprecation. - (mkRenamedOptionModule ["vim" "languages" "enableLSP"] ["vim" "lsp" "enable"]) ]; options.vim.languages = { - # Those are still managed by plugins, and should be enabled here. + enableLSP = mkEnable "LSP"; enableDAP = mkEnable "Debug Adapter"; enableTreesitter = mkEnable "Treesitter"; enableFormat = mkEnable "Formatting"; diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index 241efd8e..7b3a0256 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -53,7 +53,7 @@ in { }; lsp = { - enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Elixir LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Elixir LSP server to use"; diff --git a/modules/plugins/languages/fsharp.nix b/modules/plugins/languages/fsharp.nix index 6ed0ccab..966b0349 100644 --- a/modules/plugins/languages/fsharp.nix +++ b/modules/plugins/languages/fsharp.nix @@ -51,7 +51,7 @@ in { }; lsp = { - enable = mkEnableOption "F# LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "F# LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); default = defaultServer; diff --git a/modules/plugins/languages/gleam.nix b/modules/plugins/languages/gleam.nix index 272ef51e..284d3443 100644 --- a/modules/plugins/languages/gleam.nix +++ b/modules/plugins/languages/gleam.nix @@ -41,7 +41,7 @@ in { }; lsp = { - enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Gleam LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index bab0ff4a..3f232669 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -67,7 +67,7 @@ in { }; lsp = { - enable = mkEnableOption "Go LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Go LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Go LSP server to use"; diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index f50c9f09..ff6c7d78 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -25,7 +25,7 @@ in { }; lsp = { - enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "Haskell LSP package or command to run the Haskell LSP"; example = ''[ (lib.getExe pkgs.haskellPackages.haskell-language-server) "--debug" ]''; diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index e702170c..3a3db782 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; # TODO: (maybe, is it better?) it would be cooler to use vscode-extensions.hashicorp.hcl probably, shouldn't be too hard package = mkOption { type = package; diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix index ffe115c9..d3fd636e 100644 --- a/modules/plugins/languages/helm.nix +++ b/modules/plugins/languages/helm.nix @@ -54,7 +54,7 @@ in { }; lsp = { - enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Helm LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Helm LSP server to use"; diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index 2e26feea..dc46fcfe 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -23,7 +23,7 @@ in { }; lsp = { - enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "java language server package, or the command to run as a list of strings"; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; diff --git a/modules/plugins/languages/julia.nix b/modules/plugins/languages/julia.nix index 8c48b070..aa537df9 100644 --- a/modules/plugins/languages/julia.nix +++ b/modules/plugins/languages/julia.nix @@ -78,7 +78,7 @@ in { lsp = { enable = mkOption { type = bool; - default = config.vim.lsp.enable; + default = config.vim.languages.enableLSP; description = '' Whether to enable Julia LSP support. diff --git a/modules/plugins/languages/kotlin.nix b/modules/plugins/languages/kotlin.nix index 1118afdf..2ddc63e9 100644 --- a/modules/plugins/languages/kotlin.nix +++ b/modules/plugins/languages/kotlin.nix @@ -30,7 +30,7 @@ in { }; lsp = { - enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "kotlin_language_server package with Kotlin runtime"; diff --git a/modules/plugins/languages/lua.nix b/modules/plugins/languages/lua.nix index 9f56cbea..d5be4905 100644 --- a/modules/plugins/languages/lua.nix +++ b/modules/plugins/languages/lua.nix @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "LuaLS package, or the command to run as a list of strings"; diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 23848835..4563bc44 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -67,7 +67,7 @@ in { }; lsp = { - enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); @@ -130,18 +130,6 @@ in { }; }; }; - markview-nvim = { - enable = - mkEnableOption "" - // { - description = '' - [markview.nvim]: https://github.com/OXY2DEV/markview.nvim - - [markview.nvim] - a hackable markdown, Typst, latex, html(inline) & YAML previewer - ''; - }; - setupOpts = mkPluginSetupOption "markview-nvim" {}; - }; }; extraDiagnostics = { @@ -187,13 +175,6 @@ in { ''; }) - (mkIf cfg.extensions.markview-nvim.enable { - vim.startPlugins = ["markview-nvim"]; - vim.pluginRC.markview-nvim = entryAnywhere '' - require("markview").setup(${toLuaObject cfg.extensions.markview-nvim.setupOpts}) - ''; - }) - (mkIf cfg.extraDiagnostics.enable { vim.diagnostics.nvim-lint = { enable = true; diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index d9a29e37..69288223 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -54,7 +54,7 @@ in { }; lsp = { - enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Nim LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Nim LSP server to use"; type = str; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index aceee70d..ad16a34e 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -2,7 +2,6 @@ config, pkgs, lib, - inputs, ... }: let inherit (builtins) attrNames; @@ -28,7 +27,7 @@ else ''{"${package}/bin/${defaultCmd}"}''; servers = { nil = { - package = inputs.nil.packages.${pkgs.stdenv.system}.nil; + package = pkgs.nil; internalFormatter = true; lspConfig = '' lspconfig.nil_ls.setup{ @@ -144,7 +143,7 @@ in { }; lsp = { - enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Nix LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Nix LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/nu.nix b/modules/plugins/languages/nu.nix index bd007fc8..eab0385c 100644 --- a/modules/plugins/languages/nu.nix +++ b/modules/plugins/languages/nu.nix @@ -40,7 +40,7 @@ in { }; lsp = { - enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Nu LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = str; default = defaultServer; diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index 995ca04d..568b846e 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -49,7 +49,7 @@ in { }; lsp = { - enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "OCaml LSP server to user"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/odin.nix b/modules/plugins/languages/odin.nix index 6d20351c..7a32db93 100644 --- a/modules/plugins/languages/odin.nix +++ b/modules/plugins/languages/odin.nix @@ -41,7 +41,7 @@ in { }; lsp = { - enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Odin LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index 61ff0425..4dccc8cd 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -95,7 +95,7 @@ in { }; lsp = { - enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "PHP LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "PHP LSP server to use"; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index bec7ec8b..9905716e 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -169,7 +169,7 @@ in { }; lsp = { - enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Python LSP server to use"; diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index 894c63f6..fcadcc37 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -79,7 +79,7 @@ in { }; lsp = { - enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "R LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "R LSP server to use"; diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 1f3ce82f..2f42aa4f 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -9,8 +9,6 @@ inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.nvim.types) mkGrammarOption diagnostics; - inherit (lib.nvim.lua) expToLua; - inherit (lib.lists) isList; inherit (lib.types) either listOf package str enum; cfg = config.vim.languages.ruby; @@ -26,25 +24,7 @@ flags = { debounce_text_changes = 150, }, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{ "${cfg.lsp.package}/bin/solargraph", "stdio" }'' - } - } - ''; - }; - rubylsp = { - package = pkgs.ruby-lsp; - lspConfig = '' - lspconfig.ruby_lsp.setup { - capabilities = capabilities, - on_attach = default_on_attach, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{ "${cfg.lsp.package}/bin/ruby-lsp" }'' - } + cmd = { "${pkgs.solargraph}/bin/solargraph", "stdio" } } ''; }; @@ -77,7 +57,7 @@ in { }; lsp = { - enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Ruby LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 09c54ae6..2181623a 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -7,7 +7,7 @@ inherit (builtins) attrNames; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.options) mkOption mkEnableOption literalMD; + inherit (lib.options) mkOption mkEnableOption; inherit (lib.strings) optionalString; inherit (lib.trivial) boolToString; inherit (lib.lists) isList; @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "rust-analyzer package, or the command to run as a list of strings"; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; @@ -68,14 +68,7 @@ in { }; format = { - enable = - mkEnableOption "Rust formatting" - // { - default = !cfg.lsp.enable && config.vim.languages.enableFormat; - defaultText = literalMD '' - Disabled if Rust LSP is enabled, otherwise follows {option}`vim.languages.enableFormat` - ''; - }; + enable = mkEnableOption "Rust formatting" // {default = config.vim.languages.enableFormat;}; type = mkOption { description = "Rust formatter to use"; diff --git a/modules/plugins/languages/scala.nix b/modules/plugins/languages/scala.nix index b5382415..f769d092 100644 --- a/modules/plugins/languages/scala.nix +++ b/modules/plugins/languages/scala.nix @@ -33,7 +33,7 @@ in { }; lsp = { - enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.languages.enableLSP;}; package = mkPackageOption pkgs "metals" { default = ["metals"]; }; diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index add46c15..277dbeef 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -79,7 +79,7 @@ in { }; lsp = { - enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "SQL LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "SQL LSP server to use"; diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index 08a807c7..536ff2c1 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -77,7 +77,7 @@ in { }; lsp = { - enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Svelte LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Svelte LSP server to use"; diff --git a/modules/plugins/languages/tailwind.nix b/modules/plugins/languages/tailwind.nix index fbe707ba..594f6d9d 100644 --- a/modules/plugins/languages/tailwind.nix +++ b/modules/plugins/languages/tailwind.nix @@ -35,7 +35,7 @@ in { enable = mkEnableOption "Tailwindcss language support"; lsp = { - enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Tailwindcss LSP server to use"; diff --git a/modules/plugins/languages/terraform.nix b/modules/plugins/languages/terraform.nix index 095da072..33bb9357 100644 --- a/modules/plugins/languages/terraform.nix +++ b/modules/plugins/languages/terraform.nix @@ -20,7 +20,7 @@ in { }; lsp = { - enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; package = mkOption { description = "terraform-ls package"; diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix index b9971488..df1353ab 100644 --- a/modules/plugins/languages/ts.nix +++ b/modules/plugins/languages/ts.nix @@ -101,7 +101,6 @@ "eslint.config.js" "eslint.config.mjs" ".eslintrc" - ".eslintrc.cjs" ".eslintrc.json" ".eslintrc.js" ".eslintrc.yml" @@ -121,7 +120,7 @@ in { }; lsp = { - enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Typescript/Javascript LSP server to use"; diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index 08a2252b..8c65ae2c 100644 --- a/modules/plugins/languages/typst.nix +++ b/modules/plugins/languages/typst.nix @@ -76,7 +76,7 @@ in { }; lsp = { - enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Typst LSP server to use"; diff --git a/modules/plugins/languages/vala.nix b/modules/plugins/languages/vala.nix index 220926d0..da65a372 100644 --- a/modules/plugins/languages/vala.nix +++ b/modules/plugins/languages/vala.nix @@ -50,7 +50,7 @@ in { }; lsp = { - enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Vala LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { description = "Vala LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/wgsl.nix b/modules/plugins/languages/wgsl.nix index f374543e..7c8a1016 100644 --- a/modules/plugins/languages/wgsl.nix +++ b/modules/plugins/languages/wgsl.nix @@ -42,7 +42,7 @@ in { }; lsp = { - enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "WGSL LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index 7a1a4552..c84b17cd 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -55,7 +55,7 @@ in { }; lsp = { - enable = mkEnableOption "YAML LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "YAML LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/zig.nix b/modules/plugins/languages/zig.nix index 89307eab..2aa0e2b6 100644 --- a/modules/plugins/languages/zig.nix +++ b/modules/plugins/languages/zig.nix @@ -72,7 +72,7 @@ in { }; lsp = { - enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Zig LSP support" // {default = config.vim.languages.enableLSP;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/lsp/config.nix b/modules/plugins/lsp/config.nix index e7b67c8e..3702ac5f 100644 --- a/modules/plugins/lsp/config.nix +++ b/modules/plugins/lsp/config.nix @@ -6,7 +6,6 @@ }: let inherit (lib.generators) mkLuaInline; inherit (lib.modules) mkIf; - inherit (lib.lists) optional; inherit (lib.strings) optionalString; inherit (lib.trivial) boolToString; inherit (lib.nvim.binds) addDescriptionsToMappings; @@ -15,10 +14,7 @@ usingNvimCmp = config.vim.autocomplete.nvim-cmp.enable; usingBlinkCmp = config.vim.autocomplete.blink-cmp.enable; self = import ./module.nix {inherit config lib pkgs;}; - conformCfg = config.vim.formatter.conform-nvim; - conformFormatOnSave = conformCfg.enable && conformCfg.setupOpts.format_on_save != null; - augroup = "nvf_lsp"; mappingDefinitions = self.options.vim.lsp.mappings; mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; mkBinding = binding: action: @@ -33,59 +29,24 @@ in { sourcePlugins = ["cmp-nvim-lsp"]; }; - augroups = [{name = augroup;}]; autocmds = - (optional cfg.inlayHints.enable { - group = augroup; - event = ["LspAttach"]; - desc = "LSP on-attach enable inlay hints autocmd"; - callback = mkLuaInline '' - function(event) - local bufnr = event.buf - local client = vim.lsp.get_client_by_id(event.data.client_id) - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr }) - end - end - ''; - }) - ++ (optional (!conformFormatOnSave) { - group = augroup; - event = ["BufWritePre"]; - desc = "LSP on-attach create format on save autocmd"; - callback = mkLuaInline '' - function(ev) - if vim.b.disableFormatSave or not vim.g.formatsave then - return - end - - local bufnr = ev.buf - - ${optionalString cfg.null-ls.enable '' - -- prefer null_ls formatter - do - local clients = vim.lsp.get_clients({ - bufnr = bufnr, - name = "null-ls", - method = "textDocument/formatting", - }) - if clients[1] then - vim.lsp.buf.format({ bufnr = bufnr, id = clients[1].id }) - return + if cfg.inlayHints.enable + then [ + { + callback = mkLuaInline '' + function(event) + local bufnr = event.buf + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr }) end end - ''} - - local clients = vim.lsp.get_clients({ - bufnr = bufnr, - method = "textDocument/formatting", - }) - if clients[1] then - vim.lsp.buf.format({ bufnr = bufnr, id = clients[1].id }) - end - end - ''; - }); + ''; + desc = "LSP on-attach enable inlay hints autocmd"; + event = ["LspAttach"]; + } + ] + else []; pluginRC.lsp-setup = '' vim.g.formatsave = ${boolToString cfg.formatOnSave}; @@ -113,9 +74,60 @@ in { ${mkBinding mappings.toggleFormatOnSave "function() vim.b.disableFormatSave = not vim.b.disableFormatSave end"} end + -- Enable formatting + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + + format_callback = function(client, bufnr) + if vim.g.formatsave then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + ${ + if config.vim.lsp.null-ls.enable + then '' + if vim.b.disableFormatSave then + return + end + + local function is_null_ls_formatting_enabled(bufnr) + local file_type = vim.api.nvim_buf_get_option(bufnr, "filetype") + local generators = require("null-ls.generators").get_available( + file_type, + require("null-ls.methods").internal.FORMATTING + ) + return #generators > 0 + end + + if is_null_ls_formatting_enabled(bufnr) then + vim.lsp.buf.format({ + bufnr = bufnr, + filter = function(client) + return client.name == "null-ls" + end + }) + else + vim.lsp.buf.format({ + bufnr = bufnr, + }) + end + '' + else " + vim.lsp.buf.format({ + bufnr = bufnr, + }) + " + } + end, + }) + end + end + ${optionalString config.vim.ui.breadcrumbs.enable ''local navic = require("nvim-navic")''} default_on_attach = function(client, bufnr) attach_keymaps(client, bufnr) + format_callback(client, bufnr) ${optionalString config.vim.ui.breadcrumbs.enable '' -- let navic attach to buffers if client.server_capabilities.documentSymbolProvider then @@ -126,7 +138,6 @@ in { local capabilities = vim.lsp.protocol.make_client_capabilities() ${optionalString usingNvimCmp '' - -- TODO(horriblename): migrate to vim.lsp.config['*'] -- HACK: copied from cmp-nvim-lsp. If we ever lazy load lspconfig we -- should re-evaluate whether we can just use `default_capabilities` capabilities = { diff --git a/modules/plugins/lsp/lspconfig/config.nix b/modules/plugins/lsp/lspconfig/config.nix index 16cba488..1c1f0a0a 100644 --- a/modules/plugins/lsp/lspconfig/config.nix +++ b/modules/plugins/lsp/lspconfig/config.nix @@ -14,6 +14,8 @@ in { config = mkIf cfg.lspconfig.enable (mkMerge [ { vim = { + lsp.enable = true; + startPlugins = ["nvim-lspconfig"]; pluginRC.lspconfig = entryAfter ["lsp-setup"] '' diff --git a/modules/plugins/lsp/module.nix b/modules/plugins/lsp/module.nix index 6b63d725..f408d873 100644 --- a/modules/plugins/lsp/module.nix +++ b/modules/plugins/lsp/module.nix @@ -3,12 +3,11 @@ inherit (lib.nvim.binds) mkMappingOption; in { options.vim.lsp = { + enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options"; formatOnSave = mkEnableOption "format on save"; - inlayHints = { enable = mkEnableOption "inlay hints"; }; - mappings = { goToDefinition = mkMappingOption "Go to definition" diff --git a/modules/plugins/repl/conjure/conjure.nix b/modules/plugins/repl/conjure/conjure.nix deleted file mode 100644 index 83481af2..00000000 --- a/modules/plugins/repl/conjure/conjure.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (lib.options) mkEnableOption; - inherit (lib.modules) mkIf; - - cfg = config.vim.repl.conjure; -in { - options.vim.repl.conjure = { - enable = mkEnableOption "Conjure"; - }; - - config = mkIf cfg.enable { - vim.startPlugins = [pkgs.vimPlugins.conjure]; - }; -} diff --git a/modules/plugins/repl/conjure/default.nix b/modules/plugins/repl/conjure/default.nix deleted file mode 100644 index de8c3190..00000000 --- a/modules/plugins/repl/conjure/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./conjure.nix - ]; -} diff --git a/modules/plugins/repl/default.nix b/modules/plugins/repl/default.nix deleted file mode 100644 index ba03a390..00000000 --- a/modules/plugins/repl/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./conjure - ]; -} diff --git a/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix b/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix index ff255c6c..14243670 100644 --- a/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix +++ b/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix @@ -109,7 +109,7 @@ in { type = nullOr str; default = null; description = '' - The indicator icon to use for the current buffer. + The indicatotor icon to use for the current buffer. ::: {.warning} This **must** be omitted while style is not `icon` diff --git a/modules/plugins/theme/supported-themes.nix b/modules/plugins/theme/supported-themes.nix index 722f6d65..2b427871 100644 --- a/modules/plugins/theme/supported-themes.nix +++ b/modules/plugins/theme/supported-themes.nix @@ -21,14 +21,9 @@ in { ''; }; onedark = { - setup = { - style ? "dark", - transparent, - ... - }: '' + setup = {style ? "dark", ...}: '' -- OneDark theme require('onedark').setup { - transparent = ${boolToString transparent}, style = "${style}" } require('onedark').load() @@ -100,7 +95,7 @@ in { -- setup must be called before loading vim.cmd.colorscheme "catppuccin" ''; - styles = ["auto" "latte" "frappe" "macchiato" "mocha"]; + styles = ["latte" "frappe" "macchiato" "mocha"]; }; oxocarbon = { @@ -217,17 +212,4 @@ in { ''; styles = ["dark" "light" "dark_dimmed" "dark_default" "light_default" "dark_high_contrast" "light_high_contrast" "dark_colorblind" "light_colorblind" "dark_tritanopia" "light_tritanopia"]; }; - solarized-osaka = { - setup = {transparent ? false, ...}: '' - require("solarized-osaka").setup({ - transparent = ${boolToString transparent}, - styles = { - comments = { italic = false }, - keywords = { italic = false }, - } - }) - - vim.cmd.colorscheme("solarized-osaka") - ''; - }; } diff --git a/modules/plugins/treesitter/default.nix b/modules/plugins/treesitter/default.nix index ea8ac9cd..a859f3af 100644 --- a/modules/plugins/treesitter/default.nix +++ b/modules/plugins/treesitter/default.nix @@ -2,7 +2,6 @@ imports = [ # treesitter extras ./ts-context - ./ts-textobjects ./treesitter.nix ./config.nix diff --git a/modules/plugins/treesitter/ts-textobjects/config.nix b/modules/plugins/treesitter/ts-textobjects/config.nix deleted file mode 100644 index 7a9239d1..00000000 --- a/modules/plugins/treesitter/ts-textobjects/config.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.dag) entryAfter; - - inherit (config.vim) treesitter; - cfg = treesitter.textobjects; -in { - config = mkIf (treesitter.enable && cfg.enable) { - vim = { - startPlugins = ["nvim-treesitter-textobjects"]; - - # set up treesitter-textobjects after Treesitter, whose config we're adding to. - pluginRC.treesitter-textobjects = entryAfter ["treesitter"] '' - require("nvim-treesitter.configs").setup({textobjects = ${toLuaObject cfg.setupOpts}}) - ''; - }; - }; -} diff --git a/modules/plugins/treesitter/ts-textobjects/default.nix b/modules/plugins/treesitter/ts-textobjects/default.nix deleted file mode 100644 index d0ae48a3..00000000 --- a/modules/plugins/treesitter/ts-textobjects/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./textobjects.nix - ./config.nix - ]; -} diff --git a/modules/plugins/treesitter/ts-textobjects/textobjects.nix b/modules/plugins/treesitter/ts-textobjects/textobjects.nix deleted file mode 100644 index 07e72135..00000000 --- a/modules/plugins/treesitter/ts-textobjects/textobjects.nix +++ /dev/null @@ -1,21 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; - inherit (lib.nvim.types) mkPluginSetupOption; -in { - options.vim.treesitter.textobjects = { - enable = mkEnableOption "Treesitter textobjects"; - setupOpts = - mkPluginSetupOption "treesitter-textobjects" {} - // { - example = { - select = { - enable = true; - lookahead = true; - keymaps = { - af = "@function.outer"; - }; - }; - }; - }; - }; -} diff --git a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix index 72351ecc..2faee6c8 100644 --- a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix +++ b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix @@ -4,7 +4,7 @@ ... }: let inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) nullOr listOf enum bool str int; + inherit (lib.types) nullOr listOf enum bool str int either; inherit (lib.modules) mkRenamedOptionModule; inherit (lib.nvim.types) mkPluginSetupOption borderType; mkSimpleIconOption = default: @@ -74,7 +74,7 @@ in { ::: {.note} This will pass `draw_empty` to the `nvim_navic` winbar component, which causes the component to be drawn even - if it's empty. + if it's empty ::: ''; }; @@ -86,163 +86,145 @@ in { close = mkOption { type = str; default = ""; - description = "Close and return the cursor to its original location."; + description = "keybinding to close Navbuddy UI"; }; nextSibling = mkOption { type = str; default = "j"; - description = "Navigate to the next sibling node."; + description = "keybinding to navigate to the next sibling node"; }; previousSibling = mkOption { type = str; default = "k"; - description = "Navigate to the previous sibling node."; + description = "keybinding to navigate to the previous sibling node"; }; parent = mkOption { type = str; default = "h"; - description = "Navigate to the parent node."; + description = "keybinding to navigate to the parent node"; }; children = mkOption { type = str; default = "l"; - description = "Navigate to the child node."; + description = "keybinding to navigate to the child node"; }; root = mkOption { type = str; default = "0"; - description = "Navigate to the root node."; + description = "keybinding to navigate to the root node"; }; visualName = mkOption { type = str; default = "v"; - description = "Select the name visually."; + description = "visual selection of name"; }; visualScope = mkOption { type = str; default = "V"; - description = "Select the scope visually."; + description = "visual selection of scope"; }; yankName = mkOption { type = str; default = "y"; - description = "Yank the name to system clipboard."; + description = "yank the name to system clipboard"; }; yankScope = mkOption { type = str; default = "Y"; - description = "Yank the scope to system clipboard."; + description = "yank the scope to system clipboard"; }; insertName = mkOption { type = str; default = "i"; - description = "Insert at the start of name."; + description = "insert at start of name"; }; insertScope = mkOption { type = str; default = "I"; - description = "Insert at the start of scope."; + description = "insert at start of scope"; }; appendName = mkOption { type = str; default = "a"; - description = "Insert at the end of name."; + description = "insert at end of name"; }; appendScope = mkOption { type = str; default = "A"; - description = "Insert at the end of scope."; + description = "insert at end of scope"; }; rename = mkOption { type = str; default = "r"; - description = "Rename the node."; + description = "rename the node"; }; delete = mkOption { type = str; default = "d"; - description = "Delete the node."; + description = "delete the node"; }; foldCreate = mkOption { type = str; default = "f"; - description = "Create a new fold of the node."; + description = "create a new fold"; }; foldDelete = mkOption { type = str; default = "F"; - description = "Delete the current fold of the node."; + description = "delete the current fold"; }; comment = mkOption { type = str; default = "c"; - description = "Comment the node."; + description = "comment the node"; }; select = mkOption { type = str; default = ""; - description = "Goto the node."; + description = "goto selected symbol"; }; moveDown = mkOption { type = str; default = "J"; - description = "Move the node down."; + description = "move focused node down"; }; moveUp = mkOption { type = str; default = "K"; - description = "Move the node up."; - }; - - togglePreview = mkOption { - type = str; - default = "s"; - description = "Toggle the preview."; - }; - - vsplit = mkOption { - type = str; - default = ""; - description = "Open the node in a vertical split."; - }; - - hsplit = mkOption { - type = str; - default = ""; - description = "Open the node in a horizontal split."; + description = "move focused node up"; }; telescope = mkOption { type = str; default = "t"; - description = "Start fuzzy finder at the current level."; + description = "fuzzy finder at current level"; }; help = mkOption { type = str; default = "g?"; - description = "Open the mappings help window."; + description = "open mapping help window"; }; }; @@ -250,7 +232,7 @@ in { useDefaultMappings = mkOption { type = bool; default = true; - description = "Add the default Navbuddy keybindings in addition to the keybinding added by this module."; + description = "use default Navbuddy keybindings (disables user-specified keybinds)"; }; window = { @@ -260,13 +242,13 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "The border style to use."; + description = "border style to use"; }; scrolloff = mkOption { type = nullOr int; default = null; - description = "The scrolloff value within a navbuddy window."; + description = "Scrolloff value within navbuddy window"; }; sections = { @@ -283,7 +265,7 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "The border style to use for the left section of the Navbuddy UI."; + description = "border style to use for the left section of Navbuddy UI"; }; }; @@ -300,7 +282,7 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "The border style to use for the middle section of the Navbuddy UI."; + description = "border style to use for the middle section of Navbuddy UI"; }; }; @@ -310,13 +292,13 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "The border style to use for the right section of the Navbuddy UI."; + description = "border style to use for the right section of Navbuddy UI"; }; preview = mkOption { type = enum ["leaf" "always" "never"]; default = "leaf"; - description = "The display mode of the preview on the right section."; + description = "display mode of the preview on the right section"; }; }; }; @@ -335,13 +317,13 @@ in { auto_attach = mkOption { type = bool; default = true; - description = "Whether to attach to LSP server manually."; + description = "Whether to attach to LSP server manually"; }; preference = mkOption { type = nullOr (listOf str); default = null; - description = "The preference list ranking LSP servers."; + description = "list of lsp server names in order of preference"; }; }; @@ -349,25 +331,25 @@ in { followNode = mkOption { type = bool; default = true; - description = "Whether to keep the current node in focus in the source buffer."; + description = "keep the current node in focus on the source buffer"; }; highlight = mkOption { type = bool; default = true; - description = "Whether to highlight the currently focused node in the source buffer."; + description = "highlight the currently focused node"; }; reorient = mkOption { type = enum ["smart" "top" "mid" "none"]; default = "smart"; - description = "The mode for reorienting the source buffer after moving nodes."; + description = "reorient buffer after changing nodes"; }; scrolloff = mkOption { type = nullOr int; default = null; - description = "The scrolloff value in the source buffer when Navbuddy is open."; + description = "scrolloff value when navbuddy is open"; }; }; diff --git a/modules/plugins/ui/breadcrumbs/config.nix b/modules/plugins/ui/breadcrumbs/config.nix index 324501a5..747a7773 100644 --- a/modules/plugins/ui/breadcrumbs/config.nix +++ b/modules/plugins/ui/breadcrumbs/config.nix @@ -64,11 +64,6 @@ in { ${cfg.navbuddy.mappings.moveDown} = mkLuaInline "actions.move_down()"; ${cfg.navbuddy.mappings.moveUp} = mkLuaInline "actions.move_up()"; - ${cfg.navbuddy.mappings.togglePreview} = mkLuaInline "actions.toggle_preview()"; - - ${cfg.navbuddy.mappings.vsplit} = mkLuaInline "actions.vsplit()"; - ${cfg.navbuddy.mappings.hsplit} = mkLuaInline "actions.hsplit()"; - ${cfg.navbuddy.mappings.telescope} = mkLuaInline '' actions.telescope({ layout_strategy = "horizontal", diff --git a/modules/plugins/utility/binds/default.nix b/modules/plugins/utility/binds/default.nix index 43666cc9..229423b8 100644 --- a/modules/plugins/utility/binds/default.nix +++ b/modules/plugins/utility/binds/default.nix @@ -2,6 +2,5 @@ _: { imports = [ ./which-key ./cheatsheet - ./hardtime ]; } diff --git a/modules/plugins/utility/binds/hardtime/config.nix b/modules/plugins/utility/binds/hardtime/config.nix deleted file mode 100644 index 66b1f063..00000000 --- a/modules/plugins/utility/binds/hardtime/config.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.dag) entryAnywhere; - - cfg = config.vim.binds.hardtime-nvim; -in { - config = mkIf cfg.enable { - vim = { - startPlugins = ["hardtime-nvim"]; - - pluginRC.hardtime = entryAnywhere '' - require("hardtime").setup(${toLuaObject cfg.setupOpts}) - ''; - }; - }; -} diff --git a/modules/plugins/utility/binds/hardtime/default.nix b/modules/plugins/utility/binds/hardtime/default.nix deleted file mode 100644 index 89aa11d3..00000000 --- a/modules/plugins/utility/binds/hardtime/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./hardtime.nix - ./config.nix - ]; -} diff --git a/modules/plugins/utility/binds/hardtime/hardtime.nix b/modules/plugins/utility/binds/hardtime/hardtime.nix deleted file mode 100644 index b671ddcd..00000000 --- a/modules/plugins/utility/binds/hardtime/hardtime.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; - inherit (lib.nvim.types) mkPluginSetupOption; -in { - options.vim.binds.hardtime-nvim = { - enable = mkEnableOption "hardtime helper for no repeat keybinds"; - - setupOpts = mkPluginSetupOption "hardtime-nvim" {}; - }; -} diff --git a/modules/plugins/utility/images/default.nix b/modules/plugins/utility/images/default.nix index 1f398aa8..5b876e0a 100644 --- a/modules/plugins/utility/images/default.nix +++ b/modules/plugins/utility/images/default.nix @@ -1,6 +1,5 @@ { imports = [ ./image-nvim - ./img-clip ]; } diff --git a/modules/plugins/utility/images/img-clip/config.nix b/modules/plugins/utility/images/img-clip/config.nix deleted file mode 100644 index cadd815f..00000000 --- a/modules/plugins/utility/images/img-clip/config.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; - - cfg = config.vim.utility.images.img-clip; -in { - config = mkIf cfg.enable { - vim = { - startPlugins = [ - "img-clip" - ]; - - pluginRC.image-nvim = entryAnywhere '' - require("img-clip").setup(${toLuaObject cfg.setupOpts}) - ''; - }; - }; -} diff --git a/modules/plugins/utility/images/img-clip/default.nix b/modules/plugins/utility/images/img-clip/default.nix deleted file mode 100644 index 70c15604..00000000 --- a/modules/plugins/utility/images/img-clip/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./config.nix - ./img-clip.nix - ]; -} diff --git a/modules/plugins/utility/images/img-clip/img-clip.nix b/modules/plugins/utility/images/img-clip/img-clip.nix deleted file mode 100644 index ce07feae..00000000 --- a/modules/plugins/utility/images/img-clip/img-clip.nix +++ /dev/null @@ -1,11 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; - - inherit (lib.nvim.types) mkPluginSetupOption; -in { - options.vim.utility.images.img-clip = { - enable = mkEnableOption "img-clip to paste images into any markup language"; - - setupOpts = mkPluginSetupOption "img-clip" {}; - }; -} diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 585e9839..3b147571 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -7,20 +7,23 @@ }: let inherit (pkgs) vimPlugins; inherit (lib.trivial) flip; - inherit (builtins) filter isString; + inherit (builtins) path filter isString; getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name}; noBuildPlug = pname: let pin = getPin pname; - version = builtins.substring 0 8 pin.revision; - in - pin.outPath.overrideAttrs { - inherit pname version; - name = "${pname}-${version}"; - - passthru.vimPlugin = false; + version = pin.revision or "dirty"; + in { + # vim.lazy.plugins relies on pname, so we only set that here + # version isn't needed for anything, but inherit it anyway for correctness + inherit pname version; + outPath = path { + name = "${pname}-0-unstable-${version}"; + path = pin.outPath; }; + passthru.vimPlugin = false; + }; # build a vim plugin with the given name and arguments # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug @@ -48,7 +51,7 @@ doCheck = false; }; - inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp avante-nvim; + inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; }; buildConfigPlugins = plugins: @@ -59,14 +62,17 @@ filter (f: f != null) plugins ); + # built (or "normalized") plugins that are modified + builtStartPlugins = buildConfigPlugins config.vim.startPlugins; + builtOptPlugins = map (package: package // {optional = true;}) ( + buildConfigPlugins config.vim.optPlugins + ); + # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to # generate a wrapped Neovim package. - neovim-wrapped = inputs.mnw.lib.wrap {inherit pkgs;} { + neovim-wrapped = inputs.mnw.lib.wrap pkgs { neovim = config.vim.package; - plugins = { - start = buildConfigPlugins config.vim.startPlugins; - opt = buildConfigPlugins config.vim.optPlugins; - }; + plugins = builtStartPlugins ++ builtOptPlugins; appName = "nvf"; extraBinPath = config.vim.extraPackages; initLua = config.vim.builtLuaConfigRC; diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index 028d903e..10abd77d 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -11,14 +11,13 @@ in { description = '' [official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable() - Whether to enable the experimental Lua module loader to speed up the start - up process. If `true`, this will enable the experimental Lua module loader - which: + the experimental Lua module loader to speed up the start up process - * overrides loadfile - * adds the lua loader using the byte-compilation cache - * adds the libs loader - * removes the default Neovim loader + If `true`, this will enable the experimental Lua module loader which: + - overrides loadfile + - adds the lua loader using the byte-compilation cache + - adds the libs loader + - removes the default Neovim loader ::: {.note} The Lua module loader is *disabled* by default. Before setting this option, please diff --git a/npins/sources.json b/npins/sources.json index d07e0484..04c35ede 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -22,23 +22,10 @@ }, "branch": "main", "submodules": false, - "revision": "a35468cd72645dbd52c0624ceead5f301c566dff", - "url": "https://github.com/goolord/alpha-nvim/archive/a35468cd72645dbd52c0624ceead5f301c566dff.tar.gz", + "revision": "de72250e054e5e691b9736ee30db72c65d560771", + "url": "https://github.com/goolord/alpha-nvim/archive/de72250e054e5e691b9736ee30db72c65d560771.tar.gz", "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, - "avante-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "yetone", - "repo": "avante.nvim" - }, - "branch": "main", - "submodules": false, - "revision": "f9aa75459d403d9e963ef2647c9791e0dfc9e5f9", - "url": "https://github.com/yetone/avante.nvim/archive/f9aa75459d403d9e963ef2647c9791e0dfc9e5f9.tar.gz", - "hash": "1qgdxapmw24zkx3d4cwv6f459p2a6dw7pvx7sa3650px2n75bb31" - }, "base16": { "type": "Git", "repository": { @@ -48,9 +35,25 @@ }, "branch": "master", "submodules": false, - "revision": "f9ce7474c54803cb0fa308b0b91549d394a07940", - "url": "https://github.com/rrethy/base16-nvim/archive/f9ce7474c54803cb0fa308b0b91549d394a07940.tar.gz", - "hash": "1d575pa225ws5rhabr17if5pl8vfy1ks1a9w3rx7f47vdk8ars4m" + "revision": "965160025d0facbe9caa863e5beef2a7a488e9d1", + "url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz", + "hash": "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f" + }, + "blink-cmp": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "saghen", + "repo": "blink.cmp" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "v1.1.1", + "revision": "fe2e1d3e4498d60c5ce7440ff60f79f0920e34bf", + "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.1.1", + "hash": "0l2m4162vk6xqrx5v0zh1b5p6wrr1jailq1995f101isyjygikan" }, "blink-cmp-spell": { "type": "Git", @@ -87,9 +90,9 @@ }, "branch": "master", "submodules": false, - "revision": "f22ce8cac02a6ece05368220f1e38bd34fe376f9", - "url": "https://github.com/moyiz/blink-emoji.nvim/archive/f22ce8cac02a6ece05368220f1e38bd34fe376f9.tar.gz", - "hash": "1vnx779arsm4n1sjjwhraczp07am0i2n4m13jqv7ij01vd4c9wd4" + "revision": "a77aebc092ebece1eed108f301452ae774d6b67a", + "url": "https://github.com/moyiz/blink-emoji.nvim/archive/a77aebc092ebece1eed108f301452ae774d6b67a.tar.gz", + "hash": "0n4qv2mk7zx910gnwf9ri2w5qxwx8szx99nqqzik4yyvl4axm41d" }, "blink-ripgrep-nvim": { "type": "Git", @@ -100,9 +103,9 @@ }, "branch": "main", "submodules": false, - "revision": "a910b62c896eee2d0e74eb48b3ff5eedd211db69", - "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/a910b62c896eee2d0e74eb48b3ff5eedd211db69.tar.gz", - "hash": "0xinh3rxjrglkzgw9d80x1scl20h2gxzkl3f3cjzpz04rrr6slsm" + "revision": "89c4d158bc6d6ca03b4059452f2f9ffaa850db8a", + "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/89c4d158bc6d6ca03b4059452f2f9ffaa850db8a.tar.gz", + "hash": "04xh5hzbzvm0nvipsy0cw7k1vb1kcrb09xiw0j66cqddjvvpv6zk" }, "bufdelete-nvim": { "type": "Git", @@ -126,9 +129,9 @@ }, "branch": "main", "submodules": false, - "revision": "56a9dfd1e05868cf3189369aad87242941396563", - "url": "https://github.com/catppuccin/nvim/archive/56a9dfd1e05868cf3189369aad87242941396563.tar.gz", - "hash": "082rlnsxm1ip5mhpgc37nyp96s2hmvkcd4cbbvsvzdghiq4kl51b" + "revision": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", + "url": "https://github.com/catppuccin/nvim/archive/5b5e3aef9ad7af84f463d17b5479f06b87d5c429.tar.gz", + "hash": "0jmrwag2dx4b1g9x32xwxcr8y0l159hqks09z5miy99wav6dy7z2" }, "ccc-nvim": { "type": "Git", @@ -139,9 +142,9 @@ }, "branch": "main", "submodules": false, - "revision": "9d1a256e006decc574789dfc7d628ca11644d4c2", - "url": "https://github.com/uga-rosa/ccc.nvim/archive/9d1a256e006decc574789dfc7d628ca11644d4c2.tar.gz", - "hash": "0a2fc4bw88kf1dpp0k07aj8i9qp0xcnz1fvrxdkhz0fxddb7qdnx" + "revision": "af2cf5a963f401aad868c065222ee13d4bbc9050", + "url": "https://github.com/uga-rosa/ccc.nvim/archive/af2cf5a963f401aad868c065222ee13d4bbc9050.tar.gz", + "hash": "0h43m2rz9jcckif036n6ybyv2zhgr25l0wpdg3fdfl7xkfs7sa1i" }, "cellular-automaton-nvim": { "type": "Git", @@ -269,9 +272,9 @@ }, "branch": "main", "submodules": false, - "revision": "9edf22cb71711cd7fab7671a25ed5424011a379d", - "url": "https://github.com/olimorris/codecompanion.nvim/archive/9edf22cb71711cd7fab7671a25ed5424011a379d.tar.gz", - "hash": "1a23ra7q2aqa7raxa9jzgj852pz4bxkjr1k8qhh68lvrimmj0b73" + "revision": "c861811f8b825d30c0343951336d2bb8c8f6d990", + "url": "https://github.com/olimorris/codecompanion.nvim/archive/c861811f8b825d30c0343951336d2bb8c8f6d990.tar.gz", + "hash": "0a1mzwh07lhrx893w7xdlhgiivbrwqp7a0b9wkdrna99x8kd9d77" }, "codewindow-nvim": { "type": "Git", @@ -282,9 +285,9 @@ }, "branch": "master", "submodules": false, - "revision": "a8e175043ce3baaa89e0a6b5171bcd920aab3dad", - "url": "https://github.com/gorbit99/codewindow.nvim/archive/a8e175043ce3baaa89e0a6b5171bcd920aab3dad.tar.gz", - "hash": "12nsdynpym15fl9qwjzlzhxr2mbpa0l6sp2r1rrc300jr59q0gkr" + "revision": "dd7017617962943eb1d152fc58940f11c6775a4a", + "url": "https://github.com/gorbit99/codewindow.nvim/archive/dd7017617962943eb1d152fc58940f11c6775a4a.tar.gz", + "hash": "1kxkf50rkqrzqz03jvygbwxb1yfmqh0gskr00vpmyrq51569a2hw" }, "comment-nvim": { "type": "Git", @@ -308,9 +311,9 @@ }, "branch": "master", "submodules": false, - "revision": "6feb2f28f9a9385e401857b21eeac3c1b66dd628", - "url": "https://github.com/stevearc/conform.nvim/archive/6feb2f28f9a9385e401857b21eeac3c1b66dd628.tar.gz", - "hash": "1vfjv81b27qja3byfzskv1y57jsqwy6y0mac1ry7xpdbnva3vxwc" + "revision": "372fc521f8421b7830ea6db4d6ea3bae1c77548c", + "url": "https://github.com/stevearc/conform.nvim/archive/372fc521f8421b7830ea6db4d6ea3bae1c77548c.tar.gz", + "hash": "0b6qbwyb6ashpia7pk0r5kp82pdrblhmhmx1fprgy7lmgnm8mw97" }, "copilot-cmp": { "type": "Git", @@ -334,9 +337,9 @@ }, "branch": "master", "submodules": false, - "revision": "a620a5a97b73faba009a8160bab2885316e1451c", - "url": "https://github.com/zbirenbaum/copilot.lua/archive/a620a5a97b73faba009a8160bab2885316e1451c.tar.gz", - "hash": "0n3zkqnf5dqj6rdgf6nq50mjj7j5ngz4fzphfa13r7y8s5j0f6az" + "revision": "a5c390f8d8e85b501b22dcb2f30e0cbbd69d5ff0", + "url": "https://github.com/zbirenbaum/copilot.lua/archive/a5c390f8d8e85b501b22dcb2f30e0cbbd69d5ff0.tar.gz", + "hash": "1pk6mh40kbja49xlsqv70wl3j89i6p996gf8z95b9b50pd2dsdgk" }, "crates-nvim": { "type": "Git", @@ -347,9 +350,9 @@ }, "branch": "main", "submodules": false, - "revision": "25f31372ab6f504d4fd7cfee836ad459caed8e68", - "url": "https://github.com/Saecki/crates.nvim/archive/25f31372ab6f504d4fd7cfee836ad459caed8e68.tar.gz", - "hash": "0vxgvnm5z9zpriplqq2q17c4v7ccmpc9f5wl02wpslfvwrfc6h2h" + "revision": "73d2c590c74a0c582144987a4decb4a642755859", + "url": "https://github.com/Saecki/crates.nvim/archive/73d2c590c74a0c582144987a4decb4a642755859.tar.gz", + "hash": "08dyl4blgi0lb3s0jbl4jcpr4j1ncyrdvxjkrqmhqcg6bmwl7iqy" }, "csharpls-extended-lsp-nvim": { "type": "Git", @@ -360,9 +363,9 @@ }, "branch": "master", "submodules": false, - "revision": "9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4", - "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4.tar.gz", - "hash": "0ls3m94qk4vjwki7bjrf4di9fiwvh9hhkahav28c3nz14j559gs4" + "revision": "53c6dfc9790d262edd3d6a4483294bedf53d70f5", + "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/53c6dfc9790d262edd3d6a4483294bedf53d70f5.tar.gz", + "hash": "0hy3jaq5lq72yfvy77hijp8wzpbad7a1xfwrdljzbpm4w5j59dm2" }, "dashboard-nvim": { "type": "Git", @@ -373,9 +376,9 @@ }, "branch": "master", "submodules": false, - "revision": "0f99b3cd66b9fde13926724c67c6e1abeb48e07d", - "url": "https://github.com/glepnir/dashboard-nvim/archive/0f99b3cd66b9fde13926724c67c6e1abeb48e07d.tar.gz", - "hash": "0s0i568nj4mkq0q29gjj9cm050p7n8b2jykbkyl7qajc1piwa93x" + "revision": "b0551fae871fc39454a67cca1adcf76fbe2f61f9", + "url": "https://github.com/glepnir/dashboard-nvim/archive/b0551fae871fc39454a67cca1adcf76fbe2f61f9.tar.gz", + "hash": "0m67ij62dwnzyspyckhqvcsk81nvc16gx8zphghw4w2w4vl9lsrj" }, "diffview-nvim": { "type": "Git", @@ -451,9 +454,9 @@ }, "branch": "main", "submodules": false, - "revision": "6b4205aa380b1f118b7b4f6d004d3704b73d0d23", - "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/6b4205aa380b1f118b7b4f6d004d3704b73d0d23.tar.gz", - "hash": "1xa78afcnlvvvdp10bhy13sqyscl1z1n8s40jhdfqy42i98qqqnj" + "revision": "2f2e8d7010a0e5e725957828476b4e1625eaf82c", + "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/2f2e8d7010a0e5e725957828476b4e1625eaf82c.tar.gz", + "hash": "0m2qplldlcgzb6n5lwnwiac5n56zpyf3df015abfwrwba95zflfv" }, "fidget-nvim": { "type": "Git", @@ -490,9 +493,9 @@ }, "branch": "main", "submodules": false, - "revision": "d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1", - "url": "https://github.com/akinsho/flutter-tools.nvim/archive/d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1.tar.gz", - "hash": "046fk727prhav2aha62ak50qvc3mmv8sc438hkhhd1ql3ilb7jrr" + "revision": "6faf2c70bd56f1fe78620591a2bb73f4dc6f4870", + "url": "https://github.com/akinsho/flutter-tools.nvim/archive/6faf2c70bd56f1fe78620591a2bb73f4dc6f4870.tar.gz", + "hash": "0mhqzicm56xp20mm8swmick63p9sbbby394v0qykzb9l73wpqdka" }, "friendly-snippets": { "type": "Git", @@ -503,9 +506,9 @@ }, "branch": "main", "submodules": false, - "revision": "572f5660cf05f8cd8834e096d7b4c921ba18e175", - "url": "https://github.com/rafamadriz/friendly-snippets/archive/572f5660cf05f8cd8834e096d7b4c921ba18e175.tar.gz", - "hash": "08q7vs7p4grav819b6hl5y9zla8bbb461b6m1w0mjz6n6rqjjc0p" + "revision": "fc8f183479a472df60aa86f00e295462f2308178", + "url": "https://github.com/rafamadriz/friendly-snippets/archive/fc8f183479a472df60aa86f00e295462f2308178.tar.gz", + "hash": "1clmyxkw0gk9p9j72d75byws75vi3r7d04wica2dq5i0zkk49b27" }, "fzf-lua": { "type": "Git", @@ -516,9 +519,9 @@ }, "branch": "main", "submodules": false, - "revision": "a3e614173397e947bc2755c8c90633ff57f93c1e", - "url": "https://github.com/ibhagwan/fzf-lua/archive/a3e614173397e947bc2755c8c90633ff57f93c1e.tar.gz", - "hash": "03vh73ss0xm5sw392w3crmh5y60ajpn2b8ipnpslch2vaf155x6z" + "revision": "b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0", + "url": "https://github.com/ibhagwan/fzf-lua/archive/b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0.tar.gz", + "hash": "1yjfyz0fchibyb6wnnyxarn2v4fxxfvf9vy1pyvfc7mz5b4mzwc2" }, "gesture-nvim": { "type": "Git", @@ -581,9 +584,9 @@ }, "branch": "main", "submodules": false, - "revision": "8b729e489f1475615dc6c9737da917b3bc163605", - "url": "https://github.com/lewis6991/gitsigns.nvim/archive/8b729e489f1475615dc6c9737da917b3bc163605.tar.gz", - "hash": "06ag4vksr64l8yffrsahl86x45c1klyyfzw7b0fzzncp918drrmi" + "revision": "9cd665f46ab7af2e49d140d328b8e72ea1cf511b", + "url": "https://github.com/lewis6991/gitsigns.nvim/archive/9cd665f46ab7af2e49d140d328b8e72ea1cf511b.tar.gz", + "hash": "110ykgvd3hbjq8ilz1yvfcic1jpqzyz4r13dswmpv7nvsi7a2lb5" }, "glow-nvim": { "type": "Git", @@ -607,22 +610,9 @@ }, "branch": "main", "submodules": false, - "revision": "00e38a379bab3389e187b3953566d67d494dfddd", - "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/00e38a379bab3389e187b3953566d67d494dfddd.tar.gz", - "hash": "1qavm9qkx3rwl3dsvs4xzw0ffhf4lmgzdmc51l00rjrb50ia3cpm" - }, - "hardtime-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "m4xshen", - "repo": "hardtime.nvim" - }, - "branch": "main", - "submodules": false, - "revision": "1a3648a53002c2911ccb88e9c9f876cdc6c43ad6", - "url": "https://github.com/m4xshen/hardtime.nvim/archive/1a3648a53002c2911ccb88e9c9f876cdc6c43ad6.tar.gz", - "hash": "1dp0ckqq8s7s8si5r4889r84gpr38ghvsnar775rwg5vpsyq917d" + "revision": "c54db7f7e67832fbdd0ac14633f62c8a6997ddcf", + "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/c54db7f7e67832fbdd0ac14633f62c8a6997ddcf.tar.gz", + "hash": "0i7dh2d3l1w6bga6gpfssam7w1qkd84q3cxyscdfsf4j9z4b62l2" }, "harpoon": { "type": "Git", @@ -646,9 +636,9 @@ }, "branch": "master", "submodules": false, - "revision": "7ec43968cd30ba52b1ade311acffaecddb718259", - "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/7ec43968cd30ba52b1ade311acffaecddb718259.tar.gz", - "hash": "0cgilybpdwb5rd7i4z4f24ff3zz6f6zzk4vlnpkzx36z1538lxn4" + "revision": "fda0e5082ecc1c9e892f38b715d6f61e8829081d", + "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/fda0e5082ecc1c9e892f38b715d6f61e8829081d.tar.gz", + "hash": "0hi0ww7q0j042ssjk7x3d4s4vaninawpw3s0yrv1c4l1q5v6gnz1" }, "highlight-undo-nvim": { "type": "Git", @@ -718,19 +708,6 @@ "url": "https://github.com/3rd/image.nvim/archive/4c51d6202628b3b51e368152c053c3fb5c5f76f2.tar.gz", "hash": "16s1wsy9k72qiqzvwij67j2jzwgi6ggl6lhx9p6lfw8dpps3ayxg" }, - "img-clip": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "hakonharnes", - "repo": "img-clip.nvim" - }, - "branch": "main", - "submodules": false, - "revision": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d", - "url": "https://github.com/hakonharnes/img-clip.nvim/archive/08a02e14c8c0d42fa7a92c30a98fd04d6993b35d.tar.gz", - "hash": "0ani8z5pkvqmmalzcgyj27rfhqs76ivmpq79xn8rsdyy5a5fy979" - }, "indent-blankline-nvim": { "type": "Git", "repository": { @@ -766,9 +743,9 @@ }, "branch": "main", "submodules": false, - "revision": "189102b07cdd24de3bd7132e57da8c9614c385fc", - "url": "https://github.com/ggandor/leap.nvim/archive/189102b07cdd24de3bd7132e57da8c9614c385fc.tar.gz", - "hash": "0rdvrxdq43szm360rrnmxzmrm5wp6l91xkysnkl4d9p6rlyx01nz" + "revision": "2b68ddc0802bd295e64c9e2e75f18f755e50dbcc", + "url": "https://github.com/ggandor/leap.nvim/archive/2b68ddc0802bd295e64c9e2e75f18f755e50dbcc.tar.gz", + "hash": "07bdhfsig70qblvk2x0n35i5apz3mjdr05ba3082mh438ikgfmvx" }, "leetcode-nvim": { "type": "Git", @@ -792,9 +769,9 @@ }, "branch": "master", "submodules": false, - "revision": "2b30d8582126a12a493b737e9761969eb869a05b", - "url": "https://github.com/ray-x/lsp_signature.nvim/archive/2b30d8582126a12a493b737e9761969eb869a05b.tar.gz", - "hash": "12ywprr9mv1kfjagfsmp603r9nyrb993wq86jk5sxppj6zir4va9" + "revision": "a793d02b6a5e639fa9d3f2a89a839fa688ab2d0a", + "url": "https://github.com/ray-x/lsp_signature.nvim/archive/a793d02b6a5e639fa9d3f2a89a839fa688ab2d0a.tar.gz", + "hash": "0y5ffzj613kf0mq74yj248176fywn4vrsnn1fhip7j5yni1cyhzy" }, "lspkind-nvim": { "type": "Git", @@ -844,9 +821,9 @@ }, "branch": "master", "submodules": false, - "revision": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af", - "url": "https://github.com/hoob3rt/lualine.nvim/archive/0c6cca9f2c63dadeb9225c45bc92bb95a151d4af.tar.gz", - "hash": "11qwr67i0i04dvj9zjl9nfdwkb3i2vfza4i6066zd7msccv9z9v7" + "revision": "15884cee63a8c205334ab13ab1c891cd4d27101a", + "url": "https://github.com/hoob3rt/lualine.nvim/archive/15884cee63a8c205334ab13ab1c891cd4d27101a.tar.gz", + "hash": "0c251ywx5gsqwafgn2pb7qrv43cimrxp4wwqhlxccizf3l6l9wy1" }, "luasnip": { "type": "Git", @@ -857,9 +834,9 @@ }, "branch": "master", "submodules": false, - "revision": "faf3c94a44508cec1b961406d36cc65113ff3b98", - "url": "https://github.com/L3MON4D3/LuaSnip/archive/faf3c94a44508cec1b961406d36cc65113ff3b98.tar.gz", - "hash": "18d5wmf6s4z7h0vy87nkazikh9jpzk8i8c54g5kpmf3kfliv3lp1" + "revision": "c9b9a22904c97d0eb69ccb9bab76037838326817", + "url": "https://github.com/L3MON4D3/LuaSnip/archive/c9b9a22904c97d0eb69ccb9bab76037838326817.tar.gz", + "hash": "03anxdspqz7ylq4239jyr9y51mw5qw1lkccyvfhj6wfk43jjdryx" }, "lz-n": { "type": "Git", @@ -870,9 +847,9 @@ }, "branch": "master", "submodules": false, - "revision": "6984e04b8dfdecedd61687271947725bc86f66d5", - "url": "https://github.com/nvim-neorocks/lz.n/archive/6984e04b8dfdecedd61687271947725bc86f66d5.tar.gz", - "hash": "01qgwcq71v51dcimw1mlcy7ikkrw25s15jsmck1f6hkz4h08zqpq" + "revision": "a10519ab5940a5364560043df9dc3db328e27f98", + "url": "https://github.com/nvim-neorocks/lz.n/archive/a10519ab5940a5364560043df9dc3db328e27f98.tar.gz", + "hash": "18q0hai33qrb950lg8w9nk83smqpp1ahiyrn6pv9dqyakbqhx1k1" }, "lzn-auto-require": { "type": "Git", @@ -887,19 +864,6 @@ "url": "https://github.com/horriblename/lzn-auto-require/archive/ef746afb55467984ef3200d9709c8059ee0257d0.tar.gz", "hash": "1mgka1mmvpd2gfya898qdbbwrp5rpqds8manjs1s7g5x63xp6b98" }, - "markview-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "OXY2DEV", - "repo": "markview.nvim" - }, - "branch": "main", - "submodules": false, - "revision": "68c9603b6f88fd962444f8579024418fe5e170f1", - "url": "https://github.com/OXY2DEV/markview.nvim/archive/68c9603b6f88fd962444f8579024418fe5e170f1.tar.gz", - "hash": "1kfgr9d3kbxqagcddkns7n5fhmsm6xpx80gsrryyz96hxd8kj9ws" - }, "mind-nvim": { "type": "Git", "repository": { @@ -922,9 +886,9 @@ }, "branch": "main", "submodules": false, - "revision": "b91997d220086e92edc1fec5ce82094dcc234291", - "url": "https://github.com/echasnovski/mini.ai/archive/b91997d220086e92edc1fec5ce82094dcc234291.tar.gz", - "hash": "0ziv1l9jmj4a0yvj6xrx68j6hgivpxkp25cgnsw5k8i6h7m112mw" + "revision": "e139eb1101beb0250fea322f8c07a42f0f175688", + "url": "https://github.com/echasnovski/mini.ai/archive/e139eb1101beb0250fea322f8c07a42f0f175688.tar.gz", + "hash": "1lc7nwxlm4ndf2d2m4y90dybscig39qh5ijacns5r40w31rfgpmc" }, "mini-align": { "type": "Git", @@ -935,9 +899,9 @@ }, "branch": "main", "submodules": false, - "revision": "969bdcdf9b88e30bda9cb8ad6f56afed208778ad", - "url": "https://github.com/echasnovski/mini.align/archive/969bdcdf9b88e30bda9cb8ad6f56afed208778ad.tar.gz", - "hash": "0yp6flw1xwwb8s74186bi5pm3m0426aixl34g8dm98wl66hh162c" + "revision": "2b42ac0be7d570c2208f9e334ecef13453cd222d", + "url": "https://github.com/echasnovski/mini.align/archive/2b42ac0be7d570c2208f9e334ecef13453cd222d.tar.gz", + "hash": "12k8jv9f4kzn4gn507539v1llm1zn0afl2pwihv4gsr62l9gbmw9" }, "mini-animate": { "type": "Git", @@ -987,9 +951,9 @@ }, "branch": "main", "submodules": false, - "revision": "079b8375e40ebf3f8af319ad835263ff390c3965", - "url": "https://github.com/echasnovski/mini.bracketed/archive/079b8375e40ebf3f8af319ad835263ff390c3965.tar.gz", - "hash": "1d7kz48400bjdlkrlfparmi4w44mq08gp5bvz9vggc7hmm0baa4n" + "revision": "cd77e1e498a561a0f11b41a650caa1ba3a6a3fcc", + "url": "https://github.com/echasnovski/mini.bracketed/archive/cd77e1e498a561a0f11b41a650caa1ba3a6a3fcc.tar.gz", + "hash": "1490iv3j7ks3c04x48xqysq62kya9ygxca84avhah4pg43h1pws9" }, "mini-bufremove": { "type": "Git", @@ -1013,9 +977,9 @@ }, "branch": "main", "submodules": false, - "revision": "8b8598afa285f2a25cfd15a67e7eaa210ad405c3", - "url": "https://github.com/echasnovski/mini.clue/archive/8b8598afa285f2a25cfd15a67e7eaa210ad405c3.tar.gz", - "hash": "12p09p8b9b79fpqw8f9pfbs5l6gra3agbns0zaipm2aja0kkisva" + "revision": "298ece93383cf7feb82ff726ebe3570573cd6308", + "url": "https://github.com/echasnovski/mini.clue/archive/298ece93383cf7feb82ff726ebe3570573cd6308.tar.gz", + "hash": "09av4cxvfqc8vfhdhfa6dlv1l47hqfq9ip6w23xpdfv8acdhqr44" }, "mini-colors": { "type": "Git", @@ -1026,9 +990,9 @@ }, "branch": "main", "submodules": false, - "revision": "ef76867adda63d6010acdc8732a816c8527d276b", - "url": "https://github.com/echasnovski/mini.colors/archive/ef76867adda63d6010acdc8732a816c8527d276b.tar.gz", - "hash": "0z2cg6fsy5idqp0p3i6rrx9mp48g4z915ylbi5q597d1vmglqffm" + "revision": "c45b8ee96f0347134e34ba3f0adaf08a9a8826d3", + "url": "https://github.com/echasnovski/mini.colors/archive/c45b8ee96f0347134e34ba3f0adaf08a9a8826d3.tar.gz", + "hash": "1px2x50h613f3jahhr24bmkkwxpwnf68c5acz51r89rmj5dl5v9r" }, "mini-comment": { "type": "Git", @@ -1039,9 +1003,9 @@ }, "branch": "main", "submodules": false, - "revision": "22ee9f6be1c78bcebe009a564758e5b6df08903b", - "url": "https://github.com/echasnovski/mini.comment/archive/22ee9f6be1c78bcebe009a564758e5b6df08903b.tar.gz", - "hash": "1j1bg8506ag9fmjbx41w1hqnd61vyq1paclh2nc25krcbv2plyas" + "revision": "fb867a9246f9b892cf51a8c84a3f8479cdf1558c", + "url": "https://github.com/echasnovski/mini.comment/archive/fb867a9246f9b892cf51a8c84a3f8479cdf1558c.tar.gz", + "hash": "0d3yl412f95alg5rlvq387sbx3gwyqa0nc2f8ivgw5vllnwycj3a" }, "mini-completion": { "type": "Git", @@ -1052,9 +1016,9 @@ }, "branch": "main", "submodules": false, - "revision": "ea78d31e8164468f0b3a909f863806f2c4cb84c4", - "url": "https://github.com/echasnovski/mini.completion/archive/ea78d31e8164468f0b3a909f863806f2c4cb84c4.tar.gz", - "hash": "01zc0kvwiq1h37q4fgwqi0bg875dks8vxw3aqjg3kyjj1v3z0zw9" + "revision": "f0c324ff2142b02871cfb43049461e4f3f022a11", + "url": "https://github.com/echasnovski/mini.completion/archive/f0c324ff2142b02871cfb43049461e4f3f022a11.tar.gz", + "hash": "0q8w733i3428gzz6bk4ldc57smj55916imnpzx33arhfdvmzp8l0" }, "mini-cursorword": { "type": "GitRelease", @@ -1067,10 +1031,10 @@ "version_upper_bound": null, "release_prefix": null, "submodules": false, - "version": "v0.16.0", - "revision": "55ecfd08d8ff62375f5be9e5b5d5252324b220e8", - "url": "https://api.github.com/repos/echasnovski/mini.cursorword/tarball/v0.16.0", - "hash": "0sgii7m2lfp95vxnchisk3hpbjwwqpky6ivkx2nc5djkmj07b7mj" + "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", @@ -1081,9 +1045,9 @@ }, "branch": "main", "submodules": false, - "revision": "f7bcd3cb4561f7d3a02ae9afafeda899c82f7108", - "url": "https://github.com/echasnovski/mini.diff/archive/f7bcd3cb4561f7d3a02ae9afafeda899c82f7108.tar.gz", - "hash": "1z2jklgm72mj4rpknl4s9kl22in2b40vx1k7psscz4b8d6ljh41m" + "revision": "7e268d0241255abaa07b8aa0ddff028f7315fe21", + "url": "https://github.com/echasnovski/mini.diff/archive/7e268d0241255abaa07b8aa0ddff028f7315fe21.tar.gz", + "hash": "0isw55vz55pcpsyi27lx7i2wrvc9r5rbi6ndljcbn8rbmx36xlyq" }, "mini-doc": { "type": "Git", @@ -1107,9 +1071,9 @@ }, "branch": "main", "submodules": false, - "revision": "69ba107ac8712820f3ad391d327f62b57fead277", - "url": "https://github.com/echasnovski/mini.extra/archive/69ba107ac8712820f3ad391d327f62b57fead277.tar.gz", - "hash": "15q6q4laycfzb2rr2h948n61ybgv46cgcsgr8cjfwna4bby8gvj3" + "revision": "dc571df8f1f61debd59e200adfe7f701c0d67eca", + "url": "https://github.com/echasnovski/mini.extra/archive/dc571df8f1f61debd59e200adfe7f701c0d67eca.tar.gz", + "hash": "14zbqrwcxyhax10q082n4wqmqb3519i5kmj0zc8flwmswv742gyr" }, "mini-files": { "type": "Git", @@ -1120,9 +1084,9 @@ }, "branch": "main", "submodules": false, - "revision": "49c855977e9f4821d1ed8179ed44fe098b93ea2a", - "url": "https://github.com/echasnovski/mini.files/archive/49c855977e9f4821d1ed8179ed44fe098b93ea2a.tar.gz", - "hash": "12027xb9907zk145hsx6qniq1cjm8bm5405njq4cs9vx992pafsh" + "revision": "432142ada983ec5863ba480f0e4891b7d64ce3f6", + "url": "https://github.com/echasnovski/mini.files/archive/432142ada983ec5863ba480f0e4891b7d64ce3f6.tar.gz", + "hash": "0422sf8jx5sxws2kssi3ynynpmm1xpgk7i50dqml1kc8nymx4z5b" }, "mini-fuzzy": { "type": "Git", @@ -1211,9 +1175,9 @@ }, "branch": "main", "submodules": false, - "revision": "aad72c99f446086b0a53b8a660a2d89d296be057", - "url": "https://github.com/echasnovski/mini.jump/archive/aad72c99f446086b0a53b8a660a2d89d296be057.tar.gz", - "hash": "1dsqpcr54sglr0x9mmp0xxpmrmgq10j0xpnj2dxvxabi9h1h179a" + "revision": "65bf2c55680d8be63d29ce0c5ee4e33031426115", + "url": "https://github.com/echasnovski/mini.jump/archive/65bf2c55680d8be63d29ce0c5ee4e33031426115.tar.gz", + "hash": "17ilfgsazwq20rw42am1jzxvcdzbzsk65jzsxa5s8zs65sx6rdch" }, "mini-jump2d": { "type": "Git", @@ -1224,9 +1188,9 @@ }, "branch": "main", "submodules": false, - "revision": "6045bd61659d97926ba7ae5f9be8924e11c15079", - "url": "https://github.com/echasnovski/mini.jump2d/archive/6045bd61659d97926ba7ae5f9be8924e11c15079.tar.gz", - "hash": "1zk5y1gdkg8m1ncic0b0iqcp9k32pd1dklnw69jjwm30mxmixky8" + "revision": "c90f7f8cebf3282d0f0b228015fceefb841375c6", + "url": "https://github.com/echasnovski/mini.jump2d/archive/c90f7f8cebf3282d0f0b228015fceefb841375c6.tar.gz", + "hash": "04wv8q8g5p1sv6hdaq83rik9x7fq8ki4d617v5gk5d3nv0i6pqq0" }, "mini-map": { "type": "Git", @@ -1250,9 +1214,9 @@ }, "branch": "main", "submodules": false, - "revision": "d92235cfb7b1bce2dfc21d06ee1a1a3d7e04b969", - "url": "https://github.com/echasnovski/mini.misc/archive/d92235cfb7b1bce2dfc21d06ee1a1a3d7e04b969.tar.gz", - "hash": "0cbq6kw58jiiy7f3fraxkskr1vpwmdnpv38pbywwfr8w1f6rf2fi" + "revision": "f7252c5b8ff27d0856b91a410efe8e528370d919", + "url": "https://github.com/echasnovski/mini.misc/archive/f7252c5b8ff27d0856b91a410efe8e528370d919.tar.gz", + "hash": "02jrwcmbi74512240p8grlc9awivyihl6s71d60s46nslgqlnsqf" }, "mini-move": { "type": "Git", @@ -1289,9 +1253,9 @@ }, "branch": "main", "submodules": false, - "revision": "b79a95958c57e127704bbeb1dc11a511954fc888", - "url": "https://github.com/echasnovski/mini.operators/archive/b79a95958c57e127704bbeb1dc11a511954fc888.tar.gz", - "hash": "0dyackl7a6kayk7chd3qm45j7h1pjf1r6qhbdl7m21dzdbp9c4s5" + "revision": "c6d87731f1a2c849888754347ffc5a1395bf2977", + "url": "https://github.com/echasnovski/mini.operators/archive/c6d87731f1a2c849888754347ffc5a1395bf2977.tar.gz", + "hash": "1ijnhxajpii17a1rz1avp1i5j35an2dq0ji28v2wrvaa0b5jg13a" }, "mini-pairs": { "type": "Git", @@ -1315,9 +1279,9 @@ }, "branch": "main", "submodules": false, - "revision": "f02e64580a547346128799ba667dfc0e29737532", - "url": "https://github.com/echasnovski/mini.pick/archive/f02e64580a547346128799ba667dfc0e29737532.tar.gz", - "hash": "19aqwx8hisp5smj7qzgdzzcjz8k0p0vk21pxnnnxiv4w85d7s1zz" + "revision": "417c273861971b451687e847383e61687463b06e", + "url": "https://github.com/echasnovski/mini.pick/archive/417c273861971b451687e847383e61687463b06e.tar.gz", + "hash": "0xyw2wns9fpv1yxzflb18mmfajihy45g163q4bka0vylj77858xa" }, "mini-sessions": { "type": "Git", @@ -1367,9 +1331,9 @@ }, "branch": "main", "submodules": false, - "revision": "03a124f307ebfb9fd05a0e6503d30605c32a9e1a", - "url": "https://github.com/echasnovski/mini.starter/archive/03a124f307ebfb9fd05a0e6503d30605c32a9e1a.tar.gz", - "hash": "0c024xvdww9331bcfd3i7x8pp4phxkgqhnfv3fgld1imbnif1547" + "revision": "d8038690eadf203a40863c3a9423df880a901d39", + "url": "https://github.com/echasnovski/mini.starter/archive/d8038690eadf203a40863c3a9423df880a901d39.tar.gz", + "hash": "06rglm7m32lrgba47vb96kaxdsyz8pl2ivbr41m1swy3ihrv69y3" }, "mini-statusline": { "type": "Git", @@ -1484,9 +1448,9 @@ }, "branch": "main", "submodules": false, - "revision": "fc7bc0141500d9cf7c14f46fca846f728545a781", - "url": "https://github.com/mvllow/modes.nvim/archive/fc7bc0141500d9cf7c14f46fca846f728545a781.tar.gz", - "hash": "1vx3mdky29zh5410d8z1b6v1bb433ldmqmycqpapqs5zirxyf2ys" + "revision": "7c6ca20de4c9acb22ef06074e39fd2c021b99935", + "url": "https://github.com/mvllow/modes.nvim/archive/7c6ca20de4c9acb22ef06074e39fd2c021b99935.tar.gz", + "hash": "088bacsy76imlyd4njgrw7cg2l82dddr23g25qx81ihlaf3vmdjp" }, "multicursors-nvim": { "type": "GitRelease", @@ -1513,9 +1477,9 @@ }, "branch": "main", "submodules": false, - "revision": "3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde", - "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde.tar.gz", - "hash": "0mh0wv4x2pi6khwbp3fvi40n6hd3sz5ak81w9vf2xn3hh2z0mmqc" + "revision": "299e174c3b8373c9c1f9be0bc3967c852712d0f3", + "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/299e174c3b8373c9c1f9be0bc3967c852712d0f3.tar.gz", + "hash": "0vm7hbcqj548pvl9vfmzsgpx73lmrnmhp399bprizg87zn73m005" }, "neocord": { "type": "Git", @@ -1539,9 +1503,9 @@ }, "branch": "main", "submodules": false, - "revision": "f8c932adf75ba65cd015cdbcf9ed1b96814cf55e", - "url": "https://github.com/nvim-neorg/neorg/archive/f8c932adf75ba65cd015cdbcf9ed1b96814cf55e.tar.gz", - "hash": "1qb8m299cxn1w3n7ix9rrf2by52rhljql9fz236han28680j3d6k" + "revision": "35da593c55d78086a3203ee3e6d749fafe2e4e73", + "url": "https://github.com/nvim-neorg/neorg/archive/35da593c55d78086a3203ee3e6d749fafe2e4e73.tar.gz", + "hash": "0kxygwpfffa0blcy54g7cvm5laj77q0f72p69s43j9dpsps1h63y" }, "neorg-telescope": { "type": "Git", @@ -1617,9 +1581,9 @@ }, "branch": "main", "submodules": false, - "revision": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e", - "url": "https://github.com/nvimtools/none-ls.nvim/archive/db2a48b79cfcdab8baa5d3f37f21c78b6705c62e.tar.gz", - "hash": "0ii92d6si3habwkw4cd24s84xhi65apq1kagdj1j2q3kqcv7xxn0" + "revision": "751349f21bdf1acf7af091fead456866bf9a7e7d", + "url": "https://github.com/nvimtools/none-ls.nvim/archive/751349f21bdf1acf7af091fead456866bf9a7e7d.tar.gz", + "hash": "1zhqyjs914ib1yq42xq3aphw8pl4168h2k3ybm92z00ahi51kbqn" }, "nord": { "type": "Git", @@ -1643,9 +1607,9 @@ }, "branch": "main", "submodules": false, - "revision": "7cd18e73cfbd70e1546931b7268b3eebaeff9391", - "url": "https://github.com/MunifTanjim/nui.nvim/archive/7cd18e73cfbd70e1546931b7268b3eebaeff9391.tar.gz", - "hash": "0xl6qsl98ajzmk0wy7kf8q2vjqb30ci3dgwdcj376r87vwli6xd2" + "revision": "8d5b0b568517935d3c84f257f272ef004d9f5a59", + "url": "https://github.com/MunifTanjim/nui.nvim/archive/8d5b0b568517935d3c84f257f272ef004d9f5a59.tar.gz", + "hash": "0z5md64qly2dzm9pq46ldid45l44mfwqk3r1hirk8lj6djyrxv9m" }, "nvim-autopairs": { "type": "Git", @@ -1721,9 +1685,9 @@ }, "branch": "master", "submodules": false, - "revision": "b0f983507e3702f073bfe1516846e58b56d4e42f", - "url": "https://github.com/mfussenegger/nvim-dap/archive/b0f983507e3702f073bfe1516846e58b56d4e42f.tar.gz", - "hash": "17fcxlfkzh75q8sasjf21jbh18s78v9g80p5qrlgi0caqznj0hv7" + "revision": "8df427aeba0a06c6577dc3ab82de3076964e3b8d", + "url": "https://github.com/mfussenegger/nvim-dap/archive/8df427aeba0a06c6577dc3ab82de3076964e3b8d.tar.gz", + "hash": "13d04z1dnkrhslq6s1xba5myqkgxar3i3p2lhqvpawicbba8yp22" }, "nvim-dap-go": { "type": "Git", @@ -1786,9 +1750,9 @@ }, "branch": "master", "submodules": false, - "revision": "b47cbb249351873e3a571751c3fb66ed6369852f", - "url": "https://github.com/mfussenegger/nvim-lint/archive/b47cbb249351873e3a571751c3fb66ed6369852f.tar.gz", - "hash": "0cs6vs58p98fv6nmqsyik2kws6xnqbny79gl39mmyssm3z9mpps8" + "revision": "9dfb77ef6c5092a19502883c02dc5a02ec648729", + "url": "https://github.com/mfussenegger/nvim-lint/archive/9dfb77ef6c5092a19502883c02dc5a02ec648729.tar.gz", + "hash": "0772bgl09jcrvvhvpic2b07qb21kf2pr479g792jlwbr5jfa1pa0" }, "nvim-lspconfig": { "type": "Git", @@ -1799,9 +1763,9 @@ }, "branch": "master", "submodules": false, - "revision": "d45702594afc661a9dfa95e96acf18c56006d4d9", - "url": "https://github.com/neovim/nvim-lspconfig/archive/d45702594afc661a9dfa95e96acf18c56006d4d9.tar.gz", - "hash": "0rkbb0difvd68ihprsjvw59m6jlfdlpyqgamlfcfqn53yxawgbw3" + "revision": "641e567f975feab3815b47c7d29e6148e07afa77", + "url": "https://github.com/neovim/nvim-lspconfig/archive/641e567f975feab3815b47c7d29e6148e07afa77.tar.gz", + "hash": "1238hk6v3mm6hzjbipz60rva7crv95h2vzg6ph9wzplq52kzryav" }, "nvim-metals": { "type": "Git", @@ -1812,9 +1776,9 @@ }, "branch": "main", "submodules": false, - "revision": "d1639b7fccd845875e33444c7860ad292ab8670d", - "url": "https://github.com/scalameta/nvim-metals/archive/d1639b7fccd845875e33444c7860ad292ab8670d.tar.gz", - "hash": "1f6cgzs3vwqdva06jdcmyy5rldjlxg8x5fbdyq61hbl3xw5qjvsq" + "revision": "04d8ce24638412a2c93dd79fecca4b2c7b9c07f9", + "url": "https://github.com/scalameta/nvim-metals/archive/04d8ce24638412a2c93dd79fecca4b2c7b9c07f9.tar.gz", + "hash": "19mdfn5ni35ldjmwdg25cwiy9cvkg2cxrdhcjr9xplx7ln6zsld9" }, "nvim-navbuddy": { "type": "Git", @@ -1825,9 +1789,9 @@ }, "branch": "master", "submodules": false, - "revision": "a34786c77a528519f6b8a142db7609f6e387842d", - "url": "https://github.com/SmiteshP/nvim-navbuddy/archive/a34786c77a528519f6b8a142db7609f6e387842d.tar.gz", - "hash": "0b6bazh531bixskpmmpkidqii4n3m7n2cp9bmzml5wb0wibazcac" + "revision": "f22bac988f2dd073601d75ba39ea5636ab6e38cb", + "url": "https://github.com/SmiteshP/nvim-navbuddy/archive/f22bac988f2dd073601d75ba39ea5636ab6e38cb.tar.gz", + "hash": "034pmg403y0y1fxnb1jv291mr016bx1vn68y543v6v4dpbdlr7di" }, "nvim-navic": { "type": "Git", @@ -1838,9 +1802,9 @@ }, "branch": "master", "submodules": false, - "revision": "f887d794a0f4594882814d7780980a949200a238", - "url": "https://github.com/SmiteshP/nvim-navic/archive/f887d794a0f4594882814d7780980a949200a238.tar.gz", - "hash": "0mxsnwvrjirpy2ichsilx6207z55xi42syg5d3fdgs2r1p1npggc" + "revision": "39231352aec0d1e09cebbffdd9dc20a5dc691ffe", + "url": "https://github.com/SmiteshP/nvim-navic/archive/39231352aec0d1e09cebbffdd9dc20a5dc691ffe.tar.gz", + "hash": "1xj2bzax8hynm2x9zbvsaxv1j22chklyygzm1kbqxxs077qn45ws" }, "nvim-neoclip-lua": { "type": "Git", @@ -1890,9 +1854,9 @@ }, "branch": "main", "submodules": false, - "revision": "5b103ef0fd2e8b9b4be3878ed38d224522192c6c", - "url": "https://github.com/petertriho/nvim-scrollbar/archive/5b103ef0fd2e8b9b4be3878ed38d224522192c6c.tar.gz", - "hash": "1bh34njkvlbkjzy62w48rzjmliaj6lczgxxkks455r0w7yvfklv7" + "revision": "6994eb9f73d5fdc36ee2c8717940e8c853e51a49", + "url": "https://github.com/petertriho/nvim-scrollbar/archive/6994eb9f73d5fdc36ee2c8717940e8c853e51a49.tar.gz", + "hash": "0h01gcaqgjkb2392zl2jwvlsh5qmz10k9sy5rhyz1kwizmw7nw7y" }, "nvim-surround": { "type": "Git", @@ -1903,9 +1867,9 @@ }, "branch": "main", "submodules": false, - "revision": "8dd9150ca7eae5683660ea20cec86edcd5ca4046", - "url": "https://github.com/kylechui/nvim-surround/archive/8dd9150ca7eae5683660ea20cec86edcd5ca4046.tar.gz", - "hash": "1r7kvq8sa7g3vhj6d885jgq04xpk3xn21zn1sb9lbffdkxxkqs2k" + "revision": "0e62500b98f4513feaaf7425c135472457ea5b7d", + "url": "https://github.com/kylechui/nvim-surround/archive/0e62500b98f4513feaaf7425c135472457ea5b7d.tar.gz", + "hash": "0rwzz98n8gyx2bffxg7ga7vxxxcc4crbwimvglx6bxkdg2abwyrn" }, "nvim-tree-lua": { "type": "Git", @@ -1916,9 +1880,9 @@ }, "branch": "master", "submodules": false, - "revision": "ebcaccda1c575fa19a8087445276e6671e2b9b37", - "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/ebcaccda1c575fa19a8087445276e6671e2b9b37.tar.gz", - "hash": "1x1yw3xjpn2g0qxsniyjq4pxkccycbz499mwp9m6h8xdyhbafsvg" + "revision": "582ae48c9e43d2bcd55dfcc8e2e7a1f29065d924", + "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/582ae48c9e43d2bcd55dfcc8e2e7a1f29065d924.tar.gz", + "hash": "1xpal45q4mvplvgz06z4wzsq1ml5awv8v4m0k9jh9s4xlnc0va24" }, "nvim-treesitter-context": { "type": "Git", @@ -1929,22 +1893,9 @@ }, "branch": "master", "submodules": false, - "revision": "153a076598076bf5664ab868fb01d3418ecffce9", - "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/153a076598076bf5664ab868fb01d3418ecffce9.tar.gz", - "hash": "0l57jpnx5nfmddrsrnsj2wxfn4xl2fp5xghhjrdbhp8rg0xm6qn8" - }, - "nvim-treesitter-textobjects": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "nvim-treesitter", - "repo": "nvim-treesitter-textobjects" - }, - "branch": "master", - "submodules": false, - "revision": "0f051e9813a36481f48ca1f833897210dbcfffde", - "url": "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/archive/0f051e9813a36481f48ca1f833897210dbcfffde.tar.gz", - "hash": "1vy2ihqknjrbmn4lw81hvhhqdg1pc2wc32ir96506bb3d273am7b" + "revision": "6daca3ad780f045550b820f262002f35175a6c04", + "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/6daca3ad780f045550b820f262002f35175a6c04.tar.gz", + "hash": "0qprwd44hw9sz0vh14p6lpvs9vxrick462pfkradmal6ak1kfwn3" }, "nvim-ts-autotag": { "type": "Git", @@ -1968,9 +1919,9 @@ }, "branch": "main", "submodules": false, - "revision": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08", - "url": "https://github.com/kevinhwang91/nvim-ufo/archive/3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08.tar.gz", - "hash": "1akbq1nsm71snjx6n37070ycmhh46n5lqlvz6625zgsfg272fnz2" + "revision": "d4c8bdb06b7a589f004a53bf710196967752c63d", + "url": "https://github.com/kevinhwang91/nvim-ufo/archive/d4c8bdb06b7a589f004a53bf710196967752c63d.tar.gz", + "hash": "11zcr6vvj6gm5di63w55ccvwf2x7his8v9v8bingsz6l6n79dk6v" }, "nvim-web-devicons": { "type": "Git", @@ -1981,9 +1932,9 @@ }, "branch": "master", "submodules": false, - "revision": "1fb58cca9aebbc4fd32b086cb413548ce132c127", - "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/1fb58cca9aebbc4fd32b086cb413548ce132c127.tar.gz", - "hash": "0c69c4rwrrq9j5gwa17br5hpg28hvgl00apz06qgh5w2lwaxw4gr" + "revision": "50b5b06bff13a9b4eab946de7c7033649a6618a1", + "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/50b5b06bff13a9b4eab946de7c7033649a6618a1.tar.gz", + "hash": "1jsrwcsyjwlzk2l3x417pr6s6cq4zk6b6k417hhmrprrw66ajdb6" }, "obsidian-nvim": { "type": "Git", @@ -2033,9 +1984,9 @@ }, "branch": "master", "submodules": false, - "revision": "11de4da47f3e69cb70c3ae9816bd8af166cbe121", - "url": "https://github.com/navarasu/onedark.nvim/archive/11de4da47f3e69cb70c3ae9816bd8af166cbe121.tar.gz", - "hash": "1cqpd4yvcd6szbs95kxxr77mhfvgxcpjfybw8chlnnnwxxyh1k54" + "revision": "0e5512d1bebd1f08954710086f87a5caa173a924", + "url": "https://github.com/navarasu/onedark.nvim/archive/0e5512d1bebd1f08954710086f87a5caa173a924.tar.gz", + "hash": "14ixrvcp3h06kngq5ji54lf2l10k33vrmzs609xf7sqdy6rflm4j" }, "orgmode": { "type": "Git", @@ -2046,9 +1997,9 @@ }, "branch": "master", "submodules": false, - "revision": "55b68bbdfd22588d767f4401a3304df5d7427e19", - "url": "https://github.com/nvim-orgmode/orgmode/archive/55b68bbdfd22588d767f4401a3304df5d7427e19.tar.gz", - "hash": "03ywkg95c48bmpfqlc1ndzin09wfhzqgjv8mfjjz0ksh8xh8xv0l" + "revision": "27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3", + "url": "https://github.com/nvim-orgmode/orgmode/archive/27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3.tar.gz", + "hash": "176v9y36258jm8h3aaph57wgr6s7rgmgdnq9hgwialwn4bygfym0" }, "otter-nvim": { "type": "Git", @@ -2059,9 +2010,9 @@ }, "branch": "main", "submodules": false, - "revision": "fa436071c67233e6cd466268212feaf4ff4ed406", - "url": "https://github.com/jmbuhr/otter.nvim/archive/fa436071c67233e6cd466268212feaf4ff4ed406.tar.gz", - "hash": "0i8bkgyh8zaszm15h8lznd9ik1fh0l0mdcwyam4mnn4q0nhjqznb" + "revision": "a7766be1592bfa9e88e67512646e343d0b4b2ff5", + "url": "https://github.com/jmbuhr/otter.nvim/archive/a7766be1592bfa9e88e67512646e343d0b4b2ff5.tar.gz", + "hash": "18lcqr5qpa50jxmh5h53k0bsz0n3lzbihi8dchww3kz64b52hl5p" }, "oxocarbon": { "type": "Git", @@ -2176,9 +2127,9 @@ }, "branch": "main", "submodules": false, - "revision": "df64d5d5432e13026a79384ec4e2bab185fd4eb5", - "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/df64d5d5432e13026a79384ec4e2bab185fd4eb5.tar.gz", - "hash": "1pdl0s2k3sjlzdw1w6fv5cil51nkm4c6yjidp1xly94qjxwj6sv4" + "revision": "78ffe3b0500bbc7e37fabde723d96661538e8b32", + "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/78ffe3b0500bbc7e37fabde723d96661538e8b32.tar.gz", + "hash": "00dn9cpdvm7dy4xyhaij2rs0g0l926cqvjn03v06sray3adbyij5" }, "rose-pine": { "type": "Git", @@ -2189,9 +2140,9 @@ }, "branch": "main", "submodules": false, - "revision": "6b9840790cc7acdfadde07f308d34b62dd9cc675", - "url": "https://github.com/rose-pine/neovim/archive/6b9840790cc7acdfadde07f308d34b62dd9cc675.tar.gz", - "hash": "00f48nm3scap86vh0k5zs1vls0hb2qnjpiwsr54c6dpbycxq0yx3" + "revision": "96ff3993a67356ee85d1cdab9be652cdc1c5d1ac", + "url": "https://github.com/rose-pine/neovim/archive/96ff3993a67356ee85d1cdab9be652cdc1c5d1ac.tar.gz", + "hash": "0p712rivi5i3zlrigm86p8vrn1nvg4qils86snlw717cq3scj9gj" }, "rtp-nvim": { "type": "Git", @@ -2228,9 +2179,9 @@ }, "branch": "master", "submodules": false, - "revision": "eaa8d3dc22026da53fbb1b63f504541c70de44f4", - "url": "https://github.com/mrcjkb/rustaceanvim/archive/eaa8d3dc22026da53fbb1b63f504541c70de44f4.tar.gz", - "hash": "0wkpj6nd48k4gi7z82wfr5686nlp2g4s335zjgn5mkra0cfgflh7" + "revision": "3f2b7a94b7fa3c0f301dfa9644c94b543000efc2", + "url": "https://github.com/mrcjkb/rustaceanvim/archive/3f2b7a94b7fa3c0f301dfa9644c94b543000efc2.tar.gz", + "hash": "1y3x6m3yglkyv37xgli9k3dlw59yy3jbsp1phx75xqma1480dzy5" }, "smartcolumn-nvim": { "type": "Git", @@ -2261,19 +2212,6 @@ "url": "https://api.github.com/repos/folke/snacks.nvim/tarball/v2.22.0", "hash": "1hbm4fnw51qdp0nz83fcxbvnxjq2k57a37w6dp0wz6wkcx7cwxw9" }, - "solarized-osaka": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "craftzdog", - "repo": "solarized-osaka.nvim" - }, - "branch": "main", - "submodules": false, - "revision": "f796014c14b1910e08d42cc2077fef34f08e0295", - "url": "https://github.com/craftzdog/solarized-osaka.nvim/archive/f796014c14b1910e08d42cc2077fef34f08e0295.tar.gz", - "hash": "0jy2hk4fc210jih30ybvisr9pliya1s3nazw4d131vh5k4p1xqi6" - }, "sqls-nvim": { "type": "Git", "repository": { @@ -2309,9 +2247,9 @@ }, "branch": "master", "submodules": false, - "revision": "b4da76be54691e854d3e0e02c36b0245f945c2c7", - "url": "https://github.com/nvim-telescope/telescope.nvim/archive/b4da76be54691e854d3e0e02c36b0245f945c2c7.tar.gz", - "hash": "161qlx099ymi62qsd89srda605ynks1sswx3djamrwqp3dxb9596" + "revision": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5", + "url": "https://github.com/nvim-telescope/telescope.nvim/archive/a4ed82509cecc56df1c7138920a1aeaf246c0ac5.tar.gz", + "hash": "0vc2fr5nhbc39d55zn09fh8zpy4472ic4xmwvmk5dda8fqw76p8q" }, "tiny-devicons-auto-colors-nvim": { "type": "Git", @@ -2439,9 +2377,9 @@ }, "branch": "master", "submodules": false, - "revision": "0d1e93684da00ab7c057410fecfc24f434698898", - "url": "https://github.com/RRethy/vim-illuminate/archive/0d1e93684da00ab7c057410fecfc24f434698898.tar.gz", - "hash": "0456q474765p0r0q7frn1n9drl05d16alv7kn9qnw1235d20k81a" + "revision": "f985f5a4fbc410c9e5367f6b5863a8fa502e516d", + "url": "https://github.com/RRethy/vim-illuminate/archive/f985f5a4fbc410c9e5367f6b5863a8fa502e516d.tar.gz", + "hash": "0igx2i4k59vadhw7kgqvxjw9594n8p2n9yqszif9by8xq5gsd7g6" }, "vim-markdown": { "type": "Git",