The .tree-view-wrapper element is renamed to `.tree-view-resizer` to
clarify its purpose, and the actual draggable div is renamed to
`.tree-view-resize-handle`. Then a new div is introduced beneath the
resized wrapper called `tree-view-scroller`. This element has 100%
width/height and overflow scroll, allowing the actual tree view list
to *not* scroll. It uses the cutting edge `min-content` property as
its min width, which ensures it's always wide enough to contain its
content even when the scroller wrapper is narrower. This allows the
absolutely-positioned highlights to always extend *at least* across
the full width of the list elements.
Previously namespaces were used to off() when a buffer was
unsubscribed from which affected other views in the same
package also listening to the current buffer.
Now event namespaces are no longer used and instead off() is
called with the callbacks originally registered for the given
event name.
Previously only the next pane was checked for an existing
preview which would fail to locate any existing previews
that were moved to different panes or were no longer in the
next pane for the edit session.
The tabs should be able to be draggale out of the application at any
time, and if there is only one tab it should not be able to be dropped
in the same window.
Previously only the next pane was checked to see if a preview
exists to update. This would fail to update the preview if
it was moved moved from its original pane to a different pane.
Now the view tracks the buffer and updates on 'saved' events and
shows the preview if it is not in the active pane.
viewForActiveItem() can create a view which we don't want to do
when responding to events in the status bar. Instead we just want
to access the already existing view for the active item.
The status bar view now tracks the active pane item
and hides and shows elements that apply for the active
item such as path, cursor position, grammar, etc.