@codingame/monaco-vscode-search-service-override 4.5.1 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +82 -120
- package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +29 -40
- package/vscode/src/vs/workbench/contrib/search/browser/quickTextSearch/textSearchQuickAccess.js +21 -44
- package/vscode/src/vs/workbench/contrib/search/browser/replaceService.js +34 -35
- package/vscode/src/vs/workbench/contrib/search/browser/search.contribution.js +132 -217
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsCopy.js +8 -19
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsNav.js +46 -131
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsRemoveReplace.js +24 -42
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsSymbol.js +4 -15
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTextQuickAccess.js +2 -5
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +52 -61
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +6 -13
- package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +22 -97
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +5 -9
- package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +53 -104
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +168 -282
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +52 -81
- package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +14 -25
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.js +38 -120
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.js +50 -79
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +30 -40
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +21 -42
- package/vscode/src/vs/workbench/services/search/browser/searchService.js +29 -36
- package/vscode/src/vs/workbench/services/search/common/searchService.js +3 -3
|
@@ -78,12 +78,9 @@ import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/
|
|
|
78
78
|
import { TextSearchCompleteMessageType } from 'vscode/vscode/vs/workbench/services/search/common/searchExtTypes';
|
|
79
79
|
|
|
80
80
|
var SearchView_1;
|
|
81
|
+
const _moduleId = "vs/workbench/contrib/search/browser/searchView";
|
|
81
82
|
const $ = $$1;
|
|
82
|
-
const SEARCH_CANCELLED_MESSAGE = ( localizeWithPath(
|
|
83
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
84
|
-
'searchCanceled',
|
|
85
|
-
"Search was canceled before any results could be found - "
|
|
86
|
-
));
|
|
83
|
+
const SEARCH_CANCELLED_MESSAGE = ( localizeWithPath(_moduleId, 0, "Search was canceled before any results could be found - "));
|
|
87
84
|
const DEBOUNCE_DELAY = 75;
|
|
88
85
|
let SearchView = class SearchView extends ViewPane {
|
|
89
86
|
static { SearchView_1 = this; }
|
|
@@ -111,7 +108,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
111
108
|
this.accessibilitySignalService = accessibilitySignalService;
|
|
112
109
|
this.isDisposed = false;
|
|
113
110
|
this.lastFocusState = 'input';
|
|
114
|
-
this.messageDisposables = ( new DisposableStore());
|
|
111
|
+
this.messageDisposables = ( (new DisposableStore()));
|
|
115
112
|
this.changedWhileHidden = false;
|
|
116
113
|
this.currentSearchQ = Promise.resolve();
|
|
117
114
|
this.pauseSearching = false;
|
|
@@ -135,8 +132,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
135
132
|
this.treeViewKey = SearchContext.InTreeViewKey.bindTo(this.contextKeyService);
|
|
136
133
|
this.aiResultsVisibleKey = SearchContext.AIResultsVisibleKey.bindTo(this.contextKeyService);
|
|
137
134
|
this._register(this.contextKeyService.onDidChangeContext(e => {
|
|
138
|
-
const keys = ( SearchContext.hasAIResultProvider.keys());
|
|
139
|
-
if (e.affectsSome(( new Set(keys)))) {
|
|
135
|
+
const keys = ( (SearchContext.hasAIResultProvider.keys()));
|
|
136
|
+
if (e.affectsSome(( (new Set(keys))))) {
|
|
140
137
|
this.refreshHasAISetting();
|
|
141
138
|
}
|
|
142
139
|
}));
|
|
@@ -146,7 +143,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
146
143
|
this.inputPatternIncludesFocused = SearchContext.PatternIncludesFocusedKey.bindTo(this.contextKeyService);
|
|
147
144
|
this.inputPatternExclusionsFocused = SearchContext.PatternExcludesFocusedKey.bindTo(this.contextKeyService);
|
|
148
145
|
this.isEditableItem = SearchContext.IsEditableItemKey.bindTo(this.contextKeyService);
|
|
149
|
-
this.instantiationService = this.instantiationService.createChild(( new ServiceCollection([IContextKeyService, this.contextKeyService])));
|
|
146
|
+
this.instantiationService = this.instantiationService.createChild(( (new ServiceCollection([IContextKeyService, this.contextKeyService]))));
|
|
150
147
|
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
151
148
|
if (e.affectsConfiguration('search.sortOrder')) {
|
|
152
149
|
if (this.searchConfig.sortOrder === "modified" ) {
|
|
@@ -160,24 +157,24 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
160
157
|
}));
|
|
161
158
|
this.viewModel = this._register(this.searchViewModelWorkbenchService.searchModel);
|
|
162
159
|
this.queryBuilder = this.instantiationService.createInstance(QueryBuilder);
|
|
163
|
-
this.memento = ( new Memento(this.id, storageService));
|
|
160
|
+
this.memento = ( (new Memento(this.id, storageService)));
|
|
164
161
|
this.viewletState = this.memento.getMemento(1 , 1 );
|
|
165
162
|
this._register(this.fileService.onDidFilesChange(e => this.onFilesChanged(e)));
|
|
166
163
|
this._register(this.textFileService.untitled.onWillDispose(model => this.onUntitledDidDispose(model.resource)));
|
|
167
164
|
this._register(this.contextService.onDidChangeWorkbenchState(() => this.onDidChangeWorkbenchState()));
|
|
168
165
|
this._register(this.searchHistoryService.onDidClearHistory(() => this.clearHistory()));
|
|
169
166
|
this._register(this.configurationService.onDidChangeConfiguration(e => this.onConfigurationUpdated(e)));
|
|
170
|
-
this.delayedRefresh = this._register(( new Delayer(250)));
|
|
171
|
-
this.addToSearchHistoryDelayer = this._register(( new Delayer(2000)));
|
|
172
|
-
this.toggleCollapseStateDelayer = this._register(( new Delayer(100)));
|
|
173
|
-
this.triggerQueryDelayer = this._register(( new Delayer(0)));
|
|
167
|
+
this.delayedRefresh = this._register(( (new Delayer(250))));
|
|
168
|
+
this.addToSearchHistoryDelayer = this._register(( (new Delayer(2000))));
|
|
169
|
+
this.toggleCollapseStateDelayer = this._register(( (new Delayer(100))));
|
|
170
|
+
this.triggerQueryDelayer = this._register(( (new Delayer(0))));
|
|
174
171
|
this.treeAccessibilityProvider = this.instantiationService.createInstance(SearchAccessibilityProvider, this);
|
|
175
172
|
this.isTreeLayoutViewVisible = this.viewletState['view.treeLayout'] ?? ((this.searchConfig.defaultViewMode === "tree") );
|
|
176
|
-
this._refreshResultsScheduler = this._register(( new RunOnceScheduler(this._updateResults.bind(this), 80)));
|
|
173
|
+
this._refreshResultsScheduler = this._register(( (new RunOnceScheduler(this._updateResults.bind(this), 80))));
|
|
177
174
|
this._register(this.storageService.onWillSaveState(() => {
|
|
178
175
|
this._saveSearchHistoryService();
|
|
179
176
|
}));
|
|
180
|
-
this._register(this.storageService.onDidChangeValue(1 , SearchHistoryService.SEARCH_HISTORY_KEY, this._register(( new DisposableStore())))(() => {
|
|
177
|
+
this._register(this.storageService.onDidChangeValue(1 , SearchHistoryService.SEARCH_HISTORY_KEY, this._register(( (new DisposableStore()))))(() => {
|
|
181
178
|
const restoredHistory = this.searchHistoryService.load();
|
|
182
179
|
if (restoredHistory.include) {
|
|
183
180
|
this.inputPatternIncludes.prependHistory(restoredHistory.include);
|
|
@@ -271,7 +268,9 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
271
268
|
async replaceSearchModel(searchModel, asyncResults) {
|
|
272
269
|
let progressComplete;
|
|
273
270
|
this.progressService.withProgress({ location: this.getProgressLocation(), delay: 0 }, _progress => {
|
|
274
|
-
return (
|
|
271
|
+
return (
|
|
272
|
+
(new Promise(resolve => progressComplete = resolve))
|
|
273
|
+
);
|
|
275
274
|
});
|
|
276
275
|
const slowTimer = setTimeout(() => {
|
|
277
276
|
this.state = SearchUIState.SlowSearch;
|
|
@@ -319,24 +318,20 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
319
318
|
this.viewletState['query.useExcludesAndIgnoreFiles'] : true;
|
|
320
319
|
this.queryDetails = append(this.searchWidgetsContainerElement, $('.query-details'));
|
|
321
320
|
this.toggleQueryDetailsButton = append(this.queryDetails, $('.more' + ThemeIcon.asCSSSelector(searchDetailsIcon), { tabindex: 0, role: 'button' }));
|
|
322
|
-
this._register(setupCustomHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localizeWithPath(
|
|
323
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
324
|
-
'moreSearch',
|
|
325
|
-
"Toggle Search Details"
|
|
326
|
-
))));
|
|
321
|
+
this._register(setupCustomHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localizeWithPath(_moduleId, 1, "Toggle Search Details"))));
|
|
327
322
|
this._register(addDisposableListener(this.toggleQueryDetailsButton, EventType.CLICK, e => {
|
|
328
323
|
EventHelper.stop(e);
|
|
329
324
|
this.toggleQueryDetails(!this.accessibilityService.isScreenReaderOptimized());
|
|
330
325
|
}));
|
|
331
326
|
this._register(addDisposableListener(this.toggleQueryDetailsButton, EventType.KEY_UP, (e) => {
|
|
332
|
-
const event = ( new StandardKeyboardEvent(e));
|
|
327
|
+
const event = ( (new StandardKeyboardEvent(e)));
|
|
333
328
|
if (event.equals(3 ) || event.equals(10 )) {
|
|
334
329
|
EventHelper.stop(e);
|
|
335
330
|
this.toggleQueryDetails(false);
|
|
336
331
|
}
|
|
337
332
|
}));
|
|
338
333
|
this._register(addDisposableListener(this.toggleQueryDetailsButton, EventType.KEY_DOWN, (e) => {
|
|
339
|
-
const event = ( new StandardKeyboardEvent(e));
|
|
334
|
+
const event = ( (new StandardKeyboardEvent(e)));
|
|
340
335
|
if (event.equals(1024 | 2 )) {
|
|
341
336
|
if (this.searchWidget.isReplaceActive()) {
|
|
342
337
|
this.searchWidget.focusReplaceAllAction();
|
|
@@ -348,19 +343,11 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
348
343
|
}
|
|
349
344
|
}));
|
|
350
345
|
const folderIncludesList = append(this.queryDetails, $('.file-types.includes'));
|
|
351
|
-
const filesToIncludeTitle = ( localizeWithPath(
|
|
352
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
353
|
-
'searchScope.includes',
|
|
354
|
-
"files to include"
|
|
355
|
-
));
|
|
346
|
+
const filesToIncludeTitle = ( localizeWithPath(_moduleId, 2, "files to include"));
|
|
356
347
|
append(folderIncludesList, $('h4', undefined, filesToIncludeTitle));
|
|
357
348
|
this.inputPatternIncludes = this._register(this.instantiationService.createInstance(IncludePatternInputWidget, folderIncludesList, this.contextViewService, {
|
|
358
349
|
ariaLabel: filesToIncludeTitle,
|
|
359
|
-
placeholder: ( localizeWithPath(
|
|
360
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
361
|
-
'placeholder.includes',
|
|
362
|
-
"e.g. *.ts, src/**/include"
|
|
363
|
-
)),
|
|
350
|
+
placeholder: ( localizeWithPath(_moduleId, 3, "e.g. *.ts, src/**/include")),
|
|
364
351
|
showPlaceholderOnFocus: true,
|
|
365
352
|
history: patternIncludesHistory,
|
|
366
353
|
inputBoxStyles: defaultInputBoxStyles
|
|
@@ -371,19 +358,11 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
371
358
|
this._register(this.inputPatternIncludes.onChangeSearchInEditorsBox(() => this.triggerQueryChange()));
|
|
372
359
|
this.trackInputBox(this.inputPatternIncludes.inputFocusTracker, this.inputPatternIncludesFocused);
|
|
373
360
|
const excludesList = append(this.queryDetails, $('.file-types.excludes'));
|
|
374
|
-
const excludesTitle = ( localizeWithPath(
|
|
375
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
376
|
-
'searchScope.excludes',
|
|
377
|
-
"files to exclude"
|
|
378
|
-
));
|
|
361
|
+
const excludesTitle = ( localizeWithPath(_moduleId, 4, "files to exclude"));
|
|
379
362
|
append(excludesList, $('h4', undefined, excludesTitle));
|
|
380
363
|
this.inputPatternExcludes = this._register(this.instantiationService.createInstance(ExcludePatternInputWidget, excludesList, this.contextViewService, {
|
|
381
364
|
ariaLabel: excludesTitle,
|
|
382
|
-
placeholder: ( localizeWithPath(
|
|
383
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
384
|
-
'placeholder.excludes',
|
|
385
|
-
"e.g. *.ts, src/**/exclude"
|
|
386
|
-
)),
|
|
365
|
+
placeholder: ( localizeWithPath(_moduleId, 5, "e.g. *.ts, src/**/exclude")),
|
|
387
366
|
showPlaceholderOnFocus: true,
|
|
388
367
|
history: patternExclusionsHistory,
|
|
389
368
|
inputBoxStyles: defaultInputBoxStyles
|
|
@@ -590,33 +569,39 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
590
569
|
if (folderMatches.length === 1) {
|
|
591
570
|
return this.createFolderIterator(folderMatches[0], collapseResults, true);
|
|
592
571
|
}
|
|
593
|
-
return (
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
572
|
+
return (
|
|
573
|
+
(Iterable.map(folderMatches, folderMatch => {
|
|
574
|
+
const children = this.createFolderIterator(folderMatch, collapseResults, true);
|
|
575
|
+
return { element: folderMatch, children, incompressible: true };
|
|
576
|
+
}))
|
|
577
|
+
);
|
|
597
578
|
}
|
|
598
579
|
createFolderIterator(folderMatch, collapseResults, childFolderIncompressible) {
|
|
599
580
|
const sortOrder = this.searchConfig.sortOrder;
|
|
600
581
|
const matchArray = this.isTreeLayoutViewVisible ? folderMatch.matches() : folderMatch.allDownstreamFileMatches();
|
|
601
582
|
const matches = matchArray.sort((a, b) => searchMatchComparer(a, b, sortOrder));
|
|
602
|
-
return (
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
583
|
+
return (
|
|
584
|
+
(Iterable.map(matches, match => {
|
|
585
|
+
let children;
|
|
586
|
+
if (match instanceof FileMatch) {
|
|
587
|
+
children = this.createFileIterator(match);
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
children = this.createFolderIterator(match, collapseResults, false);
|
|
591
|
+
}
|
|
592
|
+
const collapsed = (collapseResults === 'alwaysCollapse' || (match.count() > 10 && collapseResults !== 'alwaysExpand')) ? ObjectTreeElementCollapseState.PreserveOrCollapsed : ObjectTreeElementCollapseState.PreserveOrExpanded;
|
|
593
|
+
return { element: match, children, collapsed, incompressible: (match instanceof FileMatch) ? true : childFolderIncompressible };
|
|
594
|
+
}))
|
|
595
|
+
);
|
|
613
596
|
}
|
|
614
597
|
createFileIterator(fileMatch) {
|
|
615
598
|
let matches = fileMatch.matches().sort(searchMatchComparer);
|
|
616
599
|
if (!this.aiResultsVisible) {
|
|
617
600
|
matches = matches.filter(e => !e.aiContributed);
|
|
618
601
|
}
|
|
619
|
-
return (
|
|
602
|
+
return (
|
|
603
|
+
(Iterable.map(matches, r => ({ element: r, incompressible: true })))
|
|
604
|
+
);
|
|
620
605
|
}
|
|
621
606
|
createIterator(match, collapseResults) {
|
|
622
607
|
return match instanceof SearchResult ? this.createResultIterator(collapseResults) :
|
|
@@ -635,20 +620,14 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
635
620
|
let progressReporter;
|
|
636
621
|
this.progressService.withProgress({ location: this.getProgressLocation(), delay: 100, total: occurrences }, p => {
|
|
637
622
|
progressReporter = p;
|
|
638
|
-
return (
|
|
623
|
+
return (
|
|
624
|
+
(new Promise(resolve => progressComplete = resolve))
|
|
625
|
+
);
|
|
639
626
|
});
|
|
640
627
|
const confirmation = {
|
|
641
|
-
title: ( localizeWithPath(
|
|
642
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
643
|
-
'replaceAll.confirmation.title',
|
|
644
|
-
"Replace All"
|
|
645
|
-
)),
|
|
628
|
+
title: ( localizeWithPath(_moduleId, 6, "Replace All")),
|
|
646
629
|
message: this.buildReplaceAllConfirmationMessage(occurrences, fileCount, replaceValue),
|
|
647
|
-
primaryButton: ( localizeWithPath(
|
|
648
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
649
|
-
{ key: 'replaceAll.confirm.button', comment: ['&& denotes a mnemonic'] },
|
|
650
|
-
"&&Replace"
|
|
651
|
-
))
|
|
630
|
+
primaryButton: ( localizeWithPath(_moduleId, 7, "&&Replace"))
|
|
652
631
|
};
|
|
653
632
|
this.dialogService.confirm(confirmation).then(res => {
|
|
654
633
|
if (res.confirmed) {
|
|
@@ -673,8 +652,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
673
652
|
if (fileCount === 1) {
|
|
674
653
|
if (replaceValue) {
|
|
675
654
|
return ( localizeWithPath(
|
|
676
|
-
|
|
677
|
-
|
|
655
|
+
_moduleId,
|
|
656
|
+
8,
|
|
678
657
|
"Replaced {0} occurrence across {1} file with '{2}'.",
|
|
679
658
|
occurrences,
|
|
680
659
|
fileCount,
|
|
@@ -682,8 +661,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
682
661
|
));
|
|
683
662
|
}
|
|
684
663
|
return ( localizeWithPath(
|
|
685
|
-
|
|
686
|
-
|
|
664
|
+
_moduleId,
|
|
665
|
+
9,
|
|
687
666
|
"Replaced {0} occurrence across {1} file.",
|
|
688
667
|
occurrences,
|
|
689
668
|
fileCount
|
|
@@ -691,8 +670,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
691
670
|
}
|
|
692
671
|
if (replaceValue) {
|
|
693
672
|
return ( localizeWithPath(
|
|
694
|
-
|
|
695
|
-
|
|
673
|
+
_moduleId,
|
|
674
|
+
10,
|
|
696
675
|
"Replaced {0} occurrence across {1} files with '{2}'.",
|
|
697
676
|
occurrences,
|
|
698
677
|
fileCount,
|
|
@@ -700,8 +679,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
700
679
|
));
|
|
701
680
|
}
|
|
702
681
|
return ( localizeWithPath(
|
|
703
|
-
|
|
704
|
-
|
|
682
|
+
_moduleId,
|
|
683
|
+
11,
|
|
705
684
|
"Replaced {0} occurrence across {1} files.",
|
|
706
685
|
occurrences,
|
|
707
686
|
fileCount
|
|
@@ -710,8 +689,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
710
689
|
if (fileCount === 1) {
|
|
711
690
|
if (replaceValue) {
|
|
712
691
|
return ( localizeWithPath(
|
|
713
|
-
|
|
714
|
-
|
|
692
|
+
_moduleId,
|
|
693
|
+
12,
|
|
715
694
|
"Replaced {0} occurrences across {1} file with '{2}'.",
|
|
716
695
|
occurrences,
|
|
717
696
|
fileCount,
|
|
@@ -719,8 +698,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
719
698
|
));
|
|
720
699
|
}
|
|
721
700
|
return ( localizeWithPath(
|
|
722
|
-
|
|
723
|
-
|
|
701
|
+
_moduleId,
|
|
702
|
+
13,
|
|
724
703
|
"Replaced {0} occurrences across {1} file.",
|
|
725
704
|
occurrences,
|
|
726
705
|
fileCount
|
|
@@ -728,8 +707,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
728
707
|
}
|
|
729
708
|
if (replaceValue) {
|
|
730
709
|
return ( localizeWithPath(
|
|
731
|
-
|
|
732
|
-
|
|
710
|
+
_moduleId,
|
|
711
|
+
14,
|
|
733
712
|
"Replaced {0} occurrences across {1} files with '{2}'.",
|
|
734
713
|
occurrences,
|
|
735
714
|
fileCount,
|
|
@@ -737,8 +716,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
737
716
|
));
|
|
738
717
|
}
|
|
739
718
|
return ( localizeWithPath(
|
|
740
|
-
|
|
741
|
-
|
|
719
|
+
_moduleId,
|
|
720
|
+
15,
|
|
742
721
|
"Replaced {0} occurrences across {1} files.",
|
|
743
722
|
occurrences,
|
|
744
723
|
fileCount
|
|
@@ -749,8 +728,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
749
728
|
if (fileCount === 1) {
|
|
750
729
|
if (replaceValue) {
|
|
751
730
|
return ( localizeWithPath(
|
|
752
|
-
|
|
753
|
-
|
|
731
|
+
_moduleId,
|
|
732
|
+
16,
|
|
754
733
|
"Replace {0} occurrence across {1} file with '{2}'?",
|
|
755
734
|
occurrences,
|
|
756
735
|
fileCount,
|
|
@@ -758,8 +737,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
758
737
|
));
|
|
759
738
|
}
|
|
760
739
|
return ( localizeWithPath(
|
|
761
|
-
|
|
762
|
-
|
|
740
|
+
_moduleId,
|
|
741
|
+
17,
|
|
763
742
|
"Replace {0} occurrence across {1} file?",
|
|
764
743
|
occurrences,
|
|
765
744
|
fileCount
|
|
@@ -767,8 +746,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
767
746
|
}
|
|
768
747
|
if (replaceValue) {
|
|
769
748
|
return ( localizeWithPath(
|
|
770
|
-
|
|
771
|
-
|
|
749
|
+
_moduleId,
|
|
750
|
+
18,
|
|
772
751
|
"Replace {0} occurrence across {1} files with '{2}'?",
|
|
773
752
|
occurrences,
|
|
774
753
|
fileCount,
|
|
@@ -776,8 +755,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
776
755
|
));
|
|
777
756
|
}
|
|
778
757
|
return ( localizeWithPath(
|
|
779
|
-
|
|
780
|
-
|
|
758
|
+
_moduleId,
|
|
759
|
+
19,
|
|
781
760
|
"Replace {0} occurrence across {1} files?",
|
|
782
761
|
occurrences,
|
|
783
762
|
fileCount
|
|
@@ -786,8 +765,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
786
765
|
if (fileCount === 1) {
|
|
787
766
|
if (replaceValue) {
|
|
788
767
|
return ( localizeWithPath(
|
|
789
|
-
|
|
790
|
-
|
|
768
|
+
_moduleId,
|
|
769
|
+
20,
|
|
791
770
|
"Replace {0} occurrences across {1} file with '{2}'?",
|
|
792
771
|
occurrences,
|
|
793
772
|
fileCount,
|
|
@@ -795,8 +774,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
795
774
|
));
|
|
796
775
|
}
|
|
797
776
|
return ( localizeWithPath(
|
|
798
|
-
|
|
799
|
-
|
|
777
|
+
_moduleId,
|
|
778
|
+
21,
|
|
800
779
|
"Replace {0} occurrences across {1} file?",
|
|
801
780
|
occurrences,
|
|
802
781
|
fileCount
|
|
@@ -804,8 +783,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
804
783
|
}
|
|
805
784
|
if (replaceValue) {
|
|
806
785
|
return ( localizeWithPath(
|
|
807
|
-
|
|
808
|
-
|
|
786
|
+
_moduleId,
|
|
787
|
+
22,
|
|
809
788
|
"Replace {0} occurrences across {1} files with '{2}'?",
|
|
810
789
|
occurrences,
|
|
811
790
|
fileCount,
|
|
@@ -813,8 +792,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
813
792
|
));
|
|
814
793
|
}
|
|
815
794
|
return ( localizeWithPath(
|
|
816
|
-
|
|
817
|
-
|
|
795
|
+
_moduleId,
|
|
796
|
+
23,
|
|
818
797
|
"Replace {0} occurrences across {1} files?",
|
|
819
798
|
occurrences,
|
|
820
799
|
fileCount
|
|
@@ -1185,11 +1164,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1185
1164
|
this.searchWidget.clear();
|
|
1186
1165
|
}
|
|
1187
1166
|
this.viewModel.cancelSearch();
|
|
1188
|
-
this.tree.ariaLabel = ( localizeWithPath(
|
|
1189
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1190
|
-
'emptySearch',
|
|
1191
|
-
"Empty Search"
|
|
1192
|
-
));
|
|
1167
|
+
this.tree.ariaLabel = ( localizeWithPath(_moduleId, 24, "Empty Search"));
|
|
1193
1168
|
this.accessibilitySignalService.playSignal(AccessibilitySignal.clear);
|
|
1194
1169
|
this.reLayout();
|
|
1195
1170
|
}
|
|
@@ -1324,7 +1299,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1324
1299
|
this._searchWithIncludeOrExclude(false, folderPaths);
|
|
1325
1300
|
}
|
|
1326
1301
|
_searchWithIncludeOrExclude(include, folderPaths) {
|
|
1327
|
-
if (!folderPaths.length || ( folderPaths.some(folderPath => folderPath === '.'))) {
|
|
1302
|
+
if (!folderPaths.length || ( (folderPaths.some(folderPath => folderPath === '.')))) {
|
|
1328
1303
|
this.inputPatternIncludes.setValue('');
|
|
1329
1304
|
this.searchWidget.focus();
|
|
1330
1305
|
return;
|
|
@@ -1406,7 +1381,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1406
1381
|
};
|
|
1407
1382
|
let query;
|
|
1408
1383
|
try {
|
|
1409
|
-
query = this.queryBuilder.text(content, ( folderResources.map(folder => folder.uri)), options);
|
|
1384
|
+
query = this.queryBuilder.text(content, ( (folderResources.map(folder => folder.uri))), options);
|
|
1410
1385
|
}
|
|
1411
1386
|
catch (err) {
|
|
1412
1387
|
onQueryValidationError(err);
|
|
@@ -1420,9 +1395,9 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1420
1395
|
}, onQueryValidationError);
|
|
1421
1396
|
}
|
|
1422
1397
|
validateQuery(query) {
|
|
1423
|
-
const folderQueriesExistP = ( query.folderQueries.map(fq => {
|
|
1398
|
+
const folderQueriesExistP = ( (query.folderQueries.map(fq => {
|
|
1424
1399
|
return this.fileService.exists(fq.folder).catch(() => false);
|
|
1425
|
-
}));
|
|
1400
|
+
})));
|
|
1426
1401
|
return Promise.all(folderQueriesExistP).then(existResults => {
|
|
1427
1402
|
const existingFolderQueries = query.folderQueries.filter((folderQuery, i) => existResults[i]);
|
|
1428
1403
|
if (!query.folderQueries.length || existingFolderQueries.length) {
|
|
@@ -1430,13 +1405,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1430
1405
|
}
|
|
1431
1406
|
else {
|
|
1432
1407
|
const nonExistantPath = query.folderQueries[0].folder.fsPath;
|
|
1433
|
-
const searchPathNotFoundError = ( localizeWithPath(
|
|
1434
|
-
|
|
1435
|
-
'searchPathNotFoundError',
|
|
1436
|
-
"Search path not found: {0}",
|
|
1437
|
-
nonExistantPath
|
|
1438
|
-
));
|
|
1439
|
-
return Promise.reject(( new Error(searchPathNotFoundError)));
|
|
1408
|
+
const searchPathNotFoundError = ( localizeWithPath(_moduleId, 25, "Search path not found: {0}", nonExistantPath));
|
|
1409
|
+
return Promise.reject(( (new Error(searchPathNotFoundError))));
|
|
1440
1410
|
}
|
|
1441
1411
|
return undefined;
|
|
1442
1412
|
});
|
|
@@ -1493,8 +1463,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1493
1463
|
else if (this.inputPatternIncludes.onlySearchInOpenEditors()) {
|
|
1494
1464
|
if (hasIncludes && hasExcludes) {
|
|
1495
1465
|
message = ( localizeWithPath(
|
|
1496
|
-
|
|
1497
|
-
|
|
1466
|
+
_moduleId,
|
|
1467
|
+
26,
|
|
1498
1468
|
"No results found in open editors matching '{0}' excluding '{1}' - ",
|
|
1499
1469
|
includePatternText,
|
|
1500
1470
|
excludePatternText
|
|
@@ -1502,24 +1472,24 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1502
1472
|
}
|
|
1503
1473
|
else if (hasIncludes) {
|
|
1504
1474
|
message = ( localizeWithPath(
|
|
1505
|
-
|
|
1506
|
-
|
|
1475
|
+
_moduleId,
|
|
1476
|
+
27,
|
|
1507
1477
|
"No results found in open editors matching '{0}' - ",
|
|
1508
1478
|
includePatternText
|
|
1509
1479
|
));
|
|
1510
1480
|
}
|
|
1511
1481
|
else if (hasExcludes) {
|
|
1512
1482
|
message = ( localizeWithPath(
|
|
1513
|
-
|
|
1514
|
-
|
|
1483
|
+
_moduleId,
|
|
1484
|
+
28,
|
|
1515
1485
|
"No results found in open editors excluding '{0}' - ",
|
|
1516
1486
|
excludePatternText
|
|
1517
1487
|
));
|
|
1518
1488
|
}
|
|
1519
1489
|
else {
|
|
1520
1490
|
message = ( localizeWithPath(
|
|
1521
|
-
|
|
1522
|
-
|
|
1491
|
+
_moduleId,
|
|
1492
|
+
29,
|
|
1523
1493
|
"No results found in open editors. Review your settings for configured exclusions and check your gitignore files - "
|
|
1524
1494
|
));
|
|
1525
1495
|
}
|
|
@@ -1527,33 +1497,23 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1527
1497
|
else {
|
|
1528
1498
|
if (hasIncludes && hasExcludes) {
|
|
1529
1499
|
message = ( localizeWithPath(
|
|
1530
|
-
|
|
1531
|
-
|
|
1500
|
+
_moduleId,
|
|
1501
|
+
30,
|
|
1532
1502
|
"No results found in '{0}' excluding '{1}' - ",
|
|
1533
1503
|
includePatternText,
|
|
1534
1504
|
excludePatternText
|
|
1535
1505
|
));
|
|
1536
1506
|
}
|
|
1537
1507
|
else if (hasIncludes) {
|
|
1538
|
-
message = ( localizeWithPath(
|
|
1539
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1540
|
-
'noResultsIncludes',
|
|
1541
|
-
"No results found in '{0}' - ",
|
|
1542
|
-
includePatternText
|
|
1543
|
-
));
|
|
1508
|
+
message = ( localizeWithPath(_moduleId, 31, "No results found in '{0}' - ", includePatternText));
|
|
1544
1509
|
}
|
|
1545
1510
|
else if (hasExcludes) {
|
|
1546
|
-
message = ( localizeWithPath(
|
|
1547
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1548
|
-
'noResultsExcludes',
|
|
1549
|
-
"No results found excluding '{0}' - ",
|
|
1550
|
-
excludePatternText
|
|
1551
|
-
));
|
|
1511
|
+
message = ( localizeWithPath(_moduleId, 32, "No results found excluding '{0}' - ", excludePatternText));
|
|
1552
1512
|
}
|
|
1553
1513
|
else {
|
|
1554
1514
|
message = ( localizeWithPath(
|
|
1555
|
-
|
|
1556
|
-
|
|
1515
|
+
_moduleId,
|
|
1516
|
+
33,
|
|
1557
1517
|
"No results found. Review your settings for configured exclusions and check your gitignore files - "
|
|
1558
1518
|
));
|
|
1559
1519
|
}
|
|
@@ -1562,36 +1522,20 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1562
1522
|
const messageEl = this.clearMessage();
|
|
1563
1523
|
append(messageEl, message);
|
|
1564
1524
|
if (!completed) {
|
|
1565
|
-
const searchAgainButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1566
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1567
|
-
'rerunSearch.message',
|
|
1568
|
-
"Search again"
|
|
1569
|
-
)), () => this.triggerQueryChange({ preserveFocus: false }))));
|
|
1525
|
+
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 34, "Search again")), () => this.triggerQueryChange({ preserveFocus: false })))));
|
|
1570
1526
|
append(messageEl, searchAgainButton.element);
|
|
1571
1527
|
}
|
|
1572
1528
|
else if (hasIncludes || hasExcludes) {
|
|
1573
|
-
const searchAgainButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1574
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1575
|
-
'rerunSearchInAll.message',
|
|
1576
|
-
"Search again in all files"
|
|
1577
|
-
)), this.onSearchAgain.bind(this))));
|
|
1529
|
+
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 35, "Search again in all files")), this.onSearchAgain.bind(this)))));
|
|
1578
1530
|
append(messageEl, searchAgainButton.element);
|
|
1579
1531
|
}
|
|
1580
1532
|
else {
|
|
1581
|
-
const openSettingsButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1582
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1583
|
-
'openSettings.message',
|
|
1584
|
-
"Open Settings"
|
|
1585
|
-
)), this.onOpenSettings.bind(this))));
|
|
1533
|
+
const openSettingsButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 36, "Open Settings")), this.onOpenSettings.bind(this)))));
|
|
1586
1534
|
append(messageEl, openSettingsButton.element);
|
|
1587
1535
|
}
|
|
1588
1536
|
if (completed) {
|
|
1589
1537
|
append(messageEl, $('span', undefined, ' - '));
|
|
1590
|
-
const learnMoreButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1591
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1592
|
-
'openSettings.learnMore',
|
|
1593
|
-
"Learn More"
|
|
1594
|
-
)), this.onLearnMore.bind(this))));
|
|
1538
|
+
const learnMoreButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 37, "Learn More")), this.onLearnMore.bind(this)))));
|
|
1595
1539
|
append(messageEl, learnMoreButton.element);
|
|
1596
1540
|
}
|
|
1597
1541
|
if (this.contextService.getWorkbenchState() === 1 ) {
|
|
@@ -1602,8 +1546,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1602
1546
|
else {
|
|
1603
1547
|
this.viewModel.searchResult.toggleHighlights(this.isVisible());
|
|
1604
1548
|
status(( localizeWithPath(
|
|
1605
|
-
|
|
1606
|
-
|
|
1549
|
+
_moduleId,
|
|
1550
|
+
38,
|
|
1607
1551
|
"Search returned {0} results in {1} files",
|
|
1608
1552
|
this.viewModel.searchResult.count(this.aiResultsVisible),
|
|
1609
1553
|
this.viewModel.searchResult.fileCount()
|
|
@@ -1611,8 +1555,8 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1611
1555
|
}
|
|
1612
1556
|
if (completed && completed.limitHit) {
|
|
1613
1557
|
completed.messages.push({ type: TextSearchCompleteMessageType.Warning, text: ( localizeWithPath(
|
|
1614
|
-
|
|
1615
|
-
|
|
1558
|
+
_moduleId,
|
|
1559
|
+
39,
|
|
1616
1560
|
"The result set only contains a subset of all matches. Be more specific in your search to narrow down the results."
|
|
1617
1561
|
)) });
|
|
1618
1562
|
}
|
|
@@ -1638,7 +1582,9 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1638
1582
|
doSearch(query, excludePatternText, includePatternText, triggeredOnType) {
|
|
1639
1583
|
let progressComplete;
|
|
1640
1584
|
this.progressService.withProgress({ location: this.getProgressLocation(), delay: triggeredOnType ? 300 : 0 }, _progress => {
|
|
1641
|
-
return (
|
|
1585
|
+
return (
|
|
1586
|
+
(new Promise(resolve => progressComplete = resolve))
|
|
1587
|
+
);
|
|
1642
1588
|
});
|
|
1643
1589
|
this.searchWidget.searchInput?.clearMessage();
|
|
1644
1590
|
this.state = SearchUIState.Searching;
|
|
@@ -1682,7 +1628,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1682
1628
|
this.preferencesService.openUserSettings(options);
|
|
1683
1629
|
}
|
|
1684
1630
|
onLearnMore() {
|
|
1685
|
-
this.openerService.open(( URI.parse('https://go.microsoft.com/fwlink/?linkid=853977')));
|
|
1631
|
+
this.openerService.open(( (URI.parse('https://go.microsoft.com/fwlink/?linkid=853977'))));
|
|
1686
1632
|
}
|
|
1687
1633
|
onSearchAgain() {
|
|
1688
1634
|
this.inputPatternExcludes.setValue('');
|
|
@@ -1706,58 +1652,26 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1706
1652
|
const messageEl = this.clearMessage();
|
|
1707
1653
|
const resultMsg = clear ? '' : this.buildResultCountMessage(resultCount, fileCount);
|
|
1708
1654
|
this.tree.ariaLabel = resultMsg + ( localizeWithPath(
|
|
1709
|
-
|
|
1710
|
-
|
|
1655
|
+
_moduleId,
|
|
1656
|
+
40,
|
|
1711
1657
|
" - Search: {0}",
|
|
1712
1658
|
this.searchResult.query?.contentPattern.pattern ?? ''
|
|
1713
1659
|
));
|
|
1714
1660
|
append(messageEl, resultMsg);
|
|
1715
1661
|
if (fileCount > 0) {
|
|
1716
1662
|
if (disregardExcludesAndIgnores) {
|
|
1717
|
-
const excludesDisabledMessage = ' - ' + ( localizeWithPath(
|
|
1718
|
-
|
|
1719
|
-
'useIgnoresAndExcludesDisabled',
|
|
1720
|
-
"exclude settings and ignore files are disabled"
|
|
1721
|
-
)) + ' ';
|
|
1722
|
-
const enableExcludesButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1723
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1724
|
-
'excludes.enable',
|
|
1725
|
-
"enable"
|
|
1726
|
-
)), this.onEnableExcludes.bind(this), ( localizeWithPath(
|
|
1727
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1728
|
-
'useExcludesAndIgnoreFilesDescription',
|
|
1729
|
-
"Use Exclude Settings and Ignore Files"
|
|
1730
|
-
)))));
|
|
1663
|
+
const excludesDisabledMessage = ' - ' + ( localizeWithPath(_moduleId, 41, "exclude settings and ignore files are disabled")) + ' ';
|
|
1664
|
+
const enableExcludesButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 42, "enable")), this.onEnableExcludes.bind(this), ( localizeWithPath(_moduleId, 43, "Use Exclude Settings and Ignore Files"))))));
|
|
1731
1665
|
append(messageEl, $('span', undefined, excludesDisabledMessage, '(', enableExcludesButton.element, ')'));
|
|
1732
1666
|
}
|
|
1733
1667
|
if (onlyOpenEditors) {
|
|
1734
|
-
const searchingInOpenMessage = ' - ' + ( localizeWithPath(
|
|
1735
|
-
|
|
1736
|
-
'onlyOpenEditors',
|
|
1737
|
-
"searching only in open files"
|
|
1738
|
-
)) + ' ';
|
|
1739
|
-
const disableOpenEditorsButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1740
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1741
|
-
'openEditors.disable',
|
|
1742
|
-
"disable"
|
|
1743
|
-
)), this.onDisableSearchInOpenEditors.bind(this), ( localizeWithPath(
|
|
1744
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1745
|
-
'disableOpenEditors',
|
|
1746
|
-
"Search in entire workspace"
|
|
1747
|
-
)))));
|
|
1668
|
+
const searchingInOpenMessage = ' - ' + ( localizeWithPath(_moduleId, 44, "searching only in open files")) + ' ';
|
|
1669
|
+
const disableOpenEditorsButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 45, "disable")), this.onDisableSearchInOpenEditors.bind(this), ( localizeWithPath(_moduleId, 46, "Search in entire workspace"))))));
|
|
1748
1670
|
append(messageEl, $('span', undefined, searchingInOpenMessage, '(', disableOpenEditorsButton.element, ')'));
|
|
1749
1671
|
}
|
|
1750
1672
|
append(messageEl, ' - ');
|
|
1751
|
-
const openInEditorTooltip = appendKeyBindingLabel(( localizeWithPath(
|
|
1752
|
-
|
|
1753
|
-
'openInEditor.tooltip',
|
|
1754
|
-
"Copy current search results to an editor"
|
|
1755
|
-
)), this.keybindingService.lookupKeybinding("search.action.openInEditor" ));
|
|
1756
|
-
const openInEditorButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1757
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1758
|
-
'openInEditor.message',
|
|
1759
|
-
"Open in editor"
|
|
1760
|
-
)), () => this.instantiationService.invokeFunction(createEditorFromSearchResult, this.searchResult, this.searchIncludePattern.getValue(), this.searchExcludePattern.getValue(), this.searchIncludePattern.onlySearchInOpenEditors()), openInEditorTooltip)));
|
|
1673
|
+
const openInEditorTooltip = appendKeyBindingLabel(( localizeWithPath(_moduleId, 47, "Copy current search results to an editor")), this.keybindingService.lookupKeybinding("search.action.openInEditor" ));
|
|
1674
|
+
const openInEditorButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 48, "Open in editor")), () => this.instantiationService.invokeFunction(createEditorFromSearchResult, this.searchResult, this.searchIncludePattern.getValue(), this.searchExcludePattern.getValue(), this.searchIncludePattern.onlySearchInOpenEditors()), openInEditorTooltip))));
|
|
1761
1675
|
append(messageEl, openInEditorButton.element);
|
|
1762
1676
|
this.reLayout();
|
|
1763
1677
|
}
|
|
@@ -1774,56 +1688,28 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1774
1688
|
}
|
|
1775
1689
|
buildResultCountMessage(resultCount, fileCount) {
|
|
1776
1690
|
if (resultCount === 1 && fileCount === 1) {
|
|
1777
|
-
return ( localizeWithPath(
|
|
1778
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1779
|
-
'search.file.result',
|
|
1780
|
-
"{0} result in {1} file",
|
|
1781
|
-
resultCount,
|
|
1782
|
-
fileCount
|
|
1783
|
-
));
|
|
1691
|
+
return ( localizeWithPath(_moduleId, 49, "{0} result in {1} file", resultCount, fileCount));
|
|
1784
1692
|
}
|
|
1785
1693
|
else if (resultCount === 1) {
|
|
1786
|
-
return ( localizeWithPath(
|
|
1787
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1788
|
-
'search.files.result',
|
|
1789
|
-
"{0} result in {1} files",
|
|
1790
|
-
resultCount,
|
|
1791
|
-
fileCount
|
|
1792
|
-
));
|
|
1694
|
+
return ( localizeWithPath(_moduleId, 50, "{0} result in {1} files", resultCount, fileCount));
|
|
1793
1695
|
}
|
|
1794
1696
|
else if (fileCount === 1) {
|
|
1795
|
-
return ( localizeWithPath(
|
|
1796
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1797
|
-
'search.file.results',
|
|
1798
|
-
"{0} results in {1} file",
|
|
1799
|
-
resultCount,
|
|
1800
|
-
fileCount
|
|
1801
|
-
));
|
|
1697
|
+
return ( localizeWithPath(_moduleId, 51, "{0} results in {1} file", resultCount, fileCount));
|
|
1802
1698
|
}
|
|
1803
1699
|
else {
|
|
1804
|
-
return ( localizeWithPath(
|
|
1805
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1806
|
-
'search.files.results',
|
|
1807
|
-
"{0} results in {1} files",
|
|
1808
|
-
resultCount,
|
|
1809
|
-
fileCount
|
|
1810
|
-
));
|
|
1700
|
+
return ( localizeWithPath(_moduleId, 52, "{0} results in {1} files", resultCount, fileCount));
|
|
1811
1701
|
}
|
|
1812
1702
|
}
|
|
1813
1703
|
showSearchWithoutFolderMessage() {
|
|
1814
1704
|
this.searchWithoutFolderMessageElement = this.clearMessage();
|
|
1815
1705
|
const textEl = append(this.searchWithoutFolderMessageElement, $('p', undefined, ( localizeWithPath(
|
|
1816
|
-
|
|
1817
|
-
|
|
1706
|
+
_moduleId,
|
|
1707
|
+
53,
|
|
1818
1708
|
"You have not opened or specified a folder. Only open files are currently searched - "
|
|
1819
1709
|
))));
|
|
1820
|
-
const openFolderButton = this.messageDisposables.add(( new SearchLinkButton(( localizeWithPath(
|
|
1821
|
-
'vs/workbench/contrib/search/browser/searchView',
|
|
1822
|
-
'openFolder',
|
|
1823
|
-
"Open Folder"
|
|
1824
|
-
)), () => {
|
|
1710
|
+
const openFolderButton = this.messageDisposables.add(( (new SearchLinkButton(( localizeWithPath(_moduleId, 54, "Open Folder")), () => {
|
|
1825
1711
|
this.commandService.executeCommand(isMacintosh && isNative ? OpenFileFolderAction.ID : OpenFolderAction.ID).catch(err => onUnexpectedError(err));
|
|
1826
|
-
})));
|
|
1712
|
+
}))));
|
|
1827
1713
|
append(textEl, openFolderButton.element);
|
|
1828
1714
|
}
|
|
1829
1715
|
showEmptyStage(forceHideMessages = false) {
|
|
@@ -1917,12 +1803,12 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1917
1803
|
fileMatch = element.parent();
|
|
1918
1804
|
}
|
|
1919
1805
|
if (fileMatch) {
|
|
1920
|
-
const selections = ( fileMatch.matches().map(m => ( new Selection(
|
|
1806
|
+
const selections = ( (fileMatch.matches().map(m => ( (new Selection(
|
|
1921
1807
|
m.range().startLineNumber,
|
|
1922
1808
|
m.range().startColumn,
|
|
1923
1809
|
m.range().endLineNumber,
|
|
1924
1810
|
m.range().endColumn
|
|
1925
|
-
))));
|
|
1811
|
+
))))));
|
|
1926
1812
|
const codeEditor = getCodeEditor(editor.getControl());
|
|
1927
1813
|
if (codeEditor) {
|
|
1928
1814
|
const multiCursorController = MultiCursorSelectionController.get(codeEditor);
|
|
@@ -1939,13 +1825,13 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1939
1825
|
}
|
|
1940
1826
|
let matches = this.viewModel.searchResult.matches();
|
|
1941
1827
|
for (let i = 0, len = matches.length; i < len; i++) {
|
|
1942
|
-
if (( resource.toString()) === ( matches[i].resource.toString())) {
|
|
1828
|
+
if (( (resource.toString())) === ( (matches[i].resource.toString()))) {
|
|
1943
1829
|
this.viewModel.searchResult.remove(matches[i]);
|
|
1944
1830
|
}
|
|
1945
1831
|
}
|
|
1946
1832
|
matches = this.viewModel.searchResult.matches(true);
|
|
1947
1833
|
for (let i = 0, len = matches.length; i < len; i++) {
|
|
1948
|
-
if (( resource.toString()) === ( matches[i].resource.toString())) {
|
|
1834
|
+
if (( (resource.toString())) === ( (matches[i].resource.toString()))) {
|
|
1949
1835
|
this.viewModel.searchResult.remove(matches[i]);
|
|
1950
1836
|
}
|
|
1951
1837
|
}
|
|
@@ -2038,11 +1924,11 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
2038
1924
|
this.searchHistoryService.save(history);
|
|
2039
1925
|
}
|
|
2040
1926
|
async retrieveFileStats() {
|
|
2041
|
-
const files = ( this.searchResult.matches(this.aiResultsVisible).filter(f => !f.fileStat).map(f => f.resolveFileStat(this.fileService)));
|
|
1927
|
+
const files = ( (this.searchResult.matches(this.aiResultsVisible).filter(f => !f.fileStat).map(f => f.resolveFileStat(this.fileService))));
|
|
2042
1928
|
await Promise.all(files);
|
|
2043
1929
|
}
|
|
2044
1930
|
async updateFileStats(elements) {
|
|
2045
|
-
const files = ( elements.map(f => f.resolveFileStat(this.fileService)));
|
|
1931
|
+
const files = ( (elements.map(f => f.resolveFileStat(this.fileService))));
|
|
2046
1932
|
await Promise.all(files);
|
|
2047
1933
|
}
|
|
2048
1934
|
removeFileStats() {
|
|
@@ -2059,36 +1945,36 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
2059
1945
|
super.dispose();
|
|
2060
1946
|
}
|
|
2061
1947
|
};
|
|
2062
|
-
SearchView = SearchView_1 = ( __decorate([
|
|
2063
|
-
( __param(1, IFileService)),
|
|
2064
|
-
( __param(2, IEditorService)),
|
|
2065
|
-
( __param(3, ICodeEditorService)),
|
|
2066
|
-
( __param(4, IProgressService)),
|
|
2067
|
-
( __param(5, INotificationService)),
|
|
2068
|
-
( __param(6, IDialogService)),
|
|
2069
|
-
( __param(7, ICommandService)),
|
|
2070
|
-
( __param(8, IContextViewService)),
|
|
2071
|
-
( __param(9, IInstantiationService)),
|
|
2072
|
-
( __param(10, IViewDescriptorService)),
|
|
2073
|
-
( __param(11, IConfigurationService)),
|
|
2074
|
-
( __param(12, IWorkspaceContextService)),
|
|
2075
|
-
( __param(13, ISearchViewModelWorkbenchService)),
|
|
2076
|
-
( __param(14, IContextKeyService)),
|
|
2077
|
-
( __param(15, IReplaceService)),
|
|
2078
|
-
( __param(16, ITextFileService)),
|
|
2079
|
-
( __param(17, IPreferencesService)),
|
|
2080
|
-
( __param(18, IThemeService)),
|
|
2081
|
-
( __param(19, ISearchHistoryService)),
|
|
2082
|
-
( __param(20, IContextMenuService)),
|
|
2083
|
-
( __param(21, IAccessibilityService)),
|
|
2084
|
-
( __param(22, IKeybindingService)),
|
|
2085
|
-
( __param(23, IStorageService)),
|
|
2086
|
-
( __param(24, IOpenerService)),
|
|
2087
|
-
( __param(25, ITelemetryService)),
|
|
2088
|
-
( __param(26, INotebookService)),
|
|
2089
|
-
( __param(27, ILogService)),
|
|
2090
|
-
( __param(28, IAccessibilitySignalService))
|
|
2091
|
-
], SearchView));
|
|
1948
|
+
SearchView = SearchView_1 = ( (__decorate([
|
|
1949
|
+
( (__param(1, IFileService))),
|
|
1950
|
+
( (__param(2, IEditorService))),
|
|
1951
|
+
( (__param(3, ICodeEditorService))),
|
|
1952
|
+
( (__param(4, IProgressService))),
|
|
1953
|
+
( (__param(5, INotificationService))),
|
|
1954
|
+
( (__param(6, IDialogService))),
|
|
1955
|
+
( (__param(7, ICommandService))),
|
|
1956
|
+
( (__param(8, IContextViewService))),
|
|
1957
|
+
( (__param(9, IInstantiationService))),
|
|
1958
|
+
( (__param(10, IViewDescriptorService))),
|
|
1959
|
+
( (__param(11, IConfigurationService))),
|
|
1960
|
+
( (__param(12, IWorkspaceContextService))),
|
|
1961
|
+
( (__param(13, ISearchViewModelWorkbenchService))),
|
|
1962
|
+
( (__param(14, IContextKeyService))),
|
|
1963
|
+
( (__param(15, IReplaceService))),
|
|
1964
|
+
( (__param(16, ITextFileService))),
|
|
1965
|
+
( (__param(17, IPreferencesService))),
|
|
1966
|
+
( (__param(18, IThemeService))),
|
|
1967
|
+
( (__param(19, ISearchHistoryService))),
|
|
1968
|
+
( (__param(20, IContextMenuService))),
|
|
1969
|
+
( (__param(21, IAccessibilityService))),
|
|
1970
|
+
( (__param(22, IKeybindingService))),
|
|
1971
|
+
( (__param(23, IStorageService))),
|
|
1972
|
+
( (__param(24, IOpenerService))),
|
|
1973
|
+
( (__param(25, ITelemetryService))),
|
|
1974
|
+
( (__param(26, INotebookService))),
|
|
1975
|
+
( (__param(27, ILogService))),
|
|
1976
|
+
( (__param(28, IAccessibilitySignalService)))
|
|
1977
|
+
], SearchView)));
|
|
2092
1978
|
class SearchLinkButton extends Disposable {
|
|
2093
1979
|
constructor(label, handler, tooltip) {
|
|
2094
1980
|
super();
|
|
@@ -2103,7 +1989,7 @@ class SearchLinkButton extends Disposable {
|
|
|
2103
1989
|
};
|
|
2104
1990
|
this._register(addDisposableListener(this.element, EventType.CLICK, wrappedHandler));
|
|
2105
1991
|
this._register(addDisposableListener(this.element, EventType.KEY_DOWN, e => {
|
|
2106
|
-
const event = ( new StandardKeyboardEvent(e));
|
|
1992
|
+
const event = ( (new StandardKeyboardEvent(e)));
|
|
2107
1993
|
if (event.equals(10 ) || event.equals(3 )) {
|
|
2108
1994
|
wrappedHandler(e);
|
|
2109
1995
|
event.preventDefault();
|