mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 10:21:31 +00:00
treewide: begin restructuring the module tree
This commit is contained in:
parent
e1835f6c46
commit
7c730a78e5
254 changed files with 749 additions and 664 deletions
5
modules/plugins/rich-presence/default.nix
Normal file
5
modules/plugins/rich-presence/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./neocord
|
||||
];
|
||||
}
|
20
modules/plugins/rich-presence/neocord/config.nix
Normal file
20
modules/plugins/rich-presence/neocord/config.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
cfg = config.vim.presence.neocord;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
vim.startPlugins = ["neocord"];
|
||||
|
||||
vim.luaConfigRC.neocord = entryAnywhere ''
|
||||
-- Description of each option can be found in https://github.com/IogaMaster/neocord#lua
|
||||
require("neocord").setup(${toLuaObject cfg.setupOpts})
|
||||
'';
|
||||
};
|
||||
}
|
6
modules/plugins/rich-presence/neocord/default.nix
Normal file
6
modules/plugins/rich-presence/neocord/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./config.nix
|
||||
./neocord.nix
|
||||
];
|
||||
}
|
141
modules/plugins/rich-presence/neocord/neocord.nix
Normal file
141
modules/plugins/rich-presence/neocord/neocord.nix
Normal file
|
@ -0,0 +1,141 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.modules) mkRemovedOptionModule mkRenamedOptionModule;
|
||||
inherit (lib.options) mkEnableOption mkOption literalExpression;
|
||||
inherit (lib.types) bool int str enum nullOr listOf;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||
in {
|
||||
imports =
|
||||
[
|
||||
(mkRemovedOptionModule ["vim" "presence" "presence-nvim"] ''
|
||||
The option vim.presence.presence-nvim has been deprecated in favor of the new neocord module.
|
||||
Options provided by the plugin remain mostly the same, but manual migration is required.
|
||||
|
||||
Please see neocord documentation and the neovim-flake options for more info
|
||||
'')
|
||||
]
|
||||
++ (map
|
||||
(optName: mkRenamedOptionModule ["vim" "presence" "neocord" "rich_presence" optName] ["vim" "presence" "neocord" "setupOpts" optName])
|
||||
["debounce_timeout" "blacklist" "show_time" "editing_text" "file_explorer_text" "git_commit_text" "plugin_manager_text" "reading_text" "workspace_text" "line_number_text" "terminal_text"])
|
||||
++ (map
|
||||
(optName: mkRenamedOptionModule ["vim" "presence" "neocord" optName] ["vim" "presence" "neocord" "setupOpts" optName])
|
||||
["logo" "logo_tooltip" "main_image" "client_id" "log_level" "debounce_timeout" "blacklist" "show_time"]);
|
||||
|
||||
options.vim.presence.neocord = {
|
||||
enable = mkEnableOption "neocord plugin for discord rich presence";
|
||||
|
||||
setupOpts = mkPluginSetupOption "neocord" {
|
||||
logo = mkOption {
|
||||
type = str; # TODO: can the default be documented better, maybe with an enum?
|
||||
default = "auto";
|
||||
description = ''
|
||||
Logo to be displayed on the RPC item
|
||||
|
||||
This must be either "auto" or an URL to your image of choice
|
||||
'';
|
||||
};
|
||||
|
||||
logo_tooltip = mkOption {
|
||||
type = str;
|
||||
default = "The One True Text Editor";
|
||||
description = "Text displayed when hovering over the Neovim image";
|
||||
};
|
||||
|
||||
main_image = mkOption {
|
||||
type = enum ["language" "logo"];
|
||||
default = "language";
|
||||
description = "Main image to be displayed";
|
||||
};
|
||||
|
||||
client_id = mkOption {
|
||||
type = str;
|
||||
default = "1157438221865717891";
|
||||
description = "Client ID of the application";
|
||||
};
|
||||
|
||||
log_level = mkOption {
|
||||
type = nullOr (enum ["debug" "info" "warn" "error"]);
|
||||
default = null;
|
||||
description = "Log level to be used by the plugin";
|
||||
};
|
||||
|
||||
debounce_timeout = mkOption {
|
||||
type = int;
|
||||
default = 10;
|
||||
description = "Number of seconds to debounce events";
|
||||
};
|
||||
|
||||
auto_update = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Automatically update the presence";
|
||||
};
|
||||
|
||||
enable_line_number = mkOption {
|
||||
type = bool;
|
||||
default = false;
|
||||
description = "Show line number on the RPC item";
|
||||
};
|
||||
|
||||
show_time = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Show time on the RPC item";
|
||||
};
|
||||
|
||||
blacklist = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
example = literalExpression ''["Alpha"]'';
|
||||
description = "List of filetypes to ignore";
|
||||
};
|
||||
|
||||
editing_text = mkOption {
|
||||
type = str;
|
||||
default = "Editing %s";
|
||||
description = "Text displayed when editing a file";
|
||||
};
|
||||
|
||||
file_explorer_text = mkOption {
|
||||
type = str;
|
||||
default = "Browsing %s";
|
||||
description = "Text displayed when browsing files";
|
||||
};
|
||||
|
||||
git_commit_text = mkOption {
|
||||
type = str;
|
||||
default = "Committing changes";
|
||||
description = "Text displayed when committing changes";
|
||||
};
|
||||
|
||||
plugin_manager_text = mkOption {
|
||||
type = str;
|
||||
default = "Managing plugins";
|
||||
description = "Text displayed when managing plugins";
|
||||
};
|
||||
|
||||
reading_text = mkOption {
|
||||
type = str;
|
||||
default = "Reading %s";
|
||||
description = "Text displayed when reading a file";
|
||||
};
|
||||
|
||||
workspace_text = mkOption {
|
||||
type = str;
|
||||
default = "Working on %s";
|
||||
description = "Text displayed when working on a project";
|
||||
};
|
||||
|
||||
line_number_text = mkOption {
|
||||
type = str;
|
||||
default = "Line %s out of %s";
|
||||
description = "Text displayed when showing line number";
|
||||
};
|
||||
|
||||
terminal_text = mkOption {
|
||||
type = str;
|
||||
default = "Working on the terminal";
|
||||
description = "Text displayed when working on the terminal";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue