Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.

Feature: Layers API #1223

Merged
merged 9 commits into from
Jan 4, 2018
Merged

Feature: Layers API #1223

merged 9 commits into from
Jan 4, 2018

Conversation

bryphe
Copy link
Member

@bryphe bryphe commented Jan 3, 2018

This implements the addLayer API on the Buffer object. This is the realization of part of the strategy called out in #362 - having custom UI implement on top of a buffer.

This opens the door for several features:

  • Embedded Browser - implemented as a 'layer' on top of special buffers.
  • Modernize Quickfix List #730 - modernize quickfix - we can improve the rendering via a layer
  • Start Screen - we can leverage this functionality to create a start/welcome screen that isn't bound by terminal limitations.
  • Lowering the Bar: Gamify & Improve Vimtutor #430 - we can create a layer that does custom rendering that would lend itself well towards gamification of vimtutor.

It can also be used to handle some of our existing functionality. I'd like to refactor out some pieces of our NeovimEditor and move them into layers. Some layers that would basically be plug-and-play are the ones that are already in the <NeovimActiveWindow> in our <NeovimSurface> component:

  • Definition UI / Hover UI (language service pieces)
  • Scrollbar
  • Errors

In addition, I could image even moving some pieces like the cursor or canvas rendering out to layers, too (longer-term). This prevents us from doing duplicate rendering work, as today, the canvas is still being rendered underneath the layer.

@bryphe bryphe merged commit 5580e5d into master Jan 4, 2018
@bryphe bryphe deleted the bryphe/feature/layers branch January 4, 2018 00:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant