mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 02:11:33 +00:00
Merge pull request #786 from NotAShelf/vim-diagnostics
neovim/diagnostics: init module
This commit is contained in:
commit
939c7e98b4
10 changed files with 116 additions and 54 deletions
|
@ -25,7 +25,6 @@ isMaximal: {
|
||||||
trouble.enable = true;
|
trouble.enable = true;
|
||||||
lspSignature.enable = true;
|
lspSignature.enable = true;
|
||||||
otter-nvim.enable = isMaximal;
|
otter-nvim.enable = isMaximal;
|
||||||
lsplines.enable = isMaximal;
|
|
||||||
nvim-docs-view.enable = isMaximal;
|
nvim-docs-view.enable = isMaximal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,10 @@
|
||||||
- Add [oil.nvim] as an alternative file explorer. It will be available under
|
- Add [oil.nvim] as an alternative file explorer. It will be available under
|
||||||
`vim.utility.oil-nvim`.
|
`vim.utility.oil-nvim`.
|
||||||
|
|
||||||
|
- Add `vim.diagnostics` to interact with Neovim's diagnostics module. Available
|
||||||
|
options for `vim.diagnostic.config()` can now be customized through the
|
||||||
|
[](#opt-vim.diagnostics.config) in nvf.
|
||||||
|
|
||||||
[amadaluzia](https://github.com/amadaluzia):
|
[amadaluzia](https://github.com/amadaluzia):
|
||||||
|
|
||||||
[haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim
|
[haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim
|
||||||
|
@ -253,8 +257,8 @@
|
||||||
[friendly-snippets](https://github.com/rafamadriz/friendly-snippets) so
|
[friendly-snippets](https://github.com/rafamadriz/friendly-snippets) so
|
||||||
blink.cmp can source snippets from it.
|
blink.cmp can source snippets from it.
|
||||||
- Fix [blink.cmp] breaking when built-in sources were modified.
|
- Fix [blink.cmp] breaking when built-in sources were modified.
|
||||||
- Fix [conform.nvim] not allowing disabling formatting on and after save.
|
- Fix [conform.nvim] not allowing disabling formatting on and after save. Use
|
||||||
Use `null` value to disable them if conform is enabled.
|
`null` value to disable them if conform is enabled.
|
||||||
|
|
||||||
[TheColorman](https://github.com/TheColorman):
|
[TheColorman](https://github.com/TheColorman):
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,13 @@ in {
|
||||||
their behaviour was abstract, and confusing. Please use 'vim.options' or 'vim.luaConfigRC'
|
their behaviour was abstract, and confusing. Please use 'vim.options' or 'vim.luaConfigRC'
|
||||||
to replicate previous behaviour.
|
to replicate previous behaviour.
|
||||||
'')
|
'')
|
||||||
|
|
||||||
|
# 2025-04-04
|
||||||
|
(mkRemovedOptionModule ["vim" "lsp" "lsplines"] ''
|
||||||
|
lsplines module has been removed from nvf, as its functionality is now built into Neovim
|
||||||
|
under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or
|
||||||
|
'vim.luaConfigRC' to configure LSP lines for Neovim through its own diagnostics API.
|
||||||
|
'')
|
||||||
]
|
]
|
||||||
|
|
||||||
# Migrated via batchRenameOptions. Further batch renames must be below this line.
|
# Migrated via batchRenameOptions. Further batch renames must be below this line.
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
./autocmds.nix
|
./autocmds.nix
|
||||||
./basic.nix
|
./basic.nix
|
||||||
./debug.nix
|
./debug.nix
|
||||||
|
./diagnostics.nix
|
||||||
./highlight.nix
|
./highlight.nix
|
||||||
./spellcheck.nix
|
./spellcheck.nix
|
||||||
];
|
];
|
||||||
|
|
102
modules/neovim/init/diagnostics.nix
Normal file
102
modules/neovim/init/diagnostics.nix
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf;
|
||||||
|
inherit (lib.options) mkOption mkEnableOption literalExpression;
|
||||||
|
inherit (lib.types) attrsOf anything oneOf bool submodule;
|
||||||
|
inherit (lib.nvim.dag) entryAfter;
|
||||||
|
inherit (lib.nvim.types) luaInline;
|
||||||
|
inherit (lib.nvim.lua) toLuaObject;
|
||||||
|
|
||||||
|
cfg = config.vim.diagnostics;
|
||||||
|
|
||||||
|
diagnosticType = oneOf [(attrsOf anything) bool luaInline];
|
||||||
|
diagnosticsSubmodule = submodule {
|
||||||
|
freeformType = attrsOf diagnosticType;
|
||||||
|
underline = mkOption {
|
||||||
|
type = diagnosticType;
|
||||||
|
default = true;
|
||||||
|
description = "Use underline for diagnostics.";
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual_text = mkOption {
|
||||||
|
type = diagnosticType;
|
||||||
|
default = false;
|
||||||
|
example = literalExpression ''
|
||||||
|
{
|
||||||
|
format = lib.generators.mkLuaInline '''
|
||||||
|
function(diagnostic)
|
||||||
|
return string.format("%s (%s)", diagnostic.message, diagnostic.source)
|
||||||
|
end
|
||||||
|
''';
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
description = ''
|
||||||
|
Use virtual text for diagnostics. If multiple diagnostics are set for a namespace,
|
||||||
|
one prefix per diagnostic + the last diagnostic message are shown.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual_lines = mkOption {
|
||||||
|
type = diagnosticType;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Use virtual lines for diagnostics.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
signs = mkOption {
|
||||||
|
type = diagnosticType;
|
||||||
|
default = false;
|
||||||
|
example = {
|
||||||
|
signs.text = {
|
||||||
|
"vim.diagnostic.severity.ERROR" = " ";
|
||||||
|
"vim.diagnostic.severity.WARN" = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Use signs for diagnostics. See {command}`:help diagnostic-signs`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
update_in_insert = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Update diagnostics in Insert mode. If `false`, diagnostics will
|
||||||
|
be updated on InsertLeave ({command}`:help InsertLeave`).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options.vim = {
|
||||||
|
diagnostics = {
|
||||||
|
enable = mkEnableOption "diagostics module for Neovim";
|
||||||
|
config = mkOption {
|
||||||
|
type = diagnosticsSubmodule;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Values that will be passed to `vim.diagnostic.config` after being converted
|
||||||
|
to a Lua table. Possible values for each key can be found in the help text
|
||||||
|
for `vim.diagnostics.Opts`. You may find more about the diagnostics API of
|
||||||
|
Neovim in {command}`:help diagnostic-api`.
|
||||||
|
|
||||||
|
:::{.note}
|
||||||
|
This option is freeform. You may set values that are not present in nvf
|
||||||
|
documentation, but those values will not be fully type checked. Please
|
||||||
|
refer to the help text for `vim.diagnostic.Opts` for appropriate values.
|
||||||
|
:::
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config.vim = mkIf cfg.enable {
|
||||||
|
luaConfigRC.diagnostics = entryAfter ["basic"] ''
|
||||||
|
vim.diagnostic.config(${toLuaObject cfg.config})
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,7 +15,6 @@
|
||||||
./lightbulb
|
./lightbulb
|
||||||
./otter
|
./otter
|
||||||
./lspkind
|
./lspkind
|
||||||
./lsplines
|
|
||||||
./nvim-docs-view
|
./nvim-docs-view
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.nvim.dag) entryAfter;
|
|
||||||
|
|
||||||
cfg = config.vim.lsp;
|
|
||||||
in {
|
|
||||||
config = mkIf (cfg.enable && cfg.lsplines.enable) {
|
|
||||||
vim.startPlugins = ["lsp-lines"];
|
|
||||||
vim.pluginRC.lsplines = entryAfter ["lspconfig"] ''
|
|
||||||
require("lsp_lines").setup()
|
|
||||||
|
|
||||||
vim.diagnostic.config({
|
|
||||||
virtual_text = false,
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./config.nix
|
|
||||||
./lsplines.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{lib, ...}: let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
options.vim.lsp = {
|
|
||||||
lsplines = {
|
|
||||||
enable = mkEnableOption ''
|
|
||||||
diagnostics using virtual lines on top of the real line of code. [lsp_lines]
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -747,18 +747,6 @@
|
||||||
"url": "https://github.com/kawre/leetcode.nvim/archive/db7e1cd6b9191b34b4c1f2f96e4e3949cde9f951.tar.gz",
|
"url": "https://github.com/kawre/leetcode.nvim/archive/db7e1cd6b9191b34b4c1f2f96e4e3949cde9f951.tar.gz",
|
||||||
"hash": "1d3lb7625b2qdzqm74mzrac66rxqc0qgjd3mb37l4v8wqyiyv6pp"
|
"hash": "1d3lb7625b2qdzqm74mzrac66rxqc0qgjd3mb37l4v8wqyiyv6pp"
|
||||||
},
|
},
|
||||||
"lsp-lines": {
|
|
||||||
"type": "Git",
|
|
||||||
"repository": {
|
|
||||||
"type": "Git",
|
|
||||||
"url": "https://git.sr.ht/~whynothugo/lsp_lines.nvim"
|
|
||||||
},
|
|
||||||
"branch": "main",
|
|
||||||
"submodules": false,
|
|
||||||
"revision": "a92c755f182b89ea91bd8a6a2227208026f27b4d",
|
|
||||||
"url": null,
|
|
||||||
"hash": "14ym4d8vgvw2vhsaxik8612wyvszd895q69n9h100yd7x5jqhy4c"
|
|
||||||
},
|
|
||||||
"lsp-signature-nvim": {
|
"lsp-signature-nvim": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue