mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-04-15 00:58:37 +00:00
Merge branch 'main' into fzf-lua-fix
This commit is contained in:
commit
6e82a568f2
4 changed files with 83 additions and 52 deletions
|
@ -301,6 +301,7 @@
|
||||||
- Add more applicable filetypes to illuminate denylist.
|
- Add more applicable filetypes to illuminate denylist.
|
||||||
- Disable mini.indentscope for applicable filetypes.
|
- Disable mini.indentscope for applicable filetypes.
|
||||||
- Fix fzf-lua having a hard dependency on fzf.
|
- Fix fzf-lua having a hard dependency on fzf.
|
||||||
|
- Enable inlay hints support - `config.vim.lsp.inlayHints`.
|
||||||
|
|
||||||
[tebuevd](https://github.com/tebuevd):
|
[tebuevd](https://github.com/tebuevd):
|
||||||
|
|
||||||
|
|
|
@ -12,63 +12,70 @@
|
||||||
|
|
||||||
cfg = config.vim.diagnostics;
|
cfg = config.vim.diagnostics;
|
||||||
|
|
||||||
|
# Takes a boolean, a table, or a Lua list ({key = value}). We
|
||||||
|
# would like to allow all of those types, while clearly expressing
|
||||||
|
# them in the option's type. As such, this type is what it is.
|
||||||
diagnosticType = oneOf [(attrsOf anything) bool luaInline];
|
diagnosticType = oneOf [(attrsOf anything) bool luaInline];
|
||||||
diagnosticsSubmodule = submodule {
|
diagnosticsSubmodule = submodule {
|
||||||
|
# The table might need to be extended, so let's allow that case
|
||||||
|
# with a freeform type of what is supported by diagnostics opts.
|
||||||
freeformType = attrsOf diagnosticType;
|
freeformType = attrsOf diagnosticType;
|
||||||
underline = mkOption {
|
options = {
|
||||||
type = diagnosticType;
|
underline = mkOption {
|
||||||
default = true;
|
type = diagnosticType;
|
||||||
description = "Use underline for diagnostics.";
|
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 {
|
virtual_text = mkOption {
|
||||||
type = bool;
|
type = diagnosticType;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
example = literalExpression ''
|
||||||
Update diagnostics in Insert mode. If `false`, diagnostics will
|
{
|
||||||
be updated on InsertLeave ({command}`:help InsertLeave`).
|
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 {
|
in {
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
inherit (lib.generators) mkLuaInline;
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.strings) optionalString;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.trivial) boolToString;
|
inherit (lib.trivial) boolToString;
|
||||||
|
@ -28,6 +29,25 @@ in {
|
||||||
sourcePlugins = ["cmp-nvim-lsp"];
|
sourcePlugins = ["cmp-nvim-lsp"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
autocmds =
|
||||||
|
if cfg.inlayHints.enable
|
||||||
|
then [
|
||||||
|
{
|
||||||
|
callback = mkLuaInline ''
|
||||||
|
function(event)
|
||||||
|
local bufnr = event.buf
|
||||||
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
|
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
|
||||||
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
desc = "LSP on-attach enable inlay hints autocmd";
|
||||||
|
event = ["LspAttach"];
|
||||||
|
}
|
||||||
|
]
|
||||||
|
else [];
|
||||||
|
|
||||||
pluginRC.lsp-setup = ''
|
pluginRC.lsp-setup = ''
|
||||||
vim.g.formatsave = ${boolToString cfg.formatOnSave};
|
vim.g.formatsave = ${boolToString cfg.formatOnSave};
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,9 @@ in {
|
||||||
options.vim.lsp = {
|
options.vim.lsp = {
|
||||||
enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options";
|
enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options";
|
||||||
formatOnSave = mkEnableOption "format on save";
|
formatOnSave = mkEnableOption "format on save";
|
||||||
|
inlayHints = {
|
||||||
|
enable = mkEnableOption "inlay hints";
|
||||||
|
};
|
||||||
mappings = {
|
mappings = {
|
||||||
goToDefinition =
|
goToDefinition =
|
||||||
mkMappingOption "Go to definition"
|
mkMappingOption "Go to definition"
|
||||||
|
|
Loading…
Add table
Reference in a new issue