diff options
author | Bibiko <bibiko@eva.mpg.de> | 2010-03-17 10:54:27 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2010-03-17 10:54:27 +0000 |
commit | 183ac8ed6f065c99de2911df97f4285ed21bbcca (patch) | |
tree | 024f55f8bafe7793d6561fce33baaa6e116e41c0 /Source/CMTextView.m | |
parent | 8317097106e89ca010bee9771bd0c1f6d53754b8 (diff) | |
download | sequelpro-183ac8ed6f065c99de2911df97f4285ed21bbcca.tar.gz sequelpro-183ac8ed6f065c99de2911df97f4285ed21bbcca.tar.bz2 sequelpro-183ac8ed6f065c99de2911df97f4285ed21bbcca.zip |
- fixed bug for nested snippets if a nested snippet is located at the very end of the text buffer and has no default value
- added a range sanity check for completion before insertion of the chosen item
Diffstat (limited to 'Source/CMTextView.m')
-rw-r--r-- | Source/CMTextView.m | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/CMTextView.m b/Source/CMTextView.m index bfc119bd..17720a03 100644 --- a/Source/CMTextView.m +++ b/Source/CMTextView.m @@ -1356,8 +1356,17 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) if(currentSnippetIndex >= 0 && currentSnippetIndex < 20) { if(snippetControlArray[currentSnippetIndex][2] == 0) { + NSRange r1 = NSMakeRange(snippetControlArray[currentSnippetIndex][0], snippetControlArray[currentSnippetIndex][1]); - NSRange r2 = NSIntersectionRange(NSMakeRange(0,[[self string] length]), r1); + + NSRange r2; + // Ensure the selection for nested snippets if it is at very end of the text buffer + // because NSIntersectionRange returns {0, 0} in such a case + if(r1.location == [[self string] length]) + r2 = NSMakeRange([[self string] length], 0); + else + r2 = NSIntersectionRange(NSMakeRange(0,[[self string] length]), r1); + if(r1.location == r2.location && r1.length == r2.length) { [self setSelectedRange:r2]; NSString *snip = [[self string] substringWithRange:r2]; |