Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit afb36fe

Browse files
committed
Add space and customize trigger string.
Signed-off-by: onevcat <[email protected]>
1 parent 11fef3f commit afb36fe

4 files changed

Lines changed: 30 additions & 6 deletions

File tree

VVDocumenter-Xcode/Commenter/VVBaseCommenter.m

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88

99
#import "VVBaseCommenter.h"
1010
#import "VVArgument.h"
11+
#import "VVDocumenterSetting.h"
12+
13+
@interface VVBaseCommenter()
14+
@property (nonatomic, copy) NSString *space;
15+
@end
1116

1217
@implementation VVBaseCommenter
1318
-(id) initWithIndentString:(NSString *)indent codeString:(NSString *)code
@@ -17,13 +22,14 @@ -(id) initWithIndentString:(NSString *)indent codeString:(NSString *)code
1722
self.indent = indent;
1823
self.code = code;
1924
self.arguments = [NSMutableArray array];
25+
self.space = [[VVDocumenterSetting defaultSetting] spacesString];
2026
}
2127
return self;
2228
}
2329

2430
-(NSString *) startComment
2531
{
26-
return [NSString stringWithFormat:@"%@/**\n%@ *\t<#%@#>\n",self.indent,self.indent,@"Description"];
32+
return [NSString stringWithFormat:@"%@/**\n%@ *%@<#%@#>\n",self.indent,self.indent,self.space,@"Description"];
2733
}
2834

2935
-(NSString *) argumentsComment
@@ -33,7 +39,7 @@ -(NSString *) argumentsComment
3339
if (result.length == 0) {
3440
[result appendFormat:@"%@ *\n",self.indent];
3541
}
36-
[result appendFormat:@"%@ *\t@param\t%@\t<#%@ description#>\n",self.indent,arg.name,arg.name];
42+
[result appendFormat:@"%@ *%@@param%@%@%@<#%@ description#>\n",self.indent,self.space,self.space,arg.name,self.space,arg.name];
3743
}
3844
return result;
3945
}
@@ -44,7 +50,7 @@ -(NSString *) returnComment
4450
if (!self.hasReturn) {
4551
return @"";
4652
} else {
47-
return [NSString stringWithFormat:@"%@ *\n%@ *\t@return\t<#return value description#>\n",self.indent,self.indent];
53+
return [NSString stringWithFormat:@"%@ *\n%@ *%@@return%@<#return value description#>\n",self.indent,self.indent,self.space,self.space];
4854
}
4955
}
5056

VVDocumenter-Xcode/Setting/VVDocumenterSetting.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ extern NSString *const VVDDefaultTriggerString;
2222
-(NSString *) triggerString;
2323
-(void) setTriggerString:(NSString *)triggerString;
2424

25+
-(NSString *) spacesString;
26+
2527
@end

VVDocumenter-Xcode/Setting/VVDocumenterSetting.m

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ -(void) setSpaceCount:(NSInteger)spaceCount
5454
[[NSUserDefaults standardUserDefaults] synchronize];
5555
}
5656

57-
5857
-(NSString *) triggerString
5958
{
6059
NSString *s = [[NSUserDefaults standardUserDefaults] stringForKey:kVVDTriggerString];
@@ -75,4 +74,13 @@ -(void) setTriggerString:(NSString *)triggerString
7574
[[NSUserDefaults standardUserDefaults] synchronize];
7675
}
7776

77+
-(NSString *) spacesString
78+
{
79+
if ([self useSpaces]) {
80+
return [@"" stringByPaddingToLength:[self spaceCount] withString:@" " startingAtIndex:0];
81+
} else {
82+
return @"\t";
83+
}
84+
}
85+
7886
@end

VVDocumenter-Xcode/VVDocumenterManager.m

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#import "VVDocumenter.h"
1313
#import "VVKeyboardEventSender.h"
1414
#import "VVDSettingPanelWindowController.h"
15+
#import "VVDocumenterSetting.h"
1516

1617
@interface VVDocumenterManager()
1718
@property (nonatomic, retain) id eventMonitor;
@@ -79,9 +80,16 @@ - (void) textStorageDidChange:(NSNotification *)noti {
7980

8081
//Check if there is a "//" already typed in. We do this to solve the undo issue
8182
//Otherwise when you press Cmd+Z, "///" will be recognized and trigger the doc inserting, so you can not perform an undo.
82-
self.prefixTyped = [currentLineResult.string vv_matchesPatternRegexPattern:@"^\\s*//$"] | self.prefixTyped;
83+
NSString *triggerString = [[VVDocumenterSetting defaultSetting] triggerString];
8384

84-
if ([currentLineResult.string vv_matchesPatternRegexPattern:@"^\\s*///$"] && self.prefixTyped) {
85+
if (triggerString.length > 1) {
86+
NSString *preTypeString = [triggerString substringToIndex:triggerString.length - 2];
87+
self.prefixTyped = [currentLineResult.string vv_matchesPatternRegexPattern:[NSString stringWithFormat:@"^\\s*%@$",[NSRegularExpression escapedPatternForString:preTypeString]]] | self.prefixTyped;
88+
} else {
89+
self.prefixTyped = YES;
90+
}
91+
92+
if ([currentLineResult.string vv_matchesPatternRegexPattern:[NSString stringWithFormat:@"^\\s*%@$",[NSRegularExpression escapedPatternForString:triggerString]]] && self.prefixTyped) {
8593
self.prefixTyped = NO;
8694
//Get a @"///" typed in by user. Do work!
8795

0 commit comments

Comments
 (0)