{"id":13412829,"url":"https://github.com/dstein64/nvim-scrollview","last_synced_at":"2025-05-15T13:09:02.933Z","repository":{"id":45078316,"uuid":"320129441","full_name":"dstein64/nvim-scrollview","owner":"dstein64","description":"A Neovim plugin that displays interactive vertical scrollbars and signs.","archived":false,"fork":false,"pushed_at":"2025-04-26T18:52:37.000Z","size":1845,"stargazers_count":618,"open_issues_count":8,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-06T15:18:59.996Z","etag":null,"topics":["neovim","scrollbar","scrollview"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dstein64.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-10T01:51:20.000Z","updated_at":"2025-04-27T16:00:45.000Z","dependencies_parsed_at":"2023-12-01T03:31:35.722Z","dependency_job_id":"33f5b77a-85b2-40e9-9770-bd0904a4539c","html_url":"https://github.com/dstein64/nvim-scrollview","commit_stats":{"total_commits":901,"total_committers":8,"mean_commits":112.625,"dds":"0.013318534961154316","last_synced_commit":"f7f611330a8f7cd00dc81538fec369611be678ed"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstein64%2Fnvim-scrollview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstein64%2Fnvim-scrollview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstein64%2Fnvim-scrollview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dstein64%2Fnvim-scrollview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dstein64","download_url":"https://codeload.github.com/dstein64/nvim-scrollview/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346623,"owners_count":22055808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","scrollbar","scrollview"],"created_at":"2024-07-30T20:01:29.766Z","updated_at":"2025-05-15T13:09:01.466Z","avatar_url":"https://github.com/dstein64.png","language":"Lua","readme":"[![build][badge_thumbnail]][badge_link]\n\n# nvim-scrollview\n\n`nvim-scrollview` is a Neovim plugin that displays interactive vertical\nscrollbars and signs. The plugin is customizable (see `:help\nscrollview-configuration`).\n\n\u003cimg src=\"https://github.com/dstein64/media/blob/main/nvim-scrollview/screenshot.svg?raw=true\" width=\"600\" /\u003e\n\n\u003csub\u003e(a scrollbar and signs can be seen near the right edge of the preceding image)\u003c/sub\u003e\n\n## Features\n\n* Handling for folds\n* Signs (e.g., `diagnostics` and `search` enabled by default, and `marks` too\n  for `nvim\u003e=0.10`)\n* Scrollbars can be dragged with the mouse, and signs can be clicked for\n  navigation or right-clicked for information\n\n## Requirements\n\n* `nvim\u003e=0.6`\n* Mouse functionality requires mouse support (see `:help 'mouse'`)\n* Signs require `nvim\u003e=0.9`\n\n## Installation\n\nA package manager can be used to install `nvim-scrollview`.\n\u003cdetails\u003e\u003csummary\u003eExamples\u003c/summary\u003e\u003cbr\u003e\n\n* [Vim8 packages][vim8pack]:\n  - `git clone https://github.com/dstein64/nvim-scrollview ~/.local/share/nvim/site/pack/plugins/start/nvim-scrollview`\n* [Vundle][vundle]:\n  - Add `Plugin 'dstein64/nvim-scrollview'` to `~/.config/nvim/init.vim`\n  - `:PluginInstall` or `$ nvim +PluginInstall +qall`\n* [Pathogen][pathogen]:\n  - `git clone --depth=1 https://github.com/dstein64/nvim-scrollview ~/.local/share/nvim/site/bundle/nvim-scrollview`\n* [vim-plug][vimplug]:\n  - Add `Plug 'dstein64/nvim-scrollview', { 'branch': 'main' }` to `~/.config/nvim/init.vim`\n  - `:PlugInstall` or `$ nvim +PlugInstall +qall`\n* [dein.vim][dein]:\n  - Add `call dein#add('dstein64/nvim-scrollview')` to `~/.config/nvim/init.vim`\n  - `:call dein#install()`\n* [NeoBundle][neobundle]:\n  - Add `NeoBundle 'dstein64/nvim-scrollview'` to `~/.config/nvim/init.vim`\n  - Re-open Neovim or execute `:source ~/.config/nvim/init.vim`\n* [packer.nvim][packer]:\n  - Add `use 'dstein64/nvim-scrollview'` to the packer startup function\n  - `:PackerInstall`\n\n\u003c/details\u003e\n\n## Usage\n\n* `nvim-scrollview` works automatically, displaying interactive scrollbars.\n* `:ScrollViewDisable` disables the plugin. When arguments are given,\n  the specified sign groups are disabled.\n* `:ScrollViewEnable` enables the plugin. This is only necessary if\n  nvim-scrollview has previously been disabled. When arguments are given,\n  the specified sign groups are enabled.\n* `:ScrollViewToggle` toggles the plugin. When arguments are given, the\n  specified sign groups are toggled.\n* `:ScrollViewRefresh` refreshes the scrollbars and signs. This is relevant\n  when the scrollbars or signs are out-of-sync, which can occur as a result of\n  some window arrangement actions.\n* `:ScrollViewNext`, `:ScrollViewPrev`, `:ScrollViewFirst`, and\n  `:ScrollViewLast` move the cursor to lines with signs. Arguments can specify\n  which sign groups are considered.\n* `:ScrollViewLegend` shows a legend for the plugin. This can be helpful if\n  you're unsure what a sign represents. With the `!` variant of the command,\n  `:ScrollViewLegend!`, the legend will include the scrollbar and all\n  registered signs (even those from disabled groups), regardless of their\n  display status.\n* The scrollbars are draggable with a mouse. Signs can be clicked for\n  navigation or right-clicked for information. If `mousemoveevent` is set,\n  scrollbars and signs are highlighted when the mouse pointer hovers.\n\n## Signs\n\nThere is built-in support for various types of signs (referred to as \"sign\ngroups\"), listed below. The functionality is similar to the sign column, but\nwith the same positioning logic as the scrollbar.\n\n* `changelist`: change list items (previous, current, and next)\n* `conflicts`: git merge conflicts\n* `cursor`: cursor position\n* `diagnostics`: errors, warnings, info, and hints\n* `folds`: closed folds\n* `indent`: unexpected indentation characters (e.g., tabs when `expandtab` is\n  set)\n* `keywords`: FIX, FIXME, HACK, TODO, WARN, WARNING, and XXX (see `:help\n  scrollview-signs-keywords` for customization info)\n* `latestchange`: latest change\n* `loclist`: items on the location list\n* `marks`\n* `quickfix`: items on the quickfix list\n* `search`\n* `spell`: spell check items when the `spell` option is enabled\n* `textwidth`: line lengths exceeding the value of the `textwidth` option, when\n  non-zero\n* `trail`: trailing whitespace\n\n`search` and `diagnostics` groups are enabled by default (`marks` too for\n`nvim\u003e=0.10`). To modify which sign groups are enabled, set\n`scrollview_signs_on_startup` accordingly in your Neovim configuation (see\n`:help scrollview_signs_on_startup`), or use `:ScrollViewEnable {group1}\n{group2} ...` to enable sign groups in the current Neovim session.\n\nClicking on a sign will navigate to its associated line. If a sign is linked to\nmultiple lines, successive clicks will cycle through these lines. Right-clicking\na sign reveals additional information, including its sign group and the\ncorresponding lines, which can be selected for navigation. Identifying the sign\ngroup can be helpful if you are unsure what a sign represents.\n\nThe plugin was written so that it's possible to extend the sign functionality\nin a Neovim configuration file or with a plugin. See the documentation for\ndetails.\n\nThe [contrib](lua/scrollview/contrib) directory contains sign group\nimplementations that are not built-in (e.g., `coc`, `gitsigns`), but may be\nuseful to some users. The code there does not receive the same level of support\nas the main source code, and may be less stable. Use at your own risk. For\ninstallation instructions and other documentation, see the source code files.\n\n## Configuration\n\nThere are various settings that can be configured. Please see the documentation\nfor details. The code below only shows a few of the possible settings.\n\n#### Vimscript Example\n\n```vim\nlet g:scrollview_excluded_filetypes = ['nerdtree']\nlet g:scrollview_current_only = v:true\n\" Position the scrollbar at the 80th character of the buffer\nlet g:scrollview_base = 'buffer'\nlet g:scrollview_column = 80\n\" Enable all sign groups (defaults to ['diagnostics', 'search']).\n\" Set to the empty list to disable all sign groups.\nlet g:scrollview_signs_on_startup = ['all']\n\" Show diagnostic signs only for errors.\nlet g:scrollview_diagnostics_severities =\n      \\ [luaeval('vim.diagnostic.severity.ERROR')]\n```\n\n#### Lua Example\n\nA Lua `setup()` function is provided for convenience, to set globally scoped\noptions (the 'scrollview_' prefix is omitted).\n\n```lua\nrequire('scrollview').setup({\n  excluded_filetypes = {'nerdtree'},\n  current_only = true,\n  base = 'buffer',\n  column = 80,\n  signs_on_startup = {'all'},\n  diagnostics_severities = {vim.diagnostic.severity.ERROR}\n})\n```\n\nAlternatively, configuration variables can be set without calling `setup()`.\n\n```lua\nvim.g.scrollview_excluded_filetypes = {'nerdtree'},\nvim.g.scrollview_current_only = true,\nvim.g.scrollview_base = 'buffer',\nvim.g.scrollview_column = 80,\nvim.g.scrollview_signs_on_startup = {'all'},\nvim.g.scrollview_diagnostics_severities = {vim.diagnostic.severity.ERROR}\n```\n## Documentation\n\nDocumentation can be accessed with:\n\n```nvim\n:help nvim-scrollview\n```\n\nThe underlying markup is in [scrollview.txt](doc/scrollview.txt).\n\n#### Issues\n\nDocumentation for issues, along with some workarounds, can be accessed with:\n\n```nvim\n:help scrollview-issues\n```\n\nSome of the known issues are regarding scrollbar synchronization, error messages, session\nrestoration, and scrollbar floating windows being included in the window count returned by\n`winnr('$')`.\n\n## License\n\nThe source code has an [MIT License](https://en.wikipedia.org/wiki/MIT_License).\n\nSee [LICENSE](LICENSE).\n\n[badge_link]: https://github.com/dstein64/nvim-scrollview/actions/workflows/build.yml\n[badge_thumbnail]: https://github.com/dstein64/nvim-scrollview/actions/workflows/build.yml/badge.svg\n[dein]: https://github.com/Shougo/dein.vim\n[gitsigns.nvim]: https://github.com/lewis6991/gitsigns.nvim\n[gitsigns_example]: https://gist.github.com/dstein64/b5d9431ebeacae1fb963efc3f2c94cf4\n[neobundle]: https://github.com/Shougo/neobundle.vim\n[packer]: https://github.com/wbthomason/packer.nvim\n[pathogen]: https://github.com/tpope/vim-pathogen\n[vim8pack]: http://vimhelp.appspot.com/repeat.txt.html#packages\n[vimplug]: https://github.com/junegunn/vim-plug\n[vundle]: https://github.com/gmarik/vundle\n","funding_links":[],"categories":["Scrolling","Lua"],"sub_categories":["Scrollbar"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstein64%2Fnvim-scrollview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdstein64%2Fnvim-scrollview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdstein64%2Fnvim-scrollview/lists"}