Compare commits

..

No commits in common. "6e82a568f2c2565839eb4fda8be818adbaeb2498" and "95c0cc3bb07ec294101562f5300ab0f5cbae1258" have entirely different histories.

4 changed files with 47 additions and 78 deletions

View file

@ -301,7 +301,6 @@
- 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):

View file

@ -12,70 +12,63 @@
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;
options = { underline = mkOption {
underline = mkOption { type = diagnosticType;
type = diagnosticType; default = true;
default = true; description = "Use underline for diagnostics.";
description = "Use underline for diagnostics."; };
};
virtual_text = mkOption { virtual_text = mkOption {
type = diagnosticType; type = diagnosticType;
default = false; default = false;
example = literalExpression '' example = literalExpression ''
{ {
format = lib.generators.mkLuaInline ''' format = lib.generators.mkLuaInline '''
function(diagnostic) function(diagnostic)
return string.format("%s (%s)", diagnostic.message, diagnostic.source) return string.format("%s (%s)", diagnostic.message, diagnostic.source)
end end
'''; ''';
} }
''; '';
description = '' description = ''
Use virtual text for diagnostics. If multiple diagnostics are set for a namespace, Use virtual text for diagnostics. If multiple diagnostics are set for a namespace,
one prefix per diagnostic + the last diagnostic message are shown. one prefix per diagnostic + the last diagnostic message are shown.
''; '';
}; };
virtual_lines = mkOption { virtual_lines = mkOption {
type = diagnosticType; type = diagnosticType;
default = false; default = false;
description = '' description = ''
Use virtual lines for diagnostics. Use virtual lines for diagnostics.
''; '';
}; };
signs = mkOption { signs = mkOption {
type = diagnosticType; type = diagnosticType;
default = false; default = false;
example = { example = {
signs.text = { signs.text = {
"vim.diagnostic.severity.ERROR" = "󰅚 "; "vim.diagnostic.severity.ERROR" = "󰅚 ";
"vim.diagnostic.severity.WARN" = "󰀪 "; "vim.diagnostic.severity.WARN" = "󰀪 ";
};
}; };
description = ''
Use signs for diagnostics. See {command}`:help diagnostic-signs`.
'';
}; };
description = ''
Use signs for diagnostics. See {command}`:help diagnostic-signs`.
'';
};
update_in_insert = mkOption { update_in_insert = mkOption {
type = bool; type = bool;
default = false; default = false;
description = '' description = ''
Update diagnostics in Insert mode. If `false`, diagnostics will Update diagnostics in Insert mode. If `false`, diagnostics will
be updated on InsertLeave ({command}`:help InsertLeave`). be updated on InsertLeave ({command}`:help InsertLeave`).
''; '';
};
}; };
}; };
in { in {

View file

@ -4,7 +4,6 @@
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;
@ -29,25 +28,6 @@ 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};

View file

@ -5,9 +5,6 @@ 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"