diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..82ef01d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,79 @@ +# Changelog + +## Main branch + +### Breaking changes + +- Highlight for guides (previously `OutlineConnector` that covers both guides + and fold markers) now split into `OutlineGuides` (covering from left edge until + start of symbol icon) and `OutlineFoldMarker`. +- Config options `auto_goto -> auto_jump`, `keymaps.down/up_and_goto -> + keymaps.down/up_and_jump`. The old names **still work as expected** but may be + removed in feature releases (after v1.0.0). + +### Features + +- Config option for split command used in creating outline +- Completely refactored functions that build the outline +- Added highlight group for fold marker +- A custom icon fetcher function can be used, which receives a kind as string and should + return an icon as string. An empty string means no icon for this kind +- Lspkind is now supported as an icon source +- Outline open/toggle commands now support command modifiers to override the + config options `position` and `split_command`. Eg: `:leftabove + Outline`/`:belowright OutlineOpen!` +- Highlight group and duration of the 'flash' highlight on goto/jump operations can now be customized + ([#27](https://github.com/hedyhli/outline.nvim/issues/27)) +- A better config system for symbol filtering: deprecating `symbols.blacklist` + config. Note that the old option **still works as expected** but may be + deprecated in feature releases. This new `symbols.filter` option supports both inclusive filtering + and also exclusive filtering, per-filetype filtering is also supported. + ([#23](https://github.com/hedyhli/outline.nvim/issues/23)) +- Optionally put cursor vertically centered on the screen after a goto/jump + operation. Configurable via `outline_window.center_on_jump` +- By default, automatic following of cursor (and highlight hover) when outline + is not in focus will now trigger on each `CursorMoved` event, rather than + `CursorHold`. This is also configurable now using + `outline_items.auto_update_events` with key `follow`. The key `items` controls + the events that should trigger a re-request of symbols from the provider. +- Config option for cursorline now supports 2 other string values, + `focus_in_outline` and `focus_in_code`. These make the cursorline only show up + depending on cursor focus. The first option, `focus_in_outline` makes it so + cursorline is enabled only when focus is in outline. This lessens the visual + changes due to auto follow_cursor. +- On fold all or unfold all operations, the cursor will now stay on the same + node, rather than the same line in the outline. +- Optionally not automatically update cursor position in outline to reflect + cursor location in code. The auto-update is triggered by events from + `outline_items.auto_update_events.follow`, and disabling of follow-cursor can + be done through `outline_items.auto_follow_cursor`. Regardless, manual + follow-cursor can still be done using `:FollowCursor[!]` or lua API + `follow_cursor({ focus_outline = true/false })`. + +### Fixes + +- Don't auto-update cursor when focus is in outline ([#7](https://github.com/hedyhli/outline.nvim/issues/7)) +- Symbol hover is not opened on preview open by default now +- Incorrect guide highlights +- Follow cursor can now put the cursor on the parent node if the child is folded and invisible in outline +- Follow cursor puts the cursor in the first column, and if there is lineno, puts it at the end of the lineno + +### Performance + +- Building of outline items (and details/lineno) parsed from symbol tree, + functions completely refactored +- Follow cursor algorithm significantly improved +- Highlight hovered item and initial opening of outline has been rewritten and + performance improved + +### Others + +- A [script](scripts/convert-symbols-outline-opts.lua) is added to convert + symbols-outline.nvim config to outline.nvim config. Note that all config values + are evaluated, so if the old config uses some external source and assigned it + to a config key, the value from the external source would be used directly + rather than the identifier. + +## Older changes + +Changes before fork detach can be found on [#12 on github](https://github.com/hedyhli/outline.nvim/issues/12)