Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Vimdoc options

Shawon edited this page Feb 5, 2025 · 2 revisions

🧊 Vimdoc options

--- Configuration for vimdoc files.
---@class helpview.vimdoc
---
--- When `false`, doesn't render vimdoc.
---@field enable? boolean
---
--- Configuration for {arguments}.
---@field arguments? vimdoc.arguments
---
--- Configuration for code blocks.
---@field code_blocks? vimdoc.code_blocks
---
--- Configuration for headings.
---@field headings? vimdoc.headings
---
--- Configuration for highlight group names.
---@field highlight_groups? vimdoc.highlights
---
--- Configuration for horizontal rules.
---@field horizontal_rules? vimdoc.hr
---
--- Configuration for 
---@field inline_codes? vimdoc.inline_codes
---
--- Configuration for <Keycodes>.
---@field keycodes? vimdoc.keycodes
---
--- Configuration for vim:modeline:.
---@field modelines? vimdoc.modelines
---
--- Configuration for Note.
---@field notes? vimdoc.notes
---
--- Configuration for 'optionlink'.
---@field optionlinks? vimdoc.optionlinks
---
--- Configuration for *tag*.
---@field tag? vimdoc.tags
---
--- Configuration for |taglink|.
---@field taglinks? vimdoc.taglinks

Important

Most of the inline elements use vimdoc.generic. So, it's definition is given here.

--- Configuration for a generic inline
--- element.
---@class vimdoc.generic
---
---@field corner_left? string
---@field padding_left? string
---
---@field icon? string
---
---@field padding_right? string
---@field corner_right? string
---
--- Primary highlight group.
--- Used by other `*_hl` option(s) when
--- a value isn't given.
---@field hl? string
---
---@field corner_left_hl? string
---@field padding_left_hl? string
---
---@field icon_hl? string
---
---@field padding_right_hl? string
---@field corner_right_hl? string

enable

  • Type: boolean

Can be set to false to stop rendering only vimdoc.

arguments

  • Type: vimdoc.arguments

Configuration for {arguments}.

--- Configuration for `{arguments}`.
---@class vimdoc.arguments
---
--- When `false`, arguments don't get rendered.
---@field enable? boolean
---
--- Default configuration for arguments.
---@field default vimdoc.generic
--- Configuration for `{string}`.
---@field [string] vimdoc.generic
arguments = {
 enable = true,
 default = {
 hl = "Argument",
 padding_left = " ",
 padding_right = " ",
 },
},
Expand to see type definition of the item.
---@class vimdoc.__argument
---
---@field class "vimdoc_argument",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.arg = {
 class = "vimdoc_argument",
 label = "argument",
 range = {
 col_end = 10,
 col_start = 0,
 row_end = 7,
 row_start = 7
 },
 text = { "{argument}" }
};

code_blocks

  • Type: vimdoc.code_blocks

Configuration for code blocks.

--- Configuration for code blocks.
---@class vimdoc.code_blocks
---
--- When `false`, code blocks don't get rendered.
---@field enable? boolean
---
--- Highlight group for the top & bottom borders.
---@field border_hl? string
--- Highlight group for the language label.
---@field label_hl? string
---
--- Default line configuration(used for stuff like `diff`).
---@field default { block_hl: string }
--- Line configuration when the language is `string`.
---@field [string] { block_hl: string }
code_blocks = {
 enable = true,
 border_hl = "Code",
 default = { block_hl = "HelpviewCode" },
 ["diff"] = {
 block_hl = function (_, line)
 if line:match("^%s*%+") then
 return "HelpviewPalette4";
 elseif line:match("^%s*%-") then
 return "HelpviewPalette1";
 else
 return "HelpviewCode";
 end
 end
 }
}
Expand to see type definition of the item.
---@class vimdoc.__code_block
---
---@field class "vimdoc_code_block"
---@field language string?
---
---@field top_border [ boolean, boolean ]
---@field bottom_border [ boolean, boolean ]
---
---@field text string[],
---@field range node.range
M.code_block = {
 bottom_border = { false, false },
 class = "vimdoc_code_block",
 language = "diff",
 range = {
 col_end = 0,
 col_start = 0,
 row_end = 5,
 row_start = 3
 },
 text = { ">diff", " + h" },
 top_border = { false, false }
};

headings

  • Type: vimdoc.headings

Configuration for headings.

--- Configuration for headings.
---@class vimdoc.headings
---
--- When `false`, headings don't get rendered.
---@field enable? boolean
---
--- Configuration for === headings.
---@field heading_1 headings.opts
--- Configuration for --- headings.
---@field heading_2 headings.opts
--- Configuration for ABC headings.
---@field heading_3 headings.opts
--- Configuration for A ~ headings.
---@field heading_4 headings.opts
headings = {
 enable = true,
 heading_1 = {
 sign = " ⣾⣿⠛⣿⣷ ",
 sign_hl = "Palette1Inv",
 marker_hl = "Palette1Bg",
 hl = "Palette1Fg"
 },
 heading_2 = {
 sign = " ⣠⠞⠛⠳⣄ ",
 sign_hl = "Palette2Inv",
 marker_hl = "Palette2",
 hl = "Palette2Fg"
 },
 heading_3 = {
 sign = " ⣯⣤⠛⣤⣽ ",
 sign_hl = "Palette3Inv",
 marker_hl = "Palette3",
 hl = "Palette3"
 },
 heading_4 = {
 sign = " ⠓⣠⣿⣄⠚ ",
 sign_hl = "Palette4Inv",
 marker_hl = "Palette4",
 hl = "Palette4"
 },
}
--------------------------------------------------
--- Configuration options for each heading
--- level.
---@class headings.opts
---
--- Primary highlight group.
--- Used by other `*_hl` option(s) when
--- a value isn't given.
---@field hl? string
---
--- Text used to replace `=`/`-` parts.
--- On level 3 & 4 headings it covers the
--- whitespace instead.
---@field marker? string
--- Highlight group for `marker`.
---@field marker_hl? string
---
--- Text to show in the **right** side of
--- the heading.
---@field sign? string
--- Highlight group for `sign`.
---@field sign_hl? string
---
--- Text to add before & after the `sign`.
---@field label? [ string, string ]
--- Highlight group for the parts of the
--- label.
---@field label_hl? [ string, string ]
heading_1 = {
 sign = " ⣾⣿⠛⣿⣷ ",
 sign_hl = "Palette1Inv",
 marker_hl = "Palette1Bg",
 hl = "Palette1Fg"
}
Expand to see type definition of the item.
---@class vimdoc.__heading
---
---@field class "vimdoc_heading"
---@field level 
---| 1 Headings using === delimiters.
---| 2 Headings using --- delimiters.
---| 3 Headings using CAP-italized text.
---| 4 Headings using A ~.
---
---@field description? string
---@field tags? { tag: string, col_start: integer, col_end: integer }[]
---
---@field delimiter string
---
---@field text string[]
---@field range heading.range
---@class heading.range
---
---@field row_start integer
---@field row_end integer
---
---@field col_start integer
---@field col_end integer
---
---@field desc_start? integer
---@field desc_end? integer
M.heading = {
 class = "vimdoc_heading",
 delimiter = "------------------------------------------------------------------------------",
 description = "Hello Neovim!",
 level = 2,
 range = {
 col_end = 0,
 col_start = 0,
 desc_end = 13,
 desc_start = 0,
 row_end = 9,
 row_start = 7
 },
 tags = {
 {
 col_start = 70,
 tag = "*tag-1*"
 }, {
 col_start = 78,
 tag = "*tag-2*"
 }
 },
 text = { "------------------------------------------------------------------------------", "Hello Neovim! *tag-1* *tag-2*" }
};

highlight_groups

  • Type: vimdoc.hl

Configuration for highlight group names.

--- Configuration for highlight group name.
---@see vimdoc.generic
---
---@class vimdoc.highlights
---
--- When `false`, highlight group names aren't rendered.
---@field enable? boolean
---
---@field corner_left? string
---@field padding_left? string
---
---@field icon? string
---
---@field padding_right? string
---@field corner_right? string
---
---@field hl? string
---
---@field corner_left_hl? string
---@field padding_left_hl? string
---
---@field icon_hl? string
---
---@field padding_right_hl? string
---@field corner_right_hl? string
highlight_groups = {
 enable = true
}
Expand to see type definition of the item.
---@class vimdoc.__hl
---
---@field class "vimdoc_hl",
---@field group_name string
---
---@field text string[],
---@field range node.range
M.hl = {
 class = "vimdoc_hl",
 group_name = "Special",
 range = {
 col_end = 7,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "Special" }
};

horizontal_rules

  • Type: vimdoc.hr

Configuration for horizontal rules.

--- Configuration for horizontal rules.
---@class vimdoc.hr
---
--- When `false`, horizontal rules aren't rendered.
---@field enable? boolean
---
--- Parts for the shown highlight group
---@field parts (hr.text | hr.repeating)[]
horizontal_rules = {
 parts = {
 {
 type = "repeating",
 repeat_amount = function (buffer)
 return math.ceil((vim.bo[buffer].tw - 3) / 2);
 end,
 text = "",
 hl = {
 "HelpviewGradient1", "HelpviewGradient1",
 "HelpviewGradient2", "HelpviewGradient2",
 "HelpviewGradient3", "HelpviewGradient3",
 "HelpviewGradient4", "HelpviewGradient4",
 "HelpviewGradient5", "HelpviewGradient5",
 "HelpviewGradient6", "HelpviewGradient6",
 "HelpviewGradient7", "HelpviewGradient7",
 "HelpviewGradient8", "HelpviewGradient8",
 "HelpviewGradient8", "HelpviewGradient8",
 }
 },
 {
 type = "text",
 text = ""
 },
 {
 type = "repeating",
 repeat_amount = function (buffer)
 return math.floor((vim.bo[buffer].tw - 3) / 2);
 end,
 direction = "right",
 text = "",
 hl = {
 "HelpviewGradient1", "HelpviewGradient1",
 "HelpviewGradient2", "HelpviewGradient2",
 "HelpviewGradient3", "HelpviewGradient3",
 "HelpviewGradient4", "HelpviewGradient4",
 "HelpviewGradient5", "HelpviewGradient5",
 "HelpviewGradient6", "HelpviewGradient6",
 "HelpviewGradient7", "HelpviewGradient7",
 "HelpviewGradient8", "HelpviewGradient8",
 "HelpviewGradient8", "HelpviewGradient8",
 }
 },
 }
}
--- Shows some text.
---@class hr.text
---
--- Part type.
---@field type "text"
---
--- Text to show.
---@field text string
---
--- Highlight group for `text`.
---@field hl? string
{
 type = "text",
 text = ""
}
--- Repeats the given character(s)/highlight group(s).
---@class hr.repeating
---
--- Part type.
---@field type "repeating"
---
--- Direction to repeat from.
---@field direction "left" | "right"
--- Number of times to repeat.
---@field repeat_amount integer | fun(buffer: integer, item: vimdoc.__hr): integer
---
--- Should the highlight group be repeated?
--- [ Only works when `hl` is a list ]
---@field repeat_hl? boolean
--- Should the text be repeated?
--- [ Only works when `text` is a list ]
---@field repeat_text? boolean
---
---@field text string | string[]
---@field hl? string | string[]
{
 type = "repeating",
 repeat_amount = function (buffer)
 return math.floor((vim.bo[buffer].tw - 3) / 2);
 end,
 direction = "right",
 text = "",
 hl = {
 "HelpviewGradient1", "HelpviewGradient1",
 "HelpviewGradient2", "HelpviewGradient2",
 "HelpviewGradient3", "HelpviewGradient3",
 "HelpviewGradient4", "HelpviewGradient4",
 "HelpviewGradient5", "HelpviewGradient5",
 "HelpviewGradient6", "HelpviewGradient6",
 "HelpviewGradient7", "HelpviewGradient7",
 "HelpviewGradient8", "HelpviewGradient8",
 "HelpviewGradient8", "HelpviewGradient8",
 }
},
Expand to see type definition of the item.
---@class vimdoc.__hr
---
---@field class "vimdoc_hr"
---
---@field text string[]
---@field range node.range
M.hr = {
 class = "vimdoc_hr",
 range = {
 col_end = 78,
 col_start = 0,
 row_end = 8,
 row_start = 7
 },
 text = { "------------------------------------------------------------------------------" }
};

inline_codes

  • Type: vimdoc.inline_codes

Configuration for inline codes.

--- Configuration for inline codes.
---@see vimdoc.generic
---
---@class vimdoc.inline_codes
---
--- When `false`, inline codes aren't rendered.
---@field enable? boolean
---
---@field corner_left? string
---@field padding_left? string
---
---@field icon? string
---
---@field padding_right? string
---@field corner_right? string
---
---@field hl? string
---
---@field corner_left_hl? string
---@field padding_left_hl? string
---
---@field icon_hl? string
---
---@field padding_right_hl? string
---@field corner_right_hl? string
inline_codes = {
 enable = true,
 hl = "Palette5",
 padding_left = " ",
 padding_right = " ",
}
Expand to see type definition of the item.
---@class vimdoc.__inline_code
---
---@field class "vimdoc_inline_code",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.inline_code = {
 class = "vimdoc_inline_code",
 range = {
 col_end = 4,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "`hi`" }
};

keycodes

  • Type: vimdoc.keycodes

Configuration for <keycodes>.

--- Configuration for `<keycodes>`
---@class vimdoc.keycodes
---
--- When `false`, keycodes aren't rendered.
---@field enable? boolean
---
--- Default configuration for keycodes.
---@field default vimdoc.generic
---
--- Configuration for `<string>`.
---@field [string] vimdoc.generic
keycodes = {
 enable = true,
 default = {
 hl = "Keycode",
 padding_left = " ",
 padding_right = " ",
 }
}
Expand to see type definition of the item.
---@class vimdoc.__keycode
---
---@field class "vimdoc_keycode",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.keycode = {
 class = "vimdoc_keycode",
 label = "C-S",
 range = {
 col_end = 5,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "<C-S>" }
};

modelines

  • Type: vimdoc.modeline

Configuration for Vim modeline.

--- Configuration for Vim modeline.
---@class vimdoc.modelines
---
--- When `false`, modeline won't be rendered.
---@field enable? boolean
---
--- Character to use as the borders.
---@field border string
--- Highlight group for the `border`.
---@field border_hl? string
---
--- Configuration for various **data-types**.
---@field data_types { [string]: { option_hl: string?, value_hl: string? } }
--- Configuration for various options.
---@field [string] { option_hl: string?, value_hl: string? }
modelines = {
 enable = true,
 border = "",
 border_hl = "@text.todo.unchecked",
 data_types = {
 ["nil"] = { value_hl = "@constant.builtin" },
 ["string"] = { value_hl = "String" },
 ["number"] = { value_hl = "Number" },
 ["boolean"] = { value_hl = "Boolean" }
 },
 default = {
 option_hl = "@property",
 value_hl = "Comment"
 }
}
Expand to see type definition of the item.
---@class vimdoc.__modeline
---
---@field class "vimdoc_modeline"
---@field options { option: string, value: any }[]
---
---@field text string[],
---@field range node.range
M.modeline = {
 class = "vimdoc_modeline",
 options = {
 {
 option = "textwidth",
 value = 78
 }, {
 option = "iskeyword",
 value = '!-~,^*,^\\|,^\\"'
 }, {
 option = "tabstop",
 value = 8
 }, {
 option = "expandtab",
 value = false
 }, {
 option = "filetype",
 value = "help"
 }, {
 option = "rightleft",
 value = false
 }
 },
 range = {
 col_end = 0,
 col_start = 1,
 row_end = 11,
 row_start = 10
 },
 text = { 'vim:tw=78:isk=!-~,^*,^\\|,^\\":ts=8:noet:ft=help:norl:' }
};

notes

  • Type: vimdoc.notes

Configuration for various types of notes.

--- Configuration for notes.
---@class vimdoc.notes
---
--- When `false`, notes won't be rendered.
---@field enable? boolean
---
--- Default configuration for notes.
---@field default vimdoc.generic
--- Configuration for `string` note.
---@field [string] vimdoc.generic
notes = {
 enable = true,
 default = {
 hl = "Palette5Inv",
 padding_left = " ",
 padding_right = " ",
 },
 ["[dD]eprecated"] = {
 hl = "Palette1Inv",
 },
 ["[wW]arning"] = {
 hl = "Palette3Inv",
 },
}
Expand to see type definition of the item.
---@class vimdoc.__note
---
---@field class "vimdoc_note",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.note = {
 class = "vimdoc_note",
 label = "Note",
 range = {
 col_end = 5,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "Note:" }
};

optionlinks

  • Type: vimdoc.optionlinks

Configuration for option links.

--- Configuration for optionlinks.
---@class vimdoc.optionlinks
---
--- When `false`, optionlinks won't be rendered.
---@field enable? boolean
---
--- Default configuration for optionlinks.
---@field default vimdoc.generic
--- Configuration for `'string'` optionlink.
---@field [string] vimdoc.generic
optionlinks = {
 enable = true,
 default = {
 hl = "Optionlink",
 padding_left = " ",
 padding_right = " ",
 }
}
Expand to see type definition of the item.
---@class vimdoc.__optionlink
---
---@field class "vimdoc_optionlink",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.optionlink = {
 class = "vimdoc_optionlink",
 label = "expandtab",
 range = {
 col_end = 11,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "'expandtab'" }
};

tags

  • Type: vimdoc.tags

Configuration for tags.

--- Configuration for tags.
---@class vimdoc.tags
---
--- When `false`, tags won't be rendered.
---@field enable? boolean
---
--- Default configuration for tags.
---@field default vimdoc.generic
--- Configuration for `*string*` tag.
---@field [string] vimdoc.generic
tags = {
 enable = true,
 default = {
 hl = "Tag",
 padding_left = " ",
 padding_right = " ",
 },
 ["%.txt$"] = {
 hl = "Palette3",
 }
}
Expand to see type definition of the item.
---@class vimdoc.__tag
---
---@field class "vimdoc_tag",
---@field tag string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.tag = {
 class = "vimdoc_tag",
 range = {
 col_end = 5,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 tag = "tag",
 text = { "*tag*" }
};

taglinks

  • Type: vimdoc.taglinks

Configuration for taglinks.

--- Configuration for taglinks.
---@class vimdoc.taglinks
---
--- When `false`, taglinks won't be rendered.
---@field enable? boolean
---
--- Default configuration for taglinks.
---@field default vimdoc.generic
--- Configuration for `|string|` taglink.
---@field [string] vimdoc.generic
taglinks = {
 enable = true,
 default = {
 hl = "Taglink",
 padding_left = " ",
 padding_right = " ",
 }
}
Expand to see type definition of the item.
---@class vimdoc.__taglink
---
---@field class "vimdoc_taglink",
---@field label string
---@field after? string,
---
---@field text string[],
---@field range node.range
M.taglink = {
 class = "vimdoc_taglink",
 label = "taglink",
 range = {
 col_end = 9,
 col_start = 0,
 row_end = 9,
 row_start = 9
 },
 text = { "|taglink|" }
};

urls

  • Type: vimdoc.urls

Configuration for URLs.

--- Configuration for URLs.
---@class vimdoc.urls
---
---@field enable? boolean
---
---@field default url.opts
---@field [string] url.opts
urls = {
 enable = true,
 default = {
 icon = "󰌷 ",
 hl = "@string.special.url.vimdoc",
 },
 ["github%.com/[%a%d%-%_%.]+%/?$"] = {
 --- github.com/<user>
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return string.match(item.label, "github%.com/([%a%d%-%_%.]+)%/?$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/?$"] = {
 --- github.com/<user>/<repo>
 icon = "󰳐 ",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/?$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/tree/[%a%d%-%_%.]+%/?$"] = {
 --- github.com/<user>/<repo>/tree/<branch>
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 local repo, branch = string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)/tree/([%a%d%-%_%.]+)%/?$");
 return repo .. " at " .. branch;
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/commits/[%a%d%-%_%.]+%/?$"] = {
 --- github.com/<user>/<repo>/commits/<branch>
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+/commits/[%a%d%-%_%.]+)%/?$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/releases$"] = {
 --- github.com/<user>/<repo>/releases
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return "Releases • " .. string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/releases$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/tags$"] = {
 --- github.com/<user>/<repo>/tags
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return "Tags • " .. string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/tags$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/issues$"] = {
 --- github.com/<user>/<repo>/issues
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return "Issues • " .. string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/issues$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/pulls$"] = {
 --- github.com/<user>/<repo>/pulls
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return "Pull requests • " .. string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/pulls$");
 end
 },
 ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/wiki$"] = {
 --- github.com/<user>/<repo>/wiki
 icon = "",
 hl = "HelpviewPalette0Fg",
 text = function (_, item)
 return "Wiki • " .. string.match(item.label, "github%.com/([%a%d%-%_%.]+/[%a%d%-%_%.]+)%/wiki$");
 end
 },
 ["developer%.mozilla%.org"] = {
 priority = -9999,
 icon = "󰖟 ",
 hl = "HelpviewPalette5Fg"
 },
 ["w3schools%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette4Fg"
 },
 ["stackoverflow%.com"] = {
 priority = -9999,
 icon = "󰓌 ",
 hl = "HelpviewPalette2Fg"
 },
 ["reddit%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette2Fg"
 },
 ["github%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette6Fg"
 },
 ["gitlab%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette2Fg"
 },
 ["dev%.to"] = {
 priority = -9999,
 icon = "󱁴 ",
 hl = "HelpviewPalette0Fg"
 },
 ["codepen%.io"] = {
 priority = 9999,
 icon = "",
 hl = "HelpviewPalette6Fg"
 },
 ["replit%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette2Fg"
 },
 ["jsfiddle%.net"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette5Fg"
 },
 ["npmjs%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette0Fg"
 },
 ["pypi%.org"] = {
 priority = -9999,
 icon = "󰆦 ",
 hl = "HelpviewPalette0Fg"
 },
 ["mvnrepository%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette1Fg"
 },
 ["medium%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette6Fg"
 },
 ["linkedin%.com"] = {
 priority = -9999,
 icon = "󰌻 ",
 hl = "HelpviewPalette5Fg"
 },
 ["news%.ycombinator%.com"] = {
 priority = -9999,
 icon = "",
 hl = "HelpviewPalette2Fg"
 },
 ["neovim%.io/doc/user/.*#%_?.*$"] = {
 icon = "",
 hl = "HelpviewPalette4Fg",
 text = function (_, item)
 local file, tag = string.match(item.label, "neovim%.io/doc/user/(.*)#%_?(.*)$");
 --- The actual website seems to show
 --- _ in the site name so, we won't
 --- be replacing `_`s with ` `s.
 file = string.gsub(file, "%.html$", "");
 return string.format("%s(%s) - Neovim docs", utils.normalize_str(file), tag);
 end
 },
 ["neovim%.io/doc/user/.*$"] = {
 icon = "",
 hl = "HelpviewPalette4Fg",
 text = function (_, item)
 local file = string.match(item.label, "neovim%.io/doc/user/(.*)$");
 file = string.gsub(file, "%.html$", "");
 return string.format("%s - Neovim docs", utils.normalize_str(file));
 end
 },
 ["github%.com/vim/vim"] = {
 priority = -100,
 icon = "",
 hl = "HelpviewPalette4Fg",
 },
 ["github%.com/neovim/neovim"] = {
 priority = -100,
 icon = "",
 hl = "HelpviewPalette4Fg",
 },
 ["vim%.org"] = {
 icon = "",
 hl = "HelpviewPalette4Fg",
 },
}
---@class url.opts
---
--- Priority of a pattern.
---@field priority? integer
---
--- Text that will replace the link.
---@field text? fun(buffer: integer, item: vimdoc.__urls): string
---
---@field corner_left? string
---@field padding_left? string
---
---@field icon? string
---
---@field padding_right? string
---@field corner_right? string
---
--- Primary highlight group.
--- Used by other `*_hl` option(s) when
--- a value isn't given.
---@field hl? string
---
---@field corner_left_hl? string
---@field padding_left_hl? string
---
---@field icon_hl? string
---
---@field padding_right_hl? string
---@field corner_right_hl? string
["neovim%.io/doc/user/.*#%_?.*$"] = {
 icon = "",
 hl = "HelpviewPalette4Fg",
 text = function (_, item)
 local file, tag = string.match(item.label, "neovim%.io/doc/user/(.*)#%_?(.*)$");
 --- The actual website seems to show
 --- _ in the site name so, we won't
 --- be replacing `_`s with ` `s.
 file = string.gsub(file, "%.html$", "");
 return string.format("%s(%s) - Neovim docs", utils.normalize_str(file), tag);
 end
}
Expand to see type definition of the item.
---@class vimdoc.__url
---
---@field class "vimdoc_url",
---@field label string
---
---@field text string[],
---@field range node.range
M.url = {
 class = "vimdoc_url",
 label = "https://neovim.io/doc/user/api.html#api-definitions",
 range = {
 col_end = 51,
 col_start = 0,
 row_end = 1,
 row_start = 1
 },
 text = { "https://neovim.io/doc/user/api.html#api-definitions" }
};

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /