From 33b7c726f626813df4d3e8266502b1df6d0701dd Mon Sep 17 00:00:00 2001 From: daboe01 Date: Sat, 11 Jun 2016 16:40:28 +0200 Subject: [PATCH] fixed: whitespace double-clicking resulted in cross-paragraph selection --- AppKit/CPTextView/CPTextView.j | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/AppKit/CPTextView/CPTextView.j b/AppKit/CPTextView/CPTextView.j index af80b2d94..59897aba0 100644 --- a/AppKit/CPTextView/CPTextView.j +++ b/AppKit/CPTextView/CPTextView.j @@ -1793,13 +1793,19 @@ var kDelegateRespondsTo_textShouldBeginEditing return characterSet.exec(_characterTripletFromStringAtIndex([_textStorage string], index)) !== null; } -+ (CPArray)_wordBoundaryRegex ++ (JSRegEx)_wordBoundaryRegex { - return /^(.|[\r\n])[^-\.,+#'"!§$%&/\(<\[\]>\)=?`´*\s{}\|¶]/m; + return /^.[^-\.,+#'"!§$%&/\(<\[\]>\)=?`´*\s{}\|¶]/m; } -+ (CPArray)_paragraphBoundaryRegex + ++ (JSRegEx)_paragraphBoundaryRegex { - return /^(.|[\r\n])[\n\r]/m; + return /^.[\n\r]/m; +} + ++ (JSRegEx)_whitespaceRegex +{ + return /^.[ \t]+/m; } - (CPRange)_characterRangeForIndex:(unsigned)index inRange:(CPRange) aRange asDefinedByRegex:(JSObject)regex skip:(BOOL)flag @@ -1858,7 +1864,7 @@ var kDelegateRespondsTo_textShouldBeginEditing switch (granularity) { case CPSelectByWord: - regex = [[self class] _wordBoundaryRegex]; + regex = _isWhitespaceCharacter([string characterAtIndex:loc])? [[self class] _whitespaceRegex] : [[self class] _wordBoundaryRegex]; break; case CPSelectByParagraph: regex = [[self class] _paragraphBoundaryRegex];