Merge branch 'main' of https://github.com/NotAShelf/nvf into language-overhaul

This commit is contained in:
sjcobb 2025-07-08 09:54:21 +01:00
commit 39da9a874e
88 changed files with 1160 additions and 509 deletions

View file

@ -19,13 +19,12 @@ indent_style = space
indent_size = 2 indent_size = 2
tab_width = 2 tab_width = 2
[*.{diff,patch}] [*.{diff,patch,lock}]
end_of_line = unset end_of_line = unset
insert_final_newline = unset insert_final_newline = unset
trim_trailing_whitespace = unset trim_trailing_whitespace = unset
[*.lock]
indent_size = unset
[npins/sources.json] [npins/sources.json]
insert_final_newline = unset indent_style = unset
indent_size = unset
trim_trailing_whitespace = unset

View file

@ -21,15 +21,6 @@ jobs:
- nix - nix
- maximal - maximal
steps: steps:
- uses: easimon/maximize-build-space@v10
name: Maximize build space
with:
overprovision-lvm: true
remove-android: true
remove-dotnet: true
remove-haskell: true
remove-codeql: true
- uses: actions/checkout@v4 - uses: actions/checkout@v4
name: Checkout name: Checkout

View file

@ -192,6 +192,7 @@ isMaximal: {
surround.enable = isMaximal; surround.enable = isMaximal;
leetcode-nvim.enable = isMaximal; leetcode-nvim.enable = isMaximal;
multicursors.enable = isMaximal; multicursors.enable = isMaximal;
smart-splits.enable = isMaximal;
motion = { motion = {
hop.enable = true; hop.enable = true;
@ -249,6 +250,7 @@ isMaximal: {
cmp.enable = isMaximal; cmp.enable = isMaximal;
}; };
codecompanion-nvim.enable = false; codecompanion-nvim.enable = false;
avante-nvim.enable = isMaximal;
}; };
session = { session = {

View file

@ -23,7 +23,7 @@ manner.
# flake.nix. For the sake of the argument, we will assume that the Neovim lua # flake.nix. For the sake of the argument, we will assume that the Neovim lua
# configuration is in a nvim/ directory relative to flake.nix. # configuration is in a nvim/ directory relative to flake.nix.
vim = { vim = {
additionalRuntimeDirectories = [ additionalRuntimePaths = [
# This will be added to Neovim's runtime paths. Conceptually, this behaves # This will be added to Neovim's runtime paths. Conceptually, this behaves
# very similarly to ~/.config/nvim but you may not place a top-level # very similarly to ~/.config/nvim but you may not place a top-level
# init.lua to be able to require it directly. # init.lua to be able to require it directly.
@ -41,7 +41,7 @@ directory, and call it with [](#opt-vim.luaConfigRC).
```nix ```nix
{pkgs, ...}: { {pkgs, ...}: {
vim = { vim = {
additionalRuntimeDirectories = [ additionalRuntimePaths = [
# You can list more than one file here. # You can list more than one file here.
./nvim-custom-1 ./nvim-custom-1

View file

@ -352,6 +352,7 @@
[rrvsh](https://github.com/rrvsh): [rrvsh](https://github.com/rrvsh):
- Add custom snippet support to `vim.snippets.luasnip`
- Fix namespace of python-lsp-server by changing it to python3Packages - Fix namespace of python-lsp-server by changing it to python3Packages
[Noah765](https://github.com/Noah765): [Noah765](https://github.com/Noah765):
@ -370,7 +371,10 @@
[aionoid](https://github.com/aionoid): [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. - 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): [poz](https://poz.pet):
@ -415,3 +419,24 @@
- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] - Add Clojure support under `vim.languages.clojure` using [clojure-lsp]
- Add code evaluation environment [conjure] under `vim.repl.conjure` - 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
[lackac](https://github.com/lackac):
[solarized.nvim]: https://github.com/maxmx03/solarized.nvim
[smart-splits.nvim]: https://github.com/mrjones2014/smart-splits.nvim
- Add [solarized.nvim] theme with support for multiple variants
- Add [smart-splits.nvim] for navigating between Neovim windows and terminal multiplexer panes.
Available at `vim.utility.smart-splits`.
- Fix lualine separator options

70
flake.lock generated
View file

@ -5,11 +5,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1743550720, "lastModified": 1749398372,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5", "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -38,11 +38,11 @@
}, },
"mnw": { "mnw": {
"locked": { "locked": {
"lastModified": 1748278309, "lastModified": 1748710831,
"narHash": "sha256-JCeiMrUhFku44kfKsgiD9Ibzho4MblBD2WmOQYsQyTY=", "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "mnw", "repo": "mnw",
"rev": "486a17ba1279ab2357cae8ff66b309db622f8831", "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -51,37 +51,13 @@
"type": "github" "type": "github"
} }
}, },
"nil": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741118843,
"narHash": "sha256-ggXU3RHv6NgWw+vc+HO4/9n0GPufhTIUjVuLci8Za8c=",
"owner": "oxalica",
"repo": "nil",
"rev": "577d160da311cc7f5042038456a0713e9863d09e",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "nil",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1748217807, "lastModified": 1750215678,
"narHash": "sha256-P3u2PXxMlo49PutQLnk2PhI/imC69hFl1yY4aT5Nax8=", "narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3108eaa516ae22c2360928589731a4f1581526ef", "rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -93,11 +69,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1743296961, "lastModified": 1748740939,
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", "rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -111,32 +87,10 @@
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"mnw": "mnw", "mnw": "mnw",
"nil": "nil",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"systems": "systems_2" "systems": "systems_2"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nil",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741055476,
"narHash": "sha256-52vwEV0oS2lCnx3c/alOFGglujZTLmObit7K8VblnS8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "aefb7017d710f150970299685e8d8b549d653649",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,

View file

@ -82,12 +82,5 @@
# Alternate neovim-wrapper # Alternate neovim-wrapper
mnw.url = "github:Gerg-L/mnw"; mnw.url = "github:Gerg-L/mnw";
# Language servers (use master instead of nixpkgs)
nil = {
url = "github:oxalica/nil";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
}; };
} }

View file

@ -0,0 +1,65 @@
{
openssl,
pkg-config,
rustPlatform,
stdenv,
vimUtils,
makeWrapper,
pkgs,
version,
src,
...
}: 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;
doCheck = false;
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"
];
}

View file

@ -5,13 +5,13 @@
}: }:
rustPlatform.buildRustPackage (finalAttrs: { rustPlatform.buildRustPackage (finalAttrs: {
pname = "blink-cmp"; pname = "blink-cmp";
version = "1.2.0"; version = "1.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Saghen"; owner = "Saghen";
repo = "blink.cmp"; repo = "blink.cmp";
tag = "v${finalAttrs.version}"; tag = "v${finalAttrs.version}";
hash = "sha256-bKe8SSg1HPWE7b4iRQJwiOVCrvvgttuHCOIa4U/38AY="; hash = "sha256-8lyDDrsh3sY7l0i0TPyhL69Oq0l63+/QPnLaU/mhq5A=";
}; };
forceShare = [ forceShare = [
@ -21,8 +21,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
postInstall = '' postInstall = ''
cp -r {lua,plugin} "$out" cp -r {lua,plugin} "$out"
mkdir -p "$out/doc" mkdir -p "$out/doc"
cp 'doc/'*'.txt' "$out/doc/" cp 'doc/'*'.txt' "$out/doc/"
mkdir -p "$out/target" mkdir -p "$out/target"
mv "$out/lib" "$out/target/release" mv "$out/lib" "$out/target/release"
''; '';

View file

@ -10,7 +10,7 @@
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; [inputs'.nil.packages.default statix deadnix alejandra npins]; packages = with pkgs; [nil statix deadnix alejandra npins];
}; };
}; };

View file

@ -1,4 +1,8 @@
{inputs, ...} @ args: { {
inputs,
self,
...
} @ args: {
perSystem = { perSystem = {
config, config,
pkgs, pkgs,
@ -14,6 +18,18 @@
in { in {
packages = { packages = {
blink-cmp = pkgs.callPackage ./blink {}; 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; inherit (docs.manual) htmlOpenTool;
# Documentation # Documentation

View file

@ -2,7 +2,7 @@
{lib}: let {lib}: let
inherit (builtins) hasAttr head throw typeOf isList isAttrs isBool isInt isString isPath isFloat toJSON; inherit (builtins) hasAttr head throw typeOf isList isAttrs isBool isInt isString isPath isFloat toJSON;
inherit (lib.attrsets) mapAttrsToList filterAttrs; inherit (lib.attrsets) mapAttrsToList filterAttrs;
inherit (lib.strings) concatStringsSep concatMapStringsSep stringToCharacters concatLines; inherit (lib.strings) concatStringsSep concatMapStringsSep stringToCharacters;
inherit (lib.trivial) boolToString warn; inherit (lib.trivial) boolToString warn;
in rec { in rec {
# Convert a null value to lua's nil # Convert a null value to lua's nil

View file

@ -1,10 +1,6 @@
# Convenience function that returns the given Nixpkgs standard library # Convenience function that returns the given Nixpkgs standard library
# extended with our functions using `lib.extend`. # extended with our functions using `lib.extend`.
{ {inputs, ...} @ args:
inputs,
self,
...
} @ args:
inputs.nixpkgs.lib.extend (self: super: { inputs.nixpkgs.lib.extend (self: super: {
# WARNING: New functions should not be added here, but to files # WARNING: New functions should not be added here, but to files
# imported by `./default.nix` under their own categories. If your # imported by `./default.nix` under their own categories. If your

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.options) mkOption mkEnableOption mkPackageOption; inherit (lib.options) mkOption mkEnableOption mkPackageOption;
inherit (lib.types) nullOr either str listOf submodule; inherit (lib.types) str submodule;
inherit (lib.attrsets) mapAttrs mapAttrsToList filterAttrs; inherit (lib.attrsets) mapAttrs mapAttrsToList filterAttrs;
cfg = config.vim.clipboard; cfg = config.vim.clipboard;
in { in {
@ -20,7 +20,7 @@ in {
''; '';
registers = mkOption { registers = mkOption {
type = either str (listOf str); type = str;
default = ""; default = "";
example = "unnamedplus"; example = "unnamedplus";
description = '' description = ''
@ -33,8 +33,8 @@ in {
`"+"` ({command}`:h quoteplus`) instead of register `"*"` for all yank, delete, `"+"` ({command}`:h quoteplus`) instead of register `"*"` for all yank, delete,
change and put operations which would normally go to the unnamed register. change and put operations which would normally go to the unnamed register.
When `unnamed` and `unnamedplus` is included simultaneously yank and delete When `unnamed` and `unnamedplus` is included simultaneously as `"unnamed,unnamedplus"`,
operations (but not put) will additionally copy the text into register `"*"`. yank and delete operations (but not put) will additionally copy the text into register `"*"`.
Please see {command}`:h clipboard` for more details. Please see {command}`:h clipboard` for more details.

View file

@ -57,14 +57,21 @@
signs = mkOption { signs = mkOption {
type = diagnosticType; type = diagnosticType;
default = false; default = false;
example = { example = literalExpression ''
signs.text = { signs.text = lib.generators.mkLuaInline '''
"vim.diagnostic.severity.ERROR" = "󰅚 "; {
"vim.diagnostic.severity.WARN" = "󰀪 "; [vim.diagnostic.severity.ERROR] = "󰅚 ",
}; [vim.diagnostic.severity.WARN] = "󰀪 ",
}; }
''';
'';
description = '' description = ''
Use signs for diagnostics. See {command}`:help diagnostic-signs`. Use signs for diagnostics. See {command}`:help diagnostic-signs`.
:::{.note}
The code presented in that example section uses Lua expressions as object keys which
only translate well if you use `lib.generators.mkLuaInline` as in the example.
:::
''; '';
}; };

View file

@ -3,7 +3,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkMerge;
inherit (lib.trivial) pipe; inherit (lib.trivial) pipe;
inherit (lib.attrsets) mapAttrsToList; inherit (lib.attrsets) mapAttrsToList;
inherit (lib.lists) flatten; inherit (lib.lists) flatten;

View file

@ -0,0 +1,341 @@
{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.";
};
providers = mkOption {
type = nullOr attrs;
default = null;
description = "Define settings for builtin and custom providers.";
example = literalMD ''
```nix
openai = {
endpoint = "https://api.openai.com/v1";
model = "gpt-4o"; # your desired model (or use gpt-4o, etc.)
timeout = 30000; # Timeout in milliseconds, increase this for reasoning models
extra_request_body = {
temperature = 0;
max_completion_tokens = 8192; # Increase this to include reasoning tokens (for reasoning models)
reasoning_effort = "medium"; # low|medium|high, only used for reasoning models
};
};
ollama = {
endpoint = "http://127.0.0.1:11434";
timeout = 30000; # Timeout in milliseconds
extra_request_body = {
options = {
temperature = 0.75;
num_ctx = 20480;
keep_alive = "5m";
};
};
};
groq = {
__inherited_from = "openai";
api_key_name = "GROQ_API_KEY";
endpoint = "https://api.groq.com/openai/v1/";
model = "llama-3.3-70b-versatile";
disable_tools = true;
extra_request_body = {
temperature = 1;
max_tokens = 32768; # remember to increase this value, otherwise it will stop generating halfway
};
};
```
'';
};
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.";
};
};
};
};
};
}

View file

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

View file

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

View file

@ -5,7 +5,6 @@
}: let }: let
inherit (builtins) toJSON; inherit (builtins) toJSON;
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.strings) optionalString;
cfg = config.vim.assistant.copilot; cfg = config.vim.assistant.copilot;

View file

@ -3,5 +3,6 @@
./chatgpt ./chatgpt
./copilot ./copilot
./codecompanion ./codecompanion
./avante
]; ];
} }

View file

@ -1,7 +1,6 @@
{lib, ...}: let {lib, ...}: let
inherit (lib.options) mkEnableOption mkOption literalMD; inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.types) bool listOf str either attrsOf submodule enum anything int nullOr; inherit (lib.types) bool listOf str either attrsOf submodule enum anything int nullOr;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.types) mkPluginSetupOption luaInline pluginType; inherit (lib.nvim.types) mkPluginSetupOption luaInline pluginType;
inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.binds) mkMappingOption;
inherit (lib.nvim.config) mkBool; inherit (lib.nvim.config) mkBool;
@ -10,7 +9,7 @@
freeformType = attrsOf (listOf (either str luaInline)); freeformType = attrsOf (listOf (either str luaInline));
options = { options = {
preset = mkOption { preset = mkOption {
type = enum ["default" "none" "super-tab" "enter"]; type = enum ["default" "none" "super-tab" "enter" "cmdline"];
default = "none"; default = "none";
description = "keymap presets"; description = "keymap presets";
}; };

View file

@ -3,11 +3,10 @@
config, config,
... ...
}: let }: let
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (builtins) attrNames typeOf tryEval concatStringsSep; inherit (builtins) attrNames typeOf tryEval concatStringsSep;
borders = config.vim.ui.borders.plugins.nvim-cmp; borders = config.vim.ui.borders.plugins.nvim-cmp;

View file

@ -3,7 +3,7 @@
config, config,
... ...
}: let }: let
inherit (lib.options) mkEnableOption mkOption literalExpression literalMD; inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.types) str attrsOf nullOr either listOf; inherit (lib.types) str attrsOf nullOr either listOf;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.binds) mkMappingOption;

View file

@ -4,7 +4,6 @@
... ...
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
cfg = config.vim.dashboard.alpha; cfg = config.vim.dashboard.alpha;

View file

@ -10,7 +10,6 @@
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum either listOf package str; inherit (lib.types) enum either listOf package str;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption diagnostics;
@ -46,7 +45,7 @@
defaultFormat = "prettier"; defaultFormat = "prettier";
formats = { formats = {
prettier = { prettier = {
package = pkgs.nodePackages.prettier; package = pkgs.prettier;
}; };
prettierd = { prettierd = {

View file

@ -42,7 +42,7 @@
defaultFormat = "prettier"; defaultFormat = "prettier";
formats = { formats = {
prettier = { prettier = {
package = pkgs.nodePackages.prettier; package = pkgs.prettier;
}; };
prettierd = { prettierd = {

View file

@ -26,9 +26,9 @@
]; ];
}; };
defaultServers = ["nil_ls"]; defaultServers = ["nil"];
servers = { servers = {
nil_ls = { nil = {
enable = true; enable = true;
cmd = [(getExe pkgs.nil)]; cmd = [(getExe pkgs.nil)];
settings = { settings = {

View file

@ -9,7 +9,6 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline;
inherit (lib.types) enum either listOf package str; inherit (lib.types) enum either listOf package str;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption diagnostics;
@ -19,7 +18,7 @@
defaultServer = "svelte"; defaultServer = "svelte";
servers = { servers = {
svelte = { svelte = {
package = pkgs.nodePackages.svelte-language-server; package = pkgs.svelte-language-server;
lspConfig = '' lspConfig = ''
lspconfig.svelte.setup { lspconfig.svelte.setup {
capabilities = capabilities; capabilities = capabilities;
@ -38,7 +37,7 @@
defaultFormat = "prettier"; defaultFormat = "prettier";
formats = { formats = {
prettier = { prettier = {
package = pkgs.nodePackages.prettier; package = pkgs.prettier;
}; };
biome = { biome = {

View file

@ -9,7 +9,6 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline;
inherit (lib.types) enum either listOf package str bool; inherit (lib.types) enum either listOf package str bool;
inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.lua) expToLua toLuaObject;
inherit (lib.nvim.types) mkGrammarOption diagnostics mkPluginSetupOption; inherit (lib.nvim.types) mkGrammarOption diagnostics mkPluginSetupOption;
@ -76,7 +75,7 @@
defaultFormat = "prettier"; defaultFormat = "prettier";
formats = { formats = {
prettier = { prettier = {
package = pkgs.nodePackages.prettier; package = pkgs.prettier;
}; };
prettierd = { prettierd = {

View file

@ -29,7 +29,7 @@
servers = { servers = {
yaml-language-server = { yaml-language-server = {
enable = true; enable = true;
cmd = [(getExe pkgs.nodePackages.yaml-language-server) "--stdio"]; cmd = [(getExe pkgs.yaml-language-server) "--stdio"];
filetypes = ["yaml" "yaml.docker-compose" "yaml.gitlab" "yaml.helm-values"]; filetypes = ["yaml" "yaml.docker-compose" "yaml.gitlab" "yaml.helm-values"];
root_markers = [".git"]; root_markers = [".git"];
on_attach = onAttach; on_attach = onAttach;

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
in { in {
options.vim.mini.colors = { options.vim.mini.colors = {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
in { in {
options.vim.mini.extra = { options.vim.mini.extra = {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,10 +1,5 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.strings) hasPrefix;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
inherit (lib.nvim.types) hexColor; inherit (lib.nvim.types) hexColor;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -77,7 +77,7 @@ in {
}; };
autoload_mode = mkOption { autoload_mode = mkOption {
type = either (enum ["Disabled" "CurrentDir" "LastSession"]) luaInline; type = either (enum ["Disabled" "CurrentDir" "LastSession" "GitSession"]) luaInline;
# Variable 'sm' is defined in the pluginRC of nvim-session-manager. The # Variable 'sm' is defined in the pluginRC of nvim-session-manager. The
# definition is as follows: `local sm = require('session_manager.config')` # definition is as follows: `local sm = require('session_manager.config')`
apply = val: apply = val:
@ -88,7 +88,7 @@ in {
description = '' description = ''
Define what to do when Neovim is started without arguments. Define what to do when Neovim is started without arguments.
Takes either one of `"Disabled"`, `"CurrentDir"`, `"LastSession` in which case the value Takes either one of `"Disabled"`, `"CurrentDir"`, `"LastSession"`, `"GitSession"` in which case the value
will be inserted into `sm.AutoloadMode.<value>`, or an inline Lua value. will be inserted into `sm.AutoloadMode.<value>`, or an inline Lua value.
''; '';
}; };

View file

@ -1,11 +1,48 @@
{ {
config, config,
lib, lib,
pkgs,
... ...
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.lists) replicate;
inherit
(lib.strings)
optionalString
removeSuffix
concatStrings
stringAsChars
concatMapStringsSep
;
inherit (lib.attrsets) mapAttrsToList;
inherit (pkgs) writeTextFile;
cfg = config.vim.snippets.luasnip; cfg = config.vim.snippets.luasnip;
# LuaSnip freaks out if the indentation is wrong in snippets
indent = n: s: let
indentString = concatStrings (replicate n " ");
sep = "\n" + indentString;
in
indentString
+ stringAsChars (c:
if c == "\n"
then sep
else c) (removeSuffix "\n" s);
customSnipmateSnippetFiles =
mapAttrsToList (
name: value:
writeTextFile {
name = "${name}.snippets";
text =
concatMapStringsSep "\n" (x: ''
snippet ${x.trigger} ${x.description}
${indent 2 x.body}
'')
value;
destination = "/snippets/${name}.snippets";
}
)
cfg.customSnippets.snipmate;
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim = { vim = {
@ -19,11 +56,16 @@ in {
after = cfg.loaders; after = cfg.loaders;
}; };
startPlugins = cfg.providers; startPlugins = cfg.providers ++ customSnipmateSnippetFiles;
autocomplete.nvim-cmp = mkIf config.vim.autocomplete.nvim-cmp.enable { autocomplete.nvim-cmp = mkIf config.vim.autocomplete.nvim-cmp.enable {
sources = {luasnip = "[LuaSnip]";}; sources = {luasnip = "[LuaSnip]";};
sourcePlugins = ["cmp-luasnip"]; sourcePlugins = ["cmp-luasnip"];
}; };
snippets.luasnip.loaders = ''
${optionalString (
cfg.customSnippets.snipmate != {}
) "require('luasnip.loaders.from_snipmate').lazy_load()"}
'';
}; };
}; };
} }

View file

@ -1,6 +1,6 @@
{lib, ...}: let {lib, ...}: let
inherit (lib.options) mkEnableOption mkOption literalExpression literalMD; inherit (lib.options) mkEnableOption mkOption literalExpression literalMD;
inherit (lib.types) listOf lines; inherit (lib.types) listOf lines submodule str attrsOf;
inherit (lib.nvim.types) pluginType mkPluginSetupOption; inherit (lib.nvim.types) pluginType mkPluginSetupOption;
in { in {
options.vim.snippets.luasnip = { options.vim.snippets.luasnip = {
@ -36,5 +36,61 @@ in {
setupOpts = mkPluginSetupOption "LuaSnip" { setupOpts = mkPluginSetupOption "LuaSnip" {
enable_autosnippets = mkEnableOption "autosnippets"; enable_autosnippets = mkEnableOption "autosnippets";
}; };
customSnippets.snipmate = mkOption {
type = attrsOf (
listOf (submodule {
options = {
trigger = mkOption {
type = str;
description = ''
The trigger used to activate this snippet.
'';
};
description = mkOption {
type = str;
default = "";
description = ''
The description shown for this snippet.
'';
};
body = mkOption {
type = str;
description = ''
[LuaSnip Documentation]: https://github.com/L3MON4D3/LuaSnip#add-snippets
The body of the snippet in SnipMate format (see [LuaSnip Documentation]).
'';
};
};
})
);
default = {};
example = ''
{
all = [
{
trigger = "if";
body = "if $1 else $2";
}
];
nix = [
{
trigger = "mkOption";
body = '''
mkOption {
type = $1;
default = $2;
description = $3;
example = $4;
}
''';
}
];
}
'';
description = ''
A list containing custom snippets in the SnipMate format to be loaded by LuaSnip.
'';
};
}; };
} }

View file

@ -63,8 +63,8 @@ in {
options = { options = {
icons_enabled = mkDefault cfg.icons.enable; icons_enabled = mkDefault cfg.icons.enable;
theme = mkDefault cfg.theme; theme = mkDefault cfg.theme;
component_separators = mkDefault [cfg.componentSeparator.left cfg.componentSeparator.right]; component_separators = mkDefault cfg.componentSeparator;
section_separators = mkDefault [cfg.sectionSeparator.left cfg.sectionSeparator.right]; section_separators = mkDefault cfg.sectionSeparator;
globalstatus = mkDefault cfg.globalStatus; globalstatus = mkDefault cfg.globalStatus;
refresh = mkDefault cfg.refresh; refresh = mkDefault cfg.refresh;
always_divide_middle = mkDefault cfg.alwaysDivideMiddle; always_divide_middle = mkDefault cfg.alwaysDivideMiddle;

View file

@ -2,7 +2,9 @@
config, config,
lib, lib,
}: let }: let
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString splitString;
inherit (lib.attrsets) mapCartesianProduct;
inherit (lib.lists) intersectLists;
inherit (lib.trivial) boolToString warnIf; inherit (lib.trivial) boolToString warnIf;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
in { in {
@ -21,9 +23,14 @@ in {
''; '';
}; };
onedark = { onedark = {
setup = {style ? "dark", ...}: '' setup = {
style ? "dark",
transparent,
...
}: ''
-- OneDark theme -- OneDark theme
require('onedark').setup { require('onedark').setup {
transparent = ${boolToString transparent},
style = "${style}" style = "${style}"
} }
require('onedark').load() require('onedark').load()
@ -95,7 +102,7 @@ in {
-- setup must be called before loading -- setup must be called before loading
vim.cmd.colorscheme "catppuccin" vim.cmd.colorscheme "catppuccin"
''; '';
styles = ["latte" "frappe" "macchiato" "mocha"]; styles = ["auto" "latte" "frappe" "macchiato" "mocha"];
}; };
oxocarbon = { oxocarbon = {
@ -212,6 +219,55 @@ in {
''; '';
styles = ["dark" "light" "dark_dimmed" "dark_default" "light_default" "dark_high_contrast" "light_high_contrast" "dark_colorblind" "light_colorblind" "dark_tritanopia" "light_tritanopia"]; styles = ["dark" "light" "dark_dimmed" "dark_default" "light_default" "dark_high_contrast" "light_high_contrast" "dark_colorblind" "light_colorblind" "dark_tritanopia" "light_tritanopia"];
}; };
solarized = let
backgrounds = ["light" "dark"];
palettes = ["solarized" "selenized"];
variants = ["spring" "summer" "autumn" "winter"];
in {
setup = {
style ? "", # use plugin defaults
transparent ? false,
...
}: let
parts = splitString "-" style;
detect = list: let
intersection = intersectLists parts list;
in
if intersection == []
then null
else builtins.head intersection;
background = detect backgrounds;
palette = detect palettes;
variant = detect variants;
in ''
-- Solarized theme
require('solarized').setup {
transparent = {
enabled = ${boolToString transparent},
},
${optionalString (!isNull palette) ''palette = "${palette}",''}
${optionalString (!isNull variant) ''variant = "${variant}",''}
}
${optionalString (!isNull background) ''vim.opt.background = "${background}"''}
vim.cmd.colorscheme "solarized"
'';
styles = let
joinWithDashes = parts: lib.concatStringsSep "-" (lib.filter (s: s != "") parts);
combinations = mapCartesianProduct ({
bg,
pal,
var,
}:
joinWithDashes [bg pal var]) {
bg = [""] ++ backgrounds;
pal = [""] ++ palettes;
var = [""] ++ variants;
};
in
lib.filter (s: s != "") combinations;
};
solarized-osaka = { solarized-osaka = {
setup = {transparent ? false, ...}: '' setup = {transparent ? false, ...}: ''
require("solarized-osaka").setup({ require("solarized-osaka").setup({

View file

@ -19,6 +19,7 @@
./outline ./outline
./preview ./preview
./sleuth ./sleuth
./smart-splits
./snacks-nvim ./snacks-nvim
./surround ./surround
./telescope ./telescope

View file

@ -1,6 +1,6 @@
{lib, ...}: let {lib, ...}: let
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) enum str bool; inherit (lib.types) enum str;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.types) mkPluginSetupOption luaInline; inherit (lib.nvim.types) mkPluginSetupOption luaInline;
in { in {

View file

@ -5,8 +5,6 @@
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.nvim.binds) mkKeymap; inherit (lib.nvim.binds) mkKeymap;
inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.dag) entryAnywhere;
cfg = config.vim.utility.motion.flash-nvim; cfg = config.vim.utility.motion.flash-nvim;
in { in {

View file

@ -0,0 +1,50 @@
{
config,
options,
lib,
...
}: let
inherit (lib.modules) mkIf;
cfg = config.vim.utility.smart-splits;
inherit (options.vim.utility.smart-splits) keymaps;
mkSmartSplitKey = act: let
key = cfg.keymaps.${act};
in
lib.optional (key != null) {
inherit key;
desc = keymaps.${act}.description;
action = ''function() require('smart-splits').${act}() end'';
mode = "n";
lua = true;
};
in {
config = mkIf cfg.enable {
vim = {
lazy.plugins.smart-splits = {
package = "smart-splits";
setupModule = "smart-splits";
inherit (cfg) setupOpts;
# plugin needs to be loaded right after startup so that the multiplexer detects vim running in the pane
event = ["DeferredUIEnter"];
keys = lib.flatten [
(mkSmartSplitKey "resize_left")
(mkSmartSplitKey "resize_down")
(mkSmartSplitKey "resize_up")
(mkSmartSplitKey "resize_right")
(mkSmartSplitKey "move_cursor_left")
(mkSmartSplitKey "move_cursor_down")
(mkSmartSplitKey "move_cursor_up")
(mkSmartSplitKey "move_cursor_right")
(mkSmartSplitKey "move_cursor_previous")
(mkSmartSplitKey "swap_buf_left")
(mkSmartSplitKey "swap_buf_down")
(mkSmartSplitKey "swap_buf_up")
(mkSmartSplitKey "swap_buf_right")
];
};
};
};
}

View file

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

View file

@ -0,0 +1,37 @@
{lib, ...}: let
inherit (lib.options) mkOption;
inherit (lib.types) bool;
inherit (lib.nvim.types) mkPluginSetupOption;
inherit (lib.nvim.binds) mkMappingOption;
in {
options.vim.utility.smart-splits = {
enable = mkOption {
type = bool;
default = false;
description = ''
Whether to enable smart-splits.nvim, a Neovim plugin for smart,
seamless, directional navigation and resizing of splits.
Supports tmux, Wezterm, Kitty, and Zellij multiplexer integrations.
'';
};
setupOpts = mkPluginSetupOption "smart-splits" {};
keymaps = {
resize_left = mkMappingOption "Resize Window/Pane Left" "<A-h>";
resize_down = mkMappingOption "Resize Window/Pane Down" "<A-j>";
resize_up = mkMappingOption "Resize Window/Pane Up" "<A-k>";
resize_right = mkMappingOption "Resize Window/Pane Right" "<A-l>";
move_cursor_left = mkMappingOption "Focus Window/Pane on the Left" "<C-h>";
move_cursor_down = mkMappingOption "Focus Window/Pane Below" "<C-j>";
move_cursor_up = mkMappingOption "Focus Window/Pane Above" "<C-k>";
move_cursor_right = mkMappingOption "Focus Window/Pane on the Right" "<C-l>";
move_cursor_previous = mkMappingOption "Focus Previous Window/Pane" "<C-\\>";
swap_buf_left = mkMappingOption "Swap Buffer Left" "<leader><leader>h";
swap_buf_down = mkMappingOption "Swap Buffer Down" "<leader><leader>j";
swap_buf_up = mkMappingOption "Swap Buffer Up" "<leader><leader>k";
swap_buf_right = mkMappingOption "Swap Buffer Right" "<leader><leader>l";
};
};
}

View file

@ -5,8 +5,8 @@
... ...
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString concatMapStringsSep;
inherit (lib.lists) optionals; inherit (lib.lists) optionals concatLists;
inherit (lib.nvim.binds) pushDownDefault mkKeymap; inherit (lib.nvim.binds) pushDownDefault mkKeymap;
cfg = config.vim.telescope; cfg = config.vim.telescope;
@ -16,7 +16,7 @@
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim = { vim = {
startPlugins = ["plenary-nvim"]; startPlugins = ["plenary-nvim"] ++ concatLists (map (x: x.packages) cfg.extensions);
lazy.plugins.telescope = { lazy.plugins.telescope = {
package = "telescope"; package = "telescope";
@ -28,11 +28,14 @@ in {
vim.g.loaded_telescope = nil vim.g.loaded_telescope = nil
''; '';
after = '' after = let
enabledExtensions = map (x: x.name) cfg.extensions;
in ''
local telescope = require("telescope") local telescope = require("telescope")
${optionalString config.vim.ui.noice.enable "telescope.load_extension('noice')"} ${optionalString config.vim.ui.noice.enable "telescope.load_extension('noice')"}
${optionalString config.vim.notify.nvim-notify.enable "telescope.load_extension('notify')"} ${optionalString config.vim.notify.nvim-notify.enable "telescope.load_extension('notify')"}
${optionalString config.vim.projects.project-nvim.enable "telescope.load_extension('projects')"} ${optionalString config.vim.projects.project-nvim.enable "telescope.load_extension('projects')"}
${concatMapStringsSep "\n" (x: "telescope.load_extension('${x}')") enabledExtensions}
''; '';
cmd = ["Telescope"]; cmd = ["Telescope"];

View file

@ -1,12 +1,15 @@
{ {
config,
pkgs, pkgs,
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) int str listOf float bool either enum submodule attrsOf; inherit (lib.types) int str listOf float bool either enum submodule attrsOf anything package;
inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.binds) mkMappingOption;
inherit (lib.nvim.types) mkPluginSetupOption luaInline; inherit (lib.nvim.types) mkPluginSetupOption luaInline;
cfg = config.vim.telescope;
setupOptions = { setupOptions = {
pickers.find_files.find_command = mkOption { pickers.find_files.find_command = mkOption {
description = "cmd to use for finding files"; description = "cmd to use for finding files";
@ -16,10 +19,6 @@
defaults = { defaults = {
vimgrep_arguments = mkOption { vimgrep_arguments = mkOption {
description = ''
Defines the command that will be used for `live_grep` and `grep_string` pickers.
Make sure that color is set to `never` because telescope does not yet interpret color codes.
'';
type = listOf str; type = listOf str;
default = [ default = [
"${pkgs.ripgrep}/bin/rg" "${pkgs.ripgrep}/bin/rg"
@ -32,114 +31,169 @@
"--hidden" "--hidden"
"--no-ignore" "--no-ignore"
]; ];
description = ''
Defines the command that will be used for `live_grep` and `grep_string` pickers.
Make sure that color is set to `never` because telescope does not yet interpret color codes.
'';
}; };
pickers.find_command = mkOption {
type = either (listOf str) luaInline;
default = ["${pkgs.fd}/bin/fd"];
description = ''
Command to use for finding files. If using an executable from {env}`PATH` then you must
make sure that the package is available in [](#opt-vim.extraPackages).
'';
};
prompt_prefix = mkOption { prompt_prefix = mkOption {
description = "Shown in front of Telescope's prompt";
type = str; type = str;
default = " "; default = " ";
description = "Shown in front of Telescope's prompt";
}; };
selection_caret = mkOption { selection_caret = mkOption {
type = str;
default = " ";
description = "Character(s) to show in front of the current selection"; description = "Character(s) to show in front of the current selection";
type = str;
default = " ";
}; };
entry_prefix = mkOption { entry_prefix = mkOption {
description = "Prefix in front of each result entry. Current selection not included.";
type = str; type = str;
default = " "; default = " ";
description = "Prefix in front of each result entry. Current selection not included.";
}; };
initial_mode = mkOption { initial_mode = mkOption {
description = "Determines in which mode telescope starts.";
type = enum ["insert" "normal"]; type = enum ["insert" "normal"];
default = "insert"; default = "insert";
description = "Determines in which mode telescope starts.";
}; };
selection_strategy = mkOption { selection_strategy = mkOption {
description = "Determines how the cursor acts after each sort iteration.";
type = enum ["reset" "follow" "row" "closest" "none"]; type = enum ["reset" "follow" "row" "closest" "none"];
default = "reset"; default = "reset";
description = "Determines how the cursor acts after each sort iteration.";
}; };
sorting_strategy = mkOption { sorting_strategy = mkOption {
description = ''Determines the direction "better" results are sorted towards.'';
type = enum ["descending" "ascending"]; type = enum ["descending" "ascending"];
default = "ascending"; default = "ascending";
description = ''Determines the direction "better" results are sorted towards.'';
}; };
layout_strategy = mkOption { layout_strategy = mkOption {
description = "Determines the default layout of Telescope pickers. See `:help telescope.layout`.";
type = str; type = str;
default = "horizontal"; default = "horizontal";
description = "Determines the default layout of Telescope pickers. See `:help telescope.layout`.";
}; };
layout_config = mkOption { layout_config = mkOption {
description = ''
Determines the default configuration values for layout strategies.
See telescope.layout for details of the configurations options for
each strategy.
'';
default = {}; default = {};
type = submodule { type = submodule {
options = { options = {
horizontal = { horizontal = {
prompt_position = mkOption { prompt_position = mkOption {
description = ""; type = enum ["top" "bottom"];
type = str;
default = "top"; default = "top";
description = "Where to place prompt window";
}; };
preview_width = mkOption { preview_width = mkOption {
description = "";
type = float; type = float;
default = 0.55; default = 0.55;
description = "Change the width of Telescope's preview window";
}; };
}; };
vertical = { vertical = {
mirror = mkOption { mirror = mkOption {
description = "";
type = bool; type = bool;
default = false; default = false;
description = "Flip the location of the results/prompt and preview windows";
}; };
}; };
width = mkOption { width = mkOption {
description = "";
type = float; type = float;
default = 0.8; default = 0.8;
description = "How wide to make Telescope's entire layout";
}; };
height = mkOption { height = mkOption {
description = "";
type = float; type = float;
default = 0.8; default = 0.8;
description = "How tall to make Telescope's entire layout";
}; };
preview_cutoff = mkOption { preview_cutoff = mkOption {
description = "";
type = int; type = int;
default = 120; default = 120;
description = "When lines are less than this value, the preview will be disabled";
}; };
}; };
}; };
description = ''
Determines the default configuration values for layout strategies.
See `telescope.layout` for details of the configurations options for
each strategy.
'';
}; };
file_ignore_patterns = mkOption { file_ignore_patterns = mkOption {
description = "A table of lua regex that define the files that should be ignored.";
type = listOf str; type = listOf str;
default = ["node_modules" "%.git/" "dist/" "build/" "target/" "result/"]; default = ["node_modules" "%.git/" "dist/" "build/" "target/" "result/"];
description = "File patterns to omit from Telescope results";
}; };
color_devicons = mkOption {
description = "Boolean if devicons should be enabled or not."; color_devicons = mkEnableOption "colored devicons";
type = bool;
default = true;
};
path_display = mkOption { path_display = mkOption {
description = "Determines how file paths are displayed.";
type = listOf (enum ["hidden" "tail" "absolute" "smart" "shorten" "truncate"]); type = listOf (enum ["hidden" "tail" "absolute" "smart" "shorten" "truncate"]);
default = ["absolute"]; default = ["absolute"];
description = "Determines how file paths are displayed.";
}; };
set_env = mkOption { set_env = mkOption {
description = "Set an environment for term_previewer";
type = attrsOf str; type = attrsOf str;
default = { default = {COLORTERM = "truecolor";};
COLORTERM = "truecolor"; description = "Set an environment for term_previewer";
};
}; };
winblend = mkOption { winblend = mkOption {
description = "pseudo-transparency of keymap hints floating window";
type = int; type = int;
default = 0; default = 0;
description = "Pseudo-transparency of keymap hints floating window";
};
extensions = mkOption {
type = attrsOf anything;
default = builtins.foldl' (acc: x: acc // (x.setup or {})) {} cfg.extensions;
description = "Attribute set containing per-extension settings for Telescope";
};
};
};
extensionOpts = {
options = {
name = mkOption {
type = str;
description = "Name of the extension, will be used to load it with a `require`";
};
packages = mkOption {
type = listOf (either str package);
default = [];
description = "Package or packages providing the Telescope extension to be loaded.";
};
setup = mkOption {
type = attrsOf anything;
default = {};
example = {fzf = {fuzzy = true;};};
description = "Named attribute set to be inserted into Telescope's extensions table.";
}; };
}; };
}; };
@ -174,5 +228,24 @@ in {
enable = mkEnableOption "telescope.nvim: multi-purpose search and picker utility"; enable = mkEnableOption "telescope.nvim: multi-purpose search and picker utility";
setupOpts = mkPluginSetupOption "Telescope" setupOptions; setupOpts = mkPluginSetupOption "Telescope" setupOptions;
extensions = mkOption {
type = listOf (submodule extensionOpts);
default = [];
example = literalExpression ''
[
{
name = "fzf";
packages = [pkgs.vimPlugins.telescope-fzf-native-nvim];
setup = {fzf = {fuzzy = true;};};
}
]
'';
description = ''
Individual extension configurations containing **name**, **packages** and **setup**
fields to resolve dependencies, handle `load_extension` calls and add the `setup`
table into the `extensions` portion of Telescope's setup table.
'';
};
}; };
} }

View file

@ -32,7 +32,7 @@ in {
assertions = [ assertions = [
{ {
assertion = usingShada && ((config.vim.options.shada or "") == ""); assertion = usingShada -> (config.vim.options.shada or "") != "";
message = '' message = ''
Yanky.nvim is configured to use 'shada' for the storage backend, but shada is disabled Yanky.nvim is configured to use 'shada' for the storage backend, but shada is disabled
in 'vim.options'. Please re-enable shada, or switch to a different backend. in 'vim.options'. Please re-enable shada, or switch to a different backend.

View file

@ -1,7 +1,7 @@
{lib, ...}: let {lib, ...}: let
inherit (lib.modules) mkRemovedOptionModule; inherit (lib.modules) mkRemovedOptionModule;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) submodule attrs attrsOf; inherit (lib.types) attrs;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {
imports = [ imports = [

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.modules) mkRenamedOptionModule; inherit (lib.modules) mkRenamedOptionModule;
inherit (lib.options) mkOption mkEnableOption literalExpression; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) nullOr attrsOf attrs enum; inherit (lib.types) nullOr attrsOf attrs enum;

View file

@ -1,8 +1,4 @@
{ {lib, ...}: let
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
inherit (lib.nvim.types) mkPluginSetupOption; inherit (lib.nvim.types) mkPluginSetupOption;
in { in {

View file

@ -7,9 +7,9 @@
}: let }: let
inherit (pkgs) vimPlugins; inherit (pkgs) vimPlugins;
inherit (lib.trivial) flip; inherit (lib.trivial) flip;
inherit (builtins) filter isString; inherit (builtins) filter isString hasAttr getAttr;
getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name}; getPin = flip getAttr (pkgs.callPackages ../../../npins/sources.nix {});
noBuildPlug = pname: let noBuildPlug = pname: let
pin = getPin pname; pin = getPin pname;
@ -48,13 +48,22 @@
doCheck = false; doCheck = false;
}; };
inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp; inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp avante-nvim;
}; };
buildConfigPlugins = plugins: buildConfigPlugins = plugins:
map (plug: map (plug:
if (isString plug) if (isString plug)
then pluginBuilders.${plug} or (noBuildPlug plug) then
if hasAttr plug config.vim.pluginOverrides
then
(let
plugin = config.vim.pluginOverrides.${plug};
in
if (lib.isType "flake" plugin)
then plugin // {name = plug;}
else plugin)
else pluginBuilders.${plug} or (noBuildPlug plug)
else plug) ( else plug) (
filter (f: f != null) plugins filter (f: f != null) plugins
); );

View file

@ -11,7 +11,7 @@ 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()
Whethere to enable the experimental Lua module loader to speed up the start 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 up process. If `true`, this will enable the experimental Lua module loader
which: which:

View file

@ -9,9 +9,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "2e00d1d4248f08dddfceacb8d2996e51e13e00f6", "revision": "5c0df1679bf7c814c924dc6646cc5291daca8363",
"url": "https://github.com/stevearc/aerial.nvim/archive/2e00d1d4248f08dddfceacb8d2996e51e13e00f6.tar.gz", "url": "https://github.com/stevearc/aerial.nvim/archive/5c0df1679bf7c814c924dc6646cc5291daca8363.tar.gz",
"hash": "18rhmpqs8440hn4g5786znj37fzb01wa3zws33rlq9vm6sfb0grw" "hash": "1dhsg3bli32d0p36c9f1i95p7h9hn5czr1zwlcd3v926qzj9wp1j"
}, },
"alpha-nvim": { "alpha-nvim": {
"type": "Git", "type": "Git",
@ -26,6 +26,19 @@
"url": "https://github.com/goolord/alpha-nvim/archive/a35468cd72645dbd52c0624ceead5f301c566dff.tar.gz", "url": "https://github.com/goolord/alpha-nvim/archive/a35468cd72645dbd52c0624ceead5f301c566dff.tar.gz",
"hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h"
}, },
"avante-nvim": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "yetone",
"repo": "avante.nvim"
},
"branch": "main",
"submodules": false,
"revision": "2dd4c040880b271861369b361489a2d418d42648",
"url": "https://github.com/yetone/avante.nvim/archive/2dd4c040880b271861369b361489a2d418d42648.tar.gz",
"hash": "01j92m0qhd5g6m92rp0qnr4vqqgfrhbx91jbrrcjj1npizynxjm1"
},
"base16": { "base16": {
"type": "Git", "type": "Git",
"repository": { "repository": {
@ -35,9 +48,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "f9ce7474c54803cb0fa308b0b91549d394a07940", "revision": "5d0fcd834d48048822e36221ab067bedb3ef5c93",
"url": "https://github.com/rrethy/base16-nvim/archive/f9ce7474c54803cb0fa308b0b91549d394a07940.tar.gz", "url": "https://github.com/rrethy/base16-nvim/archive/5d0fcd834d48048822e36221ab067bedb3ef5c93.tar.gz",
"hash": "1d575pa225ws5rhabr17if5pl8vfy1ks1a9w3rx7f47vdk8ars4m" "hash": "035j1x44sjk0vhcbp18nm1lq32z8ra8qp8wlij3382mai8jrrb06"
}, },
"blink-cmp-spell": { "blink-cmp-spell": {
"type": "Git", "type": "Git",
@ -61,9 +74,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "f1836ed7a07f8d082ff6c3fbae1e476ba2adee84", "revision": "1454f14a8d855a578ceeba77c62538fa1459a67c",
"url": "https://github.com/saghen/blink.compat/archive/f1836ed7a07f8d082ff6c3fbae1e476ba2adee84.tar.gz", "url": "https://github.com/saghen/blink.compat/archive/1454f14a8d855a578ceeba77c62538fa1459a67c.tar.gz",
"hash": "0b22c943vbxn8cgfc3m0wmmia9rja6x766ywa798nx7s7x0sd53x" "hash": "132w0z919fvj5wmjyfkpr59f6pidg522l4hsf2c03033d3xh5i0h"
}, },
"blink-emoji-nvim": { "blink-emoji-nvim": {
"type": "Git", "type": "Git",
@ -87,9 +100,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "a910b62c896eee2d0e74eb48b3ff5eedd211db69", "revision": "3b146c70869c3f42c623341ad8befe9a073087a6",
"url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/a910b62c896eee2d0e74eb48b3ff5eedd211db69.tar.gz", "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/3b146c70869c3f42c623341ad8befe9a073087a6.tar.gz",
"hash": "0xinh3rxjrglkzgw9d80x1scl20h2gxzkl3f3cjzpz04rrr6slsm" "hash": "0058rns7sgkzsfkgdqlx51bi04fn6hxv4ddl8g32mpq27dji13pn"
}, },
"bufdelete-nvim": { "bufdelete-nvim": {
"type": "Git", "type": "Git",
@ -113,9 +126,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "56a9dfd1e05868cf3189369aad87242941396563", "revision": "a0c769bc7cd04bbbf258b3d5f01e2bdce744108d",
"url": "https://github.com/catppuccin/nvim/archive/56a9dfd1e05868cf3189369aad87242941396563.tar.gz", "url": "https://github.com/catppuccin/nvim/archive/a0c769bc7cd04bbbf258b3d5f01e2bdce744108d.tar.gz",
"hash": "082rlnsxm1ip5mhpgc37nyp96s2hmvkcd4cbbvsvzdghiq4kl51b" "hash": "08qv1had0gi2hzd854j7xyq3s3z9bvf1x40bav05ll52xkksn5vx"
}, },
"ccc-nvim": { "ccc-nvim": {
"type": "Git", "type": "Git",
@ -256,9 +269,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "9edf22cb71711cd7fab7671a25ed5424011a379d", "revision": "01b2841d7791376e23728d9faf657fe999e6c209",
"url": "https://github.com/olimorris/codecompanion.nvim/archive/9edf22cb71711cd7fab7671a25ed5424011a379d.tar.gz", "url": "https://github.com/olimorris/codecompanion.nvim/archive/01b2841d7791376e23728d9faf657fe999e6c209.tar.gz",
"hash": "1a23ra7q2aqa7raxa9jzgj852pz4bxkjr1k8qhh68lvrimmj0b73" "hash": "1j8jdn89255c9jalffajhv8sqjlxgjqshhpb026qzn8j93rs19c6"
}, },
"codewindow-nvim": { "codewindow-nvim": {
"type": "Git", "type": "Git",
@ -295,9 +308,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "6feb2f28f9a9385e401857b21eeac3c1b66dd628", "revision": "0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6",
"url": "https://github.com/stevearc/conform.nvim/archive/6feb2f28f9a9385e401857b21eeac3c1b66dd628.tar.gz", "url": "https://github.com/stevearc/conform.nvim/archive/0e93e0d12d2f7ebdea9e3e444dfaff0050cefbe6.tar.gz",
"hash": "1vfjv81b27qja3byfzskv1y57jsqwy6y0mac1ry7xpdbnva3vxwc" "hash": "0hvpvk0gs76b9sfzrzhmrq9d7rab3ldim0vf18qf424xl72fbw8b"
}, },
"copilot-cmp": { "copilot-cmp": {
"type": "Git", "type": "Git",
@ -321,9 +334,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "a620a5a97b73faba009a8160bab2885316e1451c", "revision": "c1bb86abbed1a52a11ab3944ef00c8410520543d",
"url": "https://github.com/zbirenbaum/copilot.lua/archive/a620a5a97b73faba009a8160bab2885316e1451c.tar.gz", "url": "https://github.com/zbirenbaum/copilot.lua/archive/c1bb86abbed1a52a11ab3944ef00c8410520543d.tar.gz",
"hash": "0n3zkqnf5dqj6rdgf6nq50mjj7j5ngz4fzphfa13r7y8s5j0f6az" "hash": "11w41p4wah0w6f1lyhrr214h761rcic7nfnriszk2b25q4ifj4db"
}, },
"crates-nvim": { "crates-nvim": {
"type": "Git", "type": "Git",
@ -334,9 +347,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "25f31372ab6f504d4fd7cfee836ad459caed8e68", "revision": "5d8b1bef686db0fabe5f1bb593744b617e8f1405",
"url": "https://github.com/Saecki/crates.nvim/archive/25f31372ab6f504d4fd7cfee836ad459caed8e68.tar.gz", "url": "https://github.com/Saecki/crates.nvim/archive/5d8b1bef686db0fabe5f1bb593744b617e8f1405.tar.gz",
"hash": "0vxgvnm5z9zpriplqq2q17c4v7ccmpc9f5wl02wpslfvwrfc6h2h" "hash": "1zy81gdfis2wmhhsi1qjnmxpfpsviscwdyypnnccqhp7z3lwcf5h"
}, },
"csharpls-extended-lsp-nvim": { "csharpls-extended-lsp-nvim": {
"type": "Git", "type": "Git",
@ -347,9 +360,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4", "revision": "79ea71655a705be38a113809d7e9e15aaa0695b2",
"url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4.tar.gz", "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/79ea71655a705be38a113809d7e9e15aaa0695b2.tar.gz",
"hash": "0ls3m94qk4vjwki7bjrf4di9fiwvh9hhkahav28c3nz14j559gs4" "hash": "1a4igb5ldhw3wnhbf06fn97qgxfgmnqz86ss6ycc9y4g7jaj0bi7"
}, },
"dashboard-nvim": { "dashboard-nvim": {
"type": "Git", "type": "Git",
@ -360,9 +373,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "0f99b3cd66b9fde13926724c67c6e1abeb48e07d", "revision": "c42fcfbd96dfcaa486c0a0ab52494316f1c31350",
"url": "https://github.com/glepnir/dashboard-nvim/archive/0f99b3cd66b9fde13926724c67c6e1abeb48e07d.tar.gz", "url": "https://github.com/glepnir/dashboard-nvim/archive/c42fcfbd96dfcaa486c0a0ab52494316f1c31350.tar.gz",
"hash": "0s0i568nj4mkq0q29gjj9cm050p7n8b2jykbkyl7qajc1piwa93x" "hash": "1lydgxs3j1jbyrn1ybpm43l7wfbix9mlvymb2frg93dlg0gw4zd3"
}, },
"diffview-nvim": { "diffview-nvim": {
"type": "Git", "type": "Git",
@ -425,9 +438,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "6beae8194152e2d8b4a59de19a3e60c1f7ffcff5", "revision": "eeb2b5a2e99e1646861a104f108c5818dd3973dc",
"url": "https://github.com/elixir-tools/elixir-tools.nvim/archive/6beae8194152e2d8b4a59de19a3e60c1f7ffcff5.tar.gz", "url": "https://github.com/elixir-tools/elixir-tools.nvim/archive/eeb2b5a2e99e1646861a104f108c5818dd3973dc.tar.gz",
"hash": "0kncq60x3kvy4plszq4zygrsy6cyzf43g2xgzqwif88i85ki7zq6" "hash": "1l0xjis8jp5mf3v42f9xsjmwpjskf6zk6brpr8l39sp1bjn9z4x7"
}, },
"fastaction-nvim": { "fastaction-nvim": {
"type": "Git", "type": "Git",
@ -438,9 +451,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "6b4205aa380b1f118b7b4f6d004d3704b73d0d23", "revision": "f9a986b84a6da2a5ebbe57bbda7762d06f1ac64d",
"url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/6b4205aa380b1f118b7b4f6d004d3704b73d0d23.tar.gz", "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/f9a986b84a6da2a5ebbe57bbda7762d06f1ac64d.tar.gz",
"hash": "1xa78afcnlvvvdp10bhy13sqyscl1z1n8s40jhdfqy42i98qqqnj" "hash": "15jxrif7qkgj7fadvby95y2b2cav90f7dilhjyj6117ky9yxlr8w"
}, },
"fidget-nvim": { "fidget-nvim": {
"type": "Git", "type": "Git",
@ -477,9 +490,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1", "revision": "d1022db80dab2a565563993843e8c60b20a3df39",
"url": "https://github.com/akinsho/flutter-tools.nvim/archive/d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1.tar.gz", "url": "https://github.com/akinsho/flutter-tools.nvim/archive/d1022db80dab2a565563993843e8c60b20a3df39.tar.gz",
"hash": "046fk727prhav2aha62ak50qvc3mmv8sc438hkhhd1ql3ilb7jrr" "hash": "16dmlag0sakzsiamms30nwq7vxrr8mwq777cgc9z3liikd81kx7h"
}, },
"friendly-snippets": { "friendly-snippets": {
"type": "Git", "type": "Git",
@ -503,9 +516,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "a3e614173397e947bc2755c8c90633ff57f93c1e", "revision": "70a1c1d266af2ea4d1d9c16e09c60d3fc8c5aa5f",
"url": "https://github.com/ibhagwan/fzf-lua/archive/a3e614173397e947bc2755c8c90633ff57f93c1e.tar.gz", "url": "https://github.com/ibhagwan/fzf-lua/archive/70a1c1d266af2ea4d1d9c16e09c60d3fc8c5aa5f.tar.gz",
"hash": "03vh73ss0xm5sw392w3crmh5y60ajpn2b8ipnpslch2vaf155x6z" "hash": "1df1j9b3rjhqyyz3nfdm9agw37w2pn384skr8jg4q4a7vjpdmh2a"
}, },
"gesture-nvim": { "gesture-nvim": {
"type": "Git", "type": "Git",
@ -568,9 +581,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "8b729e489f1475615dc6c9737da917b3bc163605", "revision": "d0f90ef51d4be86b824b012ec52ed715b5622e51",
"url": "https://github.com/lewis6991/gitsigns.nvim/archive/8b729e489f1475615dc6c9737da917b3bc163605.tar.gz", "url": "https://github.com/lewis6991/gitsigns.nvim/archive/d0f90ef51d4be86b824b012ec52ed715b5622e51.tar.gz",
"hash": "06ag4vksr64l8yffrsahl86x45c1klyyfzw7b0fzzncp918drrmi" "hash": "1c5dn4d1s8x7lfh1zzq604l80pcdsbv0vjpzaj0s3fiar2piqrrg"
}, },
"glow-nvim": { "glow-nvim": {
"type": "Git", "type": "Git",
@ -607,9 +620,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "1a3648a53002c2911ccb88e9c9f876cdc6c43ad6", "revision": "145b930954a3146cfb5b8a73cdcad42eb7d2740c",
"url": "https://github.com/m4xshen/hardtime.nvim/archive/1a3648a53002c2911ccb88e9c9f876cdc6c43ad6.tar.gz", "url": "https://github.com/m4xshen/hardtime.nvim/archive/145b930954a3146cfb5b8a73cdcad42eb7d2740c.tar.gz",
"hash": "1dp0ckqq8s7s8si5r4889r84gpr38ghvsnar775rwg5vpsyq917d" "hash": "126wxmqc4y8pff7z4rj58pnnzlz61nr9z9vbffk889yphgjjkdfm"
}, },
"harpoon": { "harpoon": {
"type": "Git", "type": "Git",
@ -633,9 +646,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "7ec43968cd30ba52b1ade311acffaecddb718259", "revision": "3f1a53df82ca72e90752dab473e92f37cdd8bdc6",
"url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/7ec43968cd30ba52b1ade311acffaecddb718259.tar.gz", "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/3f1a53df82ca72e90752dab473e92f37cdd8bdc6.tar.gz",
"hash": "0cgilybpdwb5rd7i4z4f24ff3zz6f6zzk4vlnpkzx36z1538lxn4" "hash": "0wj7m2w1c3g9fi9lr6pnl0sbz0fqrhakmvawf3pbhaazpl61ws9g"
}, },
"highlight-undo-nvim": { "highlight-undo-nvim": {
"type": "Git", "type": "Git",
@ -753,9 +766,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "189102b07cdd24de3bd7132e57da8c9614c385fc", "revision": "9958013bd9c41e6f32af0202b9ea41055fe4667e",
"url": "https://github.com/ggandor/leap.nvim/archive/189102b07cdd24de3bd7132e57da8c9614c385fc.tar.gz", "url": "https://github.com/ggandor/leap.nvim/archive/9958013bd9c41e6f32af0202b9ea41055fe4667e.tar.gz",
"hash": "0rdvrxdq43szm360rrnmxzmrm5wp6l91xkysnkl4d9p6rlyx01nz" "hash": "1l4hpjwfa2d2vkfrymjsv1zn0clx6vxnr0xzlfdi2jg41ms1niwq"
}, },
"leetcode-nvim": { "leetcode-nvim": {
"type": "Git", "type": "Git",
@ -779,9 +792,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "2b30d8582126a12a493b737e9761969eb869a05b", "revision": "d50e40b3bf9324128e71b0b7e589765ce89466d2",
"url": "https://github.com/ray-x/lsp_signature.nvim/archive/2b30d8582126a12a493b737e9761969eb869a05b.tar.gz", "url": "https://github.com/ray-x/lsp_signature.nvim/archive/d50e40b3bf9324128e71b0b7e589765ce89466d2.tar.gz",
"hash": "12ywprr9mv1kfjagfsmp603r9nyrb993wq86jk5sxppj6zir4va9" "hash": "0kw5631k18xjzxv0rlbcxv9vy9ai125bda32cr05yijcl86rf7ld"
}, },
"lspkind-nvim": { "lspkind-nvim": {
"type": "Git", "type": "Git",
@ -844,9 +857,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "faf3c94a44508cec1b961406d36cc65113ff3b98", "revision": "5271933f7cea9f6b1c7de953379469010ed4553a",
"url": "https://github.com/L3MON4D3/LuaSnip/archive/faf3c94a44508cec1b961406d36cc65113ff3b98.tar.gz", "url": "https://github.com/L3MON4D3/LuaSnip/archive/5271933f7cea9f6b1c7de953379469010ed4553a.tar.gz",
"hash": "18d5wmf6s4z7h0vy87nkazikh9jpzk8i8c54g5kpmf3kfliv3lp1" "hash": "04c2lsls4085y5rkcw4m5md20vh0n7fz038qmxp9in65k64r2xf7"
}, },
"lz-n": { "lz-n": {
"type": "Git", "type": "Git",
@ -857,9 +870,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "6984e04b8dfdecedd61687271947725bc86f66d5", "revision": "07a7c61101e1481efd5d8be36ef408a96965686a",
"url": "https://github.com/nvim-neorocks/lz.n/archive/6984e04b8dfdecedd61687271947725bc86f66d5.tar.gz", "url": "https://github.com/nvim-neorocks/lz.n/archive/07a7c61101e1481efd5d8be36ef408a96965686a.tar.gz",
"hash": "01qgwcq71v51dcimw1mlcy7ikkrw25s15jsmck1f6hkz4h08zqpq" "hash": "0bymg0dyc9xb14yr3yd3yywqxshvypb6arixisrzfxq3wg9kk571"
}, },
"lzn-auto-require": { "lzn-auto-require": {
"type": "Git", "type": "Git",
@ -883,9 +896,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "68c9603b6f88fd962444f8579024418fe5e170f1", "revision": "99d9a091915b994b378c4a9cc3553b3cbbe4bad5",
"url": "https://github.com/OXY2DEV/markview.nvim/archive/68c9603b6f88fd962444f8579024418fe5e170f1.tar.gz", "url": "https://github.com/OXY2DEV/markview.nvim/archive/99d9a091915b994b378c4a9cc3553b3cbbe4bad5.tar.gz",
"hash": "1kfgr9d3kbxqagcddkns7n5fhmsm6xpx80gsrryyz96hxd8kj9ws" "hash": "01ww5nj0035yb9g64g9s3rbc190y3vgl3igl2lybypv3qszsnlzf"
}, },
"mind-nvim": { "mind-nvim": {
"type": "Git", "type": "Git",
@ -909,9 +922,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "b91997d220086e92edc1fec5ce82094dcc234291", "revision": "5225f16eacf4dce2cb7204ca345123ef54e209d6",
"url": "https://github.com/echasnovski/mini.ai/archive/b91997d220086e92edc1fec5ce82094dcc234291.tar.gz", "url": "https://github.com/echasnovski/mini.ai/archive/5225f16eacf4dce2cb7204ca345123ef54e209d6.tar.gz",
"hash": "0ziv1l9jmj4a0yvj6xrx68j6hgivpxkp25cgnsw5k8i6h7m112mw" "hash": "0vqf5xywkqw84r96malik5jxib7ifr9vpk1f6ifj74d23ldqzs1c"
}, },
"mini-align": { "mini-align": {
"type": "Git", "type": "Git",
@ -1000,9 +1013,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "8b8598afa285f2a25cfd15a67e7eaa210ad405c3", "revision": "97198ef9d8425e69f74d2875e217440ba0ff1730",
"url": "https://github.com/echasnovski/mini.clue/archive/8b8598afa285f2a25cfd15a67e7eaa210ad405c3.tar.gz", "url": "https://github.com/echasnovski/mini.clue/archive/97198ef9d8425e69f74d2875e217440ba0ff1730.tar.gz",
"hash": "12p09p8b9b79fpqw8f9pfbs5l6gra3agbns0zaipm2aja0kkisva" "hash": "1ma9rmdgqlc9iwl3yrqxljnmibqj4zvs9g3wn2n27mrm10xl1z5y"
}, },
"mini-colors": { "mini-colors": {
"type": "Git", "type": "Git",
@ -1159,9 +1172,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "f1fa8ad34788eada276f0b8a41d96a15622933de", "revision": "62f16a7b4704d051f69c39dbbe867dfdb4f0d3ed",
"url": "https://github.com/echasnovski/mini.hues/archive/f1fa8ad34788eada276f0b8a41d96a15622933de.tar.gz", "url": "https://github.com/echasnovski/mini.hues/archive/62f16a7b4704d051f69c39dbbe867dfdb4f0d3ed.tar.gz",
"hash": "0yap91dqnr4jpwz1krmzay5p89pxb8v6m5457b6sm6f98956zgqq" "hash": "0hmflllpxmp39d1x1lx0j6w3mm2yin3mf0mjgfics2s6jdami3pj"
}, },
"mini-icons": { "mini-icons": {
"type": "Git", "type": "Git",
@ -1302,9 +1315,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "f02e64580a547346128799ba667dfc0e29737532", "revision": "c272dc61cd0326b344761cd9d031bfcdef1978c7",
"url": "https://github.com/echasnovski/mini.pick/archive/f02e64580a547346128799ba667dfc0e29737532.tar.gz", "url": "https://github.com/echasnovski/mini.pick/archive/c272dc61cd0326b344761cd9d031bfcdef1978c7.tar.gz",
"hash": "19aqwx8hisp5smj7qzgdzzcjz8k0p0vk21pxnnnxiv4w85d7s1zz" "hash": "0kpn9ha5kivv46r6m30bpbfv8qksg8k2xgb3n4gih7rlvik9qa3m"
}, },
"mini-sessions": { "mini-sessions": {
"type": "Git", "type": "Git",
@ -1328,9 +1341,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "d005684e620e76eb2a5fbbbd211a1eba7212b4aa", "revision": "6f0de3c3f97a8c015f99619f72edf9b2880b6886",
"url": "https://github.com/echasnovski/mini.snippets/archive/d005684e620e76eb2a5fbbbd211a1eba7212b4aa.tar.gz", "url": "https://github.com/echasnovski/mini.snippets/archive/6f0de3c3f97a8c015f99619f72edf9b2880b6886.tar.gz",
"hash": "19xmqzgx0lv6m6lp6dn4pcr53clgjyrlnh45j795cy9szizw4y0x" "hash": "0pbkwp5p0y3djf3xfvmnf6ys1w5287gyhas09s94ha2ghhsyzy2w"
}, },
"mini-splitjoin": { "mini-splitjoin": {
"type": "Git", "type": "Git",
@ -1380,9 +1393,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "5aab42fcdcf31fa010f012771eda5631c077840a", "revision": "0d278217ca98ffa5b768701fb57f52a88b1e1f93",
"url": "https://github.com/echasnovski/mini.surround/archive/5aab42fcdcf31fa010f012771eda5631c077840a.tar.gz", "url": "https://github.com/echasnovski/mini.surround/archive/0d278217ca98ffa5b768701fb57f52a88b1e1f93.tar.gz",
"hash": "0hsy7ngqz17a663k4gkj9ambbcn24jvqx7010aiv8g4b0gbmzhky" "hash": "0r93kgzd5xhykcwxzfjcmdmcd2dmj80hxqfd4r6ikbaxq6b6vnk0"
}, },
"mini-tabline": { "mini-tabline": {
"type": "Git", "type": "Git",
@ -1406,9 +1419,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "4c70379d07ea44f697d96c7a6f04c79f17b34bb3", "revision": "0701f48de3c6af1158b9111957ff956506124c3e",
"url": "https://github.com/echasnovski/mini.test/archive/4c70379d07ea44f697d96c7a6f04c79f17b34bb3.tar.gz", "url": "https://github.com/echasnovski/mini.test/archive/0701f48de3c6af1158b9111957ff956506124c3e.tar.gz",
"hash": "0si92d4jc7lmzj2mppz0vcmgqgsbgy64fl4bj8jwdl7z78bhpjwk" "hash": "1v21zpsyxxlnix4g2c1dq23vwpjjbi7sbil4d85ydfl6i3cya90z"
}, },
"mini-trailspace": { "mini-trailspace": {
"type": "Git", "type": "Git",
@ -1500,9 +1513,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde", "revision": "b287285c24ee5dca63d0000230a5a04e681b8db6",
"url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde.tar.gz", "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/b287285c24ee5dca63d0000230a5a04e681b8db6.tar.gz",
"hash": "0mh0wv4x2pi6khwbp3fvi40n6hd3sz5ak81w9vf2xn3hh2z0mmqc" "hash": "06nz3z7yq12z4img46bmr1qjm09x3av6hz5fh4hdg5d5n5f2icmd"
}, },
"neocord": { "neocord": {
"type": "Git", "type": "Git",
@ -1513,9 +1526,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "41bacd44e9d36f5e36e0271672ac2c02f6fa355a", "revision": "2ebf3792a8100376bb65fd66d5dbf60f50af7529",
"url": "https://github.com/IogaMaster/neocord/archive/41bacd44e9d36f5e36e0271672ac2c02f6fa355a.tar.gz", "url": "https://github.com/IogaMaster/neocord/archive/2ebf3792a8100376bb65fd66d5dbf60f50af7529.tar.gz",
"hash": "1n998zsv0bikscwpr75qq11xh559xzx6d7rs7fc21jj1rivkk4aw" "hash": "1ycx26ppfb5djxji1mwamr7ra29z8sm0fs9a6hhwn0l69x06x353"
}, },
"neorg": { "neorg": {
"type": "Git", "type": "Git",
@ -1708,9 +1721,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "b0f983507e3702f073bfe1516846e58b56d4e42f", "revision": "ea82027c3447dc1a022be9a9884de276c05cd33a",
"url": "https://github.com/mfussenegger/nvim-dap/archive/b0f983507e3702f073bfe1516846e58b56d4e42f.tar.gz", "url": "https://github.com/mfussenegger/nvim-dap/archive/ea82027c3447dc1a022be9a9884de276c05cd33a.tar.gz",
"hash": "17fcxlfkzh75q8sasjf21jbh18s78v9g80p5qrlgi0caqznj0hv7" "hash": "0m91bqbprp6n00m7kk5wqrhl237a5q082m98xak6r7gvxg1c7ac7"
}, },
"nvim-dap-go": { "nvim-dap-go": {
"type": "Git", "type": "Git",
@ -1773,9 +1786,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "b47cbb249351873e3a571751c3fb66ed6369852f", "revision": "cc26ae6a620298bb3f33b0e0681f99a10ae57781",
"url": "https://github.com/mfussenegger/nvim-lint/archive/b47cbb249351873e3a571751c3fb66ed6369852f.tar.gz", "url": "https://github.com/mfussenegger/nvim-lint/archive/cc26ae6a620298bb3f33b0e0681f99a10ae57781.tar.gz",
"hash": "0cs6vs58p98fv6nmqsyik2kws6xnqbny79gl39mmyssm3z9mpps8" "hash": "0jspqgw8zwz79jrlcqr15waaxzw68n5c10bvhm3hqw02dr0bbipq"
}, },
"nvim-lspconfig": { "nvim-lspconfig": {
"type": "Git", "type": "Git",
@ -1786,9 +1799,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "d45702594afc661a9dfa95e96acf18c56006d4d9", "revision": "036885e8e5456d3907626b634693234f628afef6",
"url": "https://github.com/neovim/nvim-lspconfig/archive/d45702594afc661a9dfa95e96acf18c56006d4d9.tar.gz", "url": "https://github.com/neovim/nvim-lspconfig/archive/036885e8e5456d3907626b634693234f628afef6.tar.gz",
"hash": "0rkbb0difvd68ihprsjvw59m6jlfdlpyqgamlfcfqn53yxawgbw3" "hash": "1zkjmr33srzdcjriwdlvq1dmpia7n0xgy3k5l3cdhrfn66k3mwl2"
}, },
"nvim-metals": { "nvim-metals": {
"type": "Git", "type": "Git",
@ -1799,9 +1812,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "d1639b7fccd845875e33444c7860ad292ab8670d", "revision": "5ab889232ccb6e749094294e7979fda4a71fdecb",
"url": "https://github.com/scalameta/nvim-metals/archive/d1639b7fccd845875e33444c7860ad292ab8670d.tar.gz", "url": "https://github.com/scalameta/nvim-metals/archive/5ab889232ccb6e749094294e7979fda4a71fdecb.tar.gz",
"hash": "1f6cgzs3vwqdva06jdcmyy5rldjlxg8x5fbdyq61hbl3xw5qjvsq" "hash": "10asl4vi6di8vzhhjsczf8c5l16lcj0ygj2fbylav44ydy4dlwxd"
}, },
"nvim-navbuddy": { "nvim-navbuddy": {
"type": "Git", "type": "Git",
@ -1903,9 +1916,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "ebcaccda1c575fa19a8087445276e6671e2b9b37", "revision": "1c733e8c1957dc67f47580fe9c458a13b5612d5b",
"url": "https://github.com/nvim-tree/nvim-tree.lua/archive/ebcaccda1c575fa19a8087445276e6671e2b9b37.tar.gz", "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/1c733e8c1957dc67f47580fe9c458a13b5612d5b.tar.gz",
"hash": "1x1yw3xjpn2g0qxsniyjq4pxkccycbz499mwp9m6h8xdyhbafsvg" "hash": "1a92zsb1r48s6cjphvx406lbxyc1v9w3gk9kkp3ri0k1l134aaw8"
}, },
"nvim-treesitter-context": { "nvim-treesitter-context": {
"type": "Git", "type": "Git",
@ -1916,9 +1929,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "153a076598076bf5664ab868fb01d3418ecffce9", "revision": "464a443b5a6657f39772b20baa95d02ffe97b268",
"url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/153a076598076bf5664ab868fb01d3418ecffce9.tar.gz", "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/464a443b5a6657f39772b20baa95d02ffe97b268.tar.gz",
"hash": "0l57jpnx5nfmddrsrnsj2wxfn4xl2fp5xghhjrdbhp8rg0xm6qn8" "hash": "1q8ll6lkgqc2vhr9jz687a9rgzxrd0swy8cnsy2mb6c6626sxxhq"
}, },
"nvim-treesitter-textobjects": { "nvim-treesitter-textobjects": {
"type": "Git", "type": "Git",
@ -1994,9 +2007,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "685cdb4ffa74473d75a1b97451f8654ceeab0f4a", "revision": "08c2bce8b00fd780fb7999dbffdf7cd174e896fb",
"url": "https://github.com/stevearc/oil.nvim/archive/685cdb4ffa74473d75a1b97451f8654ceeab0f4a.tar.gz", "url": "https://github.com/stevearc/oil.nvim/archive/08c2bce8b00fd780fb7999dbffdf7cd174e896fb.tar.gz",
"hash": "1wqbsfh274wkyyx8nf5gbcnsk92y4bwsrwq2vl85x3cx73kkzlhv" "hash": "1hz1fx5nc81l91p89vb3fwnflpfp96yk08ff79lxl9am7x2mpd3x"
}, },
"omnisharp-extended-lsp-nvim": { "omnisharp-extended-lsp-nvim": {
"type": "Git", "type": "Git",
@ -2033,9 +2046,9 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "55b68bbdfd22588d767f4401a3304df5d7427e19", "revision": "32ef9e95f43a6e951fb931b438372546a4f0c524",
"url": "https://github.com/nvim-orgmode/orgmode/archive/55b68bbdfd22588d767f4401a3304df5d7427e19.tar.gz", "url": "https://github.com/nvim-orgmode/orgmode/archive/32ef9e95f43a6e951fb931b438372546a4f0c524.tar.gz",
"hash": "03ywkg95c48bmpfqlc1ndzin09wfhzqgjv8mfjjz0ksh8xh8xv0l" "hash": "0kh1rj76np36ifm412j1b28hnm8k471va1g0l0jcdzkzlwdvpkj3"
}, },
"otter-nvim": { "otter-nvim": {
"type": "Git", "type": "Git",
@ -2046,9 +2059,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "fa436071c67233e6cd466268212feaf4ff4ed406", "revision": "1348aad77adac26fe3dff44aa220c5a7e96aa8ae",
"url": "https://github.com/jmbuhr/otter.nvim/archive/fa436071c67233e6cd466268212feaf4ff4ed406.tar.gz", "url": "https://github.com/jmbuhr/otter.nvim/archive/1348aad77adac26fe3dff44aa220c5a7e96aa8ae.tar.gz",
"hash": "0i8bkgyh8zaszm15h8lznd9ik1fh0l0mdcwyam4mnn4q0nhjqznb" "hash": "0qdc2dy16jk9a081g1kfiiibxfmzwxvnl5d5m239mcfivzkwn8yq"
}, },
"oxocarbon": { "oxocarbon": {
"type": "Git", "type": "Git",
@ -2059,9 +2072,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "004777819ba294423b638a35a75c9f0c7be758ed", "revision": "acdfdd5d319c36170b5ad2a120283bec2f450081",
"url": "https://github.com/nyoom-engineering/oxocarbon.nvim/archive/004777819ba294423b638a35a75c9f0c7be758ed.tar.gz", "url": "https://github.com/nyoom-engineering/oxocarbon.nvim/archive/acdfdd5d319c36170b5ad2a120283bec2f450081.tar.gz",
"hash": "1qllk870nqc9nhkdgmqm8km2rar6dsmyhfhpcfx8crrg640yfbqy" "hash": "1byvqvrnf56y050r6dl4sykn22z11i8qxxai8j552a06l7jxyiw4"
}, },
"pathlib-nvim": { "pathlib-nvim": {
"type": "Git", "type": "Git",
@ -2163,9 +2176,9 @@
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "df64d5d5432e13026a79384ec4e2bab185fd4eb5", "revision": "6f5a4c36d9383b2a916facaa63dcd573afa11ee8",
"url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/df64d5d5432e13026a79384ec4e2bab185fd4eb5.tar.gz", "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/6f5a4c36d9383b2a916facaa63dcd573afa11ee8.tar.gz",
"hash": "1pdl0s2k3sjlzdw1w6fv5cil51nkm4c6yjidp1xly94qjxwj6sv4" "hash": "15q8169wxslr6kmzqagvsj20j745cym72a2yjmdavh61mgs56rxh"
}, },
"rose-pine": { "rose-pine": {
"type": "Git", "type": "Git",
@ -2215,9 +2228,25 @@
}, },
"branch": "master", "branch": "master",
"submodules": false, "submodules": false,
"revision": "eaa8d3dc22026da53fbb1b63f504541c70de44f4", "revision": "a0c8e9698ef90bcfdf42806a38bf55b612b65b18",
"url": "https://github.com/mrcjkb/rustaceanvim/archive/eaa8d3dc22026da53fbb1b63f504541c70de44f4.tar.gz", "url": "https://github.com/mrcjkb/rustaceanvim/archive/a0c8e9698ef90bcfdf42806a38bf55b612b65b18.tar.gz",
"hash": "0wkpj6nd48k4gi7z82wfr5686nlp2g4s335zjgn5mkra0cfgflh7" "hash": "1j63qpal1n8m9kj3fdjjw81ljbsqjzph65q2cacwm5ziwi2xvncx"
},
"smart-splits": {
"type": "GitRelease",
"repository": {
"type": "GitHub",
"owner": "mrjones2014",
"repo": "smart-splits.nvim"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "v2.0.1",
"revision": "7c9bc1cfc0582c8c6851c38bb3338db644039cf7",
"url": "https://api.github.com/repos/mrjones2014/smart-splits.nvim/tarball/v2.0.1",
"hash": "0lhwkb07pdfi7dx9kbzynh0dxivhiryngkiy4565hyhxapfis5v7"
}, },
"smartcolumn-nvim": { "smartcolumn-nvim": {
"type": "Git", "type": "Git",
@ -2248,6 +2277,22 @@
"url": "https://api.github.com/repos/folke/snacks.nvim/tarball/v2.22.0", "url": "https://api.github.com/repos/folke/snacks.nvim/tarball/v2.22.0",
"hash": "1hbm4fnw51qdp0nz83fcxbvnxjq2k57a37w6dp0wz6wkcx7cwxw9" "hash": "1hbm4fnw51qdp0nz83fcxbvnxjq2k57a37w6dp0wz6wkcx7cwxw9"
}, },
"solarized": {
"type": "GitRelease",
"repository": {
"type": "GitHub",
"owner": "maxmx03",
"repo": "solarized.nvim"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "v3.6.0",
"revision": "c0dfe1cbfabd93b546baf5f1408f5df7e02e2050",
"url": "https://api.github.com/repos/maxmx03/solarized.nvim/tarball/v3.6.0",
"hash": "1fz1wc569w26aanmj3hhsc17xrx29g6bfsjsbgssa7jq76aavp3w"
},
"solarized-osaka": { "solarized-osaka": {
"type": "Git", "type": "Git",
"repository": { "repository": {