neovim: add vale & ltex-lsp
This commit is contained in:
parent
aa3af5f0e5
commit
5604745c78
16 changed files with 1442 additions and 18 deletions
|
|
@ -4,5 +4,8 @@
|
|||
lspkind.enable = true;
|
||||
lspSignature.enable = true;
|
||||
trouble = {enable = true;};
|
||||
null-ls = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,19 @@
|
|||
vim = {
|
||||
languages.markdown = {
|
||||
enable = true;
|
||||
vale.enable = true;
|
||||
ltex.enable = true;
|
||||
extensions = {
|
||||
render-markdown-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
heading = {
|
||||
border = true;
|
||||
width = "block";
|
||||
left_pad = 3;
|
||||
right_pad = 4;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,9 +7,11 @@
|
|||
useSystemClipboard = true;
|
||||
autopairs.nvim-autopairs.enable = true;
|
||||
hideSearchHighlight = true;
|
||||
spellcheck.enable = true;
|
||||
theme = {
|
||||
enable = false;
|
||||
};
|
||||
spellcheck = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,31 @@
|
|||
{
|
||||
{hozen, ...}: let
|
||||
inherit (hozen) color;
|
||||
in {
|
||||
vim.gruvbox-material = {
|
||||
enable = true;
|
||||
contrast = "medium";
|
||||
italics = false;
|
||||
transparent = false;
|
||||
extraConfig =
|
||||
# lua
|
||||
''
|
||||
local g_colors = require("gruvbox-material.colors")
|
||||
local colors = g_colors.get(vim.o.background, "soft")
|
||||
additionalHighlights = {
|
||||
RenderMarkdownH1Bg = {bg = "#${color.layout.body}";};
|
||||
RenderMarkdownH2Bg = {bg = "#${color.layout.body}";};
|
||||
RenderMarkdownH3Bg = {bg = "#${color.layout.body}";};
|
||||
RenderMarkdownH4Bg = {bg = "#${color.layout.body}";};
|
||||
RenderMarkdownH5Bg = {bg = "#${color.layout.body}";};
|
||||
RenderMarkdownH6Bg = {bg = "#${color.layout.body}";};
|
||||
"@markup.heading.1" = {
|
||||
fg = "#${color.green.base}";
|
||||
bold = true;
|
||||
};
|
||||
"@markup.heading.2" = {
|
||||
fg = "#${color.blue.base}";
|
||||
bold = true;
|
||||
};
|
||||
|
||||
-- Noice
|
||||
vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorderHelp", { fg = colors.yellow })
|
||||
vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorder", { fg = colors.grey1 })
|
||||
vim.api.nvim_set_hl(0, "NoiceCmdlineIcon", { fg = colors.green })
|
||||
vim.api.nvim_set_hl(0, "NoiceCmdLinePopupTitle", { fg = colors.grey1 })
|
||||
'';
|
||||
NoiceCmdlinePopupBorder = {fg = "#${color.border.active}";};
|
||||
NoiceCmdlinePopupBorderHelp = {fg = "#${color.yellow.base}";};
|
||||
NoiceCmdlineIcon = {fg = "#${color.green.base}";};
|
||||
NoiceCmdLinePopupTitle = {fg = "#${color.typography.text}";};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
imports = [
|
||||
./gruvbox-material
|
||||
./telescope
|
||||
./obsidian
|
||||
./theme
|
||||
./notes
|
||||
./languages
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,105 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib) mkOption mkIf boolToString;
|
||||
inherit (lib.types) bool enum lines;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
inherit (lib.types) bool enum lines nullOr str submodule attrsOf;
|
||||
inherit (lib.nvim.dag) entryBefore;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
# hack to get around nvf's handling of prefixed @ in toLuaObject
|
||||
wrapHighlights = highlights:
|
||||
lib.mapAttrs' (
|
||||
name: value:
|
||||
if lib.hasPrefix "@" name
|
||||
then lib.nameValuePair "hl_${name}" value
|
||||
else lib.nameValuePair name value
|
||||
)
|
||||
highlights;
|
||||
|
||||
highlightOpts = submodule {
|
||||
options = {
|
||||
# https://neovim.io/doc/user/api.html#nvim_set_hl()
|
||||
fg = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Foreground color";
|
||||
};
|
||||
bg = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Background color";
|
||||
};
|
||||
sp = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "SP color";
|
||||
};
|
||||
blend = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Blend attribute";
|
||||
};
|
||||
bold = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Italic attribute";
|
||||
};
|
||||
standout = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Standout attribute";
|
||||
};
|
||||
underline = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "underline attribute";
|
||||
};
|
||||
undercurl = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Undercurl attribute";
|
||||
};
|
||||
underdouble = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Underdouble attribute";
|
||||
};
|
||||
underdotted = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Underdotted attribute";
|
||||
};
|
||||
underdashed = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Underdashed attribute";
|
||||
};
|
||||
strikethrough = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Strikethrough attribute";
|
||||
};
|
||||
italic = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Bold attribute";
|
||||
};
|
||||
reverse = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Reverse attribute";
|
||||
};
|
||||
nocombine = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Nocombine attribute";
|
||||
};
|
||||
link = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Link attribute";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cfg = config.vim.gruvbox-material;
|
||||
in {
|
||||
|
|
@ -45,13 +142,18 @@ in {
|
|||
type = lines;
|
||||
description = "Additional lua configuration after";
|
||||
};
|
||||
additionalHighlights = mkOption {
|
||||
type = attrsOf highlightOpts;
|
||||
default = {};
|
||||
description = "Additional highlight groups to be applied after theme setup.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
vim = {
|
||||
startPlugins = [pkgs.vimPlugins.gruvbox-material-nvim];
|
||||
luaConfigRC.theme =
|
||||
entryAfter ["basic"]
|
||||
entryBefore ["pluginConfigs" "lazyConfigs"]
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
|
|
@ -72,7 +174,14 @@ in {
|
|||
highlight = ${boolToString cfg.signsHighlight},
|
||||
},
|
||||
}
|
||||
${cfg.extraConfig}
|
||||
|
||||
local extra_highlights = ${toLuaObject (wrapHighlights cfg.additionalHighlights)}
|
||||
for group_name, settings in pairs(extra_highlights) do
|
||||
-- Unwrap our prefixed names back to @ form
|
||||
local actual_name = group_name:gsub("^hl_@", "@")
|
||||
vim.api.nvim_set_hl(0, actual_name, settings)
|
||||
end
|
||||
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
{imports = [./markdown.nix];}
|
||||
135
outputs/pkgs/ook-vim/modules/plugins/languages/markdown.nix
Normal file
135
outputs/pkgs/ook-vim/modules/plugins/languages/markdown.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
# modules/plugins/vale/default.nix
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.modules) mkIf mkMerge;
|
||||
inherit (lib.types) package enum str;
|
||||
|
||||
languages = [
|
||||
"auto"
|
||||
"ar"
|
||||
"ast-ES"
|
||||
"be-BY"
|
||||
"br-FR"
|
||||
"ca-ES"
|
||||
"ca-ES-valencia"
|
||||
"da-DK"
|
||||
"de"
|
||||
"de-AT"
|
||||
"de-CH"
|
||||
"de-DE"
|
||||
"de-DE-x-simple-language"
|
||||
"el-GR"
|
||||
"en"
|
||||
"en-AU"
|
||||
"en-CA"
|
||||
"en-GB"
|
||||
"en-NZ"
|
||||
"en-US"
|
||||
"en-ZA"
|
||||
"eo"
|
||||
"es"
|
||||
"es-AR"
|
||||
"fa"
|
||||
"fr"
|
||||
"ga-IE"
|
||||
"gl-ES"
|
||||
"it"
|
||||
"ja-JP"
|
||||
"km-KH"
|
||||
"nl"
|
||||
"nl-BE"
|
||||
"pl-PL"
|
||||
"pt"
|
||||
"pt-AO"
|
||||
"pt-BR"
|
||||
"pt-MZ"
|
||||
"pt-PT"
|
||||
"ro-RO"
|
||||
"ru-RU"
|
||||
"sk-SK"
|
||||
"sl-SI"
|
||||
"sv"
|
||||
"ta-IN"
|
||||
"tl-PH"
|
||||
"uk-UA"
|
||||
"zh-CN"
|
||||
];
|
||||
|
||||
cfg = config.vim.languages.markdown;
|
||||
in {
|
||||
options.vim.languages.markdown = {
|
||||
vale = {
|
||||
enable = mkEnableOption "Vale linting support";
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.vale.withStyles (styles: [
|
||||
styles.proselint
|
||||
styles.microsoft
|
||||
styles.write-good
|
||||
styles.readability
|
||||
styles.alex
|
||||
]);
|
||||
description = "Vale package to use";
|
||||
};
|
||||
};
|
||||
ltex = {
|
||||
enable = mkEnableOption "Enable ltex-ls";
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.ltex-ls;
|
||||
};
|
||||
language = mkOption {
|
||||
type = enum languages;
|
||||
default = "en";
|
||||
};
|
||||
modelPath = mkOption {
|
||||
type = str;
|
||||
default = "~/.config/nvf/models/ngrams/";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.vale.enable {
|
||||
vim.lsp.null-ls = {
|
||||
enable = true;
|
||||
sources.vale-lint =
|
||||
# lua
|
||||
''
|
||||
table.insert(
|
||||
ls_sources,
|
||||
null_ls.builtins.diagnostics.vale.with({
|
||||
command = "${cfg.vale.package}/bin/vale",
|
||||
diagnostics_format = "#{m} [#{c}]"
|
||||
})
|
||||
)
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf cfg.ltex.enable {
|
||||
vim.lsp.lspconfig.enable = true;
|
||||
vim.lsp.lspconfig.sources.ltex-lsp =
|
||||
# lua
|
||||
''
|
||||
lspconfig.ltex.setup{
|
||||
cmd = {"${cfg.ltex.package}/bin/ltex-ls"},
|
||||
capabilities = capabilities;
|
||||
on_attach = default_on_attach;
|
||||
settings = {
|
||||
ltex = {
|
||||
language = "${cfg.ltex.language}",
|
||||
additionalRules = {
|
||||
languageModel = "${cfg.ltex.modelPath}",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
3
outputs/pkgs/ook-vim/modules/plugins/notes/default.nix
Normal file
3
outputs/pkgs/ook-vim/modules/plugins/notes/default.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
imports = [./obsidian];
|
||||
}
|
||||
|
|
@ -0,0 +1,428 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkOption mkEnableOption;
|
||||
inherit (lib.types) str nullOr bool enum listOf int float attrsOf submodule;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
|
||||
|
||||
# All possible Neovim modes
|
||||
neovimModes = [
|
||||
"n"
|
||||
"no"
|
||||
"nov"
|
||||
"noV"
|
||||
"noCTRL-v"
|
||||
"niI"
|
||||
"niR"
|
||||
"niV"
|
||||
"nt"
|
||||
"ntT"
|
||||
"v"
|
||||
"vs"
|
||||
"V"
|
||||
"Vs"
|
||||
"CTRL-V"
|
||||
"CTRL-Vs"
|
||||
"s"
|
||||
"S"
|
||||
"CTRL-S"
|
||||
"i"
|
||||
"ic"
|
||||
"ix"
|
||||
"R"
|
||||
"Rc"
|
||||
"Rx"
|
||||
"Rv"
|
||||
"Rvc"
|
||||
"Rvx"
|
||||
"c"
|
||||
"cr"
|
||||
"cv"
|
||||
"cvr"
|
||||
"r"
|
||||
"rm"
|
||||
"r?"
|
||||
"!"
|
||||
"t"
|
||||
];
|
||||
|
||||
# Preset options
|
||||
presetOptions = enum ["obsidian" "lazy" "none"];
|
||||
|
||||
# Log level options
|
||||
logLevelOptions = enum ["error" "warn" "info" "debug" "trace"];
|
||||
|
||||
# Anti-conceal ignore options submodule
|
||||
antiConcealIgnoreOptions = submodule {
|
||||
options = {
|
||||
head_icon = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where head icon anti-conceal behavior will be ignored";
|
||||
};
|
||||
head_background = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where head background anti-conceal behavior will be ignored";
|
||||
};
|
||||
head_border = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where head border anti-conceal behavior will be ignored";
|
||||
};
|
||||
code_language = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where code language anti-conceal behavior will be ignored";
|
||||
};
|
||||
code_background = mkOption {
|
||||
type = nullOr bool;
|
||||
default = true;
|
||||
description = "Whether to ignore code background anti-conceal behavior";
|
||||
};
|
||||
code_border = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where code border anti-conceal behavior will be ignored";
|
||||
};
|
||||
dash = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where dash anti-conceal behavior will be ignored";
|
||||
};
|
||||
bullet = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where bullet anti-conceal behavior will be ignored";
|
||||
};
|
||||
check_icon = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where check icon anti-conceal behavior will be ignored";
|
||||
};
|
||||
check_scope = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where check scope anti-conceal behavior will be ignored";
|
||||
};
|
||||
quote = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where quote anti-conceal behavior will be ignored";
|
||||
};
|
||||
table_border = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where table border anti-conceal behavior will be ignored";
|
||||
};
|
||||
callout = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where callout anti-conceal behavior will be ignored";
|
||||
};
|
||||
link = mkOption {
|
||||
type = nullOr (listOf (enum neovimModes));
|
||||
default = null;
|
||||
description = "Modes where link anti-conceal behavior will be ignored";
|
||||
};
|
||||
sign = mkOption {
|
||||
type = nullOr bool;
|
||||
default = true;
|
||||
description = "Whether to ignore sign anti-conceal behavior";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Injection options submodule
|
||||
injectionOptions = submodule {
|
||||
options = {
|
||||
enabled = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Whether this injection is enabled";
|
||||
};
|
||||
query = mkOption {
|
||||
type = luaInline;
|
||||
description = "Treesitter query for the injection";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
headingWidthType = enum ["block" "full"];
|
||||
|
||||
headingPositionType = enum ["right" "inline" "overlay"];
|
||||
in {
|
||||
options.vim.notes.render-markdown-nvim = {
|
||||
enable = mkEnableOption "Inline markdown rendering";
|
||||
setupOpts = mkPluginSetupOption "render-markdown" {
|
||||
enabled = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Whether Markdown should be rendered by default";
|
||||
};
|
||||
|
||||
render_modes = mkOption {
|
||||
type = listOf (enum neovimModes);
|
||||
default = ["n" "c" "t"];
|
||||
description = ''
|
||||
Vim modes that will show a rendered view of the markdown file.
|
||||
Individual components can be enabled for other modes.
|
||||
'';
|
||||
};
|
||||
|
||||
max_file_size = mkOption {
|
||||
type = float;
|
||||
default = 10.0;
|
||||
description = "Maximum file size (in MB) that this plugin will attempt to render";
|
||||
};
|
||||
|
||||
debounce = mkOption {
|
||||
type = int;
|
||||
default = 100;
|
||||
description = "Milliseconds that must pass before updating marks";
|
||||
};
|
||||
|
||||
preset = mkOption {
|
||||
type = presetOptions;
|
||||
default = "none";
|
||||
description = "Pre-configured settings to mimic various target user experiences";
|
||||
};
|
||||
|
||||
log_level = mkOption {
|
||||
type = logLevelOptions;
|
||||
default = "error";
|
||||
description = "The level of logs to write to file";
|
||||
};
|
||||
|
||||
log_runtime = mkOption {
|
||||
type = bool;
|
||||
default = false;
|
||||
description = "Print runtime of main update method";
|
||||
};
|
||||
|
||||
file_types = mkOption {
|
||||
type = listOf str;
|
||||
default = ["markdown"];
|
||||
description = "Filetypes this plugin will run on";
|
||||
};
|
||||
|
||||
injections = mkOption {
|
||||
type = attrsOf injectionOptions;
|
||||
default = {
|
||||
gitcommit = {
|
||||
enabled = true;
|
||||
query = ''
|
||||
((message) @injection.content
|
||||
(#set! injection.combined)
|
||||
(#set! injection.include-children)
|
||||
(#set! injection.language "markdown"))
|
||||
'';
|
||||
};
|
||||
};
|
||||
description = "Language injections for known filetypes";
|
||||
};
|
||||
|
||||
anti_conceal = {
|
||||
enabled = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Enable hiding added text on the cursor line";
|
||||
};
|
||||
|
||||
ignore = mkOption {
|
||||
type = antiConcealIgnoreOptions;
|
||||
default = {
|
||||
code_background = true;
|
||||
sign = true;
|
||||
};
|
||||
description = "Elements to always show, ignoring anti-conceal behavior";
|
||||
};
|
||||
|
||||
above = mkOption {
|
||||
type = int;
|
||||
default = 0;
|
||||
description = "Number of lines above cursor to show";
|
||||
};
|
||||
|
||||
below = mkOption {
|
||||
type = int;
|
||||
default = 0;
|
||||
description = "Number of lines below cursor to show";
|
||||
};
|
||||
};
|
||||
|
||||
padding = {
|
||||
highlight = mkOption {
|
||||
type = str;
|
||||
default = "Normal";
|
||||
description = "Highlight to use when adding whitespace";
|
||||
};
|
||||
};
|
||||
|
||||
on = {
|
||||
attach = mkOption {
|
||||
type = nullOr luaInline;
|
||||
default = null;
|
||||
description = "Called when plugin initially attaches to a buffer";
|
||||
};
|
||||
|
||||
render = mkOption {
|
||||
type = nullOr luaInline;
|
||||
default = null;
|
||||
description = "Called after plugin renders a buffer";
|
||||
};
|
||||
};
|
||||
|
||||
latex = {
|
||||
enabled = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Whether LaTeX should be rendered";
|
||||
};
|
||||
|
||||
render_modes = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Additional modes to render LaTeX";
|
||||
};
|
||||
|
||||
converter = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Executable used to convert latex formula to rendered unicode";
|
||||
};
|
||||
|
||||
highlight = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Highlight for LaTeX blocks";
|
||||
};
|
||||
|
||||
top_pad = mkOption {
|
||||
type = nullOr int;
|
||||
default = null;
|
||||
description = "Amount of empty lines above LaTeX blocks";
|
||||
};
|
||||
|
||||
bottom_pad = mkOption {
|
||||
type = nullOr int;
|
||||
default = null;
|
||||
description = "Amount of empty lines below LaTeX blocks";
|
||||
};
|
||||
};
|
||||
|
||||
heading = {
|
||||
enabled = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Enable heading icon & background rendering";
|
||||
};
|
||||
|
||||
render_modes = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Additional modes to render headings";
|
||||
};
|
||||
|
||||
sign = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Turn on/off sign column related rendering";
|
||||
};
|
||||
|
||||
icons = mkOption {
|
||||
type = nullOr (listOf str);
|
||||
default = null;
|
||||
description = "Icons for different heading levels";
|
||||
};
|
||||
|
||||
position = mkOption {
|
||||
type = nullOr headingPositionType;
|
||||
default = null;
|
||||
description = "How icons fill available space";
|
||||
};
|
||||
|
||||
signs = mkOption {
|
||||
type = nullOr (listOf str);
|
||||
default = null;
|
||||
description = "Signs added to the sign column if enabled";
|
||||
};
|
||||
|
||||
width = mkOption {
|
||||
type = nullOr (either headingWidthType (listOf headingWidthType));
|
||||
default = null;
|
||||
description = "Width of the heading background";
|
||||
};
|
||||
|
||||
left_margin = mkOption {
|
||||
type = nullOr (either float (listOf float));
|
||||
default = null;
|
||||
description = "Margin to add to left of headings";
|
||||
};
|
||||
|
||||
left_pad = mkOption {
|
||||
type = nullOr (either float (listOf float));
|
||||
default = null;
|
||||
description = "Padding to add to left of headings";
|
||||
};
|
||||
|
||||
right_pad = mkOption {
|
||||
type = nullOr (either float (listOf float));
|
||||
default = null;
|
||||
description = "Padding to add to right of headings when width is 'block'";
|
||||
};
|
||||
|
||||
min_width = mkOption {
|
||||
type = nullOr (either int (listOf int));
|
||||
default = null;
|
||||
description = "Minimum width for headings when width is 'block'";
|
||||
};
|
||||
|
||||
border = mkOption {
|
||||
type = nullOr (either bool (listOf bool));
|
||||
default = null;
|
||||
description = "Add border above and below headings";
|
||||
};
|
||||
|
||||
border_virtual = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Always use virtual lines for heading borders";
|
||||
};
|
||||
|
||||
border_prefix = mkOption {
|
||||
type = nullOr bool;
|
||||
default = null;
|
||||
description = "Highlight border start using foreground highlight";
|
||||
};
|
||||
|
||||
above = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Character used above heading for border";
|
||||
};
|
||||
|
||||
below = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "Character used below heading for border";
|
||||
};
|
||||
|
||||
backgrounds = mkOption {
|
||||
type = nullOr (listOf str);
|
||||
default = null;
|
||||
description = "Highlights for heading backgrounds per level";
|
||||
};
|
||||
|
||||
foregrounds = mkOption {
|
||||
type = nullOr (listOf str);
|
||||
default = null;
|
||||
description = "Highlights for heading and sign icons per level";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue