From d2c18940a85a0b0212c28393d157c8c366be8149 Mon Sep 17 00:00:00 2001 From: Zitao Date: Fri, 13 Sep 2013 17:19:57 -0400 Subject: [PATCH] support for Xcode 5 GM --- QuickLocalization.xcodeproj/project.pbxproj | 10 ++++- .../xcshareddata/QuickLocalization.xccheckout | 41 ++++++++++++++++++ .../QuickLocalization-Info.plist | 27 +++++++++++- QuickLocalization/QuickLocalization.m | 37 +++++----------- QuickLocalization/icon.icns | Bin 0 -> 526301 bytes README.md | 2 +- 6 files changed, 87 insertions(+), 30 deletions(-) create mode 100644 QuickLocalization.xcodeproj/project.xcworkspace/xcshareddata/QuickLocalization.xccheckout create mode 100644 QuickLocalization/icon.icns diff --git a/QuickLocalization.xcodeproj/project.pbxproj b/QuickLocalization.xcodeproj/project.pbxproj index 661f463..9f6c8ea 100644 --- a/QuickLocalization.xcodeproj/project.pbxproj +++ b/QuickLocalization.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 09A343C6174068E600A713EE /* RCXcode.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A343C5174068E200A713EE /* RCXcode.m */; }; + 09EC581817E3B6E1002261C4 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 09EC581717E3B6E1002261C4 /* icon.icns */; }; 09F65636174041010000486B /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09F65635174041010000486B /* AppKit.framework */; }; 09F65638174041010000486B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09F65637174041010000486B /* Foundation.framework */; }; 09F6563E174041010000486B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 09F6563C174041010000486B /* InfoPlist.strings */; }; @@ -17,6 +18,7 @@ /* Begin PBXFileReference section */ 09A343C4174068E200A713EE /* RCXcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCXcode.h; sourceTree = ""; }; 09A343C5174068E200A713EE /* RCXcode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCXcode.m; sourceTree = ""; }; + 09EC581717E3B6E1002261C4 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; 09F65632174041010000486B /* QuickLocalization.xcplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QuickLocalization.xcplugin; sourceTree = BUILT_PRODUCTS_DIR; }; 09F65635174041010000486B /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 09F65637174041010000486B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -82,6 +84,7 @@ isa = PBXGroup; children = ( 09F6563B174041010000486B /* QuickLocalization-Info.plist */, + 09EC581717E3B6E1002261C4 /* icon.icns */, 09F6563C174041010000486B /* InfoPlist.strings */, 09F65642174041010000486B /* QuickLocalization-Prefix.pch */, ); @@ -140,6 +143,7 @@ buildActionMask = 2147483647; files = ( 09F6563E174041010000486B /* InfoPlist.strings in Resources */, + 09EC581817E3B6E1002261C4 /* icon.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -229,10 +233,11 @@ 09F65646174041010000486B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; COMBINE_HIDPI_IMAGES = YES; DEPLOYMENT_LOCATION = YES; DSTROOT = "$(HOME)"; - GCC_ENABLE_OBJC_GC = required; + GCC_ENABLE_OBJC_GC = unsupported; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "QuickLocalization/QuickLocalization-Prefix.pch"; INFOPLIST_FILE = "QuickLocalization/QuickLocalization-Info.plist"; @@ -246,10 +251,11 @@ 09F65647174041010000486B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; COMBINE_HIDPI_IMAGES = YES; DEPLOYMENT_LOCATION = YES; DSTROOT = "$(HOME)"; - GCC_ENABLE_OBJC_GC = required; + GCC_ENABLE_OBJC_GC = unsupported; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "QuickLocalization/QuickLocalization-Prefix.pch"; INFOPLIST_FILE = "QuickLocalization/QuickLocalization-Info.plist"; diff --git a/QuickLocalization.xcodeproj/project.xcworkspace/xcshareddata/QuickLocalization.xccheckout b/QuickLocalization.xcodeproj/project.xcworkspace/xcshareddata/QuickLocalization.xccheckout new file mode 100644 index 0000000..aa3c89b --- /dev/null +++ b/QuickLocalization.xcodeproj/project.xcworkspace/xcshareddata/QuickLocalization.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 1EE47844-8854-4E87-9C9D-9981C6C7EB5C + IDESourceControlProjectName + QuickLocalization + IDESourceControlProjectOriginsDictionary + + B1384B3C-CDED-4974-B523-BFBC8D94735C + ssh://github.com/nanaimostudio/Xcode-Quick-Localization.git + + IDESourceControlProjectPath + QuickLocalization.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + B1384B3C-CDED-4974-B523-BFBC8D94735C + ../.. + + IDESourceControlProjectURL + ssh://github.com/nanaimostudio/Xcode-Quick-Localization.git + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + B1384B3C-CDED-4974-B523-BFBC8D94735C + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + B1384B3C-CDED-4974-B523-BFBC8D94735C + IDESourceControlWCCName + Xcode-Quick-Localization + + + + diff --git a/QuickLocalization/QuickLocalization-Info.plist b/QuickLocalization/QuickLocalization-Info.plist index baca8d8..d70f3e3 100644 --- a/QuickLocalization/QuickLocalization-Info.plist +++ b/QuickLocalization/QuickLocalization-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile - + icon.icns CFBundleIdentifier com.nanaimostudio.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion @@ -22,11 +22,34 @@ ???? CFBundleVersion 1 + CFPlugInDynamicRegisterFunction + + CFPlugInDynamicRegistration + NO + CFPlugInFactories + + 00000000-0000-0000-0000-000000000000 + MyFactoryFunction + + CFPlugInTypes + + 00000000-0000-0000-0000-000000000000 + + 00000000-0000-0000-0000-000000000000 + + + CFPlugInUnloadFunction + XC4Compatible XCGCReady - + XCPluginHasUI + DVTPlugInCompatibilityUUIDs + + 63FC1C47-140D-42B0-BB4D-A10B2D225574 + 37B30044-3B14-46BA-ABAA-F01000C27B63 + diff --git a/QuickLocalization/QuickLocalization.m b/QuickLocalization/QuickLocalization.m index d9979ea..3326b1d 100644 --- a/QuickLocalization/QuickLocalization.m +++ b/QuickLocalization/QuickLocalization.m @@ -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 \ No newline at end of file diff --git a/QuickLocalization/icon.icns b/QuickLocalization/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..845fc32c8e0116b58f318ab77e484b316abcd567 GIT binary patch literal 526301 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