Merge branch 'main' into improve-terraformls

This commit is contained in:
ppenguin 2026-03-16 14:47:35 +01:00 committed by GitHub
commit 625f2c0fd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 1370 additions and 233 deletions

View file

@ -25,7 +25,7 @@ jobs:
name: Checkout name: Checkout
- name: Install Nix - name: Install Nix
uses: cachix/install-nix-action@v31.9.1 uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |

View file

@ -18,7 +18,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31.9.1 - uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |
@ -37,7 +37,7 @@ jobs:
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Install Nix - name: Install Nix
uses: cachix/install-nix-action@v31.9.1 uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |
@ -93,7 +93,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31.9.1 - uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |
@ -131,7 +131,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6 uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31.9.1 - uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |
@ -169,7 +169,7 @@ jobs:
cat "$HOME/changed_files" cat "$HOME/changed_files"
- name: Install Nix - name: Install Nix
uses: cachix/install-nix-action@v31.9.1 uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |

View file

@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31.9.1 - uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |

View file

@ -44,7 +44,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31.9.1 - uses: cachix/install-nix-action@v31.10.1
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: | extra_nix_config: |

View file

@ -12,7 +12,7 @@ jobs:
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: "Install Nix" - name: "Install Nix"
uses: cachix/install-nix-action@v31.9.1 uses: cachix/install-nix-action@v31.10.1
- name: Set up Git - name: Set up Git
run: | run: |

View file

@ -101,6 +101,8 @@ isMaximal: {
tailwind.enable = false; tailwind.enable = false;
svelte.enable = false; svelte.enable = false;
tera.enable = false; tera.enable = false;
twig.enable = false;
fluent.enable = false;
# Nim LSP is broken on Darwin and therefore # Nim LSP is broken on Darwin and therefore
# should be disabled by default. Users may still enable # should be disabled by default. Users may still enable

View file

@ -6,6 +6,7 @@
`vimPlugins.nvim-treesitter`. Namely, it changes from the frozen `master` `vimPlugins.nvim-treesitter`. Namely, it changes from the frozen `master`
branch to the new main branch. This change removes incremental selections, so branch to the new main branch. This change removes incremental selections, so
it is no longer available. it is no longer available.
- [obsidian.nvim] now uses a maintained fork which has removed the `dir` - [obsidian.nvim] now uses a maintained fork which has removed the `dir`
setting. Use `workspaces` instead: setting. Use `workspaces` instead:
@ -51,6 +52,8 @@ Some other settings and commands are now deprecated but are still supported.
- Added [taplo](https://taplo.tamasfe.dev/) as the default formatter and lsp for - Added [taplo](https://taplo.tamasfe.dev/) as the default formatter and lsp for
`languages.toml` so we don't default to AI-Slop. `languages.toml` so we don't default to AI-Slop.
- Added `json5` into `languages.json`. Some options where renamed.
## Changelog {#sec-release-0-9-changelog} ## Changelog {#sec-release-0-9-changelog}
[taylrfnt](https://github.com/taylrfnt) [taylrfnt](https://github.com/taylrfnt)
@ -79,6 +82,8 @@ Some other settings and commands are now deprecated but are still supported.
[NotAShelf](https://github.com/notashelf): [NotAShelf](https://github.com/notashelf):
- Lazyload noice.nvim and nvim-web-devicons on `DeferredUIEnter` - Lazyload noice.nvim and nvim-web-devicons on `DeferredUIEnter`
- Allow nulling treesitter packages for various language modules, filter `null`
values in `vim.treesitter.grammars`.
[jfeo](https://github.com/jfeo): [jfeo](https://github.com/jfeo):
@ -219,6 +224,9 @@ Some other settings and commands are now deprecated but are still supported.
- Added [`golangci-lint`](https://golangci-lint.run/) for more diagnostics. - Added [`golangci-lint`](https://golangci-lint.run/) for more diagnostics.
- Added [`gopher.nvim`](https://github.com/olexsmir/gopher.nvim) for extra
actions in `languages.go`.
- updated default filetypes for - updated default filetypes for
[harper-ls](https://github.com/Automattic/harper) to match what they are [harper-ls](https://github.com/Automattic/harper) to match what they are
supposed to be. supposed to be.
@ -228,11 +236,19 @@ Some other settings and commands are now deprecated but are still supported.
- Fix `languages.hcl` init, depending on `comment-nvim` by checking if it is - Fix `languages.hcl` init, depending on `comment-nvim` by checking if it is
enabled. Fixes a crash (#1350). enabled. Fixes a crash (#1350).
- Add `languages.fluent` using the official plugin. This only provides
highlighting.
- Added Debugging support to `languages.php`. - Added Debugging support to `languages.php`.
- Added Formatting support to `languages.php` via - Added Formatting support to `languages.php` via
[PHP-CS-Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer). [PHP-CS-Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer).
- Added minimal `languages.twig`. Currently using [djlint](https://djlint.com/)
for most options, as better alternatives like
[twig-cs-fixer](https://github.com/VincentLanglet/Twig-CS-Fixer) aren't
packaged for nix.
- Didn't Add - Didn't Add
[`syntax-gaslighting`](https://github.com/NotAShelf/syntax-gaslighting.nvim), [`syntax-gaslighting`](https://github.com/NotAShelf/syntax-gaslighting.nvim),
you're crazy. you're crazy.
@ -282,4 +298,18 @@ https://github.com/gorbit99/codewindow.nvim
- [img-clip.nvim]'s configuration now has it's own DAG entry, separate from - [img-clip.nvim]'s configuration now has it's own DAG entry, separate from
image-nvim. image-nvim.
[phanirithvij](https://github.com/phanirithvij):
[elm-language-server]: https://github.com/elm-tooling/elm-language-server
- Add Elm support with [elm-language-server]
[alv-around](https://github.com/alv-around):
- Fix `vim.assistant.codecompanion-nvim` lazy loading with [blink-cmp]
[foobar14](https://github.com/foobar14):
- Fix `vim.formatter.conform-nvim.setupOpts.formatters` type for correct merging
<!-- vim: set textwidth=80: --> <!-- vim: set textwidth=80: -->

View file

@ -0,0 +1,26 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "json2go";
version = "0.1.3";
src = fetchFromGitHub {
owner = "olexsmir";
repo = "json2go";
tag = "v${finalAttrs.version}";
hash = "sha256-2QGvPLQ7CADRNURTdnHgTCK2vyRHgtdR6YFPuTL9Ymo=";
};
vendorHash = null;
meta = {
description = "convert json to go type annotations";
mainProgram = "json2go";
homepage = "https://github.com/olexsmir/json2go";
license = lib.licenses.unlicense;
changelog = "${finalAttrs.meta.homepage}/releases/tag/${finalAttrs.version}";
};
})

View file

@ -31,6 +31,7 @@
mkGrammarOption = pkgs: grammar: mkGrammarOption = pkgs: grammar:
mkPackageOption pkgs ["${grammar} treesitter"] { mkPackageOption pkgs ["${grammar} treesitter"] {
default = ["vimPlugins" "nvim-treesitter" "grammarPlugins" grammar]; default = ["vimPlugins" "nvim-treesitter" "grammarPlugins" grammar];
nullable = true;
}; };
in { in {
inherit diagnostics diagnosticSubmodule mkGrammarOption; inherit diagnostics diagnosticSubmodule mkGrammarOption;

View file

@ -18,6 +18,18 @@ in {
package = "codecompanion-nvim"; package = "codecompanion-nvim";
setupModule = "codecompanion"; setupModule = "codecompanion";
inherit (cfg) setupOpts; inherit (cfg) setupOpts;
# Register commands with lz.n so Neovim recognizes them immediately
cmd = [
"CodeCompanion"
"CodeCompanionChat"
"CodeCompanionActions"
"CodeCompanionCmd"
];
# Ensure the plugin loads when entering Insert/Cmdline mode
# so the module is ready when blink.cmp requests it
event = ["InsertEnter" "CmdlineEnter"];
}; };
}; };
@ -33,9 +45,20 @@ in {
]; ];
}; };
autocomplete.nvim-cmp = { autocomplete = {
sources = {codecompanion-nvim = "[codecompanion]";}; nvim-cmp = {
sourcePlugins = ["codecompanion-nvim"]; sources = {codecompanion-nvim = "[codecompanion]";};
sourcePlugins = ["codecompanion-nvim"];
};
blink-cmp = {
setupOpts.sources = {
default = ["codecompanion"];
providers.codecompanion = {
name = "CodeCompanion";
module = "codecompanion.providers.completion.blink";
};
};
};
}; };
}; };
}; };

View file

@ -1,7 +1,7 @@
{lib, ...}: let {lib, ...}: let
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.options) mkOption mkEnableOption literalMD; inherit (lib.options) mkOption mkEnableOption literalMD;
inherit (lib.types) attrs either nullOr listOf submodule str; inherit (lib.types) attrs attrsOf either nullOr listOf submodule str;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.types) luaInline mkPluginSetupOption; inherit (lib.nvim.types) luaInline mkPluginSetupOption;
@ -49,7 +49,7 @@ in {
enable = mkEnableOption "lightweight yet powerful formatter plugin for Neovim [conform-nvim]"; enable = mkEnableOption "lightweight yet powerful formatter plugin for Neovim [conform-nvim]";
setupOpts = mkPluginSetupOption "conform.nvim" { setupOpts = mkPluginSetupOption "conform.nvim" {
formatters = mkOption { formatters = mkOption {
type = formattersType; type = attrsOf formattersType;
default = {}; default = {};
description = "Custom formatters and overrides for built-in formatters."; description = "Custom formatters and overrides for built-in formatters.";
}; };

View file

@ -8,7 +8,7 @@
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.meta) getExe getExe'; inherit (lib.meta) getExe getExe';
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum listOf str; inherit (lib.types) enum listOf str;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
@ -57,12 +57,22 @@ in {
enable = mkEnableOption "Arduino support"; enable = mkEnableOption "Arduino support";
treesitter = { treesitter = {
enable = mkEnableOption "Arduino treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Arduino treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "arduino"; package = mkGrammarOption pkgs "arduino";
}; };
lsp = { lsp = {
enable = mkEnableOption "Arduino LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Arduino LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -27,12 +27,22 @@ in {
enable = mkEnableOption "Assembly support"; enable = mkEnableOption "Assembly support";
treesitter = { treesitter = {
enable = mkEnableOption "Assembly treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Assembly treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "asm"; package = mkGrammarOption pkgs "asm";
}; };
lsp = { lsp = {
enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Assembly LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.asm.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.asm.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -6,7 +6,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum coercedTo; inherit (lib.types) enum coercedTo;
@ -89,13 +89,23 @@ in {
enable = mkEnableOption "Astro language support"; enable = mkEnableOption "Astro language support";
treesitter = { treesitter = {
enable = mkEnableOption "Astro treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Astro treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
astroPackage = mkGrammarOption pkgs "astro"; astroPackage = mkGrammarOption pkgs "astro";
}; };
lsp = { lsp = {
enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Astro LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.astro.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.astro.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -104,7 +114,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Astro formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Astro formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = formatType; type = formatType;
@ -114,7 +129,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Astro diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Astro diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Astro"; langDesc = "Astro";

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum bool; inherit (lib.types) enum bool;
@ -48,12 +48,22 @@ in {
enable = mkEnableOption "Bash language support"; enable = mkEnableOption "Bash language support";
treesitter = { treesitter = {
enable = mkEnableOption "Bash treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Bash treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "bash"; package = mkGrammarOption pkgs "bash";
}; };
lsp = { lsp = {
enable = mkEnableOption "Bash LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Bash LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.bash.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.bash.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -65,6 +75,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableFormat; default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
description = "Enable Bash formatting"; description = "Enable Bash formatting";
}; };
type = mkOption { type = mkOption {
@ -75,7 +86,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Bash diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Bash diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Bash"; langDesc = "Bash";
inherit diagnosticsProviders; inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) bool enum package; inherit (lib.types) bool enum package;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
@ -184,13 +184,23 @@ in {
}; };
treesitter = { treesitter = {
enable = mkEnableOption "C/C++ treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "C/C++ treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
cPackage = mkGrammarOption pkgs "c"; cPackage = mkGrammarOption pkgs "c";
cppPackage = mkGrammarOption pkgs "cpp"; cppPackage = mkGrammarOption pkgs "cpp";
}; };
lsp = { lsp = {
enable = mkEnableOption "clang LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "clang LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
description = "The clang LSP server to use"; description = "The clang LSP server to use";
@ -204,6 +214,7 @@ in {
description = "Enable clang Debug Adapter"; description = "Enable clang Debug Adapter";
type = bool; type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
}; };
debugger = mkOption { debugger = mkOption {
description = "clang debugger to use"; description = "clang debugger to use";

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Clojure language support"; enable = mkEnableOption "Clojure language support";
treesitter = { treesitter = {
enable = mkEnableOption "Clojure treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Clojure treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "clojure"; package = mkGrammarOption pkgs "clojure";
}; };
lsp = { lsp = {
enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Clojure LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf package; inherit (lib.types) enum listOf package;
@ -18,7 +18,7 @@
servers = { servers = {
neocmakelsp = { neocmakelsp = {
enable = true; enable = true;
cmd = [(getExe pkgs.neocmakelsp) "--stdio"]; cmd = [(getExe pkgs.neocmakelsp) "stdio"];
filetypes = ["cmake"]; filetypes = ["cmake"];
root_markers = [".gersemirc" ".git" "build" "cmake"]; root_markers = [".gersemirc" ".git" "build" "cmake"];
capabilities = { capabilities = {
@ -38,12 +38,22 @@ in {
enable = mkEnableOption "CMake language support"; enable = mkEnableOption "CMake language support";
treesitter = { treesitter = {
enable = mkEnableOption "CMake treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "CMake treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "cmake"; package = mkGrammarOption pkgs "cmake";
}; };
lsp = { lsp = {
enable = mkEnableOption "CMake LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "CMake LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -52,7 +62,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "CMake formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "CMake formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "CMake formatter to use"; description = "CMake formatter to use";

View file

@ -6,7 +6,7 @@
... ...
}: let }: let
inherit (builtins) attrNames concatMap; inherit (builtins) attrNames concatMap;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
@ -177,12 +177,22 @@ in {
enable = mkEnableOption "C# language support"; enable = mkEnableOption "C# language support";
treesitter = { treesitter = {
enable = mkEnableOption "C# treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "C# treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "c_sharp"; package = mkGrammarOption pkgs "c_sharp";
}; };
lsp = { lsp = {
enable = mkEnableOption "C# LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "C# LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
description = "C# LSP server to use"; description = "C# LSP server to use";
type = deprecatedSingleOrListOf "vim.language.csharp.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.csharp.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -49,13 +49,23 @@ in {
enable = mkEnableOption "CSS language support"; enable = mkEnableOption "CSS language support";
treesitter = { treesitter = {
enable = mkEnableOption "CSS treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "CSS treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "css"; package = mkGrammarOption pkgs "css";
}; };
lsp = { lsp = {
enable = mkEnableOption "CSS LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "CSS LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.css.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.css.lsp.servers" (enum (attrNames servers));

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
@ -21,13 +21,23 @@ in {
enable = mkEnableOption "CUE language support"; enable = mkEnableOption "CUE language support";
treesitter = { treesitter = {
enable = mkEnableOption "CUE treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "CUE treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "cue"; package = mkGrammarOption pkgs "cue";
}; };
lsp = { lsp = {
enable = mkEnableOption "CUE LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "CUE LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
}; };
}; };

View file

@ -8,7 +8,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.trivial) boolToString; inherit (lib.trivial) boolToString;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum package nullOr str bool; inherit (lib.types) enum package nullOr str bool;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -45,12 +45,22 @@ in {
enable = mkEnableOption "Dart language support"; enable = mkEnableOption "Dart language support";
treesitter = { treesitter = {
enable = mkEnableOption "Dart treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Dart treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "dart"; package = mkGrammarOption pkgs "dart";
}; };
lsp = { lsp = {
enable = mkEnableOption "Dart LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Dart LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.dart.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.dart.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -63,6 +73,7 @@ in {
description = "Enable Dart DAP support via flutter-tools"; description = "Enable Dart DAP support via flutter-tools";
type = bool; type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
}; };
}; };
@ -70,6 +81,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.lsp.enable; default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
description = "Enable flutter-tools for flutter support"; description = "Enable flutter-tools for flutter support";
}; };

View file

@ -14,6 +14,7 @@ in {
./cmake.nix ./cmake.nix
./css.nix ./css.nix
./elixir.nix ./elixir.nix
./elm.nix
./fsharp.nix ./fsharp.nix
./gleam.nix ./gleam.nix
./glsl.nix ./glsl.nix
@ -23,6 +24,7 @@ in {
./kotlin.nix ./kotlin.nix
./html.nix ./html.nix
./tera.nix ./tera.nix
./twig.nix
./haskell.nix ./haskell.nix
./java.nix ./java.nix
./jinja.nix ./jinja.nix
@ -57,6 +59,7 @@ in {
./just.nix ./just.nix
./make.nix ./make.nix
./xml.nix ./xml.nix
./fluent.nix
# This is now a hard deprecation. # This is now a hard deprecation.
(mkRenamedOptionModule ["vim" "languages" "enableLSP"] ["vim" "lsp" "enable"]) (mkRenamedOptionModule ["vim" "languages" "enableLSP"] ["vim" "lsp" "enable"])

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -51,14 +51,24 @@ in {
enable = mkEnableOption "Elixir language support"; enable = mkEnableOption "Elixir language support";
treesitter = { treesitter = {
enable = mkEnableOption "Elixir treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Elixir treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "elixir"; package = mkGrammarOption pkgs "elixir";
heexPackage = mkGrammarOption pkgs "heex"; heexPackage = mkGrammarOption pkgs "heex";
eexPackage = mkGrammarOption pkgs "eex"; eexPackage = mkGrammarOption pkgs "eex";
}; };
lsp = { lsp = {
enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Elixir LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.elixir.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.elixir.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -0,0 +1,76 @@
{
config,
pkgs,
lib,
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.elm;
defaultServers = ["elm-language-server"];
servers = {
elm-language-server = {
enable = true;
cmd = [(getExe pkgs.elmPackages.elm-language-server)];
filetypes = ["elm"];
root_markers = ["elm.json"];
workspace_required = false;
};
};
in {
options.vim.languages.elm = {
enable = mkEnableOption "Elm language support";
treesitter = {
enable =
mkEnableOption "Elm treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "elm";
};
lsp = {
enable =
mkEnableOption "Elm LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.elm.lsp.servers" (enum (attrNames servers));
default = defaultServers;
description = "Elm LSP servers to use";
};
};
};
config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable {
vim.treesitter = {
enable = true;
grammars = [cfg.treesitter.package];
};
})
(mkIf cfg.lsp.enable {
vim = {
lsp.servers =
mapListToAttrs (n: {
name = n;
value = servers.${n};
})
cfg.lsp.servers;
};
})
]);
}

View file

@ -0,0 +1,34 @@
{
config,
lib,
...
}: let
inherit (lib.options) mkEnableOption;
inherit (lib.modules) mkIf;
cfg = config.vim.languages.fluent;
in {
options.vim.languages.fluent = {
enable = mkEnableOption "Fluent language support";
};
config = mkIf cfg.enable {
vim = {
lazy.plugins.fluent-nvim = {
package = "fluent-nvim";
ft = ["fluent"];
};
autocmds = [
{
event = [
"BufRead"
"BufNewFile"
];
pattern = ["*.ftl"];
desc = "Set fluent filetype";
command = "set filetype=fluent";
}
];
};
};
}

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "F# language support"; enable = mkEnableOption "F# language support";
treesitter = { treesitter = {
enable = mkEnableOption "F# treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "F# treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "fsharp"; package = mkGrammarOption pkgs "fsharp";
}; };
lsp = { lsp = {
enable = mkEnableOption "F# LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "F# LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.fsharp.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.fsharp.lsp.servers" (enum (attrNames servers));
default = defaultServer; default = defaultServer;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Gleam language support"; enable = mkEnableOption "Gleam language support";
treesitter = { treesitter = {
enable = mkEnableOption "Gleam treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Gleam treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "gleam"; package = mkGrammarOption pkgs "gleam";
}; };
lsp = { lsp = {
enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Gleam LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.gleam.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.gleam.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "GLSL language support"; enable = mkEnableOption "GLSL language support";
treesitter = { treesitter = {
enable = mkEnableOption "GLSL treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "GLSL treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "glsl"; package = mkGrammarOption pkgs "glsl";
}; };
lsp = { lsp = {
enable = mkEnableOption "GLSL LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "GLSL LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));

View file

@ -1,16 +1,17 @@
{ {
inputs,
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption literalMD; inherit (lib.options) mkEnableOption mkOption literalMD literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.types) bool enum package; inherit (lib.types) bool enum package str;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf mkPluginSetupOption;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -64,9 +65,11 @@
gofmt = { gofmt = {
command = "${pkgs.go}/bin/gofmt"; command = "${pkgs.go}/bin/gofmt";
}; };
gofumpt = { gofumpt = {
command = getExe pkgs.gofumpt; command = getExe pkgs.gofumpt;
}; };
golines = { golines = {
command = "${pkgs.golines}/bin/golines"; command = "${pkgs.golines}/bin/golines";
}; };
@ -168,7 +171,12 @@ in {
enable = mkEnableOption "Go language support"; enable = mkEnableOption "Go language support";
treesitter = { treesitter = {
enable = mkEnableOption "Go treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Go treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
goPackage = mkGrammarOption pkgs "go"; goPackage = mkGrammarOption pkgs "go";
gomodPackage = mkGrammarOption pkgs "gomod"; gomodPackage = mkGrammarOption pkgs "gomod";
@ -178,7 +186,12 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Go LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Go LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.go.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.go.lsp.servers" (enum (attrNames servers));
@ -198,51 +211,111 @@ in {
}; };
type = mkOption { type = mkOption {
description = "Go formatter to use";
type = deprecatedSingleOrListOf "vim.language.go.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.go.format.type" (enum (attrNames formats));
default = defaultFormat; default = defaultFormat;
description = "Go formatter to use";
}; };
}; };
dap = { dap = {
enable = mkOption { enable =
description = "Enable Go Debug Adapter via nvim-dap-go plugin"; mkEnableOption "Go Debug Adapter (DAP) via `nvim-dap-go"
type = bool; // {
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
}; defaultText = literalExpression "config.vim.languages.enableDAP";
};
debugger = mkOption { debugger = mkOption {
description = "Go debugger to use";
type = enum (attrNames debuggers); type = enum (attrNames debuggers);
default = defaultDebugger; default = defaultDebugger;
description = "Go debugger to use";
}; };
package = mkOption { package = mkOption {
description = "Go debugger package.";
type = package; type = package;
default = debuggers.${cfg.dap.debugger}.package; default = debuggers.${cfg.dap.debugger}.package;
description = "Go debugger package.";
}; };
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Go diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Go diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostic";
};
types = diagnostics { types = diagnostics {
langDesc = "Go"; langDesc = "Go";
inherit diagnosticsProviders; inherit diagnosticsProviders;
inherit defaultDiagnosticsProvider; inherit defaultDiagnosticsProvider;
}; };
}; };
extensions = {
gopher-nvim = {
enable = mkEnableOption "Minimalistic plugin for Go development";
setupOpts = mkPluginSetupOption "gopher-nvim" {
commands = {
go = mkOption {
type = str;
default = "go";
description = "Go binary to use";
};
gomodifytags = mkOption {
type = str;
default = getExe pkgs.gomodifytags;
defaultText = literalExpression "getExe pkgs.gomodifytags";
description = "gomodifytags binary to use";
};
gotests = mkOption {
type = str;
default = getExe pkgs.gotests;
defaultText = literalExpression "getExe pkgs.gotests";
description = "gotests binary to use";
};
impl = mkOption {
type = str;
default = getExe pkgs.impl;
defaultText = literalExpression "getExe pkgs.impl";
description = "impl binary to use";
};
iferr = mkOption {
type = str;
default = getExe pkgs.iferr;
defaultText = literalExpression "getExe pkgs.iferr";
description = "iferr binary to use";
};
json2go = mkOption {
type = str;
default = getExe inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.json2go;
defaultText = literalExpression "getExe inputs.self.packages.$${pkgs.stdenv.hostPlatform.system}.json2go";
description = "json2go binary to use";
};
};
};
};
};
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable { (mkIf cfg.treesitter.enable {
vim.treesitter.enable = true; vim.treesitter = {
vim.treesitter.grammars = [ enable = true;
cfg.treesitter.goPackage grammars = [
cfg.treesitter.gomodPackage cfg.treesitter.goPackage
cfg.treesitter.gosumPackage cfg.treesitter.gomodPackage
cfg.treesitter.goworkPackage cfg.treesitter.gosumPackage
cfg.treesitter.gotmplPackage cfg.treesitter.goworkPackage
]; cfg.treesitter.gotmplPackage
];
};
}) })
(mkIf cfg.lsp.enable { (mkIf cfg.lsp.enable {
@ -292,5 +365,14 @@ in {
cfg.extraDiagnostics.types); cfg.extraDiagnostics.types);
}; };
}) })
(mkIf cfg.extensions.gopher-nvim.enable {
vim.lazy.plugins.gopher-nvim = {
package = "gopher-nvim";
setupModule = "gopher";
inherit (cfg.extensions.gopher-nvim) setupOpts;
ft = ["go"];
};
})
]); ]);
} }

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (builtins) isList attrNames; inherit (builtins) isList attrNames;
inherit (lib.types) either package enum listOf str; inherit (lib.types) either package enum listOf str;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
@ -57,7 +57,7 @@
settings = { settings = {
haskell = { haskell = {
formattingProvider = "ormolu"; formattingProvider = "ormolu";
cabalFormattingProvider = "cabalfmt"; cabalFormattingProvider = "cabal-fmt";
}; };
}; };
}; };
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Haskell support"; enable = mkEnableOption "Haskell support";
treesitter = { treesitter = {
enable = mkEnableOption "Treesitter support for Haskell" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Treesitter support for Haskell"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "haskell"; package = mkGrammarOption pkgs "haskell";
}; };
lsp = { lsp = {
enable = mkEnableOption "Haskell LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Haskell LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -81,7 +91,12 @@ in {
}; };
dap = { dap = {
enable = mkEnableOption "DAP support for Haskell" // {default = config.vim.languages.enableDAP;}; enable =
mkEnableOption "DAP support for Haskell"
// {
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
package = mkOption { package = mkOption {
default = haskellPackages.haskell-debug-adapter; default = haskellPackages.haskell-debug-adapter;
type = either package (listOf str); type = either package (listOf str);

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
@ -47,12 +47,22 @@ in {
enable = mkEnableOption "HCL support"; enable = mkEnableOption "HCL support";
treesitter = { treesitter = {
enable = mkEnableOption "HCL treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "HCL treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "hcl"; package = mkGrammarOption pkgs "hcl";
}; };
lsp = { lsp = {
enable = mkEnableOption "HCL LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "HCL LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -61,7 +71,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Enable HCL formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "HCL formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.hcl.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.hcl.format.type" (enum (attrNames formats));
default = defaultFormat; default = defaultFormat;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames head; inherit (builtins) attrNames head;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkDefault mkIf mkMerge; inherit (lib.modules) mkDefault mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -44,12 +44,22 @@ in {
enable = mkEnableOption "Helm language support"; enable = mkEnableOption "Helm language support";
treesitter = { treesitter = {
enable = mkEnableOption "Helm treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Helm treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "helm"; package = mkGrammarOption pkgs "helm";
}; };
lsp = { lsp = {
enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Helm LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.helm.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.helm.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) bool enum; inherit (lib.types) bool enum;
inherit (lib.lists) optional; inherit (lib.lists) optional;
@ -48,7 +48,12 @@ in {
options.vim.languages.html = { options.vim.languages.html = {
enable = mkEnableOption "HTML language support"; enable = mkEnableOption "HTML language support";
treesitter = { treesitter = {
enable = mkEnableOption "HTML treesitter support" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "HTML treesitter support"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "html"; package = mkGrammarOption pkgs "html";
autotagHtml = mkOption { autotagHtml = mkOption {
type = bool; type = bool;
@ -58,7 +63,12 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "HTML LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "HTML LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.html.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.html.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -67,7 +77,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "HTML formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "HTML formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.html.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.html.format.type" (enum (attrNames formats));
@ -77,7 +92,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra HTML diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra HTML diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "HTML"; langDesc = "HTML";

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (builtins) attrNames; inherit (builtins) attrNames;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "Java language support"; enable = mkEnableOption "Java language support";
treesitter = { treesitter = {
enable = mkEnableOption "Java treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Java treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "java"; package = mkGrammarOption pkgs "java";
}; };
lsp = { lsp = {
enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Java LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -29,13 +29,23 @@ in {
enable = mkEnableOption "Jinja template language support"; enable = mkEnableOption "Jinja template language support";
treesitter = { treesitter = {
enable = mkEnableOption "Jinja treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Jinja treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "jinja"; package = mkGrammarOption pkgs "jinja";
inlinePackage = mkGrammarOption pkgs "jinja_inline"; inlinePackage = mkGrammarOption pkgs "jinja_inline";
}; };
lsp = { lsp = {
enable = mkEnableOption "Jinja LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Jinja LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
description = "Jinja LSP server to use"; description = "Jinja LSP server to use";
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe' getExe; inherit (lib.meta) getExe' getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -18,7 +18,7 @@
servers = { servers = {
jsonls = { jsonls = {
cmd = [(getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server") "--stdio"]; cmd = [(getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server") "--stdio"];
filetypes = ["json" "jsonc"]; filetypes = ["json" "jsonc" "json5"];
init_options = {provideFormatter = true;}; init_options = {provideFormatter = true;};
root_markers = [".git"]; root_markers = [".git"];
}; };
@ -37,13 +37,24 @@ in {
enable = mkEnableOption "JSON language support"; enable = mkEnableOption "JSON language support";
treesitter = { treesitter = {
enable = mkEnableOption "JSON treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "JSON treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "json"; jsonPackage = mkGrammarOption pkgs "json";
json5Package = mkGrammarOption pkgs "json5";
}; };
lsp = { lsp = {
enable = mkEnableOption "JSON LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "JSON LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.json.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.json.lsp.servers" (enum (attrNames servers));
@ -53,7 +64,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "JSON formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "JSON formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "JSON formatter to use"; description = "JSON formatter to use";
@ -66,7 +82,10 @@ in {
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable { (mkIf cfg.treesitter.enable {
vim.treesitter.enable = true; vim.treesitter.enable = true;
vim.treesitter.grammars = [cfg.treesitter.package]; vim.treesitter.grammars = [
cfg.treesitter.jsonPackage
cfg.treesitter.json5Package
];
}) })
(mkIf cfg.lsp.enable { (mkIf cfg.lsp.enable {
@ -83,6 +102,7 @@ in {
enable = true; enable = true;
setupOpts = { setupOpts = {
formatters_by_ft.json = cfg.format.type; formatters_by_ft.json = cfg.format.type;
formatters_by_ft.json5 = cfg.format.type;
formatters = formatters =
mapListToAttrs (name: { mapListToAttrs (name: {
inherit name; inherit name;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
@ -90,12 +90,22 @@ in {
enable = mkEnableOption "Julia language support"; enable = mkEnableOption "Julia language support";
treesitter = { treesitter = {
enable = mkEnableOption "Julia treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Julia treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "julia"; package = mkGrammarOption pkgs "julia";
}; };
lsp = { lsp = {
enable = mkEnableOption "Julia LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Julia LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.julia.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.julia.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
@ -29,13 +29,21 @@ in {
treesitter = { treesitter = {
enable = enable =
mkEnableOption "Just treesitter" // {default = config.vim.languages.enableTreesitter;}; mkEnableOption "Just treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "just"; package = mkGrammarOption pkgs "just";
}; };
lsp = { lsp = {
enable = enable =
mkEnableOption "Just LSP support" // {default = config.vim.lsp.enable;}; mkEnableOption "Just LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe' getExe; inherit (lib.meta) getExe' getExe;
inherit (builtins) attrNames; inherit (builtins) attrNames;
@ -56,12 +56,22 @@ in {
enable = mkEnableOption "Kotlin/HCL support"; enable = mkEnableOption "Kotlin/HCL support";
treesitter = { treesitter = {
enable = mkEnableOption "Kotlin treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Kotlin treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "kotlin"; package = mkGrammarOption pkgs "kotlin";
}; };
lsp = { lsp = {
enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Kotlin LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -70,7 +80,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Kotlin diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Kotlin diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Kotlin"; langDesc = "Kotlin";

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) bool enum listOf; inherit (lib.types) bool enum listOf;
@ -60,12 +60,22 @@ in {
options.vim.languages.lua = { options.vim.languages.lua = {
enable = mkEnableOption "Lua language support"; enable = mkEnableOption "Lua language support";
treesitter = { treesitter = {
enable = mkEnableOption "Lua Treesitter support" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Lua Treesitter support"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "lua"; package = mkGrammarOption pkgs "lua";
}; };
lsp = { lsp = {
enable = mkEnableOption "Lua LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Lua LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -79,6 +89,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableFormat; default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
description = "Enable Lua formatting"; description = "Enable Lua formatting";
}; };
type = mkOption { type = mkOption {
@ -89,7 +100,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Lua diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Lua diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Lua"; langDesc = "Lua";
inherit diagnosticsProviders; inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) listOf enum; inherit (lib.types) listOf enum;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
@ -34,12 +34,22 @@ in {
enable = mkEnableOption "Make support"; enable = mkEnableOption "Make support";
treesitter = { treesitter = {
enable = mkEnableOption "Make treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Make treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "make"; package = mkGrammarOption pkgs "make";
}; };
format = { format = {
enable = mkEnableOption "Make formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Make formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "make formatter to use"; description = "make formatter to use";
type = listOf (enum (attrNames formats)); type = listOf (enum (attrNames formats));
@ -48,7 +58,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Make diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Make diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Make"; langDesc = "Make";
inherit diagnosticsProviders; inherit diagnosticsProviders;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.meta) getExe getExe'; inherit (lib.meta) getExe getExe';
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) bool enum listOf str nullOr; inherit (lib.types) bool enum listOf str nullOr;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption deprecatedSingleOrListOf; inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption deprecatedSingleOrListOf;
@ -82,6 +82,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableTreesitter; default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
description = "Enable Markdown treesitter"; description = "Enable Markdown treesitter";
}; };
mdPackage = mkGrammarOption pkgs "markdown"; mdPackage = mkGrammarOption pkgs "markdown";
@ -89,7 +90,12 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Markdown LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Markdown LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
description = "Markdown LSP server to use"; description = "Markdown LSP server to use";
@ -99,7 +105,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Markdown formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Markdown formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.markdown.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.markdown.format.type" (enum (attrNames formats));
@ -154,7 +165,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Markdown diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Markdown diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Markdown"; langDesc = "Markdown";
inherit diagnosticsProviders; inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe'; inherit (lib.meta) getExe';
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -48,12 +48,22 @@ in {
enable = mkEnableOption "Nim language support"; enable = mkEnableOption "Nim language support";
treesitter = { treesitter = {
enable = mkEnableOption "Nim treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Nim treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "nim"; package = mkGrammarOption pkgs "nim";
}; };
lsp = { lsp = {
enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Nim LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.nim.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.nim.lsp.servers" (enum (attrNames servers));
@ -63,7 +73,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Nim formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Nim formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.nim.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.nim.format.type" (enum (attrNames formats));
default = defaultFormat; default = defaultFormat;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib) concatStringsSep; inherit (lib) concatStringsSep;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
@ -74,12 +74,22 @@ in {
enable = mkEnableOption "Nix language support"; enable = mkEnableOption "Nix language support";
treesitter = { treesitter = {
enable = mkEnableOption "Nix treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Nix treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "nix"; package = mkGrammarOption pkgs "nix";
}; };
lsp = { lsp = {
enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Nix LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.nix.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.nix.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -88,7 +98,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Nix formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Nix formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "Nix formatter to use"; description = "Nix formatter to use";
@ -98,7 +113,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Nix diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Nix diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Nix"; langDesc = "Nix";

View file

@ -4,7 +4,7 @@
config, config,
... ...
}: let }: let
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -38,12 +38,22 @@ in {
enable = mkEnableOption "Nu language support"; enable = mkEnableOption "Nu language support";
treesitter = { treesitter = {
enable = mkEnableOption "Nu treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Nu treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "nu"; package = mkGrammarOption pkgs "nu";
}; };
lsp = { lsp = {
enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Nu LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.nu.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.nu.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -66,12 +66,22 @@ in {
enable = mkEnableOption "OCaml language support"; enable = mkEnableOption "OCaml language support";
treesitter = { treesitter = {
enable = mkEnableOption "OCaml treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "OCaml treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "ocaml"; package = mkGrammarOption pkgs "ocaml";
}; };
lsp = { lsp = {
enable = mkEnableOption "OCaml LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "OCaml LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.ocaml.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.ocaml.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum package; inherit (lib.types) enum package;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
@ -53,12 +53,22 @@ in {
enable = mkEnableOption "Odin language support"; enable = mkEnableOption "Odin language support";
treesitter = { treesitter = {
enable = mkEnableOption "Odin treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Odin treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "odin"; package = mkGrammarOption pkgs "odin";
}; };
lsp = { lsp = {
enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Odin LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.odin.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.odin.lsp.servers" (enum (attrNames servers));
@ -68,7 +78,12 @@ in {
}; };
dap = { dap = {
enable = mkEnableOption "Enable Odin Debug Adapter" // {default = config.vim.languages.enableDAP;}; enable =
mkEnableOption "Enable Odin Debug Adapter"
// {
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
debugger = mkOption { debugger = mkOption {
description = "Odin debugger to use"; description = "Odin debugger to use";

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames toString; inherit (builtins) attrNames toString;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum int attrs listOf; inherit (lib.types) enum int attrs listOf;
@ -85,12 +85,22 @@ in {
enable = mkEnableOption "PHP language support"; enable = mkEnableOption "PHP language support";
treesitter = { treesitter = {
enable = mkEnableOption "PHP treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "PHP treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "php"; package = mkGrammarOption pkgs "php";
}; };
lsp = { lsp = {
enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "PHP LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.php.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.php.lsp.servers" (enum (attrNames servers));
@ -100,7 +110,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "PHP formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "PHP formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "PHP formatter to use"; description = "PHP formatter to use";
@ -110,7 +125,12 @@ in {
}; };
dap = { dap = {
enable = mkEnableOption "Enable PHP Debug Adapter" // {default = config.vim.languages.enableDAP;}; enable =
mkEnableOption "Enable PHP Debug Adapter"
// {
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
xdebug = { xdebug = {
adapter = mkOption { adapter = mkOption {
type = attrs; type = attrs;

View file

@ -291,7 +291,12 @@ in {
enable = mkEnableOption "Python language support"; enable = mkEnableOption "Python language support";
treesitter = { treesitter = {
enable = mkEnableOption "Python treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Python treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkOption { package = mkOption {
description = "Python treesitter grammar to use"; description = "Python treesitter grammar to use";
type = package; type = package;
@ -300,7 +305,12 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Python LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.python.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.python.lsp.servers" (enum (attrNames servers));
@ -310,7 +320,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Python formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Python formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.python.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.python.format.type" (enum (attrNames formats));
@ -324,6 +339,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
description = "Enable Python Debug Adapter"; description = "Enable Python Debug Adapter";
}; };
@ -345,7 +361,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra Python diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra Python diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "Python"; langDesc = "Python";
inherit diagnosticsProviders; inherit diagnosticsProviders;

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.meta) getExe'; inherit (lib.meta) getExe';
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -37,12 +37,22 @@ in {
options.vim.languages.qml = { options.vim.languages.qml = {
enable = mkEnableOption "QML language support"; enable = mkEnableOption "QML language support";
treesitter = { treesitter = {
enable = mkEnableOption "QML treesitter support" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "QML treesitter support"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "qmljs"; package = mkGrammarOption pkgs "qmljs";
}; };
lsp = { lsp = {
enable = mkEnableOption "QML LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "QML LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.qml.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.qml.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;
@ -51,7 +61,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "QML formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "QML formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.qml.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.qml.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "R language support"; enable = mkEnableOption "R language support";
treesitter = { treesitter = {
enable = mkEnableOption "R treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "R treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "r"; package = mkGrammarOption pkgs "r";
}; };
lsp = { lsp = {
enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "R LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.r.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.r.lsp.servers" (enum (attrNames servers));
@ -80,7 +90,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "R formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "R formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.r.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.r.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Ruby language support"; enable = mkEnableOption "Ruby language support";
treesitter = { treesitter = {
enable = mkEnableOption "Ruby treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Ruby treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "ruby"; package = mkGrammarOption pkgs "ruby";
}; };
lsp = { lsp = {
enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Ruby LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.ruby.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.ruby.lsp.servers" (enum (attrNames servers));

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkOption mkEnableOption literalMD; inherit (lib.options) mkOption mkEnableOption literalMD literalExpression;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.attrsets) attrNames; inherit (lib.attrsets) attrNames;
@ -29,12 +29,22 @@ in {
enable = mkEnableOption "Rust language support"; enable = mkEnableOption "Rust language support";
treesitter = { treesitter = {
enable = mkEnableOption "Rust treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Rust treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "rust"; package = mkGrammarOption pkgs "rust";
}; };
lsp = { lsp = {
enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Rust LSP support (rust-analyzer with extra tools)"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
package = mkOption { package = mkOption {
description = "rust-analyzer package, or the command to run as a list of strings"; description = "rust-analyzer package, or the command to run as a list of strings";
example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]'';
@ -80,6 +90,7 @@ in {
description = "Rust Debug Adapter support"; description = "Rust Debug Adapter support";
type = bool; type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
}; };
package = mkOption { package = mkOption {
@ -108,14 +119,39 @@ in {
setupOpts = mkPluginSetupOption "crates-nvim" { setupOpts = mkPluginSetupOption "crates-nvim" {
lsp = { lsp = {
enabled = mkEnableOption "crates.nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; enabled =
actions = mkEnableOption "actions for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; mkEnableOption "crates.nvim's in-process language server"
completion = mkEnableOption "completion for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; // {
hover = mkEnableOption "hover actions for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; default = cfg.extensions.crates-nvim.enable;
defaultText = literalExpression "config.vim.languages.rust.extensions.crates-nvim.enable";
};
actions =
mkEnableOption "actions for crates-nvim's in-process language server"
// {
default = cfg.extensions.crates-nvim.enable;
defaultText = literalExpression "config.vim.languages.rust.extensions.crates-nvim.enable";
};
completion =
mkEnableOption "completion for crates-nvim's in-process language server"
// {
default = cfg.extensions.crates-nvim.enable;
defaultText = literalExpression "config.vim.languages.rust.extensions.crates-nvim.enable";
};
hover =
mkEnableOption "hover actions for crates-nvim's in-process language server"
// {
default = cfg.extensions.crates-nvim.enable;
defaultText = literalExpression "config.vim.languages.rust.extensions.crates-nvim.enable";
};
}; };
completion = { completion = {
crates = { crates = {
enabled = mkEnableOption "completion for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;}; enabled =
mkEnableOption "completion for crates-nvim's in-process language server"
// {
default = cfg.extensions.crates-nvim.enable;
defaultText = literalExpression "config.vim.languages.rust.extensions.crates-nvim.enable";
};
max_results = mkOption { max_results = mkOption {
description = "The maximum number of search results to display"; description = "The maximum number of search results to display";
type = int; type = int;

View file

@ -10,7 +10,7 @@
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.types) mkGrammarOption luaInline; inherit (lib.nvim.types) mkGrammarOption luaInline;
inherit (lib.options) mkOption mkEnableOption mkPackageOption; inherit (lib.options) mkOption mkEnableOption mkPackageOption literalExpression;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.types) attrsOf anything bool; inherit (lib.types) attrsOf anything bool;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Scala language support"; enable = mkEnableOption "Scala language support";
treesitter = { treesitter = {
enable = mkEnableOption "Scala treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Scala treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "scala"; package = mkGrammarOption pkgs "scala";
}; };
lsp = { lsp = {
enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Scala LSP support (metals)"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
package = mkPackageOption pkgs "metals" { package = mkPackageOption pkgs "metals" {
default = ["metals"]; default = ["metals"];
}; };

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum package str; inherit (lib.types) enum package str;
@ -74,7 +74,12 @@ in {
}; };
treesitter = { treesitter = {
enable = mkEnableOption "SQL treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "SQL treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkOption { package = mkOption {
type = package; type = package;
@ -84,7 +89,12 @@ in {
}; };
lsp = { lsp = {
enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "SQL LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.sql.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.sql.lsp.servers" (enum (attrNames servers));
@ -94,7 +104,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "SQL formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "SQL formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.sql.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.sql.format.type" (enum (attrNames formats));
@ -104,7 +119,12 @@ in {
}; };
extraDiagnostics = { extraDiagnostics = {
enable = mkEnableOption "extra SQL diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; enable =
mkEnableOption "extra SQL diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics { types = diagnostics {
langDesc = "SQL"; langDesc = "SQL";

View file

@ -6,7 +6,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum package coercedTo; inherit (lib.types) enum package coercedTo;
@ -104,13 +104,23 @@ in {
enable = mkEnableOption "Svelte language support"; enable = mkEnableOption "Svelte language support";
treesitter = { treesitter = {
enable = mkEnableOption "Svelte treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Svelte treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
sveltePackage = mkGrammarOption pkgs "svelte"; sveltePackage = mkGrammarOption pkgs "svelte";
}; };
lsp = { lsp = {
enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Svelte LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.svelte.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.svelte.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -151,7 +151,12 @@ in {
enable = mkEnableOption "Tailwindcss language support"; enable = mkEnableOption "Tailwindcss language support";
lsp = { lsp = {
enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Tailwindcss LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.tailwind.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.tailwind.lsp.servers" (enum (attrNames servers));

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption;
@ -14,7 +14,12 @@ in {
enable = mkEnableOption "Tera templating language support"; enable = mkEnableOption "Tera templating language support";
treesitter = { treesitter = {
enable = mkEnableOption "Tera treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Tera treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "tera"; package = mkGrammarOption pkgs "tera";
}; };
}; };

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
@ -48,12 +48,23 @@ in {
enable = mkEnableOption "Terraform support"; enable = mkEnableOption "Terraform support";
treesitter = { treesitter = {
enable = mkEnableOption "Terraform treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Terraform treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "terraform"; package = mkGrammarOption pkgs "terraform";
}; };
lsp = { lsp = {
enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Terraform LSP support (terraform-ls)"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.nvim.types) diagnostics mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) diagnostics mkGrammarOption deprecatedSingleOrListOf;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -78,6 +78,7 @@ in {
mkEnableOption "TOML treesitter" mkEnableOption "TOML treesitter"
// { // {
default = config.vim.languages.enableTreesitter; default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
}; };
package = mkGrammarOption pkgs "toml"; package = mkGrammarOption pkgs "toml";
}; };
@ -87,6 +88,7 @@ in {
mkEnableOption "TOML LSP support" mkEnableOption "TOML LSP support"
// { // {
default = config.vim.lsp.enable; default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
}; };
servers = mkOption { servers = mkOption {
@ -101,6 +103,7 @@ in {
mkEnableOption "TOML formatting" mkEnableOption "TOML formatting"
// { // {
default = config.vim.languages.enableFormat; default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
}; };
type = mkOption { type = mkOption {
@ -115,6 +118,7 @@ in {
mkEnableOption "extra TOML diagnostics" mkEnableOption "extra TOML diagnostics"
// { // {
default = config.vim.languages.enableExtraDiagnostics; default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
}; };
types = diagnostics { types = diagnostics {
langDesc = "TOML"; langDesc = "TOML";

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames elem; inherit (builtins) attrNames elem;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum package bool; inherit (lib.types) enum package bool;
@ -215,14 +215,24 @@ in {
enable = mkEnableOption "Typescript/Javascript language support"; enable = mkEnableOption "Typescript/Javascript language support";
treesitter = { treesitter = {
enable = mkEnableOption "Typescript/Javascript treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Typescript/Javascript treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
tsPackage = mkGrammarOption pkgs "typescript"; tsPackage = mkGrammarOption pkgs "typescript";
tsxPackage = mkGrammarOption pkgs "tsx"; tsxPackage = mkGrammarOption pkgs "tsx";
jsPackage = mkGrammarOption pkgs "javascript"; jsPackage = mkGrammarOption pkgs "javascript";
}; };
lsp = { lsp = {
enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Typescript/Javascript LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.ts.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.ts.lsp.servers" (enum (attrNames servers));
@ -232,7 +242,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Typescript/Javascript formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Typescript/Javascript formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
description = "Typescript/Javascript formatter to use"; description = "Typescript/Javascript formatter to use";

View file

@ -0,0 +1,140 @@
{
config,
pkgs,
lib,
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) listOf enum;
inherit (lib.nvim.types) mkGrammarOption diagnostics;
inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.twig;
defaultServers = ["twig-language-server"];
servers = {
twig-language-server = {
enable = true;
cmd = [(getExe pkgs.twig-language-server) "--stdio"];
filetypes = ["twig"];
root_markers = [".git"];
};
};
defaultFormat = ["djlint"];
formats = {
djlint = {
command = getExe pkgs.djlint;
};
# TODO: if twig-cs-fixer gets packaged for nix, add it and default to it.
};
defaultDiagnosticsProvider = ["djlint"];
diagnosticsProviders = {
djlint = {
config = {
cmd = getExe pkgs.djlint;
};
};
# TODO: if curlylint gets packaged for nix, add it.
};
in {
options.vim.languages.twig = {
enable = mkEnableOption "Twig templating language support";
treesitter = {
enable =
mkEnableOption "Twig treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "twig";
};
lsp = {
enable =
mkEnableOption "Twig LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Twig LSP server to use";
};
};
format = {
enable =
mkEnableOption "PHP formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption {
description = "Twig formatter to use";
type = listOf (enum (attrNames formats));
default = defaultFormat;
};
};
extraDiagnostics = {
enable =
mkEnableOption "extra Twig diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostics";
};
types = diagnostics {
langDesc = "Twig";
inherit diagnosticsProviders;
inherit defaultDiagnosticsProvider;
};
};
};
config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable {
vim.treesitter.enable = true;
vim.treesitter.grammars = [cfg.treesitter.package];
})
(mkIf cfg.lsp.enable {
vim.lsp.servers =
mapListToAttrs (n: {
name = n;
value = servers.${n};
})
cfg.lsp.servers;
})
(mkIf cfg.format.enable {
vim.formatter.conform-nvim = {
enable = true;
setupOpts = {
formatters_by_ft.twig = cfg.format.type;
formatters =
mapListToAttrs (name: {
inherit name;
value = formats.${name};
})
cfg.format.type;
};
};
})
(mkIf cfg.extraDiagnostics.enable {
vim.diagnostics.nvim-lint = {
enable = true;
linters_by_ft.twig = cfg.extraDiagnostics.types;
linters =
mkMerge (map (name: {${name} = diagnosticsProviders.${name}.config;})
cfg.extraDiagnostics.types);
};
})
]);
}

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) nullOr enum attrsOf listOf package str bool int; inherit (lib.types) nullOr enum attrsOf listOf package str bool int;
inherit (lib.attrsets) attrNames; inherit (lib.attrsets) attrNames;
@ -104,12 +104,22 @@ in {
enable = mkEnableOption "Typst language support"; enable = mkEnableOption "Typst language support";
treesitter = { treesitter = {
enable = mkEnableOption "Typst treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Typst treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "typst"; package = mkGrammarOption pkgs "typst";
}; };
lsp = { lsp = {
enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Typst LSP support (typst-lsp)"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.typst.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.typst.lsp.servers" (enum (attrNames servers));
@ -119,7 +129,12 @@ in {
}; };
format = { format = {
enable = mkEnableOption "Typst document formatting" // {default = config.vim.languages.enableFormat;}; enable =
mkEnableOption "Typst document formatting"
// {
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
};
type = mkOption { type = mkOption {
type = deprecatedSingleOrListOf "vim.language.typst.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.typst.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Vala language support"; enable = mkEnableOption "Vala language support";
treesitter = { treesitter = {
enable = mkEnableOption "Vala treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Vala treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "vala"; package = mkGrammarOption pkgs "vala";
}; };
lsp = { lsp = {
enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Vala LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.vala.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.vala.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum; inherit (lib.types) enum;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -29,12 +29,22 @@ in {
enable = mkEnableOption "WGSL language support"; enable = mkEnableOption "WGSL language support";
treesitter = { treesitter = {
enable = mkEnableOption "WGSL treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "WGSL treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "wgsl"; package = mkGrammarOption pkgs "wgsl";
}; };
lsp = { lsp = {
enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "WGSL LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.wgsl.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.wgsl.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
@ -30,12 +30,22 @@ in {
enable = mkEnableOption "XML language support"; enable = mkEnableOption "XML language support";
treesitter = { treesitter = {
enable = mkEnableOption "XML treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "XML treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "xml"; package = mkGrammarOption pkgs "xml";
}; };
lsp = { lsp = {
enable = mkEnableOption "XML LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "XML LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum; inherit (lib.types) enum;
@ -51,13 +51,23 @@ in {
enable = mkEnableOption "YAML language support"; enable = mkEnableOption "YAML language support";
treesitter = { treesitter = {
enable = mkEnableOption "YAML treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "YAML treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "yaml"; package = mkGrammarOption pkgs "yaml";
}; };
lsp = { lsp = {
enable = mkEnableOption "Yaml LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Yaml LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.yaml.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.yaml.lsp.servers" (enum (attrNames servers));
default = defaultServers; default = defaultServers;

View file

@ -5,7 +5,7 @@
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.modules) mkIf mkMerge mkDefault;
inherit (lib.types) bool package enum; inherit (lib.types) bool package enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf; inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -59,12 +59,22 @@ in {
enable = mkEnableOption "Zig language support"; enable = mkEnableOption "Zig language support";
treesitter = { treesitter = {
enable = mkEnableOption "Zig treesitter" // {default = config.vim.languages.enableTreesitter;}; enable =
mkEnableOption "Zig treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
package = mkGrammarOption pkgs "zig"; package = mkGrammarOption pkgs "zig";
}; };
lsp = { lsp = {
enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; enable =
mkEnableOption "Zig LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.zig.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.zig.lsp.servers" (enum (attrNames servers));
@ -77,6 +87,7 @@ in {
enable = mkOption { enable = mkOption {
type = bool; type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
description = "Enable Zig Debug Adapter"; description = "Enable Zig Debug Adapter";
}; };

View file

@ -24,7 +24,10 @@
); );
# Build a given Treesitter grammar. # Build a given Treesitter grammar.
buildTreesitterPlug = grammars: vimPlugins.nvim-treesitter.withPlugins (_: grammars); buildTreesitterPlug = grammars:
vimPlugins.nvim-treesitter.withPlugins (
_: builtins.filter (g: g != null) grammars
);
pluginBuilders = { pluginBuilders = {
nvim-treesitter = buildTreesitterPlug config.vim.treesitter.grammars; nvim-treesitter = buildTreesitterPlug config.vim.treesitter.grammars;

View file

@ -539,6 +539,19 @@
"url": "https://github.com/folke/flash.nvim/archive/b68bda044d68e4026c4e1ec6df3c5afd7eb8e341.tar.gz", "url": "https://github.com/folke/flash.nvim/archive/b68bda044d68e4026c4e1ec6df3c5afd7eb8e341.tar.gz",
"hash": "sha256-7isgZdploAGK5l8TxVxL277CH6kPbcBnMwfZeqPHjq4=" "hash": "sha256-7isgZdploAGK5l8TxVxL277CH6kPbcBnMwfZeqPHjq4="
}, },
"fluent-nvim": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "projectfluent",
"repo": "fluent.vim"
},
"branch": "master",
"submodules": false,
"revision": "94c1ef622187032778f546d2f8ad821661475172",
"url": "https://github.com/projectfluent/fluent.vim/archive/94c1ef622187032778f546d2f8ad821661475172.tar.gz",
"hash": "sha256-tOYxOUKa6Zn2Yq5peqGDEdCkpl+b+VKkSmZx7+kHZJ0="
},
"flutter-tools-nvim": { "flutter-tools-nvim": {
"type": "Git", "type": "Git",
"repository": { "repository": {
@ -656,6 +669,22 @@
"url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz", "url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz",
"hash": "sha256-CvBcmVWBgI+m+PS7p7PmsiPtTEfqx2kpIzz4mImONIc=" "hash": "sha256-CvBcmVWBgI+m+PS7p7PmsiPtTEfqx2kpIzz4mImONIc="
}, },
"gopher-nvim": {
"type": "GitRelease",
"repository": {
"type": "GitHub",
"owner": "olexsmir",
"repo": "gopher.nvim"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "v0.6.0",
"revision": "95fdeb571d837af9efae27fea1c0131fa756ab43",
"url": "https://api.github.com/repos/olexsmir/gopher.nvim/tarball/refs/tags/v0.6.0",
"hash": "sha256-7aDjMFMCiqub/zCDJIWUIX9Zc6+vyPQOczuOFdc/6S0="
},
"grug-far-nvim": { "grug-far-nvim": {
"type": "Git", "type": "Git",
"repository": { "repository": {
@ -863,15 +892,16 @@
"leap-nvim": { "leap-nvim": {
"type": "Git", "type": "Git",
"repository": { "repository": {
"type": "GitHub", "type": "Forgejo",
"owner": "ggandor", "server": "https://codeberg.org/",
"owner": "andyg",
"repo": "leap.nvim" "repo": "leap.nvim"
}, },
"branch": "main", "branch": "main",
"submodules": false, "submodules": false,
"revision": "07304103f6bd923004fdef9262d9a4d7925fb70a", "revision": "774c452da3521d4434f912b6ca6dd97318aca4b0",
"url": "https://github.com/ggandor/leap.nvim/archive/07304103f6bd923004fdef9262d9a4d7925fb70a.tar.gz", "url": "https://codeberg.org/andyg/leap.nvim/archive/774c452da3521d4434f912b6ca6dd97318aca4b0.tar.gz",
"hash": "sha256-AImK8kLWBdA1IFeTt52UF8+j+BBmQmz00VW4EWCVQdg=" "hash": "sha256-HkLmYb0+Vu65JalaE2JuMJM74/fWAS3QJRQb4BW5esw="
}, },
"leetcode-nvim": { "leetcode-nvim": {
"type": "Git", "type": "Git",