mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-22 21:30:51 +00:00
Merge pull request #266 from horriblename/no-apply-lua-inline
Do not auto apply mkLuaInline
This commit is contained in:
commit
8ad6233c41
2 changed files with 21 additions and 45 deletions
|
@ -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
|
# 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}}'';
|
luaTable = items: ''{${concatStringsSep "," items}}'';
|
||||||
|
|
||||||
isLuaInline = {_type ? null, ...}: _type == "lua-inline";
|
isLuaInline = object: (object._type or null) == "lua-inline";
|
||||||
|
|
||||||
toLuaObject = args:
|
toLuaObject = args:
|
||||||
if isAttrs args
|
if isAttrs args
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
inherit (lib.options) mkEnableOption mkOption;
|
inherit (lib.options) mkEnableOption mkOption;
|
||||||
inherit (lib.attrsets) mapAttrs;
|
inherit (lib.attrsets) mapAttrs;
|
||||||
inherit (lib.strings) toUpper;
|
inherit (lib.strings) toUpper;
|
||||||
inherit (lib.types) int float bool str enum listOf attrsOf;
|
inherit (lib.types) int float bool str enum listOf attrsOf anything;
|
||||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
|
||||||
inherit (lib.generators) mkLuaInline;
|
inherit (lib.generators) mkLuaInline;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -42,30 +42,14 @@ in {
|
||||||
type = bool;
|
type = bool;
|
||||||
default = false;
|
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 {
|
notification_group = mkOption {
|
||||||
description = "How to get a progress message's notification group key";
|
description = "How to get a progress message's notification group key";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
function(msg)
|
function(msg)
|
||||||
return msg.lsp_client.name
|
return msg.lsp_client.name
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
ignore = mkOption {
|
ignore = mkOption {
|
||||||
description = "Ignore LSP servers by name";
|
description = "Ignore LSP servers by name";
|
||||||
|
@ -172,33 +156,29 @@ in {
|
||||||
};
|
};
|
||||||
format_message = mkOption {
|
format_message = mkOption {
|
||||||
description = "How to format a progress message";
|
description = "How to format a progress message";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
require("fidget.progress.display").default_format_message
|
require("fidget.progress.display").default_format_message
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
format_annote = mkOption {
|
format_annote = mkOption {
|
||||||
description = "How to format a progress annotation";
|
description = "How to format a progress annotation";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
function(msg) return msg.title end
|
function(msg) return msg.title end
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
format_group_name = mkOption {
|
format_group_name = mkOption {
|
||||||
description = "How to format a progress notification group's name";
|
description = "How to format a progress notification group's name";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
function(group) return tostring(group) end
|
function(group) return tostring(group) end
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
overrides = mkOption {
|
overrides = mkOption {
|
||||||
description = "Override options from the default notification config";
|
description = "Override options from the default notification config";
|
||||||
type = attrsOf str;
|
type = attrsOf (attrsOf anything);
|
||||||
default = {rust_analyzer = "{ name = 'rust-analyzer' }";};
|
default = {rust_analyzer = {name = "rust-analyzer";};};
|
||||||
apply = mapAttrs (key: lua: mkLuaInline lua);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -240,21 +220,19 @@ in {
|
||||||
};
|
};
|
||||||
configs = mkOption {
|
configs = mkOption {
|
||||||
description = "How to configure notification groups when instantiated";
|
description = "How to configure notification groups when instantiated";
|
||||||
type = attrsOf str;
|
type = attrsOf luaInline;
|
||||||
default = {default = "require('fidget.notification').default_config";};
|
default = {default = mkLuaInline "require('fidget.notification').default_config";};
|
||||||
apply = mapAttrs (key: lua: mkLuaInline lua);
|
|
||||||
};
|
};
|
||||||
redirect = mkOption {
|
redirect = mkOption {
|
||||||
description = "Conditionally redirect notifications to another backend";
|
description = "Conditionally redirect notifications to another backend";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
function(msg, level, opts)
|
function(msg, level, opts)
|
||||||
if opts and opts.on_open then
|
if opts and opts.on_open then
|
||||||
return require("fidget.integration.nvim-notify").delegate(msg, level, opts)
|
return require("fidget.integration.nvim-notify").delegate(msg, level, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
view = {
|
view = {
|
||||||
|
@ -280,13 +258,12 @@ in {
|
||||||
};
|
};
|
||||||
render_message = mkOption {
|
render_message = mkOption {
|
||||||
description = "How to render notification messages";
|
description = "How to render notification messages";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
function(msg, cnt)
|
function(msg, cnt)
|
||||||
return cnt == 1 and msg or string.format("(%dx) %s", cnt, msg)
|
return cnt == 1 and msg or string.format("(%dx) %s", cnt, msg)
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -386,11 +363,10 @@ in {
|
||||||
};
|
};
|
||||||
path = mkOption {
|
path = mkOption {
|
||||||
description = "Where Fidget writes its logs to";
|
description = "Where Fidget writes its logs to";
|
||||||
type = str;
|
type = luaInline;
|
||||||
default = ''
|
default = mkLuaInline ''
|
||||||
string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache"))
|
string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache"))
|
||||||
'';
|
'';
|
||||||
apply = mkLuaInline;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue