@@ -35,6 +35,7 @@ - (void)showSearchRewindPanelReverse:(BOOL)isReversed;
35
35
#define kGitXBasicSearchLabel @" Subject, Author, SHA"
36
36
#define kGitXPickaxeSearchLabel @" Commit (pickaxe)"
37
37
#define kGitXRegexSearchLabel @" Commit (pickaxe regex)"
38
+ #define kGitXPathSearchLabel @" File path"
38
39
39
40
#define kGitXSearchArrangedObjectsContext @" GitXSearchArrangedObjectsContext"
40
41
@@ -244,6 +245,11 @@ - (void)setupSearchMenuTemplate
244
245
item = [[NSMenuItem alloc ] initWithTitle: kGitXRegexSearchLabel action: @selector (selectSearchMode: ) keyEquivalent: @" " ];
245
246
[item setTarget: self ];
246
247
[item setTag: kGitXRegexSearchMode ];
248
+ [searchMenu addItem: item];
249
+
250
+ item = [[NSMenuItem alloc ] initWithTitle: kGitXPathSearchLabel action: @selector (selectSearchMode: ) keyEquivalent: @" " ];
251
+ [item setTarget: self ];
252
+ [item setTag: kGitXPathSearchMode ];
247
253
[searchMenu addItem: item];
248
254
249
255
item = [NSMenuItem separatorItem ];
@@ -289,6 +295,9 @@ - (void)updateSearchMenuState
289
295
item = [searchMenu itemWithTag: kGitXRegexSearchMode ];
290
296
[item setState: (searchMode == kGitXRegexSearchMode ) ? NSOnState : NSOffState ];
291
297
298
+ item = [searchMenu itemWithTag: kGitXPathSearchMode ];
299
+ [item setState: (searchMode == kGitXPathSearchMode ) ? NSOnState : NSOffState ];
300
+
292
301
[[searchField cell ] setSearchMenuTemplate: searchMenu];
293
302
294
303
[PBGitDefaults setHistorySearchMode: searchMode];
@@ -303,6 +312,9 @@ - (void)updateSearchPlaceholderString
303
312
case kGitXRegexSearchMode :
304
313
[[searchField cell ] setPlaceholderString: kGitXRegexSearchLabel ];
305
314
break ;
315
+ case kGitXPathSearchMode :
316
+ [[searchField cell ] setPlaceholderString: kGitXPathSearchLabel ];
317
+ break ;
306
318
default :
307
319
[[searchField cell ] setPlaceholderString: kGitXBasicSearchLabel ];
308
320
break ;
@@ -372,7 +384,7 @@ - (void)startBasicSearch
372
384
373
385
374
386
375
- #pragma mark Pickaxe/Regex Search
387
+ #pragma mark Background Search
376
388
377
389
- (void )startBackgroundSearch
378
390
{
@@ -390,9 +402,20 @@ - (void)startBackgroundSearch
390
402
391
403
results = nil ;
392
404
393
- NSMutableArray *searchArguments = [NSMutableArray arrayWithObjects: @" log" , @" --pretty=format:%H" , [NSString stringWithFormat: @" -S%@ " , searchString], nil ];
394
- if (self.searchMode == kGitXRegexSearchMode )
395
- [searchArguments insertObject: @" --pickaxe-regex" atIndex: 1 ];
405
+ NSMutableArray *searchArguments = [NSMutableArray arrayWithObjects: @" log" , @" --pretty=format:%H" , nil ];
406
+ switch (self.searchMode ) {
407
+ case kGitXRegexSearchMode :
408
+ [searchArguments addObject: @" --pickaxe-regex" ];
409
+ case kGitXPickaxeSearchMode :
410
+ [searchArguments addObject: [NSString stringWithFormat: @" -S%@ " , searchString]];
411
+ break ;
412
+ case kGitXPathSearchMode :
413
+ [searchArguments addObject: @" --" ];
414
+ [searchArguments addObjectsFromArray: [searchString componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet ]]];
415
+ break ;
416
+ default :
417
+ return ;
418
+ }
396
419
397
420
backgroundSearchTask = [PBEasyPipe taskForCommand: [PBGitBinary path ] withArgs: searchArguments inDir: [[historyController.repository fileURL ] path ]];
398
421
[backgroundSearchTask launch ];
0 commit comments