cursor.getBeginningOfCurrentWordBufferPosition behaves like vim

This commit is contained in:
Corey Johnson
2013-01-29 11:08:17 -08:00
parent 1d2fa089e5
commit b66efbe3e7
3 changed files with 11 additions and 6 deletions

View File

@@ -149,10 +149,14 @@ class Cursor
previousLinesRange = [[previousNonBlankRow, 0], currentBufferPosition]
beginningOfWordPosition = currentBufferPosition
@editSession.backwardsScanInRange (options.wordRegex ? config.get("editor.wordRegex")), previousLinesRange, (match, matchRange, { stop }) =>
wordSeparators = config.get("editor.wordSeparators")
wordSeparatorsRegex = new RegExp("^[\t ]*\n|[^\\s#{_.escapeRegExp(wordSeparators)}]+|[#{_.escapeRegExp(wordSeparators)}]+", "m")
@editSession.backwardsScanInRange (options.wordRegex ? wordSeparatorsRegex), previousLinesRange, (match, matchRange, { stop }) =>
if matchRange.end.isGreaterThanOrEqual(currentBufferPosition) or allowPrevious
beginningOfWordPosition = matchRange.start
stop()
beginningOfWordPosition
getEndOfCurrentWordBufferPosition: (options = {}) ->

View File

@@ -20,6 +20,7 @@ class Editor extends View
autoIndent: true
autoIndentOnPaste: false
wordRegex: /(\w+)|([^\w\n]+)/g
wordSeparators: "./\()\"-:,.;<>~!@#$%^&*|+=[]{}`~?"
@content: (params) ->
@div class: @classes(params), tabindex: -1, =>