mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
SelectAllMatchesInProject Operations create buffers on demand
This commit is contained in:
@@ -16,7 +16,7 @@ class SelectAllMatchesInProject extends Command
|
||||
promise = project.scan @regex, ({path, range}) ->
|
||||
operations.push(new Operation(
|
||||
project: project
|
||||
buffer: project.bufferForPath(path)
|
||||
path: path
|
||||
bufferRange: range
|
||||
))
|
||||
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
module.exports =
|
||||
class Operation
|
||||
constructor: ({@project, @buffer, bufferRange, @newText, @preserveSelection, @errorMessage}) ->
|
||||
@buffer.retain()
|
||||
@marker = @buffer.markRange(bufferRange)
|
||||
constructor: ({@project, @path, @buffer, @bufferRange, @newText, @preserveSelection, @errorMessage}) ->
|
||||
@buffer?.retain()
|
||||
|
||||
getMarker: ->
|
||||
@marker ?= @getBuffer().markRange(@bufferRange)
|
||||
|
||||
getBuffer: ->
|
||||
@buffer ?= @project.bufferForPath(@path).retain()
|
||||
|
||||
getPath: ->
|
||||
@project.relativize(@buffer.getPath())
|
||||
path = @path ? @getBuffer().getPath()
|
||||
@project.relativize(path)
|
||||
|
||||
getBufferRange: ->
|
||||
@buffer.getMarkerRange(@marker)
|
||||
@getBuffer().getMarkerRange(@getMarker())
|
||||
|
||||
execute: (editSession) ->
|
||||
@buffer.change(@getBufferRange(), @newText) if @newText
|
||||
@getBuffer().change(@getBufferRange(), @newText) if @newText
|
||||
@getBufferRange() unless @preserveSelection
|
||||
|
||||
preview: ->
|
||||
range = @buffer.getMarkerRange(@marker)
|
||||
line = @buffer.lineForRow(range.start.row)
|
||||
range = @getBuffer().getMarkerRange(@getMarker())
|
||||
line = @getBuffer().lineForRow(range.start.row)
|
||||
prefix = line[0...range.start.column]
|
||||
match = line[range.start.column...range.end.column]
|
||||
suffix = line[range.end.column..]
|
||||
@@ -24,5 +30,5 @@ class Operation
|
||||
{prefix, suffix, match, range}
|
||||
|
||||
destroy: ->
|
||||
@buffer.destroyMarker(@marker)
|
||||
@buffer.release()
|
||||
@buffer?.destroyMarker(@marker) if @marker?
|
||||
@buffer?.release()
|
||||
|
||||
Reference in New Issue
Block a user