mirror of
https://github.com/atom/atom.git
synced 2026-02-07 05:05:02 -05:00
Rename App.coffee to Atom.coffee. This also required moving src/atom,spec/atom to src/app,spec/app
This commit is contained in:
12
src/app/command-interpreter/address-range.coffee
Normal file
12
src/app/command-interpreter/address-range.coffee
Normal file
@@ -0,0 +1,12 @@
|
||||
Address = require 'command-interpreter/address'
|
||||
Range = require 'range'
|
||||
|
||||
module.exports =
|
||||
class AddressRange extends Address
|
||||
constructor: (@startAddress, @endAddress) ->
|
||||
|
||||
getRange: (editor) ->
|
||||
new Range(@startAddress.getRange(editor).start, @endAddress.getRange(editor).end)
|
||||
|
||||
isRelative: ->
|
||||
@startAddress.isRelative() or @endAddress.isRelative()
|
||||
10
src/app/command-interpreter/address.coffee
Normal file
10
src/app/command-interpreter/address.coffee
Normal file
@@ -0,0 +1,10 @@
|
||||
Command = require 'command-interpreter/command'
|
||||
|
||||
module.exports =
|
||||
class Address extends Command
|
||||
execute: (editor) ->
|
||||
range = @getRange(editor)
|
||||
editor.clearSelections()
|
||||
editor.setSelectionBufferRange(range)
|
||||
|
||||
isAddress: -> true
|
||||
5
src/app/command-interpreter/command.coffee
Normal file
5
src/app/command-interpreter/command.coffee
Normal file
@@ -0,0 +1,5 @@
|
||||
_ = require 'underscore'
|
||||
|
||||
module.exports =
|
||||
class Command
|
||||
isAddress: -> false
|
||||
12
src/app/command-interpreter/composite-command.coffee
Normal file
12
src/app/command-interpreter/composite-command.coffee
Normal file
@@ -0,0 +1,12 @@
|
||||
_ = require 'underscore'
|
||||
|
||||
module.exports =
|
||||
class CompositeCommand
|
||||
constructor: (@subcommands) ->
|
||||
|
||||
execute: (editor) ->
|
||||
command.execute(editor) for command in @subcommands
|
||||
|
||||
isRelativeAddress: ->
|
||||
_.all(@subcommands, (command) -> command.isAddress() and command.isRelative())
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Address = require 'command-interpreter/address'
|
||||
Range = require 'range'
|
||||
|
||||
module.exports =
|
||||
class CurrentSelectionAddress extends Address
|
||||
getRange: (editor) ->
|
||||
editor.getSelection().getBufferRange()
|
||||
|
||||
isRelative: -> true
|
||||
11
src/app/command-interpreter/eof-address.coffee
Normal file
11
src/app/command-interpreter/eof-address.coffee
Normal file
@@ -0,0 +1,11 @@
|
||||
Address = require 'command-interpreter/address'
|
||||
Range = require 'range'
|
||||
|
||||
module.exports =
|
||||
class EofAddress extends Address
|
||||
getRange: (editor) ->
|
||||
lastRow = editor.getLastBufferRow()
|
||||
column = editor.lineLengthForBufferRow(lastRow)
|
||||
new Range([lastRow, column], [lastRow, column])
|
||||
|
||||
isRelative: -> false
|
||||
12
src/app/command-interpreter/line-address.coffee
Normal file
12
src/app/command-interpreter/line-address.coffee
Normal file
@@ -0,0 +1,12 @@
|
||||
Address = require 'command-interpreter/address'
|
||||
Range = require 'range'
|
||||
|
||||
module.exports =
|
||||
class LineAddress extends Address
|
||||
constructor: (lineNumber) ->
|
||||
@row = lineNumber - 1
|
||||
|
||||
getRange: ->
|
||||
new Range([@row, 0], [@row + 1, 0])
|
||||
|
||||
isRelative: -> false
|
||||
28
src/app/command-interpreter/regex-address.coffee
Normal file
28
src/app/command-interpreter/regex-address.coffee
Normal file
@@ -0,0 +1,28 @@
|
||||
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.traverseRegexMatchesInRange @regex, rangeToSearch, (match, range) ->
|
||||
rangeToReturn = range
|
||||
|
||||
if rangeToReturn
|
||||
rangeToReturn
|
||||
else
|
||||
rangeToSearch = new Range([0, 0], rangeToSearch.start)
|
||||
editor.buffer.traverseRegexMatchesInRange @regex, rangeToSearch, (match, range) ->
|
||||
rangeToReturn = range
|
||||
|
||||
rangeToReturn or selectedRange
|
||||
|
||||
isRelative: -> true
|
||||
19
src/app/command-interpreter/select-all-matches.coffee
Normal file
19
src/app/command-interpreter/select-all-matches.coffee
Normal file
@@ -0,0 +1,19 @@
|
||||
Command = require 'command-interpreter/command'
|
||||
Range = require 'range'
|
||||
|
||||
module.exports =
|
||||
class SelectAllMatches extends Command
|
||||
regex: null
|
||||
|
||||
constructor: (pattern) ->
|
||||
@regex = new RegExp(pattern, 'g')
|
||||
|
||||
execute: (editor) ->
|
||||
rangesToSelect = []
|
||||
for selection in editor.getSelections()
|
||||
editor.buffer.traverseRegexMatchesInRange @regex, selection.getBufferRange(), (match, range) ->
|
||||
rangesToSelect.push(range)
|
||||
|
||||
editor.clearSelections()
|
||||
editor.setSelectionBufferRange(rangesToSelect[0])
|
||||
editor.addSelectionForBufferRange(range) for range in rangesToSelect[1..]
|
||||
16
src/app/command-interpreter/substitution.coffee
Normal file
16
src/app/command-interpreter/substitution.coffee
Normal file
@@ -0,0 +1,16 @@
|
||||
Command = require 'command-interpreter/command'
|
||||
|
||||
module.exports =
|
||||
class Substitution extends Command
|
||||
regex: null
|
||||
replacementText: null
|
||||
|
||||
constructor: (pattern, replacementText, options) ->
|
||||
@replacementText = replacementText
|
||||
@regex = new RegExp(pattern, options.join(''))
|
||||
|
||||
execute: (editor) ->
|
||||
range = editor.getSelection().getBufferRange()
|
||||
editor.buffer.traverseRegexMatchesInRange @regex, range, (match, matchRange, { replace }) =>
|
||||
replace(@replacementText)
|
||||
|
||||
Reference in New Issue
Block a user