A simple external provider for outline.nvim that shows your test blocks, e.g., describe(...), it(...), etc calls in the Outline.
🚀 Automatically enabled for the following languages:
- Typescript
- Javascript
- Lua
Modify your outline.nvim lazy spec to include the outline-test-blocks-provider.nvim dependency:
return {
"hedyhli/outline.nvim",
lazy = true,
dependencies = {
"bngarren/outline-test-blocks-provider.nvim",
},
cmd = { "Outline", "OutlineOpen" },
keys = {
{ "<leader>o", "<cmd>Outline<CR>", desc = "Toggle outline" },
},
opts = {
-- Add the "test_blocks" provider before "lsp"
providers = {
priority = { "test_blocks", "lsp", "coc", "markdown", "norg" },
-- Configure the test_blocks provider here:
test_blocks = {
enable = { describe = true, it = true, pending = false },
max_depth = 5,
},
},
},
}Note
It defaults to activating for any buffer in which it finds one of the enabled test blocks (e.g. describe, it, etc) within the first 500 lines. You can pass your own supports_buffer(bufnr) function to customize it to your liking.
---@class test_blocks.Config
---
---Which test blocks to enable
---Default: { describe = true, it = true }
---@field enable? table<string, boolean>
---
---Whether to activate test_blocks provider for this buffer
---Default: a buffer with the test blocks in `enable` found within it
---i.e., if `it` or `describe` are found, will use test_blocks
---@field supports_buffer? function(bufnr: integer): boolean
---
---Max number of nested nodes to show in the outline
---Default: 5
---@field max_depth? integer
---
---Attempts to resize the outline sidebar for this provider
---E.g. 40 will be 40%
---Default: uses the global outline.nvim config
---@field sidebar_width? integer
---@type test_blocks.Config
M.defaults = {
enable = { describe = true, it = true },
max_depth = 5,
}If you have feature suggestions or ideas, please feel free to open an issue on GitHub!
Thanks to @hedyhli for an awesome outline.nvim plugin!
