aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/ex-mode/lib/find.coffee
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
committerBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
commit24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch)
treeded312222bb108923da1820ba40b04d710d20e5b /atom/packages/ex-mode/lib/find.coffee
parenteb786e82d170e2abc351a432ade616d6ecdeeb6b (diff)
Adds atom
Diffstat (limited to 'atom/packages/ex-mode/lib/find.coffee')
-rw-r--r--atom/packages/ex-mode/lib/find.coffee26
1 files changed, 26 insertions, 0 deletions
diff --git a/atom/packages/ex-mode/lib/find.coffee b/atom/packages/ex-mode/lib/find.coffee
new file mode 100644
index 0000000..53dffc5
--- /dev/null
+++ b/atom/packages/ex-mode/lib/find.coffee
@@ -0,0 +1,26 @@
+module.exports = {
+ findInBuffer : (buffer, pattern) ->
+ found = []
+ buffer.scan(new RegExp(pattern, 'g'), (obj) -> found.push obj.range)
+ return found
+
+ findNextInBuffer : (buffer, curPos, pattern) ->
+ found = @findInBuffer(buffer, pattern)
+ more = (i for i in found when i.compare([curPos, curPos]) is 1)
+ if more.length > 0
+ return more[0].start.row
+ else if found.length > 0
+ return found[0].start.row
+ else
+ return null
+
+ findPreviousInBuffer : (buffer, curPos, pattern) ->
+ found = @findInBuffer(buffer, pattern)
+ less = (i for i in found when i.compare([curPos, curPos]) is -1)
+ if less.length > 0
+ return less[less.length - 1].start.row
+ else if found.length > 0
+ return found[found.length - 1].start.row
+ else
+ return null
+}