mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Add delete line support bound to meta-d key
This commit is contained in:
@@ -162,13 +162,19 @@ class Buffer
|
||||
new Point(row, index)
|
||||
|
||||
deleteRow: (row) ->
|
||||
range = null
|
||||
if row == @getLastRow()
|
||||
range = new Range([row - 1, @lineLengthForRow(row - 1)], [row, @lineLengthForRow(row)])
|
||||
else
|
||||
range = new Range([row, 0], [row + 1, 0])
|
||||
@deleteRows(row, row)
|
||||
|
||||
@change(range, '')
|
||||
deleteRows: (start, end) ->
|
||||
startPoint = null
|
||||
endPoint = null
|
||||
if end == @getLastRow()
|
||||
startPoint = [start - 1, @lineLengthForRow(start - 1)]
|
||||
endPoint = [end, @lineLengthForRow(end)]
|
||||
else
|
||||
startPoint = [start, 0]
|
||||
endPoint = [end + 1, 0]
|
||||
|
||||
@change(new Range(startPoint, endPoint), '')
|
||||
|
||||
insert: (point, text) ->
|
||||
@change(new Range(point, point), text)
|
||||
|
||||
@@ -167,6 +167,9 @@ class EditSession
|
||||
deleteToEndOfWord: ->
|
||||
@mutateSelectedText (selection) -> selection.deleteToEndOfWord()
|
||||
|
||||
deleteLine: ->
|
||||
@mutateSelectedText (selection) -> selection.deleteLine()
|
||||
|
||||
indentSelectedRows: ->
|
||||
@mutateSelectedText (selection) -> selection.indentSelectedRows()
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ class Editor extends View
|
||||
'backspace-to-beginning-of-word': @backspaceToBeginningOfWord
|
||||
'delete': @delete
|
||||
'delete-to-end-of-word': @deleteToEndOfWord
|
||||
'delete-line': @deleteLine
|
||||
'cut-to-end-of-line': @cutToEndOfLine
|
||||
'cut': @cutSelection
|
||||
'copy': @copySelection
|
||||
@@ -209,6 +210,7 @@ class Editor extends View
|
||||
backspaceToBeginningOfWord: -> @activeEditSession.backspaceToBeginningOfWord()
|
||||
delete: -> @activeEditSession.delete()
|
||||
deleteToEndOfWord: -> @activeEditSession.deleteToEndOfWord()
|
||||
deleteLine: -> @activeEditSession.deleteLine()
|
||||
cutToEndOfLine: -> @activeEditSession.cutToEndOfLine()
|
||||
insertText: (text) -> @activeEditSession.insertText(text)
|
||||
insertNewline: -> @activeEditSession.insertNewline()
|
||||
|
||||
@@ -11,6 +11,7 @@ window.keymap.bindKeys '.editor',
|
||||
'backspace': 'backspace'
|
||||
'shift-backspace': 'backspace'
|
||||
'delete': 'delete'
|
||||
'meta-d': 'delete-line'
|
||||
'meta-x': 'cut'
|
||||
'meta-c': 'copy'
|
||||
'meta-v': 'paste'
|
||||
|
||||
@@ -181,6 +181,17 @@ class Selection
|
||||
@editSession.buffer.delete(bufferRange) unless bufferRange.isEmpty()
|
||||
@cursor?.setBufferPosition(bufferRange.start)
|
||||
|
||||
deleteLine: ->
|
||||
if @isEmpty()
|
||||
@editSession.buffer.deleteRow(@cursor.getBufferPosition().row)
|
||||
else
|
||||
bufferRange = @getBufferRange()
|
||||
start = bufferRange.start.row
|
||||
end = bufferRange.end.row
|
||||
if end isnt @editSession.buffer.getLastRow() and bufferRange.end.column is 0
|
||||
end--
|
||||
@editSession.buffer.deleteRows(start, end)
|
||||
|
||||
indentSelectedRows: ->
|
||||
range = @getBufferRange()
|
||||
for row in [range.start.row..range.end.row]
|
||||
|
||||
Reference in New Issue
Block a user