Skip to content

Commit

Permalink
chore(vimdoc): Auto update
Browse files Browse the repository at this point in the history
  • Loading branch information
hedyhli authored and github-actions[bot] committed Jul 5, 2024
1 parent 7d03ade commit b47d822
Showing 1 changed file with 16 additions and 14 deletions.
30 changes: 16 additions & 14 deletions doc/outline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -448,12 +448,13 @@ External providers: - Asciidoc
<https://github.com/msr1k/outline-asciidoc-provider.nvim> (no external
requirements)

How to implement an external provider ~

EXTERNAL PROVIDERS ~

External providers can be appended to the `providers.priority` list. Each item
in the list is appended to `"outline.providers.<item>"` to form an import path,
for use as a provider.
External providers are separate plugins that users can install in addition to
`outline.nvim`. Their names can be appended to the `providers.priority` list in
the outline.nvim config. Each item in the `providers.priority` list is used to
form an import path `"outline.providers.<item>"` and then `require()`’ed for
use as a provider.

External providers from plugins should define the provider module at
`lua/outline/providers/<name>.lua` with these functions:
Expand All @@ -472,14 +473,15 @@ External providers from plugins should define the provider module at
- param `callback` is a function that receives a list of symbols and the
`opts` table.
- param `opts` can be passed to `callback` without processing
Each symbol table in the list of symbols should have these fields:
- name: string
- kind: integer
The function should return a list of "symbol tables".
Each symbol table should have these fields:
- name: string – displayed in the outline
- kind: integer – determines the icon to use
- selectionRange: table with fields `start` and `end`, each have fields
`line` and `character`, each integers
- range: table with fields `start` and `end`, each have fields `line` and
`character`, each integers
- children: list of table of symbols
`line` and `character`, each integers:
`{ start = { line = ?, character = ? }, ['end'] = { line = ?, character = ? } }`
- range: same as selectionRange
- children: list of symbol tables
- detail: (optional) string, shown for `outline_items.show_symbol_details`

The built-in markdown <./lua/outline/providers/markdown.lua> provider is a good
Expand All @@ -488,8 +490,8 @@ and uses regex; the built-in norg <./lua/outline/providers/norg.lua> provider
is an example which uses treesitter.

All providers should support at least nvim 0.7. You can make use of
`_G._outline_nvim_has` with fields `[8]` and `[9]` equivalent to
`vim.fn.has('nvim-0.8') == 1` and `vim.fn.has('nvim-0.9') == 1` respectively.
`_G._outline_nvim_has` with fields `[8]`, `[9]`, and `[10]`. For instance,
`_G._outline_nvim_has[8]` is equivalent to: `vim.fn.has('nvim-0.8') == 1`.

If a higher nvim version is required, it is recommended to check for this
requirement in the `supports_buffer` function.
Expand Down

0 comments on commit b47d822

Please sign in to comment.