diff --git a/docs/advanced/keymaps.md b/docs/advanced/keymaps.md index 723369253..5b7c5392d 100644 --- a/docs/advanced/keymaps.md +++ b/docs/advanced/keymaps.md @@ -10,8 +10,8 @@ keystrokes pass through elements with the class `.editor`: ```coffee '.editor': - 'cmd-delete': 'editor:backspace-to-beginning-of-line' - 'alt-backspace': 'editor:backspace-to-beginning-of-word' + 'cmd-delete': 'editor:delete-to-beginning-of-line' + 'alt-backspace': 'editor:delete-to-beginning-of-word' 'ctrl-A': 'editor:select-to-first-character-of-line' 'ctrl-shift-e': 'editor:select-to-end-of-line' 'cmd-left': 'editor:move-to-first-character-of-line' @@ -24,7 +24,7 @@ keystrokes pass through elements with the class `.editor`: Beneath the first selector are several bindings, mapping specific *keystroke patterns* to *commands*. When an element with the `.editor` class is focused and `cmd-delete` is pressed, an custom DOM event called -`editor:backspace-to-beginning-of-line` is emitted on the `.editor` element. +`editor:delete-to-beginning-of-line` is emitted on the `.editor` element. The second selector group also targets editors, but only if they don't have the `.mini` class. In this example, the commands for code folding don't really make diff --git a/keymaps/darwin.cson b/keymaps/darwin.cson index 221dcfe09..cf37a5e8f 100644 --- a/keymaps/darwin.cson +++ b/keymaps/darwin.cson @@ -103,16 +103,16 @@ 'alt-shift-right': 'editor:select-to-end-of-word' # Apple Specific - 'cmd-backspace': 'editor:backspace-to-beginning-of-line' - 'cmd-shift-backspace': 'editor:backspace-to-beginning-of-line' - 'cmd-delete': 'editor:backspace-to-beginning-of-line' + 'cmd-backspace': 'editor:delete-to-beginning-of-line' + 'cmd-shift-backspace': 'editor:delete-to-beginning-of-line' + 'cmd-delete': 'editor:delete-to-beginning-of-line' 'ctrl-A': 'editor:select-to-first-character-of-line' 'ctrl-E': 'editor:select-to-end-of-line' 'cmd-left': 'editor:move-to-first-character-of-line' 'cmd-right': 'editor:move-to-end-of-screen-line' 'cmd-shift-left': 'editor:select-to-first-character-of-line' 'cmd-shift-right': 'editor:select-to-end-of-line' - 'alt-backspace': 'editor:backspace-to-beginning-of-word' + 'alt-backspace': 'editor:delete-to-beginning-of-word' 'alt-delete': 'editor:delete-to-end-of-word' 'ctrl-a': 'editor:move-to-beginning-of-line' 'ctrl-e': 'editor:move-to-end-of-line' diff --git a/keymaps/emacs.cson b/keymaps/emacs.cson index 11ce62987..78463671c 100644 --- a/keymaps/emacs.cson +++ b/keymaps/emacs.cson @@ -3,5 +3,5 @@ 'alt-F': 'editor:select-to-end-of-word' 'alt-b': 'editor:move-to-beginning-of-word' 'alt-B': 'editor:select-to-beginning-of-word' - 'alt-h': 'editor:backspace-to-beginning-of-word' + 'alt-h': 'editor:delete-to-beginning-of-word' 'alt-d': 'editor:delete-to-end-of-word' diff --git a/keymaps/linux.cson b/keymaps/linux.cson index 474829da3..8200d663e 100644 --- a/keymaps/linux.cson +++ b/keymaps/linux.cson @@ -65,7 +65,7 @@ 'ctrl-right': 'editor:move-to-end-of-word' 'ctrl-shift-left': 'editor:select-to-beginning-of-word' 'ctrl-shift-right': 'editor:select-to-end-of-word' - 'ctrl-backspace': 'editor:backspace-to-beginning-of-word' + 'ctrl-backspace': 'editor:delete-to-beginning-of-word' 'ctrl-delete': 'editor:delete-to-end-of-word' # Sublime Parity diff --git a/keymaps/win32.cson b/keymaps/win32.cson index 91545a99c..d0f9cf421 100644 --- a/keymaps/win32.cson +++ b/keymaps/win32.cson @@ -63,8 +63,8 @@ 'ctrl-right': 'editor:move-to-end-of-word' 'ctrl-shift-left': 'editor:select-to-beginning-of-word' 'ctrl-shift-right': 'editor:select-to-end-of-word' - 'ctrl-backspace': 'editor:backspace-to-beginning-of-word' - 'ctrl-delete': 'editor:backspace-to-beginning-of-word' + 'ctrl-backspace': 'editor:delete-to-beginning-of-word' + 'ctrl-delete': 'editor:delete-to-beginning-of-word' # Sublime Parity 'ctrl-a': 'core:select-all' diff --git a/spec/editor-spec.coffee b/spec/editor-spec.coffee index d7f214f22..d1e33e3b8 100644 --- a/spec/editor-spec.coffee +++ b/spec/editor-spec.coffee @@ -1731,26 +1731,26 @@ describe "Editor", -> editor.backspace() expect(editor.lineForBufferRow(0)).toBe 'var = () {' - describe ".backspaceToBeginningOfWord()", -> + describe ".deleteToBeginningOfWord()", -> describe "when no text is selected", -> it "deletes all text between the cursor and the beginning of the word", -> editor.setCursorBufferPosition([1, 24]) editor.addCursorAtBufferPosition([3, 5]) [cursor1, cursor2] = editor.getCursors() - editor.backspaceToBeginningOfWord() + editor.deleteToBeginningOfWord() expect(buffer.lineForRow(1)).toBe ' var sort = function(ems) {' expect(buffer.lineForRow(3)).toBe ' ar pivot = items.shift(), current, left = [], right = [];' expect(cursor1.getBufferPosition()).toEqual [1, 22] expect(cursor2.getBufferPosition()).toEqual [3, 4] - editor.backspaceToBeginningOfWord() + editor.deleteToBeginningOfWord() expect(buffer.lineForRow(1)).toBe ' var sort = functionems) {' expect(buffer.lineForRow(2)).toBe ' if (items.length <= 1) return itemsar pivot = items.shift(), current, left = [], right = [];' expect(cursor1.getBufferPosition()).toEqual [1, 21] expect(cursor2.getBufferPosition()).toEqual [2, 39] - editor.backspaceToBeginningOfWord() + editor.deleteToBeginningOfWord() expect(buffer.lineForRow(1)).toBe ' var sort = ems) {' expect(buffer.lineForRow(2)).toBe ' if (items.length <= 1) return ar pivot = items.shift(), current, left = [], right = [];' expect(cursor1.getBufferPosition()).toEqual [1, 13] @@ -1758,24 +1758,24 @@ describe "Editor", -> editor.setText(' var sort') editor.setCursorBufferPosition([0, 2]) - editor.backspaceToBeginningOfWord() + editor.deleteToBeginningOfWord() expect(buffer.lineForRow(0)).toBe 'var sort' describe "when text is selected", -> it "deletes only selected text", -> editor.setSelectedBufferRanges([[[1, 24], [1, 27]], [[2, 0], [2, 4]]]) - editor.backspaceToBeginningOfWord() + editor.deleteToBeginningOfWord() expect(buffer.lineForRow(1)).toBe ' var sort = function(it) {' expect(buffer.lineForRow(2)).toBe 'if (items.length <= 1) return items;' - describe ".backspaceToBeginningOfLine()", -> + describe ".deleteToToBeginningOfLine()", -> describe "when no text is selected", -> it "deletes all text between the cursor and the beginning of the line", -> editor.setCursorBufferPosition([1, 24]) editor.addCursorAtBufferPosition([2, 5]) [cursor1, cursor2] = editor.getCursors() - editor.backspaceToBeginningOfLine() + editor.deleteToToBeginningOfLine() expect(buffer.lineForRow(1)).toBe 'ems) {' expect(buffer.lineForRow(2)).toBe 'f (items.length <= 1) return items;' expect(cursor1.getBufferPosition()).toEqual [1, 0] @@ -1784,13 +1784,13 @@ describe "Editor", -> describe "when at the beginning of the line", -> it "deletes the newline", -> editor.setCursorBufferPosition([2]) - editor.backspaceToBeginningOfLine() + editor.deleteToToBeginningOfLine() expect(buffer.lineForRow(1)).toBe ' var sort = function(items) { if (items.length <= 1) return items;' describe "when text is selected", -> it "still deletes all text to begginning of the line", -> editor.setSelectedBufferRanges([[[1, 24], [1, 27]], [[2, 0], [2, 4]]]) - editor.backspaceToBeginningOfLine() + editor.deleteToToBeginningOfLine() expect(buffer.lineForRow(1)).toBe 'ems) {' expect(buffer.lineForRow(2)).toBe ' if (items.length <= 1) return items;' diff --git a/src/editor-component.coffee b/src/editor-component.coffee index a4a2eadef..556fe5e17 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -174,8 +174,8 @@ EditorComponent = React.createClass 'editor:move-to-previous-word': => editor.moveCursorToPreviousWord() 'editor:select-word': => editor.selectWord() 'editor:consolidate-selections': @consolidateSelections - 'editor:backspace-to-beginning-of-word': => editor.backspaceToBeginningOfWord() - 'editor:backspace-to-beginning-of-line': => editor.backspaceToBeginningOfLine() + 'editor:delete-to-beginning-of-word': => editor.deleteToBeginningOfWord() + 'editor:delete-to-beginning-of-line': => editor.deleteToBeginningOfLine() 'editor:delete-to-end-of-word': => editor.deleteToEndOfWord() 'editor:delete-line': => editor.deleteLine() 'editor:cut-to-end-of-line': => editor.cutToEndOfLine() diff --git a/src/editor-view.coffee b/src/editor-view.coffee index 087181371..4e8d2443f 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -154,8 +154,8 @@ class EditorView extends View 'editor:move-to-previous-word': => @editor.moveCursorToPreviousWord() 'editor:select-word': => @editor.selectWord() 'editor:consolidate-selections': (event) => @consolidateSelections(event) - 'editor:backspace-to-beginning-of-word': => @editor.backspaceToBeginningOfWord() - 'editor:backspace-to-beginning-of-line': => @editor.backspaceToBeginningOfLine() + 'editor:delete-to-beginning-of-word': => @editor.deleteToBeginningOfWord() + 'editor:delete-to-beginning-of-line': => @editor.deleteToBeginningOfLine() 'editor:delete-to-end-of-word': => @editor.deleteToEndOfWord() 'editor:delete-line': => @editor.deleteLine() 'editor:cut-to-end-of-line': => @editor.cutToEndOfLine() diff --git a/src/editor.coffee b/src/editor.coffee index 63c09cca3..28880a946 100644 --- a/src/editor.coffee +++ b/src/editor.coffee @@ -109,8 +109,8 @@ TextMateScopeSelector = require('first-mate').ScopeSelector # - {::insertNewlineAbove} # - {::insertNewlineBelow} # - {::backspace} -# - {::backspaceToBeginningOfWord} -# - {::backspaceToBeginningOfLine} +# - {::deleteToBeginningOfWord} +# - {::deleteToBeginningOfLine} # - {::delete} # - {::deleteToEndOfWord} # - {::deleteLine} @@ -658,17 +658,27 @@ class Editor extends Model backspace: -> @mutateSelectedText (selection) -> selection.backspace() + # Deprecated: Use {::deleteToBeginningOfWord} instead. + backspaceToBeginningOfWord: -> + deprecate("Use Editor::deleteToBeginningOfWord() instead") + @deleteToBeginningOfWord() + + # Deprecated: Use {::deleteToBeginningOfLine} instead. + backspaceToBeginningOfLine: -> + deprecate("Use Editor::deleteToBeginningOfLine() instead") + @deleteToBeginningOfLine() + # Public: For each selection, if the selection is empty, delete all characters # of the containing word that precede the cursor. Otherwise delete the # selected text. - backspaceToBeginningOfWord: -> - @mutateSelectedText (selection) -> selection.backspaceToBeginningOfWord() + deleteToBeginningOfWord: -> + @mutateSelectedText (selection) -> selection.deleteToBeginningOfWord() # Public: For each selection, if the selection is empty, delete all characters # of the containing line that precede the cursor. Otherwise delete the # selected text. - backspaceToBeginningOfLine: -> - @mutateSelectedText (selection) -> selection.backspaceToBeginningOfLine() + deleteToBeginningOfLine: -> + @mutateSelectedText (selection) -> selection.deleteToBeginningOfLine() # Public: For each selection, if the selection is empty, delete the character # preceding the cursor. Otherwise delete the selected text. diff --git a/src/selection.coffee b/src/selection.coffee index efaf25d7a..204b5c3fe 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -382,15 +382,25 @@ class Selection extends Model @selectLeft() if @isEmpty() and not @editor.isFoldedAtScreenRow(@cursor.getScreenRow()) @deleteSelectedText() + # Deprecated: Use {::deleteToBeginningOfWord} instead. + backspaceToBeginningOfWord: -> + deprecate("Use Selection::deleteToBeginningOfWord() instead") + @deleteToBeginningOfWord() + + # Deprecated: Use {::deleteToBeginningOfLine} instead. + backspaceToBeginningOfLine: -> + deprecate("Use Selection::deleteToBeginningOfLine() instead") + @deleteToBeginningOfLine() + # Public: Removes from the start of the selection to the beginning of the # current word if the selection is empty otherwise it deletes the selection. - backspaceToBeginningOfWord: -> + deleteToBeginningOfWord: -> @selectToBeginningOfWord() if @isEmpty() @deleteSelectedText() # Public: Removes from the beginning of the line which the selection begins on # all the way through to the end of the selection. - backspaceToBeginningOfLine: -> + deleteToBeginningOfLine: -> if @isEmpty() and @cursor.isAtBeginningOfLine() @selectLeft() else