add <# comment #> support

This commit is contained in:
Zitao Xiong
2015-04-04 22:28:15 -04:00
parent 94522b6c10
commit 1509145940
2 changed files with 52 additions and 17 deletions

View File

@@ -10,29 +10,29 @@
<string>QuickLocalization</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>B1384B3C-CDED-4974-B523-BFBC8D94735C</key>
<string>ssh://github.com/nanaimostudio/Xcode-Quick-Localization.git</string>
<key>9A578172FEED87BCB83DCEC1F373774E3DF551EF</key>
<string>github.com:nanaimostudio/Xcode-Quick-Localization.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>QuickLocalization.xcodeproj/project.xcworkspace</string>
<string>QuickLocalization.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>B1384B3C-CDED-4974-B523-BFBC8D94735C</key>
<key>9A578172FEED87BCB83DCEC1F373774E3DF551EF</key>
<string>../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/nanaimostudio/Xcode-Quick-Localization.git</string>
<string>github.com:nanaimostudio/Xcode-Quick-Localization.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>110</integer>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>B1384B3C-CDED-4974-B523-BFBC8D94735C</string>
<string>9A578172FEED87BCB83DCEC1F373774E3DF551EF</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>B1384B3C-CDED-4974-B523-BFBC8D94735C</string>
<string>9A578172FEED87BCB83DCEC1F373774E3DF551EF</string>
<key>IDESourceControlWCCName</key>
<string>Xcode-Quick-Localization</string>
</dict>

View File

@@ -19,10 +19,12 @@ static NSString *localizeRegexs[] = {
static NSString *stringRegexs = @"@\"[^\"]*\"";
static NSString * const QLShouldUseNilForComment = @"QLShouldUseNilForComment";
static NSString * const QLShouldUseSnippetForComment = @"QLShouldUseSnippetForComment";
@interface QuickLocalization ()
@property (nonatomic, assign) BOOL shouldUseNilForComment;
@property (nonatomic, assign) BOOL shouldUseSnippetForComment;
@end
@@ -43,13 +45,25 @@ static id sharedPlugin = 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:NSShiftKeyMask | NSAlternateKeyMask];
[sample setTarget:self];
[[viewMenuItem submenu] addItem:sample];
NSMenuItem *localization = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:@selector(quickLocalization) keyEquivalent:@"d"];
[localization setKeyEquivalentModifierMask:NSShiftKeyMask | NSAlternateKeyMask];
[localization setTarget:self];
NSMenuItem *nilToggle = [[NSMenuItem alloc] initWithTitle:@"Use nil for NSLocalizedString comment" action:@selector(toggleNilOption) keyEquivalent:@""];
[nilToggle setTarget:self];
[[viewMenuItem submenu] addItem:nilToggle];
NSMenuItem *snippetToggle = [[NSMenuItem alloc] initWithTitle:@"Use <# comments #> for NSLocalizedString comment" action:@selector(toggleSnippetOption) keyEquivalent:@""];
[snippetToggle setTarget:self];
NSMenu *groupMenu = [[NSMenu alloc] initWithTitle:@"Quick Localization"];
[groupMenu addItem:localization];
[groupMenu addItem:nilToggle];
[groupMenu addItem:snippetToggle];
NSMenuItem *groupMenuItem = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:NULL keyEquivalent:@""];
[[viewMenuItem submenu] addItem:groupMenuItem];
[[viewMenuItem submenu] setSubmenu:groupMenu forItem:groupMenuItem];
}
}
return self;
@@ -90,6 +104,9 @@ static id sharedPlugin = nil;
if ([self shouldUseNilForComment]) {
outputString = [NSString stringWithFormat:@"NSLocalizedString(%@, nil)", string];
}
else if ([self shouldUseSnippetForComment]) {
outputString = [NSString stringWithFormat:@"NSLocalizedString(%@, <# comments #>)", string];
}
else {
outputString = [NSString stringWithFormat:@"NSLocalizedString(%@, %@)", string, string];
}
@@ -121,25 +138,43 @@ static id sharedPlugin = nil;
- (void)toggleNilOption {
[self setShouldUseNilForComment:![self shouldUseNilForComment]];
if (self.shouldUseNilForComment) {
self.shouldUseSnippetForComment = NO;
}
}
- (void)toggleSnippetOption {
self.shouldUseSnippetForComment = !self.shouldUseSnippetForComment;
if (self.shouldUseSnippetForComment) {
self.shouldUseNilForComment = NO;
}
}
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
if ([menuItem action] == @selector(toggleNilOption)) {
[menuItem setState:[self shouldUseNilForComment] ? NSOnState : NSOffState];
}
else if ([menuItem action] == @selector(toggleSnippetOption)) {
[menuItem setState:[self shouldUseSnippetForComment] ? NSOnState : NSOffState];
}
return YES;
}
#pragma mark Preferences
- (BOOL)shouldUseNilForComment
{
- (BOOL)shouldUseNilForComment {
return [[NSUserDefaults standardUserDefaults] boolForKey:QLShouldUseNilForComment];
}
- (void)setShouldUseNilForComment:(BOOL)shouldUseNilForComment
{
- (void)setShouldUseNilForComment:(BOOL)shouldUseNilForComment {
[[NSUserDefaults standardUserDefaults] setBool:shouldUseNilForComment forKey:QLShouldUseNilForComment];
}
- (BOOL)shouldUseSnippetForComment {
return [[NSUserDefaults standardUserDefaults] boolForKey:QLShouldUseSnippetForComment];
}
- (void)setShouldUseSnippetForComment:(BOOL)shouldUseSnippetForComment {
[[NSUserDefaults standardUserDefaults] setBool:shouldUseSnippetForComment forKey:QLShouldUseSnippetForComment];
}
@end