-
Notifications
You must be signed in to change notification settings - Fork 283
/
QSStringRanker.m
49 lines (42 loc) · 1.15 KB
/
QSStringRanker.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
// QSStringRanker.m
// Quicksilver
//
// Created by Alcor on 1/28/05.
// Copyright 2005 Blacktree. All rights reserved.
//
#import "QSStringRanker.h"
#import "QSSense.h"
#import "NSString_Purification.h"
@implementation QSDefaultStringRanker
- (id)initWithString:(NSString *)string {
if (!string) {
return nil;
}
self = [super init];
if (self) {
[self setRankedString:string];
}
return self;
}
- (void)dealloc {
normString = nil;
}
- (NSString *)description {
return [NSString stringWithFormat:@"%@ %@", [super description], normString];
}
- (NSString*)rankedString { return normString; }
- (void)setRankedString:(NSString*)aString {
if (aString != normString) {
normString = [aString purifiedString];
}
}
- (CGFloat)scoreForAbbreviation:(NSString*)anAbbreviation {
return QSScoreForAbbreviation((__bridge CFStringRef) normString, (__bridge CFStringRef)anAbbreviation, nil);
}
- (NSIndexSet*)maskForAbbreviation:(NSString*)anAbbreviation {
NSMutableIndexSet *mask = [NSMutableIndexSet indexSet];
QSScoreForAbbreviation((__bridge CFStringRef) normString, (__bridge CFStringRef)anAbbreviation, mask);
return mask;
}
@end