# -*- mode: org -*-
* v4.6.0    UNRELEASED

The primary focus of this release are blob-visiting buffers.  For
now the hope is that most users will find working with such buffers
slightly more pleasant, without necessarily becoming aware that
anything changed.  The goal was to pay off technical debt and to
prepare for future changes.

- Visiting blobs now always involves ~magit-find-file-noselect~, even
  when an existing buffer may be involved.  The behavior of this
  function is getting closer to that of ~find-file-noselect~.

- Implemented support for visiting blobs for the benefit of features
  such as syntax-highlighting, as opposed to the user visiting it
  explicitly.  Such "volatile" blob buffers are hidden and are cached
  for a while, in case they are needed again.  If the user visits a
  hidden cached blob, the buffer is renamed to reveal it and it is no
  longer subject to garbage collection.

- Blobs can now alternatively be visited with nothing but a blob
  object id (instead of a revision and a path).

- Blob-visiting buffers can now be reverted with ~g~, which is useful
  when the buffer is visited via, e.g., a branch, as opposed to a
  revision or blob object id.  The buffer is not needlessly refreshed,
  if the blob oid does not change.  dd48491659, f55bfaf792, cf84935a74

- Syntax highlighting can now be enabled for diffs.  This is disabled
  by default, because the work is still being performed synchronously,
  which leads to noticeable delays for large diffs and can be sluggish
  even for smaller diffs.  #2942, c7b0342dc7

  A future release is going to add support for asynchronous diff
  syntax highlighting.  (The blob buffer cache added in this release
  does help, but is not enough.)

  Configure ~magit-diff-fontify-hunk~ to try out this feature now, but
  please just disable it again, if it turns out to still be too slow
  for your taste.  If you enable this, you should also customize the
  new option ~magit-diff-specify-hunk-foreground~ and possibly the new
  option ~magit-diff-use-indicator-faces~ as well.

- Added new hook ~magit-find-blob-hook~, which replaces the old hooks
  ~magit-find-file-hook~ and ~magit-find-index-hook~.  The new hook is
  run when first visiting a blob as the old hooks used to do, but
  also when reverting a blob buffer.  fc29202838, 999047889c

- ~magit-find-file-noselect~ now pivots to the worktree file when
  asked to visit the index blob, but that has multiple stages,
  due to an unresolved conflict.  This likely will be revisited.
  a2165a0ba7

- Added support for compiling a list of definitions that are modified
  in a diff, and for inserting such lists when authoring commit
  messages.  The new commands ~git-commit-insert-changelog-gnu~ and
  ~git-commit-insert-changelog-plain~ insert such list and can be
  invoked from the same menu (on ~C-c C-i~), which is used to insert
  commit trailers. #2931, 863f1aa6fe, 46b7f76df3

- Improved support for jumping to the same location in another blob,
  from a buffer visiting a blob or file.  87090491d4

- Reworked ~magit-buffer-*~ variables.  Many were renamed (but the old
  names are still available as obsolete aliases).  Others that were
  previously shared by multiple modes were replaced with mode-specific
  variants.  298218fa85~..7bfc458065

- When authoring commit messages, ~complete-symbol~ now completes
  against modified definitions and symbols appearing in modified
  lines.  2366db4b3b

- Thanks to the improvements to ~magit-find-file-noselect~ and the blob
  buffer cache, Ediff support could be simplified considerably.

- If it is part of an Ediff session, quitting a blob-visiting buffer
  would corrupt that session, so teach ~magit-bury-or-kill-buffer~ and
  ~magit-bury-buffer~ to instead offer to completely quit the session.
  29c6241993

- Commands that currently cannot be used are now explicitly disabled
  in the ediff menu.  3125b51ede

- Provided ~magit-delete-by-moving-to-trash~ is ~nil~,
  ~magit-worktree-delete~ is faster now.  #5504
...
...
