ViewRegistry
essential

ViewRegistry handles the association between model and view
types in Atom. We call this association a View Provider. As in, for a given
model, this class can provide a view via ::getView, as long as the
model/view association was registered via ::addViewProvider

If you're adding your own kind of pane item, a good strategy for all but the
simplest items is to separate the model and the view. The model handles
application logic and is the primary point of API interaction. The view
just handles presentation.

View providers inform the workspace how your model objects should be
presented in the DOM. A view provider must always return a DOM node, which
makes HTML 5 custom elements
an ideal tool for implementing views in Atom.

You can access the ViewRegistry object via atom.views.

Examples

Getting the workspace element

workspaceElement = atom.views.getView(atom.workspace)

Getting An Editor Element

textEditor = atom.workspace.getActiveTextEditor()

textEditorElement = atom.views.getView(textEditor)

Getting A Pane Element

pane = atom.workspace.getActivePane()

paneElement = atom.views.getView(pane)

Methods

Add a provider that will be used to construct views in the
workspace's view layer based on model objects in its model layer.

Text editors are divided into a model and a view layer, so when you interact
with methods like atom.workspace.getActiveTextEditor() you're only going
to get the model object. We display text editors on screen by teaching the
workspace what view constructor it should use to represent them:

(Optional) Constructor Function for your view. It should be a subclass of HTMLElement (that is, your view should be a DOM node) and have a ::setModel() method which will be called immediately after construction. If you don't supply this property, you must supply the createView property with a function that never returns undefined.

.createView()

(Optional) Factory Function that must return a subclass of HTMLElement or undefined. If this property is not present or the function returns undefined, the view provider will fall back to the viewConstructor property. If you don't provide this property, you must provider a viewConstructor property.

Return values

Returns a Disposable on which .dispose() can be called to remove the
added provider.