Cut/copy whole lines when no text is selected

Closes #3643
Assign highlight decoration React keys based on decoration id instead of class

@benogle: I think this should be fine now that we assign id’s, right?

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Add deprecatedRegionClass option to highlight decorations

This adds a class to each of the contained regions so we can make
existing bundled packages backward-compatible with themes.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Merge pull request #4148 from atom/mb-cut-line

Cut whole lines when no text is selected
Add deprecated getMoveNextWordBoundaryBufferPosition

Closes #4151
Use proper verbiage for the docs
:lipstick:
Overlay decorations render
Fix linter error
Add spec for creation and removal of overlay
Specs for positioning the overlay decorations
Add Cursor::getMarker() method
:lipstick: in :memo:
Properly display when a marker is reversed
Merge pull request #4152 from atom/ns-highlight-region-classes

Add private API for adding classes to highlight regions for backward compatibility
Don't call Grim.deprecate for undefined context menus

This preserves the original behavior, in which passing undefined to
atom.contextMenu.add was a no-op that returned a no-op disposable.

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Don’t add undefined context menus when activating package resources

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Dispose of WorkspaceElement subscriptions when detached

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Remove WorkspaceElement::handleWindowFocus

We were getting stack traces in specs when the window got focused caused
by this subscription never getting disposed. We investigated, and can’t
find a case where removing this causes any issues.

Tested:
* Loading/reloading empty window
* Loading/reloading window with pane splits
* Opening/closing dev tools
* Switching focus between atom windows
* Switching focus between applications

Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Don’t need this