hedyhli / outline.nvim

Code outline sidebar powered by LSP. Significantly enhanced & refactored fork of symbols-outline.nvim.
https://sr.ht/~hedy/outline.nvim
MIT License
483 stars 14 forks source link

Improvements from symbols-outline.nvim and ⚠️ breaking changes #12

Closed hedyhli closed 8 months ago

hedyhli commented 8 months ago

This comment documents changes from upstream before github detaches the fork into a proper repo.


Fixes

🛑 Breaking changes

The fork has been renamed to outline.nvim for the following reasons:

  1. While symbols-outline is a great name, using SymbolsOutline* everywhere as a prefix for commands and highlight groups is quite long to type.
  2. I did not find existing plugins that use the outline import path.
  3. The only plugin I could find named outline.nvim does not use this import path.
  4. This is a fork starting anew, it makes sense to undergo a rename.

Regardless of this rename, I am eternally grateful to @simrat39 for their work in the original symbols-outline.nvim. This plugin would not exist without it.

What this means for you:

:s/FocusedSymbol/OutlineCurrent/g
:s/SymbolsOutlineConnector/OutlineGuides/g
:%s/SymbolsOutline/Outline/g
:%s/symbols-outline/outline/g

Here are other breaking changes:

If your existing config uses the mentioned features, you can convert the setup opts using this script.

Features

Below is a list of features I've included in this fork which, at the time of writing, has not been included upstream (in the original repo). I try my best to keep this list up to date.

Features/Changes:

Screen recordings/shots of some of the features is shown at the bottom of the readme.

PRs

Key:

✅ = Either merged superseded
📮 = Planned for merge
Show completed PRs - ✅ center view on goto symbol (#239 by skomposzczet) **Superseded by adding config option** - ✅ Open handler checks if view is not already open (#235 by eyalz800) - ✅ auto_jump config param (#229 by stickperson) **Renamed to `auto_goto` for consistency** - ✅ Update nerd fonts to 3.0 (#225 by anstadnik) - ✅ fix(folding): optimize fold/unfold all (#223 by wjdwndud0114) - ✅ Support markdown setext-style headers (#222 by msr1k) - ✅ fix(icons): replace obsolete icons (#219 by loichyan) **Superseded by #225** - ✅ Support ccls symbols (#218 by rqdmap) - ✅ fix: replace newlines with spaces in writer (#204 by tbung) - ✅ Make close_outline idempotent (#200 by showermat) **Superseded by #163** - ✅ Fix some options (#180 by cljoly) - ✅ fix: Invalid buffer id error (#177 by snowair) - ✅ fix(code_actions): use the builtin code_action (#168 by zjp-CN) - ✅ fix: plugin crashes when SymbolOutlineClose used (#163 by beauwilliams) - ✅ feat: Add window_bg_highlight to config (#137 by Zane-) **Improved implementation** - ✅ Added preview width and relative size (#130 by Freyskeyd) **Improved upon and refactored with new config structure** - ✅ Improve preview, hover windows configurability and looks (#128 by toppair) **Improved upon and refactored with new config structure** - ✅ Do not close outline when focus_location occurs (#119 by M1Sports20) - ✅ feat: instant_preview (#116 by axieax) **Superseded with an improved implementation** - ✅ check if code_win is nill (#110 by i3Cheese) **Superseded before this fork was created** (perhaps the PR was forgotten to be closed)
hedyhli commented 8 months ago

It looks there are a lot more people migrating from symbols-outline.nvim to outline.nvim than elsewhere, I've included a script that can convert the setup opts into the new structure.

hedyhli commented 8 months ago

Since github support has now detached my fork from symbols-outline.nvim, new changes from now on will be in CHANGELOG.md.