mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
29 lines
796 B
CoffeeScript
29 lines
796 B
CoffeeScript
Address = require 'command-interpreter/address'
|
|
Range = require 'range'
|
|
|
|
module.exports =
|
|
class RegexAddress extends Address
|
|
regex: null
|
|
|
|
constructor: (pattern) ->
|
|
@regex = new RegExp(pattern)
|
|
|
|
getRange: (editor) ->
|
|
selectedRange = editor.getLastSelectionInBuffer().getBufferRange()
|
|
rangeToSearch = new Range(selectedRange.end, editor.getEofPosition())
|
|
|
|
rangeToReturn = null
|
|
editor.buffer.scanRegexMatchesInRange @regex, rangeToSearch, (match, range) ->
|
|
rangeToReturn = range
|
|
|
|
if rangeToReturn
|
|
rangeToReturn
|
|
else
|
|
rangeToSearch = new Range([0, 0], rangeToSearch.start)
|
|
editor.buffer.scanRegexMatchesInRange @regex, rangeToSearch, (match, range) ->
|
|
rangeToReturn = range
|
|
|
|
rangeToReturn or selectedRange
|
|
|
|
isRelative: -> true
|