aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPNarrowDownCompletion.m
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-01-13 16:28:24 +0000
committerBibiko <bibiko@eva.mpg.de>2010-01-13 16:28:24 +0000
commit6395ddc26e0d2c3fde5b26568b70a390e4b5f152 (patch)
treef3db8d0d49c078504e2758dcd0e1a8f17c2a1b47 /Source/SPNarrowDownCompletion.m
parent79c5e1f2d102ffa9d5121ee1f32aee8ca00c2a72 (diff)
downloadsequelpro-6395ddc26e0d2c3fde5b26568b70a390e4b5f152.tar.gz
sequelpro-6395ddc26e0d2c3fde5b26568b70a390e4b5f152.tar.bz2
sequelpro-6395ddc26e0d2c3fde5b26568b70a390e4b5f152.zip
• F5 compeltion
- fixed issues if no db is selected - trial: ⇧↩ inserts the entire path db.table or db.table.field; if invoked inside of backticks backticked
Diffstat (limited to 'Source/SPNarrowDownCompletion.m')
-rw-r--r--Source/SPNarrowDownCompletion.m38
1 files changed, 35 insertions, 3 deletions
diff --git a/Source/SPNarrowDownCompletion.m b/Source/SPNarrowDownCompletion.m
index a041315e..a9d9c143 100644
--- a/Source/SPNarrowDownCompletion.m
+++ b/Source/SPNarrowDownCompletion.m
@@ -128,7 +128,7 @@
additionalWordCharacters:(NSString*)someAdditionalWordCharacters caseSensitive:(BOOL)isCaseSensitive
charRange:(NSRange)initRange inView:(id)aView
dictMode:(BOOL)mode dbMode:(BOOL)theDbMode
- backtickMode:(BOOL)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName
+ backtickMode:(BOOL)theBackTickMode withDbName:(NSString*)dbName withTableName:(NSString*)tableName selectedDb:(NSString*)selectedDb
{
if(self = [self init])
{
@@ -149,11 +149,14 @@
caseSensitive = isCaseSensitive;
theCharRange = initRange;
+
if(filterStringIsBacktick) {
theCharRange.length = 0;
theCharRange.location++;
}
+ theInitRange = theCharRange;
+
theView = aView;
dictMode = mode;
@@ -162,6 +165,8 @@
words = nil;
}
+ currentDb = selectedDb;
+
if(someAdditionalWordCharacters)
[textualInputCharacters addCharactersInString:someAdditionalWordCharacters];
@@ -563,8 +568,35 @@
} else {
NSMutableDictionary* selectedItem = [[[filtered objectAtIndex:[theTableView selectedRow]] mutableCopy] autorelease];
NSString* candidateMatch = [selectedItem objectForKey:@"match"] ?: [selectedItem objectForKey:@"display"];
- if([[self filterString] length] < [candidateMatch length])
- [self insert_text:candidateMatch];
+ if([[NSApp currentEvent] modifierFlags] & (NSShiftKeyMask)) {
+ NSArray *path = [NSArray arrayWithArray:[[selectedItem objectForKey:@"path"] componentsSeparatedByString:@"⇠"]];
+ if([path count]) {
+ NSMutableString *p = [NSMutableString string];
+ NSEnumerator *enumerator = [path reverseObjectEnumerator];
+ if(backtickMode)
+ for (id element in enumerator) {
+ if(![element isEqualToString:currentDb]) {
+ [p appendString:element];
+ [p appendString:@"`.`"];
+ }
+ }
+ else
+ for (id element in enumerator) {
+ if(![element isEqualToString:currentDb]) {
+ [p appendString:element];
+ [p appendString:@"."];
+ }
+ }
+ [p appendString:candidateMatch];
+ [self insert_text:p];
+ } else {
+ if([[self filterString] length] < [candidateMatch length])
+ [self insert_text:candidateMatch];
+ }
+ } else {
+ if([[self filterString] length] < [candidateMatch length])
+ [self insert_text:candidateMatch];
+ }
}
closeMe = YES;