Merge branch 'main' into fix-lsp-toggle-format-on-save

This commit is contained in:
raf 2025-05-06 09:19:35 +00:00 committed by GitHub
commit 21a440e2f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
75 changed files with 544 additions and 354 deletions

55
.github/labels.yml vendored Normal file
View file

@ -0,0 +1,55 @@
# 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

33
.github/workflows/backport.yml vendored Normal file
View file

@ -0,0 +1,33 @@
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+)?)$'

21
.github/workflows/labeler.yml vendored Normal file
View file

@ -0,0 +1,21 @@
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

View file

@ -18,12 +18,16 @@ isMaximal: {
}; };
lsp = { lsp = {
# This must be enabled for the language modules to hook into
# the LSP API.
enable = true;
formatOnSave = true; formatOnSave = true;
lspkind.enable = false; lspkind.enable = false;
lightbulb.enable = true; lightbulb.enable = true;
lspsaga.enable = false; lspsaga.enable = false;
trouble.enable = true; trouble.enable = true;
lspSignature.enable = true; lspSignature.enable = !isMaximal; # conflicts with blink in maximal
otter-nvim.enable = isMaximal; otter-nvim.enable = isMaximal;
nvim-docs-view.enable = isMaximal; nvim-docs-view.enable = isMaximal;
}; };
@ -38,8 +42,7 @@ isMaximal: {
# This section does not include a comprehensive list of available language modules. # This section does not include a comprehensive list of available language modules.
# To list all available language module options, please visit the nvf manual. # To list all available language module options, please visit the nvf manual.
languages = { languages = {
enableLSP = true; enableFormat = true; #
enableFormat = true;
enableTreesitter = true; enableTreesitter = true;
enableExtraDiagnostics = true; enableExtraDiagnostics = true;
@ -124,7 +127,15 @@ isMaximal: {
autopairs.nvim-autopairs.enable = true; autopairs.nvim-autopairs.enable = true;
autocomplete.nvim-cmp.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;
};
snippets.luasnip.enable = true; snippets.luasnip.enable = true;
filetree = { filetree = {
@ -142,6 +153,7 @@ isMaximal: {
binds = { binds = {
whichKey.enable = true; whichKey.enable = true;
cheatsheet.enable = true; cheatsheet.enable = true;
hardtime-nvim.enable = isMaximal;
}; };
telescope.enable = true; telescope.enable = true;

View file

@ -12,6 +12,7 @@
inherit inherit
( (
(lib.evalModules { (lib.evalModules {
specialArgs = {inherit inputs;};
modules = modules =
import ../modules/modules.nix { import ../modules/modules.nix {
inherit lib pkgs; inherit lib pkgs;

View file

@ -50,9 +50,8 @@ soon.
- A new section has been added for language support: `vim.languages.<language>`. - A new section has been added for language support: `vim.languages.<language>`.
- The options [](#opt-vim.languages.enableLSP), - The options `enableLSP` [](#opt-vim.languages.enableTreesitter), etc. will
[](#opt-vim.languages.enableTreesitter), etc. will enable the respective enable the respective section for all languages that have been enabled.
section for all languages that have been enabled.
- All LSP languages have been moved here - All LSP languages have been moved here
- `plantuml` and `markdown` have been moved here - `plantuml` and `markdown` have been moved here
- A new section has been added for `html`. The old - A new section has been added for `html`. The old

View file

@ -356,3 +356,17 @@
[poz](https://poz.pet): [poz](https://poz.pet):
- Fix gitsigns null-ls issue. - 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`).

12
flake.lock generated
View file

@ -38,11 +38,11 @@
}, },
"mnw": { "mnw": {
"locked": { "locked": {
"lastModified": 1745705214, "lastModified": 1746338991,
"narHash": "sha256-XGfaHbFI4vvDuaoVO3IFYZKezXIO8rhUaMCGcjY71Ac=", "narHash": "sha256-GbyoHjf14LOxZQc+0NFblI4xf/uwGrYo3W8lwE4HcwI=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "mnw", "repo": "mnw",
"rev": "c1f4587db4c53dcefa432c46c7a899a116d8e924", "rev": "c65407ee9387ef75985dad3e30f58c822c766ec1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -77,11 +77,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1745377448, "lastModified": 1746152631,
"narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=", "narHash": "sha256-zBuvmL6+CUsk2J8GINpyy8Hs1Zp4PP6iBWSmZ4SCQ/s=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c", "rev": "032bc6539bd5f14e9d0c51bd79cfe9a055b094c3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -18,10 +18,7 @@
systems = import inputs.systems; systems = import inputs.systems;
imports = [ imports = [
./flake/templates ./flake/templates
./flake/apps.nix ./flake/apps.nix
./flake/legacyPackages.nix
./flake/overlays.nix
./flake/packages.nix ./flake/packages.nix
./flake/develop.nix ./flake/develop.nix
]; ];

31
flake/blink/default.nix Normal file
View file

@ -0,0 +1,31 @@
{
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=";
};
postInstall = ''
cp -r {lua,plugin} "$out"
mkdir -p "$out/target"
mv "$out/lib" "$out/target/release"
'';
cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M=";
useFetchCargoVendor = true;
nativeBuildInputs = [
(writeShellScriptBin "git" "exit 1")
];
env.RUSTC_BOOTSTRAP = true;
})

View file

@ -3,13 +3,14 @@
pkgs, pkgs,
config, config,
self', self',
inputs',
... ...
}: { }: {
devShells = { devShells = {
default = self'.devShells.lsp; default = self'.devShells.lsp;
nvim-nix = pkgs.mkShellNoCC {packages = [config.packages.nix];}; nvim-nix = pkgs.mkShellNoCC {packages = [config.packages.nix];};
lsp = pkgs.mkShellNoCC { lsp = pkgs.mkShellNoCC {
packages = with pkgs; [nil statix deadnix alejandra npins]; packages = with pkgs; [inputs'.nil.packages.default statix deadnix alejandra npins];
}; };
}; };

View file

@ -1,35 +0,0 @@
{
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;
};
};
})
];
};
};
}

View file

@ -1,37 +0,0 @@
{
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"];
}

View file

@ -1,19 +0,0 @@
{
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;}];
};
}

View file

@ -1,4 +1,4 @@
{inputs, ...}: { {inputs, ...} @ args: {
perSystem = { perSystem = {
config, config,
pkgs, pkgs,
@ -6,8 +6,15 @@
... ...
}: let }: let
docs = import ../docs {inherit pkgs inputs lib;}; docs = import ../docs {inherit pkgs inputs lib;};
buildPkg = maximal:
(args.config.flake.lib.nvim.neovimConfiguration {
inherit pkgs;
modules = [(import ../configuration.nix maximal)];
}).neovim;
in { in {
packages = { packages = {
blink-cmp = pkgs.callPackage ./blink {};
inherit (docs.manual) htmlOpenTool; inherit (docs.manual) htmlOpenTool;
# Documentation # Documentation
docs = docs.manual.html; docs = docs.manual.html;
@ -61,9 +68,9 @@
''; '';
# Exposed neovim configurations # Exposed neovim configurations
nix = config.legacyPackages.neovim-nix; nix = buildPkg false;
maximal = config.legacyPackages.neovim-maximal; maximal = buildPkg true;
default = config.legacyPackages.neovim-nix; default = config.packages.nix;
}; };
}; };
} }

View file

@ -26,12 +26,22 @@
config.vim = { config.vim = {
theme.enable = true; 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. # Language support and automatic configuration of companion plugins.
# Note that enabling, e.g., languages.<lang>.diagnostics will automatically # Note that enabling, e.g., languages.<lang>.diagnostics will automatically
# enable top-level options such as enableLSP or enableExtraDiagnostics as # enable top-level options such as enableLSP or enableExtraDiagnostics as
# they are needed. # they are needed.
languages = { languages = {
enableLSP = true;
enableFormat = true; enableFormat = true;
enableTreesitter = true; enableTreesitter = true;
enableExtraDiagnostics = true; enableExtraDiagnostics = true;

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: { }: {
types = import ./types {inherit lib;}; types = import ./types {inherit lib self;};
config = import ./config.nix {inherit lib;}; config = import ./config.nix {inherit lib;};
binds = import ./binds.nix {inherit lib;}; binds = import ./binds.nix {inherit lib;};
dag = import ./dag.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;};

View file

@ -1,6 +1,9 @@
{lib}: let {
lib,
self,
}: let
typesDag = import ./dag.nix {inherit lib;}; typesDag = import ./dag.nix {inherit lib;};
typesPlugin = import ./plugins.nix {inherit lib;}; typesPlugin = import ./plugins.nix {inherit lib self;};
typesLanguage = import ./languages.nix {inherit lib;}; typesLanguage = import ./languages.nix {inherit lib;};
customTypes = import ./custom.nix {inherit lib;}; customTypes = import ./custom.nix {inherit lib;};
in { in {

View file

@ -1,4 +1,7 @@
{lib}: let {
lib,
self,
}: let
inherit (lib.options) mkOption; inherit (lib.options) mkOption;
inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair; inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair;
inherit (lib.strings) hasPrefix removePrefix; inherit (lib.strings) hasPrefix removePrefix;
@ -12,7 +15,7 @@
mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs); mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs);
# Get the names of all npins # Get the names of all npins
pluginInputNames = attrNames (lib.importJSON ../../npins/sources.json).pins; pluginInputNames = ["blink-cmp"] ++ attrNames self.pins;
# You can either use the name of the plugin or a package. # You can either use the name of the plugin or a package.
pluginType = nullOr ( pluginType = nullOr (

View file

@ -5,7 +5,7 @@
}: let }: let
inherit (builtins) filter; inherit (builtins) filter;
inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.modules) mkIf mkMerge mkDefault;
inherit (lib.options) mkOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) attrsOf; inherit (lib.types) attrsOf;
inherit (lib.strings) concatLines; inherit (lib.strings) concatLines;
inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs;
@ -27,7 +27,17 @@
enabledServers = filterAttrs (_: u: u.enable) cfg.servers; enabledServers = filterAttrs (_: u: u.enable) cfg.servers;
in { in {
options = { options = {
vim.lsp.servers = mkOption { 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; type = attrsOf lspOptions;
default = {}; default = {};
example = '' example = ''
@ -49,10 +59,10 @@ in {
} }
''; '';
description = '' description = ''
LSP configurations that will be managed using `vim.lsp.config()` and LSP configurations that will be managed using `vim.lsp.config()` and related
related utilities added in Neovim 0.11. LSPs defined here will be utilities added in Neovim 0.11. LSPs defined here will be added to the
added to the resulting {file}`init.lua` using `vim.lsp.config` and resulting {file}`init.lua` using `vim.lsp.config` and enabled through
enabled through `vim.lsp.enable` below the configuration table. `vim.lsp.enable()` API from Neovim below the configuration table.
You may review the generated configuration by running {command}`nvf-print-config` You may review the generated configuration by running {command}`nvf-print-config`
in a shell. Please see {command}`:help lsp-config` for more details in a shell. Please see {command}`:help lsp-config` for more details
@ -60,6 +70,7 @@ in {
''; '';
}; };
}; };
};
config = mkMerge [ config = mkMerge [
{ {

View file

@ -683,15 +683,48 @@ in {
}; };
git_placement = mkOption { git_placement = mkOption {
type = enum ["before" "after" "signcolumn"]; type = enum ["before" "after" "signcolumn" "right_align"];
description = "Place where the git icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled.";
default = "before"; default = "before";
description = ''
Place where the git icons will be rendered.
`signcolumn` requires `view.signcolumn` to be enabled.
'';
}; };
modified_placement = mkOption { modified_placement = mkOption {
type = enum ["before" "after" "signcolumn"]; type = enum ["before" "after" "signcolumn" "right_align"];
description = "Place where the modified icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled.";
default = "after"; 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 { padding = mkOption {

View file

@ -20,7 +20,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
type = package; type = package;

View file

@ -81,7 +81,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Astro LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -56,7 +56,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Bash LSP server to use"; description = "Bash LSP server to use";

View file

@ -98,7 +98,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "clang LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "clang LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "The clang LSP server to use"; description = "The clang LSP server to use";

View file

@ -91,7 +91,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "C# LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "C# LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "C# LSP server to use"; description = "C# LSP server to use";
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -80,7 +80,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "CSS LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "CSS LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "CSS LSP server to use"; description = "CSS LSP server to use";

View file

@ -21,7 +21,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "CUE LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "CUE LSP support" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
type = package; type = package;

View file

@ -77,7 +77,7 @@ in {
flutter-tools = { flutter-tools = {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableLSP; default = config.vim.lsp.enable;
description = "Enable flutter-tools for flutter support"; description = "Enable flutter-tools for flutter support";
}; };
@ -143,8 +143,6 @@ in {
}) })
(mkIf ftcfg.enable { (mkIf ftcfg.enable {
lsp.enable = true;
startPlugins = [ startPlugins = [
( (
if ftcfg.enableNoResolvePatch if ftcfg.enableNoResolvePatch

View file

@ -1,8 +1,5 @@
{ {lib, ...}: let
config, inherit (lib.modules) mkRenamedOptionModule;
lib,
...
}: let
inherit (lib.nvim.languages) mkEnable; inherit (lib.nvim.languages) mkEnable;
in { in {
imports = [ imports = [
@ -48,13 +45,12 @@ in {
./wgsl.nix ./wgsl.nix
./yaml.nix ./yaml.nix
./ruby.nix ./ruby.nix
# This is now a hard deprecation.
(mkRenamedOptionModule ["vim" "languages" "enableLSP"] ["vim" "lsp" "enable"])
]; ];
options.vim.languages = { options.vim.languages = {
# LSPs are now built into Neovim, and we should enable them by default
# if `vim.lsp.enable` is true.
enableLSP = mkEnable "LSP" // {default = config.vim.lsp.enable;};
# Those are still managed by plugins, and should be enabled here. # Those are still managed by plugins, and should be enabled here.
enableDAP = mkEnable "Debug Adapter"; enableDAP = mkEnable "Debug Adapter";
enableTreesitter = mkEnable "Treesitter"; enableTreesitter = mkEnable "Treesitter";

View file

@ -53,7 +53,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Elixir LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Elixir LSP server to use"; description = "Elixir LSP server to use";

View file

@ -51,7 +51,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "F# LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "F# LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);
default = defaultServer; default = defaultServer;

View file

@ -41,7 +41,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Gleam LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -67,7 +67,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Go LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Go LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Go LSP server to use"; description = "Go LSP server to use";

View file

@ -25,7 +25,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "Haskell LSP package or command to run the Haskell LSP"; description = "Haskell LSP package or command to run the Haskell LSP";
example = ''[ (lib.getExe pkgs.haskellPackages.haskell-language-server) "--debug" ]''; example = ''[ (lib.getExe pkgs.haskellPackages.haskell-language-server) "--debug" ]'';

View file

@ -43,7 +43,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.lsp.enable;};
# TODO: (maybe, is it better?) it would be cooler to use vscode-extensions.hashicorp.hcl probably, shouldn't be too hard # TODO: (maybe, is it better?) it would be cooler to use vscode-extensions.hashicorp.hcl probably, shouldn't be too hard
package = mkOption { package = mkOption {
type = package; type = package;

View file

@ -54,7 +54,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Helm LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Helm LSP server to use"; description = "Helm LSP server to use";

View file

@ -23,7 +23,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "java language server package, or the command to run as a list of strings"; 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"]''; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]'';

View file

@ -78,7 +78,7 @@ in {
lsp = { lsp = {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableLSP; default = config.vim.lsp.enable;
description = '' description = ''
Whether to enable Julia LSP support. Whether to enable Julia LSP support.

View file

@ -30,7 +30,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "kotlin_language_server package with Kotlin runtime"; description = "kotlin_language_server package with Kotlin runtime";

View file

@ -43,7 +43,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "LuaLS package, or the command to run as a list of strings"; description = "LuaLS package, or the command to run as a list of strings";

View file

@ -67,7 +67,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -54,7 +54,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Nim LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Nim LSP server to use"; description = "Nim LSP server to use";
type = str; type = str;

View file

@ -2,6 +2,7 @@
config, config,
pkgs, pkgs,
lib, lib,
inputs,
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
@ -27,7 +28,7 @@
else ''{"${package}/bin/${defaultCmd}"}''; else ''{"${package}/bin/${defaultCmd}"}'';
servers = { servers = {
nil = { nil = {
package = pkgs.nil; package = inputs.nil.packages.${pkgs.stdenv.system}.nil;
internalFormatter = true; internalFormatter = true;
lspConfig = '' lspConfig = ''
lspconfig.nil_ls.setup{ lspconfig.nil_ls.setup{
@ -143,7 +144,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Nix LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Nix LSP server to use"; description = "Nix LSP server to use";
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -40,7 +40,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Nu LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = str; type = str;
default = defaultServer; default = defaultServer;

View file

@ -49,7 +49,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "OCaml LSP server to user"; description = "OCaml LSP server to user";
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -41,7 +41,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Odin LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -95,7 +95,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "PHP LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "PHP LSP server to use"; description = "PHP LSP server to use";

View file

@ -169,7 +169,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Python LSP server to use"; description = "Python LSP server to use";

View file

@ -79,7 +79,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "R LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "R LSP server to use"; description = "R LSP server to use";

View file

@ -57,7 +57,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Ruby LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -43,7 +43,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "rust-analyzer package, or the command to run as a list of strings"; 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"]''; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]'';

View file

@ -33,7 +33,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.lsp.enable;};
package = mkPackageOption pkgs "metals" { package = mkPackageOption pkgs "metals" {
default = ["metals"]; default = ["metals"];
}; };

View file

@ -79,7 +79,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "SQL LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "SQL LSP server to use"; description = "SQL LSP server to use";

View file

@ -77,7 +77,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Svelte LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Svelte LSP server to use"; description = "Svelte LSP server to use";

View file

@ -35,7 +35,7 @@ in {
enable = mkEnableOption "Tailwindcss language support"; enable = mkEnableOption "Tailwindcss language support";
lsp = { lsp = {
enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Tailwindcss LSP server to use"; description = "Tailwindcss LSP server to use";

View file

@ -20,7 +20,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;};
package = mkOption { package = mkOption {
description = "terraform-ls package"; description = "terraform-ls package";

View file

@ -120,7 +120,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Typescript/Javascript LSP server to use"; description = "Typescript/Javascript LSP server to use";

View file

@ -76,7 +76,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Typst LSP server to use"; description = "Typst LSP server to use";

View file

@ -50,7 +50,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Vala LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
description = "Vala LSP server to use"; description = "Vala LSP server to use";
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -42,7 +42,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "WGSL LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -55,7 +55,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "YAML LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "YAML LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -72,7 +72,7 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Zig LSP support" // {default = config.vim.languages.enableLSP;}; enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;};
server = mkOption { server = mkOption {
type = enum (attrNames servers); type = enum (attrNames servers);

View file

@ -14,8 +14,6 @@ in {
config = mkIf cfg.lspconfig.enable (mkMerge [ config = mkIf cfg.lspconfig.enable (mkMerge [
{ {
vim = { vim = {
lsp.enable = true;
startPlugins = ["nvim-lspconfig"]; startPlugins = ["nvim-lspconfig"];
pluginRC.lspconfig = entryAfter ["lsp-setup"] '' pluginRC.lspconfig = entryAfter ["lsp-setup"] ''

View file

@ -3,11 +3,12 @@
inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.binds) mkMappingOption;
in { in {
options.vim.lsp = { options.vim.lsp = {
enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options";
formatOnSave = mkEnableOption "format on save"; formatOnSave = mkEnableOption "format on save";
inlayHints = { inlayHints = {
enable = mkEnableOption "inlay hints"; enable = mkEnableOption "inlay hints";
}; };
mappings = { mappings = {
goToDefinition = goToDefinition =
mkMappingOption "Go to definition" mkMappingOption "Go to definition"

View file

@ -109,7 +109,7 @@ in {
type = nullOr str; type = nullOr str;
default = null; default = null;
description = '' description = ''
The indicatotor icon to use for the current buffer. The indicator icon to use for the current buffer.
::: {.warning} ::: {.warning}
This **must** be omitted while style is not `icon` This **must** be omitted while style is not `icon`

View file

@ -4,7 +4,7 @@
... ...
}: let }: let
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) nullOr listOf enum bool str int either; inherit (lib.types) nullOr listOf enum bool str int;
inherit (lib.modules) mkRenamedOptionModule; inherit (lib.modules) mkRenamedOptionModule;
inherit (lib.nvim.types) mkPluginSetupOption borderType; inherit (lib.nvim.types) mkPluginSetupOption borderType;
mkSimpleIconOption = default: mkSimpleIconOption = default:
@ -74,7 +74,7 @@ in {
::: {.note} ::: {.note}
This will pass `draw_empty` to the `nvim_navic` winbar This will pass `draw_empty` to the `nvim_navic` winbar
component, which causes the component to be drawn even component, which causes the component to be drawn even
if it's empty if it's empty.
::: :::
''; '';
}; };
@ -86,145 +86,163 @@ in {
close = mkOption { close = mkOption {
type = str; type = str;
default = "<esc>"; default = "<esc>";
description = "keybinding to close Navbuddy UI"; description = "Close and return the cursor to its original location.";
}; };
nextSibling = mkOption { nextSibling = mkOption {
type = str; type = str;
default = "j"; default = "j";
description = "keybinding to navigate to the next sibling node"; description = "Navigate to the next sibling node.";
}; };
previousSibling = mkOption { previousSibling = mkOption {
type = str; type = str;
default = "k"; default = "k";
description = "keybinding to navigate to the previous sibling node"; description = "Navigate to the previous sibling node.";
}; };
parent = mkOption { parent = mkOption {
type = str; type = str;
default = "h"; default = "h";
description = "keybinding to navigate to the parent node"; description = "Navigate to the parent node.";
}; };
children = mkOption { children = mkOption {
type = str; type = str;
default = "l"; default = "l";
description = "keybinding to navigate to the child node"; description = "Navigate to the child node.";
}; };
root = mkOption { root = mkOption {
type = str; type = str;
default = "0"; default = "0";
description = "keybinding to navigate to the root node"; description = "Navigate to the root node.";
}; };
visualName = mkOption { visualName = mkOption {
type = str; type = str;
default = "v"; default = "v";
description = "visual selection of name"; description = "Select the name visually.";
}; };
visualScope = mkOption { visualScope = mkOption {
type = str; type = str;
default = "V"; default = "V";
description = "visual selection of scope"; description = "Select the scope visually.";
}; };
yankName = mkOption { yankName = mkOption {
type = str; type = str;
default = "y"; default = "y";
description = "yank the name to system clipboard"; description = "Yank the name to system clipboard.";
}; };
yankScope = mkOption { yankScope = mkOption {
type = str; type = str;
default = "Y"; default = "Y";
description = "yank the scope to system clipboard"; description = "Yank the scope to system clipboard.";
}; };
insertName = mkOption { insertName = mkOption {
type = str; type = str;
default = "i"; default = "i";
description = "insert at start of name"; description = "Insert at the start of name.";
}; };
insertScope = mkOption { insertScope = mkOption {
type = str; type = str;
default = "I"; default = "I";
description = "insert at start of scope"; description = "Insert at the start of scope.";
}; };
appendName = mkOption { appendName = mkOption {
type = str; type = str;
default = "a"; default = "a";
description = "insert at end of name"; description = "Insert at the end of name.";
}; };
appendScope = mkOption { appendScope = mkOption {
type = str; type = str;
default = "A"; default = "A";
description = "insert at end of scope"; description = "Insert at the end of scope.";
}; };
rename = mkOption { rename = mkOption {
type = str; type = str;
default = "r"; default = "r";
description = "rename the node"; description = "Rename the node.";
}; };
delete = mkOption { delete = mkOption {
type = str; type = str;
default = "d"; default = "d";
description = "delete the node"; description = "Delete the node.";
}; };
foldCreate = mkOption { foldCreate = mkOption {
type = str; type = str;
default = "f"; default = "f";
description = "create a new fold"; description = "Create a new fold of the node.";
}; };
foldDelete = mkOption { foldDelete = mkOption {
type = str; type = str;
default = "F"; default = "F";
description = "delete the current fold"; description = "Delete the current fold of the node.";
}; };
comment = mkOption { comment = mkOption {
type = str; type = str;
default = "c"; default = "c";
description = "comment the node"; description = "Comment the node.";
}; };
select = mkOption { select = mkOption {
type = str; type = str;
default = "<enter>"; default = "<enter>";
description = "goto selected symbol"; description = "Goto the node.";
}; };
moveDown = mkOption { moveDown = mkOption {
type = str; type = str;
default = "J"; default = "J";
description = "move focused node down"; description = "Move the node down.";
}; };
moveUp = mkOption { moveUp = mkOption {
type = str; type = str;
default = "K"; default = "K";
description = "move focused node up"; description = "Move the node up.";
};
togglePreview = mkOption {
type = str;
default = "s";
description = "Toggle the preview.";
};
vsplit = mkOption {
type = str;
default = "<C-v>";
description = "Open the node in a vertical split.";
};
hsplit = mkOption {
type = str;
default = "<C-s>";
description = "Open the node in a horizontal split.";
}; };
telescope = mkOption { telescope = mkOption {
type = str; type = str;
default = "t"; default = "t";
description = "fuzzy finder at current level"; description = "Start fuzzy finder at the current level.";
}; };
help = mkOption { help = mkOption {
type = str; type = str;
default = "g?"; default = "g?";
description = "open mapping help window"; description = "Open the mappings help window.";
}; };
}; };
@ -232,7 +250,7 @@ in {
useDefaultMappings = mkOption { useDefaultMappings = mkOption {
type = bool; type = bool;
default = true; default = true;
description = "use default Navbuddy keybindings (disables user-specified keybinds)"; description = "Add the default Navbuddy keybindings in addition to the keybinding added by this module.";
}; };
window = { window = {
@ -242,13 +260,13 @@ in {
border = mkOption { border = mkOption {
type = borderType; type = borderType;
default = config.vim.ui.borders.globalStyle; default = config.vim.ui.borders.globalStyle;
description = "border style to use"; description = "The border style to use.";
}; };
scrolloff = mkOption { scrolloff = mkOption {
type = nullOr int; type = nullOr int;
default = null; default = null;
description = "Scrolloff value within navbuddy window"; description = "The scrolloff value within a navbuddy window.";
}; };
sections = { sections = {
@ -265,7 +283,7 @@ in {
border = mkOption { border = mkOption {
type = borderType; type = borderType;
default = config.vim.ui.borders.globalStyle; default = config.vim.ui.borders.globalStyle;
description = "border style to use for the left section of Navbuddy UI"; description = "The border style to use for the left section of the Navbuddy UI.";
}; };
}; };
@ -282,7 +300,7 @@ in {
border = mkOption { border = mkOption {
type = borderType; type = borderType;
default = config.vim.ui.borders.globalStyle; default = config.vim.ui.borders.globalStyle;
description = "border style to use for the middle section of Navbuddy UI"; description = "The border style to use for the middle section of the Navbuddy UI.";
}; };
}; };
@ -292,13 +310,13 @@ in {
border = mkOption { border = mkOption {
type = borderType; type = borderType;
default = config.vim.ui.borders.globalStyle; default = config.vim.ui.borders.globalStyle;
description = "border style to use for the right section of Navbuddy UI"; description = "The border style to use for the right section of the Navbuddy UI.";
}; };
preview = mkOption { preview = mkOption {
type = enum ["leaf" "always" "never"]; type = enum ["leaf" "always" "never"];
default = "leaf"; default = "leaf";
description = "display mode of the preview on the right section"; description = "The display mode of the preview on the right section.";
}; };
}; };
}; };
@ -317,13 +335,13 @@ in {
auto_attach = mkOption { auto_attach = mkOption {
type = bool; type = bool;
default = true; default = true;
description = "Whether to attach to LSP server manually"; description = "Whether to attach to LSP server manually.";
}; };
preference = mkOption { preference = mkOption {
type = nullOr (listOf str); type = nullOr (listOf str);
default = null; default = null;
description = "list of lsp server names in order of preference"; description = "The preference list ranking LSP servers.";
}; };
}; };
@ -331,25 +349,25 @@ in {
followNode = mkOption { followNode = mkOption {
type = bool; type = bool;
default = true; default = true;
description = "keep the current node in focus on the source buffer"; description = "Whether to keep the current node in focus in the source buffer.";
}; };
highlight = mkOption { highlight = mkOption {
type = bool; type = bool;
default = true; default = true;
description = "highlight the currently focused node"; description = "Whether to highlight the currently focused node in the source buffer.";
}; };
reorient = mkOption { reorient = mkOption {
type = enum ["smart" "top" "mid" "none"]; type = enum ["smart" "top" "mid" "none"];
default = "smart"; default = "smart";
description = "reorient buffer after changing nodes"; description = "The mode for reorienting the source buffer after moving nodes.";
}; };
scrolloff = mkOption { scrolloff = mkOption {
type = nullOr int; type = nullOr int;
default = null; default = null;
description = "scrolloff value when navbuddy is open"; description = "The scrolloff value in the source buffer when Navbuddy is open.";
}; };
}; };

View file

@ -64,6 +64,11 @@ in {
${cfg.navbuddy.mappings.moveDown} = mkLuaInline "actions.move_down()"; ${cfg.navbuddy.mappings.moveDown} = mkLuaInline "actions.move_down()";
${cfg.navbuddy.mappings.moveUp} = mkLuaInline "actions.move_up()"; ${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 '' ${cfg.navbuddy.mappings.telescope} = mkLuaInline ''
actions.telescope({ actions.telescope({
layout_strategy = "horizontal", layout_strategy = "horizontal",

View file

@ -2,5 +2,6 @@ _: {
imports = [ imports = [
./which-key ./which-key
./cheatsheet ./cheatsheet
./hardtime
]; ];
} }

View file

@ -0,0 +1,21 @@
{
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})
'';
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./hardtime.nix
./config.nix
];
}

View file

@ -0,0 +1,10 @@
{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" {};
};
}

View file

@ -51,7 +51,7 @@
doCheck = false; doCheck = false;
}; };
inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp;
}; };
buildConfigPlugins = plugins: buildConfigPlugins = plugins:
@ -62,17 +62,14 @@
filter (f: f != null) plugins 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 # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to
# generate a wrapped Neovim package. # generate a wrapped Neovim package.
neovim-wrapped = inputs.mnw.lib.wrap pkgs { neovim-wrapped = inputs.mnw.lib.wrap {inherit pkgs;} {
neovim = config.vim.package; neovim = config.vim.package;
plugins = builtStartPlugins ++ builtOptPlugins; plugins = {
start = buildConfigPlugins config.vim.startPlugins;
opt = buildConfigPlugins config.vim.optPlugins;
};
appName = "nvf"; appName = "nvf";
extraBinPath = config.vim.extraPackages; extraBinPath = config.vim.extraPackages;
initLua = config.vim.builtLuaConfigRC; initLua = config.vim.builtLuaConfigRC;

View file

@ -11,13 +11,14 @@ in {
description = '' description = ''
[official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable() [official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable()
the experimental Lua module loader to speed up the start up process Whethere 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:
If `true`, this will enable the experimental Lua module loader which: * overrides loadfile
- overrides loadfile * adds the lua loader using the byte-compilation cache
- adds the lua loader using the byte-compilation cache * adds the libs loader
- adds the libs loader * removes the default Neovim loader
- removes the default Neovim loader
::: {.note} ::: {.note}
The Lua module loader is *disabled* by default. Before setting this option, please The Lua module loader is *disabled* by default. Before setting this option, please

View file

@ -39,22 +39,6 @@
"url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz", "url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz",
"hash": "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f" "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": { "blink-cmp-spell": {
"type": "Git", "type": "Git",
"repository": { "repository": {
@ -103,9 +87,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "89c4d158bc6d6ca03b4059452f2f9ffaa850db8a", "revision": "0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c",
"url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/89c4d158bc6d6ca03b4059452f2f9ffaa850db8a.tar.gz", "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c.tar.gz",
"hash": "04xh5hzbzvm0nvipsy0cw7k1vb1kcrb09xiw0j66cqddjvvpv6zk" "hash": "11wc0qdalz7fb6zpdvrdib1bx3qyvcbn3hr0h57plspln55rjhl5"
}, },
"bufdelete-nvim": { "bufdelete-nvim": {
"type": "Git", "type": "Git",
@ -129,9 +113,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", "revision": "b7bbdf93b42866f166af98d39a2563eedb7cabac",
"url": "https://github.com/catppuccin/nvim/archive/5b5e3aef9ad7af84f463d17b5479f06b87d5c429.tar.gz", "url": "https://github.com/catppuccin/nvim/archive/b7bbdf93b42866f166af98d39a2563eedb7cabac.tar.gz",
"hash": "0jmrwag2dx4b1g9x32xwxcr8y0l159hqks09z5miy99wav6dy7z2" "hash": "0f8wcpig84kihbz31w0hap4qs5gsdvch4sk2krn29v3k5bh3kcv0"
}, },
"ccc-nvim": { "ccc-nvim": {
"type": "Git", "type": "Git",
@ -272,9 +256,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "c861811f8b825d30c0343951336d2bb8c8f6d990", "revision": "e55bbf5f6969ab41414d3fd68011366d3b80d024",
"url": "https://github.com/olimorris/codecompanion.nvim/archive/c861811f8b825d30c0343951336d2bb8c8f6d990.tar.gz", "url": "https://github.com/olimorris/codecompanion.nvim/archive/e55bbf5f6969ab41414d3fd68011366d3b80d024.tar.gz",
"hash": "0a1mzwh07lhrx893w7xdlhgiivbrwqp7a0b9wkdrna99x8kd9d77" "hash": "12jas52gh1dl33ir0bkxpqnfxjdkwh7h03qvfk1b3qk2fmr0abqn"
}, },
"codewindow-nvim": { "codewindow-nvim": {
"type": "Git", "type": "Git",
@ -350,9 +334,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "73d2c590c74a0c582144987a4decb4a642755859", "revision": "2c8f4fab02e3e9ea42c6ad9b547e4207a914a397",
"url": "https://github.com/Saecki/crates.nvim/archive/73d2c590c74a0c582144987a4decb4a642755859.tar.gz", "url": "https://github.com/Saecki/crates.nvim/archive/2c8f4fab02e3e9ea42c6ad9b547e4207a914a397.tar.gz",
"hash": "08dyl4blgi0lb3s0jbl4jcpr4j1ncyrdvxjkrqmhqcg6bmwl7iqy" "hash": "0ddlm94v3gh1znacghvfpfmkgv6js9i62gf7mlqcrpz8snpf879s"
}, },
"csharpls-extended-lsp-nvim": { "csharpls-extended-lsp-nvim": {
"type": "Git", "type": "Git",
@ -363,9 +347,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "53c6dfc9790d262edd3d6a4483294bedf53d70f5", "revision": "c1edd1eaad2e649d3de8121337e3c515ac6db46e",
"url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/53c6dfc9790d262edd3d6a4483294bedf53d70f5.tar.gz", "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/c1edd1eaad2e649d3de8121337e3c515ac6db46e.tar.gz",
"hash": "0hy3jaq5lq72yfvy77hijp8wzpbad7a1xfwrdljzbpm4w5j59dm2" "hash": "03sjrkay6c6ivd9zpm7isa9izxsvspkvbvy7f61nl020splhbl9m"
}, },
"dashboard-nvim": { "dashboard-nvim": {
"type": "Git", "type": "Git",
@ -376,9 +360,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "b0551fae871fc39454a67cca1adcf76fbe2f61f9", "revision": "591b5b29e2f17b97496ec3179f6ecd08bb8502cc",
"url": "https://github.com/glepnir/dashboard-nvim/archive/b0551fae871fc39454a67cca1adcf76fbe2f61f9.tar.gz", "url": "https://github.com/glepnir/dashboard-nvim/archive/591b5b29e2f17b97496ec3179f6ecd08bb8502cc.tar.gz",
"hash": "0m67ij62dwnzyspyckhqvcsk81nvc16gx8zphghw4w2w4vl9lsrj" "hash": "1f9ii3scd3zh4fch6h0mfmnfjx2fk6y4v3qc0cijk1vnyp2fm9qc"
}, },
"diffview-nvim": { "diffview-nvim": {
"type": "Git", "type": "Git",
@ -454,9 +438,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "2f2e8d7010a0e5e725957828476b4e1625eaf82c", "revision": "41545d9d02a53d03b5f4da5881e8f30a7dc16031",
"url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/2f2e8d7010a0e5e725957828476b4e1625eaf82c.tar.gz", "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/41545d9d02a53d03b5f4da5881e8f30a7dc16031.tar.gz",
"hash": "0m2qplldlcgzb6n5lwnwiac5n56zpyf3df015abfwrwba95zflfv" "hash": "1is587xa1b2fim4s3qc13ggwgpm02y4dmh64l4xjh6gyilh3fmkb"
}, },
"fidget-nvim": { "fidget-nvim": {
"type": "Git", "type": "Git",
@ -506,9 +490,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "fc8f183479a472df60aa86f00e295462f2308178", "revision": "572f5660cf05f8cd8834e096d7b4c921ba18e175",
"url": "https://github.com/rafamadriz/friendly-snippets/archive/fc8f183479a472df60aa86f00e295462f2308178.tar.gz", "url": "https://github.com/rafamadriz/friendly-snippets/archive/572f5660cf05f8cd8834e096d7b4c921ba18e175.tar.gz",
"hash": "1clmyxkw0gk9p9j72d75byws75vi3r7d04wica2dq5i0zkk49b27" "hash": "08q7vs7p4grav819b6hl5y9zla8bbb461b6m1w0mjz6n6rqjjc0p"
}, },
"fzf-lua": { "fzf-lua": {
"type": "Git", "type": "Git",
@ -519,9 +503,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0", "revision": "1cc70fb29e63ff26acba1e0cbca04705f8a485f1",
"url": "https://github.com/ibhagwan/fzf-lua/archive/b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0.tar.gz", "url": "https://github.com/ibhagwan/fzf-lua/archive/1cc70fb29e63ff26acba1e0cbca04705f8a485f1.tar.gz",
"hash": "1yjfyz0fchibyb6wnnyxarn2v4fxxfvf9vy1pyvfc7mz5b4mzwc2" "hash": "032y3djil7bsb2h0sv5a0a1qg805j5p2jxxp01jcpmn870b6mcjd"
}, },
"gesture-nvim": { "gesture-nvim": {
"type": "Git", "type": "Git",
@ -584,9 +568,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "9cd665f46ab7af2e49d140d328b8e72ea1cf511b", "revision": "1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb",
"url": "https://github.com/lewis6991/gitsigns.nvim/archive/9cd665f46ab7af2e49d140d328b8e72ea1cf511b.tar.gz", "url": "https://github.com/lewis6991/gitsigns.nvim/archive/1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb.tar.gz",
"hash": "110ykgvd3hbjq8ilz1yvfcic1jpqzyz4r13dswmpv7nvsi7a2lb5" "hash": "0xzmj3z3rd1zxv5hc87ncmnrzm6653ffaif9xkpvnc3n8l81ybsn"
}, },
"glow-nvim": { "glow-nvim": {
"type": "Git", "type": "Git",
@ -610,9 +594,22 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "c54db7f7e67832fbdd0ac14633f62c8a6997ddcf", "revision": "91a0f8e460197a521d42a2e84a7a2a4010be4bbb",
"url": "https://github.com/ellisonleao/gruvbox.nvim/archive/c54db7f7e67832fbdd0ac14633f62c8a6997ddcf.tar.gz", "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/91a0f8e460197a521d42a2e84a7a2a4010be4bbb.tar.gz",
"hash": "0i7dh2d3l1w6bga6gpfssam7w1qkd84q3cxyscdfsf4j9z4b62l2" "hash": "1bmxps0wawyvwyzcwzdxbf1wcqx6v7h6afj3yzgb38gz649wr8q7"
},
"hardtime-nvim": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "m4xshen",
"repo": "hardtime.nvim"
},
"branch": "main",
"submodules": false,
"revision": "9aaec65de041bddfc4c0af66919030d2950bcea8",
"url": "https://github.com/m4xshen/hardtime.nvim/archive/9aaec65de041bddfc4c0af66919030d2950bcea8.tar.gz",
"hash": "1rmcl200a4m3ip3xjzhh7ghhh2961xj2mw7yf0w44jpvs98gqb18"
}, },
"harpoon": { "harpoon": {
"type": "Git", "type": "Git",
@ -636,9 +633,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "fda0e5082ecc1c9e892f38b715d6f61e8829081d", "revision": "3bec28d8b0006be596497a5e1a03bda6ef6131cf",
"url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/fda0e5082ecc1c9e892f38b715d6f61e8829081d.tar.gz", "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/3bec28d8b0006be596497a5e1a03bda6ef6131cf.tar.gz",
"hash": "0hi0ww7q0j042ssjk7x3d4s4vaninawpw3s0yrv1c4l1q5v6gnz1" "hash": "1kf3w7x8awa4iiw7ab8xfjh6fq47yvv6h2rmfw0jf8s99fvgarj2"
}, },
"highlight-undo-nvim": { "highlight-undo-nvim": {
"type": "Git", "type": "Git",
@ -834,9 +831,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "c9b9a22904c97d0eb69ccb9bab76037838326817", "revision": "7351d673f430e89f11962dc45b7360d6a0a26d2d",
"url": "https://github.com/L3MON4D3/LuaSnip/archive/c9b9a22904c97d0eb69ccb9bab76037838326817.tar.gz", "url": "https://github.com/L3MON4D3/LuaSnip/archive/7351d673f430e89f11962dc45b7360d6a0a26d2d.tar.gz",
"hash": "03anxdspqz7ylq4239jyr9y51mw5qw1lkccyvfhj6wfk43jjdryx" "hash": "0dd42ss93cppq3cp27336gail955lckqqc6bafkmawplxh93qn1q"
}, },
"lz-n": { "lz-n": {
"type": "Git", "type": "Git",
@ -1477,9 +1474,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "299e174c3b8373c9c1f9be0bc3967c852712d0f3", "revision": "71bfdeddc90225e281ce34c378dc1b5914f5018d",
"url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/299e174c3b8373c9c1f9be0bc3967c852712d0f3.tar.gz", "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/71bfdeddc90225e281ce34c378dc1b5914f5018d.tar.gz",
"hash": "0vm7hbcqj548pvl9vfmzsgpx73lmrnmhp399bprizg87zn73m005" "hash": "0cm4y2idpmf7i6daa4wl5b6n5ldzqr3pqmh29rc645c1xk2y0b80"
}, },
"neocord": { "neocord": {
"type": "Git", "type": "Git",
@ -1503,9 +1500,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "35da593c55d78086a3203ee3e6d749fafe2e4e73", "revision": "8fdd9b2986acfb4ce310bebfc338111793862f00",
"url": "https://github.com/nvim-neorg/neorg/archive/35da593c55d78086a3203ee3e6d749fafe2e4e73.tar.gz", "url": "https://github.com/nvim-neorg/neorg/archive/8fdd9b2986acfb4ce310bebfc338111793862f00.tar.gz",
"hash": "0kxygwpfffa0blcy54g7cvm5laj77q0f72p69s43j9dpsps1h63y" "hash": "0xv3aasbhambywp6idhz44nlsh3hlarw3j7wwx7wn1whm6xbwvf6"
}, },
"neorg-telescope": { "neorg-telescope": {
"type": "Git", "type": "Git",
@ -1581,9 +1578,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "751349f21bdf1acf7af091fead456866bf9a7e7d", "revision": "a49f5a79cdb76e0dc1a98899c8598f4db014c5e7",
"url": "https://github.com/nvimtools/none-ls.nvim/archive/751349f21bdf1acf7af091fead456866bf9a7e7d.tar.gz", "url": "https://github.com/nvimtools/none-ls.nvim/archive/a49f5a79cdb76e0dc1a98899c8598f4db014c5e7.tar.gz",
"hash": "1zhqyjs914ib1yq42xq3aphw8pl4168h2k3ybm92z00ahi51kbqn" "hash": "0x16saxsr3w3ivqpdjg05bkyfxzsiyfpsiwhyzsvqxg1qnkda3b2"
}, },
"nord": { "nord": {
"type": "Git", "type": "Git",
@ -1763,9 +1760,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "641e567f975feab3815b47c7d29e6148e07afa77", "revision": "46434074f188e6bfccf9d9153dd8be6b1381498b",
"url": "https://github.com/neovim/nvim-lspconfig/archive/641e567f975feab3815b47c7d29e6148e07afa77.tar.gz", "url": "https://github.com/neovim/nvim-lspconfig/archive/46434074f188e6bfccf9d9153dd8be6b1381498b.tar.gz",
"hash": "1238hk6v3mm6hzjbipz60rva7crv95h2vzg6ph9wzplq52kzryav" "hash": "0h13n1vjw6v8gp41yfc6qffbwwrxw81vcilkmxx9sim6671w5pzp"
}, },
"nvim-metals": { "nvim-metals": {
"type": "Git", "type": "Git",
@ -1789,9 +1786,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "f22bac988f2dd073601d75ba39ea5636ab6e38cb", "revision": "a34786c77a528519f6b8a142db7609f6e387842d",
"url": "https://github.com/SmiteshP/nvim-navbuddy/archive/f22bac988f2dd073601d75ba39ea5636ab6e38cb.tar.gz", "url": "https://github.com/SmiteshP/nvim-navbuddy/archive/a34786c77a528519f6b8a142db7609f6e387842d.tar.gz",
"hash": "034pmg403y0y1fxnb1jv291mr016bx1vn68y543v6v4dpbdlr7di" "hash": "0b6bazh531bixskpmmpkidqii4n3m7n2cp9bmzml5wb0wibazcac"
}, },
"nvim-navic": { "nvim-navic": {
"type": "Git", "type": "Git",
@ -1802,9 +1799,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "39231352aec0d1e09cebbffdd9dc20a5dc691ffe", "revision": "d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74",
"url": "https://github.com/SmiteshP/nvim-navic/archive/39231352aec0d1e09cebbffdd9dc20a5dc691ffe.tar.gz", "url": "https://github.com/SmiteshP/nvim-navic/archive/d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74.tar.gz",
"hash": "1xj2bzax8hynm2x9zbvsaxv1j22chklyygzm1kbqxxs077qn45ws" "hash": "0mxsnwvrjirpy2ichsilx6207z55xi42syg5d3fdgs2r1p1npggc"
}, },
"nvim-neoclip-lua": { "nvim-neoclip-lua": {
"type": "Git", "type": "Git",
@ -1919,9 +1916,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "d4c8bdb06b7a589f004a53bf710196967752c63d", "revision": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf",
"url": "https://github.com/kevinhwang91/nvim-ufo/archive/d4c8bdb06b7a589f004a53bf710196967752c63d.tar.gz", "url": "https://github.com/kevinhwang91/nvim-ufo/archive/cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf.tar.gz",
"hash": "11zcr6vvj6gm5di63w55ccvwf2x7his8v9v8bingsz6l6n79dk6v" "hash": "14lvlv1wmbpw0dpyfz3gq7k760ip1903w5ibajqiaflw06afv4pn"
}, },
"nvim-web-devicons": { "nvim-web-devicons": {
"type": "Git", "type": "Git",
@ -1932,9 +1929,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "50b5b06bff13a9b4eab946de7c7033649a6618a1", "revision": "2c2b4eafce6cdd0cb165036faa17396eff18f847",
"url": "https://github.com/nvim-tree/nvim-web-devicons/archive/50b5b06bff13a9b4eab946de7c7033649a6618a1.tar.gz", "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/2c2b4eafce6cdd0cb165036faa17396eff18f847.tar.gz",
"hash": "1jsrwcsyjwlzk2l3x417pr6s6cq4zk6b6k417hhmrprrw66ajdb6" "hash": "11yp02zg60gdmqa6rdk3rjn704k2kvjcs41w85y01b68k36w7pw2"
}, },
"obsidian-nvim": { "obsidian-nvim": {
"type": "Git", "type": "Git",
@ -1997,9 +1994,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3", "revision": "15d66ead1285d99f8a21c4ef4874ac62e9320fe6",
"url": "https://github.com/nvim-orgmode/orgmode/archive/27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3.tar.gz", "url": "https://github.com/nvim-orgmode/orgmode/archive/15d66ead1285d99f8a21c4ef4874ac62e9320fe6.tar.gz",
"hash": "176v9y36258jm8h3aaph57wgr6s7rgmgdnq9hgwialwn4bygfym0" "hash": "05h766qj1vid5rs1mv8aiv6rsfrp0md9605sfr9vycip1rd8csgy"
}, },
"otter-nvim": { "otter-nvim": {
"type": "Git", "type": "Git",
@ -2127,9 +2124,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "78ffe3b0500bbc7e37fabde723d96661538e8b32", "revision": "57c7f33f276876c994898683680da9e3a3590d0d",
"url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/78ffe3b0500bbc7e37fabde723d96661538e8b32.tar.gz", "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/57c7f33f276876c994898683680da9e3a3590d0d.tar.gz",
"hash": "00dn9cpdvm7dy4xyhaij2rs0g0l926cqvjn03v06sray3adbyij5" "hash": "1lfypdqyka5idrkr3w62vx7j6p75r3ld7sz5i40y41svglnxyrsj"
}, },
"rose-pine": { "rose-pine": {
"type": "Git", "type": "Git",
@ -2140,9 +2137,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "96ff3993a67356ee85d1cdab9be652cdc1c5d1ac", "revision": "614892e32e94378d976a238f287532cfe790c1fe",
"url": "https://github.com/rose-pine/neovim/archive/96ff3993a67356ee85d1cdab9be652cdc1c5d1ac.tar.gz", "url": "https://github.com/rose-pine/neovim/archive/614892e32e94378d976a238f287532cfe790c1fe.tar.gz",
"hash": "0p712rivi5i3zlrigm86p8vrn1nvg4qils86snlw717cq3scj9gj" "hash": "1pi5z81xkgkx8yyfjfjj0hg66v2zcj04gxxbf5q2lqz70xcs3cgk"
}, },
"rtp-nvim": { "rtp-nvim": {
"type": "Git", "type": "Git",
@ -2179,9 +2176,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "3f2b7a94b7fa3c0f301dfa9644c94b543000efc2", "revision": "4b8c2edb55f548ed9c683f88dde2ffb235413b03",
"url": "https://github.com/mrcjkb/rustaceanvim/archive/3f2b7a94b7fa3c0f301dfa9644c94b543000efc2.tar.gz", "url": "https://github.com/mrcjkb/rustaceanvim/archive/4b8c2edb55f548ed9c683f88dde2ffb235413b03.tar.gz",
"hash": "1y3x6m3yglkyv37xgli9k3dlw59yy3jbsp1phx75xqma1480dzy5" "hash": "0d3kwvwj5cppwypvg8iasn5f8rviqyskkgh1wafs7chjm32dm4gb"
}, },
"smartcolumn-nvim": { "smartcolumn-nvim": {
"type": "Git", "type": "Git",
@ -2377,9 +2374,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "f985f5a4fbc410c9e5367f6b5863a8fa502e516d", "revision": "fbc16dee336d8cc0d3d2382ea4a53f4a29725abf",
"url": "https://github.com/RRethy/vim-illuminate/archive/f985f5a4fbc410c9e5367f6b5863a8fa502e516d.tar.gz", "url": "https://github.com/RRethy/vim-illuminate/archive/fbc16dee336d8cc0d3d2382ea4a53f4a29725abf.tar.gz",
"hash": "0igx2i4k59vadhw7kgqvxjw9594n8p2n9yqszif9by8xq5gsd7g6" "hash": "072kgd7h7cjq4hskczxl60nsx3jpww9l7ypafcwk833ypahz899i"
}, },
"vim-markdown": { "vim-markdown": {
"type": "Git", "type": "Git",