Skip to content

Commit 4db9eb0

Browse files
author
Daniel Demiss
committed
Prefixed the category methods to reduce the risk of name collisions.
Categories on classes like NSString in your own codebase are one thing. Adding them in a bundle that is to be loaded by a behemoth like Xcode, is another. And since there are no namespaces in ObjC, and collisions in categories are essentially non-deterministic, extra care needs to be taken when doing so. Hence: Prefix All the Things!
1 parent efbb509 commit 4db9eb0

11 files changed

Lines changed: 79 additions & 79 deletions

File tree

VVDocumenter-Xcode/Commenter/VVArgument.m

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ @implementation VVArgument
1313
-(void)setType:(NSString *)type
1414
{
1515
if (type != _type) {
16-
_type = [[[type stringByReplacingRegexPattern:@"&$" withString:@""]
17-
stringByReplacingRegexPattern:@"\\s*\\*$" withString:@""]
16+
_type = [[[type vv_stringByReplacingRegexPattern:@"&$" withString:@""]
17+
vv_stringByReplacingRegexPattern:@"\\s*\\*$" withString:@""]
1818
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
1919
}
2020
}
2121

2222
-(void)setName:(NSString *)name
2323
{
2424
if (name != _name) {
25-
_name = [[[[[[name stringByReplacingRegexPattern:@"^&" withString:@""]
26-
stringByReplacingRegexPattern:@"^\\*+" withString:@""]
27-
stringByReplacingRegexPattern:@"\\[.*$" withString:@""]
28-
stringByReplacingRegexPattern:@",$" withString:@""]
29-
stringByReplacingRegexPattern:@";$" withString:@""]
25+
_name = [[[[[[name vv_stringByReplacingRegexPattern:@"^&" withString:@""]
26+
vv_stringByReplacingRegexPattern:@"^\\*+" withString:@""]
27+
vv_stringByReplacingRegexPattern:@"\\[.*$" withString:@""]
28+
vv_stringByReplacingRegexPattern:@",$" withString:@""]
29+
vv_stringByReplacingRegexPattern:@";$" withString:@""]
3030
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
3131
}
3232
}

VVDocumenter-Xcode/Commenter/VVBaseCommenter.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ -(NSString *) document
6464
-(void) parseArguments
6565
{
6666
[self.arguments removeAllObjects];
67-
NSArray * braceGroups = [self.code stringsByExtractingGroupsUsingRegexPattern:@"\\(([^\\(\\)]*)\\)"];
67+
NSArray * braceGroups = [self.code vv_stringsByExtractingGroupsUsingRegexPattern:@"\\(([^\\(\\)]*)\\)"];
6868
if (braceGroups.count > 0) {
6969
NSString *argumentGroupString = braceGroups[0];
7070
NSArray *argumentStrings = [argumentGroupString componentsSeparatedByString:@","];
7171
for (NSString *argumentString in argumentStrings) {
7272
VVArgument *arg = [[VVArgument alloc] init];
73-
argumentString = [argumentString stringByReplacingRegexPattern:@"\\s+$" withString:@""];
74-
argumentString = [argumentString stringByReplacingRegexPattern:@"\\s+" withString:@" "];
73+
argumentString = [argumentString vv_stringByReplacingRegexPattern:@"\\s+$" withString:@""];
74+
argumentString = [argumentString vv_stringByReplacingRegexPattern:@"\\s+" withString:@" "];
7575
NSMutableArray *tempArgs = [[argumentString componentsSeparatedByString:@" "] mutableCopy];
7676
while ([[tempArgs lastObject] isEqualToString:@" "]) {
7777
[tempArgs removeLastObject];

VVDocumenter-Xcode/Commenter/VVMacroCommenter.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ -(void) captureReturnType
1717

1818
-(void) captureParameters
1919
{
20-
if ([self.code matchesPatternRegexPattern:@"\\("]) {
20+
if ([self.code vv_matchesPatternRegexPattern:@"\\("]) {
2121
[self parseArguments];
2222
}
2323
}

VVDocumenter-Xcode/Commenter/VVMethodCommenter.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ @implementation VVMethodCommenter
1313

1414
-(void) captureReturnType
1515
{
16-
NSArray * matchedTypes = [self.code stringsByExtractingGroupsUsingRegexPattern:@"^\\s*[+-]\\s*\\(([^\\(\\)]*)\\)"];
16+
NSArray * matchedTypes = [self.code vv_stringsByExtractingGroupsUsingRegexPattern:@"^\\s*[+-]\\s*\\(([^\\(\\)]*)\\)"];
1717

1818
if (matchedTypes.count == 1) {
1919
NSString *typeString = [matchedTypes[0] stringByReplacingRegexPattern:@"[\\s*;.*]" withString:@""];
@@ -26,7 +26,7 @@ -(void) captureReturnType
2626

2727
-(void) captureParameters
2828
{
29-
NSArray * matchedParams = [self.code stringsByExtractingGroupsUsingRegexPattern:@"\\:\\(([^\\(]+)\\)(\\w+)"];
29+
NSArray * matchedParams = [self.code vv_stringsByExtractingGroupsUsingRegexPattern:@"\\:\\(([^\\(]+)\\)(\\w+)"];
3030
VVLog(@"matchedParams: %@",matchedParams);
3131
for (int i = 0; i < (int)matchedParams.count - 1; i = i + 2) {
3232
VVArgument *arg = [[VVArgument alloc] init];

VVDocumenter-Xcode/OCCategory/NSString+PDRegex/NSString+PDRegex.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
@interface NSString (PDRegex)
1212

13-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement;
14-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase;
15-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
16-
-(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex;
17-
-(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
18-
-(BOOL) matchesPatternRegexPattern:(NSString *)regex;
19-
-(BOOL) matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
13+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement;
14+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase;
15+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
16+
-(NSArray *) vv_stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex;
17+
-(NSArray *) vv_stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
18+
-(BOOL) vv_matchesPatternRegexPattern:(NSString *)regex;
19+
-(BOOL) vv_matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine;
2020

2121
@end

VVDocumenter-Xcode/OCCategory/NSString+PDRegex/NSString+PDRegex.m

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
@implementation NSString (PDRegex)
1212

13-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL)ignoreCase {
14-
return [self stringByReplacingRegexPattern:regex withString:replacement caseInsensitive:ignoreCase treatAsOneLine:NO];
13+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL)ignoreCase {
14+
return [self vv_stringByReplacingRegexPattern:regex withString:replacement caseInsensitive:ignoreCase treatAsOneLine:NO];
1515
}
1616

17-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
17+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
1818

1919
NSUInteger options=0;
2020
if (ignoreCase) {
@@ -35,11 +35,11 @@ -(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSStri
3535
return retVal;
3636
}
3737

38-
-(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement {
39-
return [self stringByReplacingRegexPattern:regex withString:replacement caseInsensitive:NO treatAsOneLine:NO];
38+
-(NSString *) vv_stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement {
39+
return [self vv_stringByReplacingRegexPattern:regex withString:replacement caseInsensitive:NO treatAsOneLine:NO];
4040
}
4141

42-
-(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
42+
-(NSArray *) vv_stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
4343
NSUInteger options=0;
4444
if (ignoreCase) {
4545
options = options | NSRegularExpressionCaseInsensitive;
@@ -66,11 +66,11 @@ -(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseIn
6666
return retVal;
6767
}
6868

69-
-(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex {
70-
return [self stringsByExtractingGroupsUsingRegexPattern:regex caseInsensitive:NO treatAsOneLine:NO];
69+
-(NSArray *) vv_stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex {
70+
return [self vv_stringsByExtractingGroupsUsingRegexPattern:regex caseInsensitive:NO treatAsOneLine:NO];
7171
}
7272

73-
-(BOOL) matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
73+
-(BOOL) vv_matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine {
7474
NSUInteger options=0;
7575
if (ignoreCase) {
7676
options = options | NSRegularExpressionCaseInsensitive;
@@ -89,8 +89,8 @@ -(BOOL) matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) igno
8989
return ([pattern numberOfMatchesInString:self options:0 range:NSMakeRange(0, [self length])] > 0);
9090
}
9191

92-
-(BOOL) matchesPatternRegexPattern:(NSString *)regex {
93-
return [self matchesPatternRegexPattern:regex caseInsensitive:NO treatAsOneLine:NO];
92+
-(BOOL) vv_matchesPatternRegexPattern:(NSString *)regex {
93+
return [self vv_matchesPatternRegexPattern:regex caseInsensitive:NO treatAsOneLine:NO];
9494
}
9595

9696
@end

VVDocumenter-Xcode/OCCategory/NSString+VVSyntax/NSString+VVSyntax.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
#import <Foundation/Foundation.h>
1010

1111
@interface NSString (VVSyntax)
12-
-(NSString *) stringByConvertingToUniform;
12+
-(NSString *) vv_stringByConvertingToUniform;
1313

14-
-(BOOL) isObjCMethod;
15-
-(BOOL) isProperty;
16-
-(BOOL) isCFunction;
17-
-(BOOL) isMacro;
18-
-(BOOL) isEnum;
19-
-(BOOL) isStruct;
20-
-(BOOL) isUnion;
21-
-(BOOL) isComplieKeyword;
14+
-(BOOL) vv_isObjCMethod;
15+
-(BOOL) vv_isProperty;
16+
-(BOOL) vv_isCFunction;
17+
-(BOOL) vv_isMacro;
18+
-(BOOL) vv_isEnum;
19+
-(BOOL) vv_isStruct;
20+
-(BOOL) vv_isUnion;
21+
-(BOOL) vv_isComplieKeyword;
2222
@end

VVDocumenter-Xcode/OCCategory/NSString+VVSyntax/NSString+VVSyntax.m

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,50 +10,50 @@
1010

1111
@implementation NSString (VVSyntax)
1212

13-
-(NSString *) stringByConvertingToUniform
13+
-(NSString *) vv_stringByConvertingToUniform
1414
{
15-
return [[self stringByReplacingRegexPattern:@"\\s*(\\(.*\?\\))\\s*" withString:@"$1"]
16-
stringByReplacingRegexPattern:@"\\s*\n\\s*" withString:@" "];
15+
return [[self vv_stringByReplacingRegexPattern:@"\\s*(\\(.*\?\\))\\s*" withString:@"$1"]
16+
vv_stringByReplacingRegexPattern:@"\\s*\n\\s*" withString:@" "];
1717
}
1818

19-
-(BOOL) isObjCMethod
19+
-(BOOL) vv_isObjCMethod
2020
{
21-
return [self matchesPatternRegexPattern:@"^\\s*[+-]"];
21+
return [self vv_matchesPatternRegexPattern:@"^\\s*[+-]"];
2222
}
2323

24-
-(BOOL) isCFunction
24+
-(BOOL) vv_isCFunction
2525
{
26-
return ![self isMacro] && ![self isObjCMethod] && ![self isProperty] && ![self isComplieKeyword] && [self matchesPatternRegexPattern:@".+\\s+.+\\("];
26+
return ![self vv_isMacro] && ![self vv_isObjCMethod] && ![self vv_isProperty] && ![self vv_isComplieKeyword] && [self vv_matchesPatternRegexPattern:@".+\\s+.+\\("];
2727
}
2828

29-
-(BOOL) isProperty
29+
-(BOOL) vv_isProperty
3030
{
31-
return [self matchesPatternRegexPattern:@"^\\s*\\@property"];
31+
return [self vv_matchesPatternRegexPattern:@"^\\s*\\@property"];
3232
}
3333

34-
-(BOOL) isMacro
34+
-(BOOL) vv_isMacro
3535
{
36-
return [self matchesPatternRegexPattern:@"^\\s*\\#define"];
36+
return [self vv_matchesPatternRegexPattern:@"^\\s*\\#define"];
3737
}
3838

39-
-(BOOL) isStruct
39+
-(BOOL) vv_isStruct
4040
{
41-
return [self matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?struct.*\\{"];
41+
return [self vv_matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?struct.*\\{"];
4242
}
4343

44-
-(BOOL) isEnum
44+
-(BOOL) vv_isEnum
4545
{
46-
return [self matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?enum.*\\{"];
46+
return [self vv_matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?enum.*\\{"];
4747
}
4848

49-
-(BOOL) isUnion
49+
-(BOOL) vv_isUnion
5050
{
51-
return [self matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?union.*\\{"];
51+
return [self vv_matchesPatternRegexPattern:@"^\\s*(\\w+\\s)?union.*\\{"];
5252
}
5353

54-
-(BOOL) isComplieKeyword
54+
-(BOOL) vv_isComplieKeyword
5555
{
56-
return ![self isProperty] && [self matchesPatternRegexPattern:@"^\\s*\\@"];
56+
return ![self vv_isProperty] && [self vv_matchesPatternRegexPattern:@"^\\s*\\@"];
5757
}
5858

5959
@end

VVDocumenter-Xcode/VVDocumenter.m

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ -(id) initWithCode:(NSString *)code
2424
if (self) {
2525
//Trim the space around the braces
2626
//Then trim the new line character
27-
self.code = [[code stringByReplacingRegexPattern:@"\\s*(\\(.*\?\\))\\s*" withString:@"$1"]
28-
stringByReplacingRegexPattern:@"\\s*\n\\s*" withString:@" "];
27+
self.code = [[code vv_stringByReplacingRegexPattern:@"\\s*(\\(.*\?\\))\\s*" withString:@"$1"]
28+
vv_stringByReplacingRegexPattern:@"\\s*\n\\s*" withString:@" "];
2929

3030
}
3131
return self;
3232
}
3333

3434
-(NSString *) baseIndentation
3535
{
36-
NSArray *matchedSpaces = [self.code stringsByExtractingGroupsUsingRegexPattern:@"^(\\s*)"];
36+
NSArray *matchedSpaces = [self.code vv_stringsByExtractingGroupsUsingRegexPattern:@"^(\\s*)"];
3737
if (matchedSpaces.count > 0) {
3838
return matchedSpaces[0];
3939
} else {
@@ -47,19 +47,19 @@ -(NSString *) document
4747
NSString *baseIndent = [self baseIndentation];
4848

4949
VVBaseCommenter *commenter = nil;
50-
if ([trimCode isObjCMethod]) {
50+
if ([trimCode vv_isObjCMethod]) {
5151
commenter = [[VVMethodCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
52-
} else if ([trimCode isProperty]) {
52+
} else if ([trimCode vv_isProperty]) {
5353
commenter = [[VVPropertyCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
54-
} else if ([trimCode isCFunction]) {
54+
} else if ([trimCode vv_isCFunction]) {
5555
commenter = [[VVFunctionCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
56-
} else if ([trimCode isMacro]) {
56+
} else if ([trimCode vv_isMacro]) {
5757
commenter = [[VVMacroCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
58-
} else if ([trimCode isStruct]) {
58+
} else if ([trimCode vv_isStruct]) {
5959
commenter = [[VVStructCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
60-
} else if ([trimCode isUnion]) {
60+
} else if ([trimCode vv_isUnion]) {
6161
commenter = [[VVStructCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
62-
} else if ([trimCode isEnum]) {
62+
} else if ([trimCode vv_isEnum]) {
6363
commenter = [[VVEnumCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];
6464
} else {
6565
commenter = [[VVVariableCommenter alloc] initWithIndentString:baseIndent codeString:trimCode];

VVDocumenter-Xcode/VVDocumenterManager.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ - (void) textStorageDidChanged:(NSNotification *)noti {
5151
NSTextView *textView = (NSTextView *)[noti object];
5252
VVTextResult *currentLineResult = [textView textResultOfCurrentLine];
5353
if (currentLineResult) {
54-
if ([currentLineResult.string matchesPatternRegexPattern:@"^\\s*///"]) {
54+
if ([currentLineResult.string vv_matchesPatternRegexPattern:@"^\\s*///"]) {
5555
//Get a @"///". Do work!
5656

5757
//Decide which is closer to the cursor. A semicolon or a half brace.

0 commit comments

Comments
 (0)