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: Install Nix
uses: cachix/install-nix-action@v31.9.1
uses: cachix/install-nix-action@v31.10.1
with:
nix_path: nixpkgs=channel:nixos-unstable
extra_nix_config: |

View file

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

View file

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

View file

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

View file

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

View file

@ -101,6 +101,8 @@ isMaximal: {
tailwind.enable = false;
svelte.enable = false;
tera.enable = false;
twig.enable = false;
fluent.enable = false;
# Nim LSP is broken on Darwin and therefore
# 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`
branch to the new main branch. This change removes incremental selections, so
it is no longer available.
- [obsidian.nvim] now uses a maintained fork which has removed the `dir`
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
`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}
[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):
- 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):
@ -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 [`gopher.nvim`](https://github.com/olexsmir/gopher.nvim) for extra
actions in `languages.go`.
- updated default filetypes for
[harper-ls](https://github.com/Automattic/harper) to match what they are
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
enabled. Fixes a crash (#1350).
- Add `languages.fluent` using the official plugin. This only provides
highlighting.
- Added Debugging support to `languages.php`.
- Added Formatting support to `languages.php` via
[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
[`syntax-gaslighting`](https://github.com/NotAShelf/syntax-gaslighting.nvim),
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
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: -->

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:
mkPackageOption pkgs ["${grammar} treesitter"] {
default = ["vimPlugins" "nvim-treesitter" "grammarPlugins" grammar];
nullable = true;
};
in {
inherit diagnostics diagnosticSubmodule mkGrammarOption;

View file

@ -18,6 +18,18 @@ in {
package = "codecompanion-nvim";
setupModule = "codecompanion";
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,10 +45,21 @@ in {
];
};
autocomplete.nvim-cmp = {
autocomplete = {
nvim-cmp = {
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
inherit (lib.generators) mkLuaInline;
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.types) luaInline mkPluginSetupOption;
@ -49,7 +49,7 @@ in {
enable = mkEnableOption "lightweight yet powerful formatter plugin for Neovim [conform-nvim]";
setupOpts = mkPluginSetupOption "conform.nvim" {
formatters = mkOption {
type = formattersType;
type = attrsOf formattersType;
default = {};
description = "Custom formatters and overrides for built-in formatters.";
};

View file

@ -8,7 +8,7 @@
inherit (lib.generators) mkLuaInline;
inherit (lib.meta) getExe getExe';
inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum listOf str;
inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.types) mkGrammarOption;
@ -57,12 +57,22 @@ in {
enable = mkEnableOption "Arduino support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -27,12 +27,22 @@ in {
enable = mkEnableOption "Assembly support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.asm.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

@ -6,7 +6,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum coercedTo;
@ -89,13 +89,23 @@ in {
enable = mkEnableOption "Astro language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.astro.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -104,7 +114,12 @@ in {
};
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 = formatType;
@ -114,7 +129,12 @@ in {
};
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 {
langDesc = "Astro";

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum bool;
@ -48,12 +48,22 @@ in {
enable = mkEnableOption "Bash language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.bash.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -65,6 +75,7 @@ in {
enable = mkOption {
type = bool;
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
description = "Enable Bash formatting";
};
type = mkOption {
@ -75,7 +86,12 @@ in {
};
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 {
langDesc = "Bash";
inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) bool enum package;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
@ -184,13 +184,23 @@ in {
};
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";
cppPackage = mkGrammarOption pkgs "cpp";
};
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 {
description = "The clang LSP server to use";
@ -204,6 +214,7 @@ in {
description = "Enable clang Debug Adapter";
type = bool;
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
debugger = mkOption {
description = "clang debugger to use";

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum listOf;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Clojure language support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum listOf package;
@ -18,7 +18,7 @@
servers = {
neocmakelsp = {
enable = true;
cmd = [(getExe pkgs.neocmakelsp) "--stdio"];
cmd = [(getExe pkgs.neocmakelsp) "stdio"];
filetypes = ["cmake"];
root_markers = [".gersemirc" ".git" "build" "cmake"];
capabilities = {
@ -38,12 +38,22 @@ in {
enable = mkEnableOption "CMake language support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;
@ -52,7 +62,12 @@ in {
};
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 {
description = "CMake formatter to use";

View file

@ -6,7 +6,7 @@
...
}: let
inherit (builtins) attrNames concatMap;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
@ -177,12 +177,22 @@ in {
enable = mkEnableOption "C# language support";
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";
};
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 {
description = "C# LSP server to use";
type = deprecatedSingleOrListOf "vim.language.csharp.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
@ -49,13 +49,23 @@ in {
enable = mkEnableOption "CSS language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.css.lsp.servers" (enum (attrNames servers));

View file

@ -4,7 +4,7 @@
lib,
...
}: let
inherit (lib.options) mkEnableOption;
inherit (lib.options) mkEnableOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption;
@ -21,13 +21,23 @@ in {
enable = mkEnableOption "CUE language support";
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";
};
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.meta) getExe;
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.strings) optionalString;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -45,12 +45,22 @@ in {
enable = mkEnableOption "Dart language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.dart.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -63,6 +73,7 @@ in {
description = "Enable Dart DAP support via flutter-tools";
type = bool;
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
};
@ -70,6 +81,7 @@ in {
enable = mkOption {
type = bool;
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
description = "Enable flutter-tools for flutter support";
};

View file

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

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -51,14 +51,24 @@ in {
enable = mkEnableOption "Elixir language support";
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";
heexPackage = mkGrammarOption pkgs "heex";
eexPackage = mkGrammarOption pkgs "eex";
};
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 {
type = deprecatedSingleOrListOf "vim.language.elixir.lsp.servers" (enum (attrNames servers));
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
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "F# language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.fsharp.lsp.servers" (enum (attrNames servers));
default = defaultServer;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Gleam language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.gleam.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum listOf;
inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "GLSL language support";
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";
};
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 {
type = listOf (enum (attrNames servers));

View file

@ -1,16 +1,17 @@
{
inputs,
config,
pkgs,
lib,
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.options) mkEnableOption mkOption literalMD literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline;
inherit (lib.types) bool enum package;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
inherit (lib.types) bool enum package str;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf mkPluginSetupOption;
inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.attrsets) mapListToAttrs;
@ -64,9 +65,11 @@
gofmt = {
command = "${pkgs.go}/bin/gofmt";
};
gofumpt = {
command = getExe pkgs.gofumpt;
};
golines = {
command = "${pkgs.golines}/bin/golines";
};
@ -168,7 +171,12 @@ in {
enable = mkEnableOption "Go language support";
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";
gomodPackage = mkGrammarOption pkgs "gomod";
@ -178,7 +186,12 @@ in {
};
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 {
type = deprecatedSingleOrListOf "vim.language.go.lsp.servers" (enum (attrNames servers));
@ -198,51 +211,111 @@ in {
};
type = mkOption {
description = "Go formatter to use";
type = deprecatedSingleOrListOf "vim.language.go.format.type" (enum (attrNames formats));
default = defaultFormat;
description = "Go formatter to use";
};
};
dap = {
enable = mkOption {
description = "Enable Go Debug Adapter via nvim-dap-go plugin";
type = bool;
enable =
mkEnableOption "Go Debug Adapter (DAP) via `nvim-dap-go"
// {
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
debugger = mkOption {
description = "Go debugger to use";
type = enum (attrNames debuggers);
default = defaultDebugger;
description = "Go debugger to use";
};
package = mkOption {
description = "Go debugger package.";
type = package;
default = debuggers.${cfg.dap.debugger}.package;
description = "Go debugger package.";
};
};
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 {
langDesc = "Go";
inherit diagnosticsProviders;
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 [
(mkIf cfg.treesitter.enable {
vim.treesitter.enable = true;
vim.treesitter.grammars = [
vim.treesitter = {
enable = true;
grammars = [
cfg.treesitter.goPackage
cfg.treesitter.gomodPackage
cfg.treesitter.gosumPackage
cfg.treesitter.goworkPackage
cfg.treesitter.gotmplPackage
];
};
})
(mkIf cfg.lsp.enable {
@ -292,5 +365,14 @@ in {
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
inherit (builtins) isList attrNames;
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.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption;
@ -57,7 +57,7 @@
settings = {
haskell = {
formattingProvider = "ormolu";
cabalFormattingProvider = "cabalfmt";
cabalFormattingProvider = "cabal-fmt";
};
};
};
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Haskell support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;
@ -81,7 +91,12 @@ in {
};
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 {
default = haskellPackages.haskell-debug-adapter;
type = either package (listOf str);

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf;
@ -47,12 +47,22 @@ in {
enable = mkEnableOption "HCL support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;
@ -61,7 +71,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.hcl.format.type" (enum (attrNames formats));
default = defaultFormat;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames head;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkDefault mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -44,12 +44,22 @@ in {
enable = mkEnableOption "Helm language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.helm.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

@ -6,7 +6,7 @@
}: let
inherit (builtins) attrNames;
inherit (lib.meta) getExe;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) bool enum;
inherit (lib.lists) optional;
@ -48,7 +48,12 @@ in {
options.vim.languages.html = {
enable = mkEnableOption "HTML language support";
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";
autotagHtml = mkOption {
type = bool;
@ -58,7 +63,12 @@ in {
};
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 {
type = deprecatedSingleOrListOf "vim.language.html.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -67,7 +77,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.html.format.type" (enum (attrNames formats));
@ -77,7 +92,12 @@ in {
};
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 {
langDesc = "HTML";

View file

@ -4,7 +4,7 @@
lib,
...
}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (builtins) attrNames;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "Java language support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption;
inherit (lib.nvim.attrsets) mapListToAttrs;
@ -29,13 +29,23 @@ in {
enable = mkEnableOption "Jinja template language support";
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";
inlinePackage = mkGrammarOption pkgs "jinja_inline";
};
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 {
description = "Jinja LSP server to use";
type = listOf (enum (attrNames servers));

View file

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

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
@ -90,12 +90,22 @@ in {
enable = mkEnableOption "Julia language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.julia.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum listOf;
@ -29,13 +29,21 @@ in {
treesitter = {
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";
};
lsp = {
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

@ -4,7 +4,7 @@
lib,
...
}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe' getExe;
inherit (builtins) attrNames;
@ -56,12 +56,22 @@ in {
enable = mkEnableOption "Kotlin/HCL support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;
@ -70,7 +80,12 @@ in {
};
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 {
langDesc = "Kotlin";

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) bool enum listOf;
@ -60,12 +60,22 @@ in {
options.vim.languages.lua = {
enable = mkEnableOption "Lua language support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;
@ -79,6 +89,7 @@ in {
enable = mkOption {
type = bool;
default = config.vim.languages.enableFormat;
defaultText = literalExpression "config.vim.languages.enableFormat";
description = "Enable Lua formatting";
};
type = mkOption {
@ -89,7 +100,12 @@ in {
};
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 {
langDesc = "Lua";
inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.meta) getExe;
inherit (lib.types) listOf enum;
inherit (lib.modules) mkIf mkMerge;
@ -34,12 +34,22 @@ in {
enable = mkEnableOption "Make support";
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";
};
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 {
description = "make formatter to use";
type = listOf (enum (attrNames formats));
@ -48,7 +58,12 @@ in {
};
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 {
langDesc = "Make";
inherit diagnosticsProviders;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames;
inherit (lib.meta) getExe getExe';
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.nvim.lua) toLuaObject;
inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption deprecatedSingleOrListOf;
@ -82,6 +82,7 @@ in {
enable = mkOption {
type = bool;
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
description = "Enable Markdown treesitter";
};
mdPackage = mkGrammarOption pkgs "markdown";
@ -89,7 +90,12 @@ in {
};
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 {
description = "Markdown LSP server to use";
@ -99,7 +105,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.markdown.format.type" (enum (attrNames formats));
@ -154,7 +165,12 @@ in {
};
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 {
langDesc = "Markdown";
inherit diagnosticsProviders;

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe';
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
@ -48,12 +48,22 @@ in {
enable = mkEnableOption "Nim language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.nim.lsp.servers" (enum (attrNames servers));
@ -63,7 +73,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.nim.format.type" (enum (attrNames formats));
default = defaultFormat;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames;
inherit (lib) concatStringsSep;
inherit (lib.meta) getExe;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
@ -74,12 +74,22 @@ in {
enable = mkEnableOption "Nix language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.nix.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -88,7 +98,12 @@ in {
};
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 {
description = "Nix formatter to use";
@ -98,7 +113,12 @@ in {
};
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 {
langDesc = "Nix";

View file

@ -4,7 +4,7 @@
config,
...
}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -38,12 +38,22 @@ in {
enable = mkEnableOption "Nu language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.nu.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -66,12 +66,22 @@ in {
enable = mkEnableOption "OCaml language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.ocaml.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum package;
inherit (lib.nvim.dag) entryAfter;
@ -53,12 +53,22 @@ in {
enable = mkEnableOption "Odin language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.odin.lsp.servers" (enum (attrNames servers));
@ -68,7 +78,12 @@ in {
};
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 {
description = "Odin debugger to use";

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames toString;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum int attrs listOf;
@ -85,12 +85,22 @@ in {
enable = mkEnableOption "PHP language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.php.lsp.servers" (enum (attrNames servers));
@ -100,7 +110,12 @@ in {
};
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 {
description = "PHP formatter to use";
@ -110,7 +125,12 @@ in {
};
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 = {
adapter = mkOption {
type = attrs;

View file

@ -291,7 +291,12 @@ in {
enable = mkEnableOption "Python language support";
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 {
description = "Python treesitter grammar to use";
type = package;
@ -300,7 +305,12 @@ in {
};
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 {
type = deprecatedSingleOrListOf "vim.language.python.lsp.servers" (enum (attrNames servers));
@ -310,7 +320,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.python.format.type" (enum (attrNames formats));
@ -324,6 +339,7 @@ in {
enable = mkOption {
type = bool;
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
description = "Enable Python Debug Adapter";
};
@ -345,7 +361,12 @@ in {
};
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 {
langDesc = "Python";
inherit diagnosticsProviders;

View file

@ -6,7 +6,7 @@
}: let
inherit (builtins) attrNames;
inherit (lib.meta) getExe';
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
@ -37,12 +37,22 @@ in {
options.vim.languages.qml = {
enable = mkEnableOption "QML language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.qml.lsp.servers" (enum (attrNames servers));
default = defaultServers;
@ -51,7 +61,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.qml.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum;
inherit (lib.meta) getExe;
@ -65,12 +65,22 @@ in {
enable = mkEnableOption "R language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.r.lsp.servers" (enum (attrNames servers));
@ -80,7 +90,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.r.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Ruby language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.ruby.lsp.servers" (enum (attrNames servers));

View file

@ -6,7 +6,7 @@
}: let
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.options) mkOption mkEnableOption literalMD;
inherit (lib.options) mkOption mkEnableOption literalMD literalExpression;
inherit (lib.strings) optionalString;
inherit (lib.lists) isList;
inherit (lib.attrsets) attrNames;
@ -29,12 +29,22 @@ in {
enable = mkEnableOption "Rust language support";
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";
};
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 {
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"]'';
@ -80,6 +90,7 @@ in {
description = "Rust Debug Adapter support";
type = bool;
default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP";
};
package = mkOption {
@ -108,14 +119,39 @@ in {
setupOpts = mkPluginSetupOption "crates-nvim" {
lsp = {
enabled = mkEnableOption "crates.nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;};
actions = mkEnableOption "actions for crates-nvim's in-process language server" // {default = cfg.extensions.crates-nvim.enable;};
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;};
enabled =
mkEnableOption "crates.nvim's in-process language server"
// {
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 = {
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 {
description = "The maximum number of search results to display";
type = int;

View file

@ -10,7 +10,7 @@
inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.lua) toLuaObject;
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.types) attrsOf anything bool;
@ -28,12 +28,22 @@ in {
enable = mkEnableOption "Scala language support";
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";
};
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" {
default = ["metals"];
};

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum package str;
@ -74,7 +74,12 @@ in {
};
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 {
type = package;
@ -84,7 +89,12 @@ in {
};
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 {
type = deprecatedSingleOrListOf "vim.language.sql.lsp.servers" (enum (attrNames servers));
@ -94,7 +104,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.sql.format.type" (enum (attrNames formats));
@ -104,7 +119,12 @@ in {
};
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 {
langDesc = "SQL";

View file

@ -6,7 +6,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum package coercedTo;
@ -104,13 +104,23 @@ in {
enable = mkEnableOption "Svelte language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.svelte.lsp.servers" (enum (attrNames servers));

View file

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

View file

@ -4,7 +4,7 @@
lib,
...
}: let
inherit (lib.options) mkEnableOption;
inherit (lib.options) mkEnableOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption;
@ -14,7 +14,12 @@ in {
enable = mkEnableOption "Tera templating language support";
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";
};
};

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum listOf;
@ -48,12 +48,23 @@ in {
enable = mkEnableOption "Terraform support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

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

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames elem;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum package bool;
@ -215,14 +215,24 @@ in {
enable = mkEnableOption "Typescript/Javascript language support";
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";
tsxPackage = mkGrammarOption pkgs "tsx";
jsPackage = mkGrammarOption pkgs "javascript";
};
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 {
type = deprecatedSingleOrListOf "vim.language.ts.lsp.servers" (enum (attrNames servers));
@ -232,7 +242,12 @@ in {
};
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 {
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,
...
}: let
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) nullOr enum attrsOf listOf package str bool int;
inherit (lib.attrsets) attrNames;
@ -104,12 +104,22 @@ in {
enable = mkEnableOption "Typst language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.typst.lsp.servers" (enum (attrNames servers));
@ -119,7 +129,12 @@ in {
};
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 = deprecatedSingleOrListOf "vim.language.typst.format.type" (enum (attrNames formats));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -67,12 +67,22 @@ in {
enable = mkEnableOption "Vala language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.vala.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

@ -7,7 +7,7 @@
inherit (builtins) attrNames;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption deprecatedSingleOrListOf;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.types) enum;
inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs;
@ -29,12 +29,22 @@ in {
enable = mkEnableOption "WGSL language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.wgsl.lsp.servers" (enum (attrNames servers));

View file

@ -5,7 +5,7 @@
...
}: let
inherit (builtins) attrNames;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf;
@ -30,12 +30,22 @@ in {
enable = mkEnableOption "XML language support";
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";
};
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 {
type = listOf (enum (attrNames servers));
default = defaultServers;

View file

@ -6,7 +6,7 @@
}: let
inherit (builtins) attrNames;
inherit (lib.generators) mkLuaInline;
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.options) mkEnableOption mkOption literalExpression;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe;
inherit (lib.types) enum;
@ -51,13 +51,23 @@ in {
enable = mkEnableOption "YAML language support";
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";
};
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 {
type = deprecatedSingleOrListOf "vim.language.yaml.lsp.servers" (enum (attrNames servers));
default = defaultServers;

View file

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

View file

@ -24,7 +24,10 @@
);
# 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 = {
nvim-treesitter = buildTreesitterPlug config.vim.treesitter.grammars;

View file

@ -539,6 +539,19 @@
"url": "https://github.com/folke/flash.nvim/archive/b68bda044d68e4026c4e1ec6df3c5afd7eb8e341.tar.gz",
"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": {
"type": "Git",
"repository": {
@ -656,6 +669,22 @@
"url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz",
"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": {
"type": "Git",
"repository": {
@ -863,15 +892,16 @@
"leap-nvim": {
"type": "Git",
"repository": {
"type": "GitHub",
"owner": "ggandor",
"type": "Forgejo",
"server": "https://codeberg.org/",
"owner": "andyg",
"repo": "leap.nvim"
},
"branch": "main",
"submodules": false,
"revision": "07304103f6bd923004fdef9262d9a4d7925fb70a",
"url": "https://github.com/ggandor/leap.nvim/archive/07304103f6bd923004fdef9262d9a4d7925fb70a.tar.gz",
"hash": "sha256-AImK8kLWBdA1IFeTt52UF8+j+BBmQmz00VW4EWCVQdg="
"revision": "774c452da3521d4434f912b6ca6dd97318aca4b0",
"url": "https://codeberg.org/andyg/leap.nvim/archive/774c452da3521d4434f912b6ca6dd97318aca4b0.tar.gz",
"hash": "sha256-HkLmYb0+Vu65JalaE2JuMJM74/fWAS3QJRQb4BW5esw="
},
"leetcode-nvim": {
"type": "Git",