diff options
author | rowanbeentje <rowan@beent.je> | 2010-11-06 23:16:00 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2010-11-06 23:16:00 +0000 |
commit | 5b74654f969a6878dc0f85cab52eeee68053fb62 (patch) | |
tree | c76a55b93eccb3a0ff1e6d85048c108d85ec88d6 /Source/SPTextView.m | |
parent | a9be9780875d249019bd0cdf55eba960fb6f44be (diff) | |
download | sequelpro-5b74654f969a6878dc0f85cab52eeee68053fb62.tar.gz sequelpro-5b74654f969a6878dc0f85cab52eeee68053fb62.tar.bz2 sequelpro-5b74654f969a6878dc0f85cab52eeee68053fb62.zip |
Minor tweaks to autocompletion:
- Show the text cursor at the location future input will be inserted for clarity
- Show autocompleted text faded to indicate it's temporary and may be replaced by other keypresses
Diffstat (limited to 'Source/SPTextView.m')
-rw-r--r-- | Source/SPTextView.m | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/Source/SPTextView.m b/Source/SPTextView.m index e60a28f7..08feffe4 100644 --- a/Source/SPTextView.m +++ b/Source/SPTextView.m @@ -2694,6 +2694,7 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) // If the current token is marked as SQL keyword, uppercase it if required. tokenEnd = tokenRange.location+tokenRange.length-1; + // Check the end of the token if (textBufferSizeIncreased && allowToCheckForUpperCase @@ -2703,23 +2704,23 @@ NSInteger alphabeticSort(id string1, id string2, void *reverse) // check if next char is not a kSQLkeyword or current kSQLkeyword is at the end; // if so then upper case keyword if not already done // @try catch() for catching valid index esp. after deleteBackward: + { + + NSString* curTokenString = [selfstr substringWithRange:tokenRange]; + BOOL doIt = NO; + @try { - - NSString* curTokenString = [selfstr substringWithRange:tokenRange]; - BOOL doIt = NO; - @try - { - doIt = ![(NSString*)NSMutableAttributedStringAttributeAtIndex(textStore, kSQLkeyword,tokenEnd+1,nil) length]; - } @catch(id ae) { doIt = NO; } - - if(doIt) - { - // Register it for undo works only partly for now, at least the uppercased keyword will be selected - [self shouldChangeTextInRange:tokenRange replacementString:curTokenString]; - [self replaceCharactersInRange:tokenRange withString:[curTokenString uppercaseString]]; - } + doIt = ![(NSString*)NSMutableAttributedStringAttributeAtIndex(textStore, kSQLkeyword,tokenEnd+1,nil) length]; + } @catch(id ae) { doIt = NO; } + + if(doIt) + { + // Register it for undo works only partly for now, at least the uppercased keyword will be selected + [self shouldChangeTextInRange:tokenRange replacementString:curTokenString]; + [self replaceCharactersInRange:tokenRange withString:[curTokenString uppercaseString]]; } - + } + NSMutableAttributedStringAddAttributeValueRange(textStore, NSForegroundColorAttributeName, tokenColor, tokenRange); // if(!allowToCheckForUpperCase) continue; |