Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xiyaowong/coc-symbol-line
Symbols outline for coc.nvim
https://github.com/xiyaowong/coc-symbol-line
Last synced: 17 days ago
JSON representation
Symbols outline for coc.nvim
- Host: GitHub
- URL: https://github.com/xiyaowong/coc-symbol-line
- Owner: xiyaowong
- License: mit
- Created: 2022-02-23T08:41:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-10T03:55:13.000Z (3 months ago)
- Last Synced: 2024-10-12T22:52:55.500Z (about 1 month ago)
- Language: TypeScript
- Homepage:
- Size: 63.5 KB
- Stars: 24
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# coc-symbol-line
![demo](https://user-images.githubusercontent.com/47070852/155291646-ec1f5623-63ab-4ff5-a48e-cd9670e5c39e.gif)
This extension supports both Vim and Neovim.
## Install
`:CocInstall coc-symbol-line`
## Setup
Add section `%{%get(b:, "coc_symbol_line", "")%}` to tabline/statusline or neovim's winbar.
**NOTE**: `b:coc_symbol_line_plain` does't include clickable sections, maybe you need this if you are using vim.
lua snippet for neovim
```lua
function _G.symbol_line()
local curwin = vim.g.statusline_winid or 0
local curbuf = vim.api.nvim_win_get_buf(curwin)
local ok, line = pcall(vim.api.nvim_buf_get_var, curbuf, 'coc_symbol_line')
return ok and line or ''
endvim.o.tabline = '%!v:lua.symbol_line()'
vim.o.statusline = '%!v:lua.symbol_line()'
vim.o.winbar = '%!v:lua.symbol_line()'```
My config for neovim
```lua
function _G.symbol_line()
local bufnr = vim.api.nvim_win_get_buf(vim.g.statusline_winid or 0)
local ok, line = pcall(vim.api.nvim_buf_get_var, bufnr, 'coc_symbol_line')
return ok and '%#CocSymbolLine# ' .. line or ''
endif fn.exists '&winbar' then
AUTOCMD {
{
{ 'CursorHold', 'WinEnter', 'BufWinEnter' },
function()
if vim.b.coc_symbol_line and vim.bo.buftype == '' then
if vim.opt_local.winbar:get() == '' then
vim.opt_local.winbar = '%!v:lua.symbol_line()'
end
else
vim.opt_local.winbar = ''
end
end,
},
}
end
```## Usage
This plugin only provide buffer localed variable `coc_symbol_line`
Left click to jump to the position of this symbol.
Right click to select the range of this symbol.![usage](https://user-images.githubusercontent.com/47070852/174428903-ba7ba41b-e74c-4bc6-a96d-c0757cfaf515.gif)
## Options
- `symbol-line.default`
- `symbol-line.separator`
- `symbol-line.icons`
- `symbol-line.show{Kind}s`
- `symbol-line.onlyNearestKinds`
- `symbol-line.maxItems`
- `symbol-line.maxItemsIndicator`Please trigger completion in `coc-settings.json` to get details.
## Highlights
Recommend `set termguicolors`
- `CocSymbolLine`
- `CocSymbolLineSeparator`
- `CocSymbolLineEllipsis`You should setup highlights before this extension activated.
---
Most of code is copied from coc.nvim :)