Compare commits

...

6 commits

Author SHA1 Message Date
8ad6233c41
Merge pull request #266 from horriblename/no-apply-lua-inline
Do not auto apply mkLuaInline
2024-04-27 15:48:24 +00:00
cc0617b4d6
Merge pull request #267 from horriblename/disable-neocord
Disable neocord by default
2024-04-27 15:47:27 +00:00
Ching Pei Yang
a5594fd7a2 config: disable neocord 2024-04-27 17:00:30 +02:00
Ching Pei Yang
f0631c2d26 fidget: do not apply mkLuaInline to str opts 2024-04-27 16:09:27 +02:00
Ching Pei Yang
0c4f7a544d lib: fix crash on non-attrset arg 2024-04-27 16:09:27 +02:00
Ching Pei Yang
c220da2af9 fidget: remove ineffectful option
whether you set clear_on_detach to true or false you still get the
default behaviour
2024-04-27 16:09:27 +02:00
3 changed files with 22 additions and 46 deletions

View file

@ -246,7 +246,7 @@ inputs: let
};
presence = {
neocord.enable = true;
neocord.enable = false;
};
};
};

View file

@ -58,7 +58,7 @@ in rec {
# Convert a list of lua expressions to a lua table. The difference to listToLuaTable is that the elements here are expected to be lua expressions already, whereas listToLuaTable converts from nix types to lua first
luaTable = items: ''{${concatStringsSep "," items}}'';
isLuaInline = {_type ? null, ...}: _type == "lua-inline";
isLuaInline = object: (object._type or null) == "lua-inline";
toLuaObject = args:
if isAttrs args

View file

@ -7,8 +7,8 @@
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.attrsets) mapAttrs;
inherit (lib.strings) toUpper;
inherit (lib.types) int float bool str enum listOf attrsOf;
inherit (lib.nvim.types) mkPluginSetupOption;
inherit (lib.types) int float bool str enum listOf attrsOf anything;
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
inherit (lib.generators) mkLuaInline;
in {
imports = [
@ -42,30 +42,14 @@ in {
type = bool;
default = false;
};
clear_on_detach = mkOption {
description = "Clear notification group when LSP server detaches";
type = bool;
default = true;
apply = clear:
if clear
then
mkLuaInline ''
function(client_id)
local client = vim.lsp.get_client_by_id(client_id)
return client and client.name or nil
end
''
else null;
};
notification_group = mkOption {
description = "How to get a progress message's notification group key";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
function(msg)
return msg.lsp_client.name
end
'';
apply = mkLuaInline;
};
ignore = mkOption {
description = "Ignore LSP servers by name";
@ -172,33 +156,29 @@ in {
};
format_message = mkOption {
description = "How to format a progress message";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
require("fidget.progress.display").default_format_message
'';
apply = mkLuaInline;
};
format_annote = mkOption {
description = "How to format a progress annotation";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
function(msg) return msg.title end
'';
apply = mkLuaInline;
};
format_group_name = mkOption {
description = "How to format a progress notification group's name";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
function(group) return tostring(group) end
'';
apply = mkLuaInline;
};
overrides = mkOption {
description = "Override options from the default notification config";
type = attrsOf str;
default = {rust_analyzer = "{ name = 'rust-analyzer' }";};
apply = mapAttrs (key: lua: mkLuaInline lua);
type = attrsOf (attrsOf anything);
default = {rust_analyzer = {name = "rust-analyzer";};};
};
};
@ -240,21 +220,19 @@ in {
};
configs = mkOption {
description = "How to configure notification groups when instantiated";
type = attrsOf str;
default = {default = "require('fidget.notification').default_config";};
apply = mapAttrs (key: lua: mkLuaInline lua);
type = attrsOf luaInline;
default = {default = mkLuaInline "require('fidget.notification').default_config";};
};
redirect = mkOption {
description = "Conditionally redirect notifications to another backend";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
function(msg, level, opts)
if opts and opts.on_open then
return require("fidget.integration.nvim-notify").delegate(msg, level, opts)
end
end
'';
apply = mkLuaInline;
};
view = {
@ -280,13 +258,12 @@ in {
};
render_message = mkOption {
description = "How to render notification messages";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
function(msg, cnt)
return cnt == 1 and msg or string.format("(%dx) %s", cnt, msg)
end
'';
apply = mkLuaInline;
};
};
@ -386,11 +363,10 @@ in {
};
path = mkOption {
description = "Where Fidget writes its logs to";
type = str;
default = ''
type = luaInline;
default = mkLuaInline ''
string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache"))
'';
apply = mkLuaInline;
};
};
};