support for Xcode 5 GM

This commit is contained in:
Zitao
2013-09-13 17:19:57 -04:00
parent 8c521b1b47
commit d2c18940a8
6 changed files with 87 additions and 30 deletions

View File

@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<string>icon.icns</string>
<key>CFBundleIdentifier</key>
<string>com.nanaimostudio.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
@@ -22,11 +22,34 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFPlugInDynamicRegisterFunction</key>
<string></string>
<key>CFPlugInDynamicRegistration</key>
<string>NO</string>
<key>CFPlugInFactories</key>
<dict>
<key>00000000-0000-0000-0000-000000000000</key>
<string>MyFactoryFunction</string>
</dict>
<key>CFPlugInTypes</key>
<dict>
<key>00000000-0000-0000-0000-000000000000</key>
<array>
<string>00000000-0000-0000-0000-000000000000</string>
</array>
</dict>
<key>CFPlugInUnloadFunction</key>
<string></string>
<key>XC4Compatible</key>
<true/>
<key>XCGCReady</key>
<true/>
<false/>
<key>XCPluginHasUI</key>
<false/>
<key>DVTPlugInCompatibilityUUIDs</key>
<array>
<string>63FC1C47-140D-42B0-BB4D-A10B2D225574</string>
<string>37B30044-3B14-46BA-ABAA-F01000C27B63</string>
</array>
</dict>
</plist>

View File

@@ -17,10 +17,10 @@ static NSString *localizeRegexs[] = {
};
static NSString *stringRegexs = @"@\"[^\"]*\"";
@implementation QuickLocalization
static id sharedPlugin = nil;
+ (void)pluginDidLoad:(NSBundle *)plugin {
static id sharedPlugin = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedPlugin = [[self alloc] init];
@@ -29,26 +29,18 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
- (id)init {
if (self = [super init]) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidFinishLaunching:)
name:NSApplicationDidFinishLaunchingNotification
object:nil];
NSMenuItem *viewMenuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
if (viewMenuItem) {
[[viewMenuItem submenu] addItem:[NSMenuItem separatorItem]];
NSMenuItem *sample = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:@selector(quickLocalization) keyEquivalent:@"d"];
[sample setKeyEquivalentModifierMask:NSCommandKeyMask | NSAlternateKeyMask];
[sample setTarget:self];
[[viewMenuItem submenu] addItem:sample];
}
}
return self;
}
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
NSMenuItem *viewMenuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
if (viewMenuItem) {
[[viewMenuItem submenu] addItem:[NSMenuItem separatorItem]];
NSMenuItem *sample = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:@selector(quickLocalization) keyEquivalent:@"c"];
[sample setKeyEquivalentModifierMask:NSCommandKeyMask | NSShiftKeyMask];
[sample setTarget:self];
[[viewMenuItem submenu] addItem:sample];
[sample release];
}
}
// Sample Action, for menu item:
- (void)quickLocalization {
IDESourceCodeDocument *document = [RCXcode currentSourceCodeDocument];
@@ -64,10 +56,10 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
NSRange lineRange = [textView.textStorage.string lineRangeForRange:range];
NSString *line = [textView.textStorage.string substringWithRange:lineRange];
NSRegularExpression *localizedRex = [[[NSRegularExpression alloc] initWithPattern:localizeRegexs[0] options:NSRegularExpressionCaseInsensitive error:nil] autorelease];
NSRegularExpression *localizedRex = [[NSRegularExpression alloc] initWithPattern:localizeRegexs[0] options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *localizedMatches = [localizedRex matchesInString:line options:0 range:NSMakeRange(0, [line length])];
NSRegularExpression *regex = [[[NSRegularExpression alloc] initWithPattern:stringRegexs options:NSRegularExpressionCaseInsensitive error:nil] autorelease];
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:stringRegexs options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *matches = [regex matchesInString:line options:0 range:NSMakeRange(0, [line length])];
NSUInteger addedLength = 0;
for (int i = 0; i < [matches count]; i++) {
@@ -83,7 +75,7 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
addedLength = addedLength + outputString.length - string.length;
if ([textView shouldChangeTextInRange:matchedRangeInDocument replacementString:outputString]) {
[textView.textStorage replaceCharactersInRange:matchedRangeInDocument
withAttributedString:[[[NSAttributedString alloc] initWithString:outputString] autorelease]];
withAttributedString:[[NSAttributedString alloc] initWithString:outputString]];
[textView didChangeText];
}
@@ -105,9 +97,4 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
return NO;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
@end

BIN
QuickLocalization/icon.icns Normal file

Binary file not shown.