Merge branch 'main' into fzf-lua-fix

This commit is contained in:
Ching Pei Yang 2025-04-05 15:54:09 +02:00 committed by GitHub
commit 6e82a568f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 83 additions and 52 deletions

View file

@ -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):

View file

@ -12,9 +12,15 @@
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;
@ -71,6 +77,7 @@
''; '';
}; };
}; };
};
in { in {
options.vim = { options.vim = {
diagnostics = { diagnostics = {

View file

@ -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};

View file

@ -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"