@codingame/monaco-vscode-search-service-override 8.0.3 → 8.0.4
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/patternInputWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +53 -53
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditor.js +9 -9
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-search-service-override",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.4",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -29,6 +29,6 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"vscode": "npm:@codingame/monaco-vscode-api@8.0.
|
|
32
|
+
"vscode": "npm:@codingame/monaco-vscode-api@8.0.4"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -28,7 +28,7 @@ let PatternInputWidget = class PatternInputWidget extends Widget {
|
|
|
28
28
|
this.onCancel = this._onCancel.event;
|
|
29
29
|
options = {
|
|
30
30
|
...{
|
|
31
|
-
ariaLabel: ( localize(
|
|
31
|
+
ariaLabel: ( localize(10769, "input"))
|
|
32
32
|
},
|
|
33
33
|
...options,
|
|
34
34
|
};
|
|
@@ -155,7 +155,7 @@ let IncludePatternInputWidget = class IncludePatternInputWidget extends PatternI
|
|
|
155
155
|
renderSubcontrols(controlsDiv) {
|
|
156
156
|
this.useSearchInEditorsBox = this._register(( (new Toggle({
|
|
157
157
|
icon: Codicon.book,
|
|
158
|
-
title: ( localize(
|
|
158
|
+
title: ( localize(10770, "Search only in Open Editors")),
|
|
159
159
|
isChecked: false,
|
|
160
160
|
hoverDelegate: getDefaultHoverDelegate('element'),
|
|
161
161
|
...defaultToggleStyles
|
|
@@ -199,7 +199,7 @@ let ExcludePatternInputWidget = class ExcludePatternInputWidget extends PatternI
|
|
|
199
199
|
this.useExcludesAndIgnoreFilesBox = this._register(( (new Toggle({
|
|
200
200
|
icon: Codicon.exclude,
|
|
201
201
|
actionClassName: 'useExcludesAndIgnoreFiles',
|
|
202
|
-
title: ( localize(
|
|
202
|
+
title: ( localize(10771, "Use Exclude Settings and Ignore Files")),
|
|
203
203
|
isChecked: true,
|
|
204
204
|
hoverDelegate: getDefaultHoverDelegate('element'),
|
|
205
205
|
...defaultToggleStyles
|
|
@@ -6,7 +6,7 @@ import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/
|
|
|
6
6
|
import { Toggle } from 'vscode/vscode/vs/base/browser/ui/toggle/toggle';
|
|
7
7
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
8
8
|
|
|
9
|
-
const NLS_AI_TOGGLE_LABEL = ( localize(
|
|
9
|
+
const NLS_AI_TOGGLE_LABEL = ( localize(10767, "Use AI"));
|
|
10
10
|
class SearchFindInput extends ContextScopedFindInput {
|
|
11
11
|
constructor(container, contextViewProvider, options, contextKeyService, contextMenuService, instantiationService, filters, shouldShowAIButton,
|
|
12
12
|
filterStartVisiblitity) {
|
|
@@ -18,7 +18,7 @@ class SearchFindInput extends ContextScopedFindInput {
|
|
|
18
18
|
this._onDidChangeAIToggle = this._register(( (new Emitter())));
|
|
19
19
|
this.onDidChangeAIToggle = this._onDidChangeAIToggle.event;
|
|
20
20
|
this.shouldNotebookFilterBeVisible = false;
|
|
21
|
-
this._findFilter = this._register(( (new NotebookFindInputFilterButton(filters, contextMenuService, instantiationService, options, ( localize(
|
|
21
|
+
this._findFilter = this._register(( (new NotebookFindInputFilterButton(filters, contextMenuService, instantiationService, options, ( localize(10768, "Notebook Find Filters"))))));
|
|
22
22
|
this._aiButton = this._register(( (new AIToggle({
|
|
23
23
|
appendTitle: '',
|
|
24
24
|
isChecked: false,
|
|
@@ -39,10 +39,10 @@ const renderSearchMessage = (message, instantiationService, notificationService,
|
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
41
|
if (parsed.scheme === Schemas.command && !message.trusted) {
|
|
42
|
-
notificationService.error(( localize(
|
|
42
|
+
notificationService.error(( localize(10785, "Unable to open command link from untrusted source: {0}", href)));
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
notificationService.error(( localize(
|
|
45
|
+
notificationService.error(( localize(10786, "Unable to open unknown link: {0}", href)));
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -84,7 +84,7 @@ import { TextSearchCompleteMessageType } from 'vscode/vscode/vs/workbench/servic
|
|
|
84
84
|
|
|
85
85
|
var SearchView_1;
|
|
86
86
|
const $ = $$1;
|
|
87
|
-
const SEARCH_CANCELLED_MESSAGE = ( localize(
|
|
87
|
+
const SEARCH_CANCELLED_MESSAGE = ( localize(8322, "Search was canceled before any results could be found - "));
|
|
88
88
|
const DEBOUNCE_DELAY = 75;
|
|
89
89
|
let SearchView = class SearchView extends ViewPane {
|
|
90
90
|
static { SearchView_1 = this; }
|
|
@@ -339,7 +339,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
339
339
|
this.viewletState['query.useExcludesAndIgnoreFiles'] : true;
|
|
340
340
|
this.queryDetails = append(this.searchWidgetsContainerElement, $('.query-details'));
|
|
341
341
|
this.toggleQueryDetailsButton = append(this.queryDetails, $('.more' + ThemeIcon.asCSSSelector(searchDetailsIcon), { tabindex: 0, role: 'button' }));
|
|
342
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localize(
|
|
342
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localize(8323, "Toggle Search Details"))));
|
|
343
343
|
this._register(addDisposableListener(this.toggleQueryDetailsButton, EventType.CLICK, e => {
|
|
344
344
|
EventHelper.stop(e);
|
|
345
345
|
this.toggleQueryDetails(!this.accessibilityService.isScreenReaderOptimized());
|
|
@@ -364,11 +364,11 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
364
364
|
}
|
|
365
365
|
}));
|
|
366
366
|
const folderIncludesList = append(this.queryDetails, $('.file-types.includes'));
|
|
367
|
-
const filesToIncludeTitle = ( localize(
|
|
367
|
+
const filesToIncludeTitle = ( localize(8324, "files to include"));
|
|
368
368
|
append(folderIncludesList, $('h4', undefined, filesToIncludeTitle));
|
|
369
369
|
this.inputPatternIncludes = this._register(this.instantiationService.createInstance(IncludePatternInputWidget, folderIncludesList, this.contextViewService, {
|
|
370
370
|
ariaLabel: filesToIncludeTitle,
|
|
371
|
-
placeholder: ( localize(
|
|
371
|
+
placeholder: ( localize(8325, "e.g. *.ts, src/**/include")),
|
|
372
372
|
showPlaceholderOnFocus: true,
|
|
373
373
|
history: patternIncludesHistory,
|
|
374
374
|
inputBoxStyles: defaultInputBoxStyles
|
|
@@ -379,11 +379,11 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
379
379
|
this._register(this.inputPatternIncludes.onChangeSearchInEditorsBox(() => this.triggerQueryChange()));
|
|
380
380
|
this.trackInputBox(this.inputPatternIncludes.inputFocusTracker, this.inputPatternIncludesFocused);
|
|
381
381
|
const excludesList = append(this.queryDetails, $('.file-types.excludes'));
|
|
382
|
-
const excludesTitle = ( localize(
|
|
382
|
+
const excludesTitle = ( localize(8326, "files to exclude"));
|
|
383
383
|
append(excludesList, $('h4', undefined, excludesTitle));
|
|
384
384
|
this.inputPatternExcludes = this._register(this.instantiationService.createInstance(ExcludePatternInputWidget, excludesList, this.contextViewService, {
|
|
385
385
|
ariaLabel: excludesTitle,
|
|
386
|
-
placeholder: ( localize(
|
|
386
|
+
placeholder: ( localize(8327, "e.g. *.ts, src/**/exclude")),
|
|
387
387
|
showPlaceholderOnFocus: true,
|
|
388
388
|
history: patternExclusionsHistory,
|
|
389
389
|
inputBoxStyles: defaultInputBoxStyles
|
|
@@ -646,9 +646,9 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
646
646
|
);
|
|
647
647
|
});
|
|
648
648
|
const confirmation = {
|
|
649
|
-
title: ( localize(
|
|
649
|
+
title: ( localize(8328, "Replace All")),
|
|
650
650
|
message: this.buildReplaceAllConfirmationMessage(occurrences, fileCount, replaceValue),
|
|
651
|
-
primaryButton: ( localize(
|
|
651
|
+
primaryButton: ( localize(8329, "&&Replace"))
|
|
652
652
|
};
|
|
653
653
|
this.dialogService.confirm(confirmation).then(res => {
|
|
654
654
|
if (res.confirmed) {
|
|
@@ -673,96 +673,96 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
673
673
|
if (fileCount === 1) {
|
|
674
674
|
if (replaceValue) {
|
|
675
675
|
return ( localize(
|
|
676
|
-
|
|
676
|
+
8330,
|
|
677
677
|
"Replaced {0} occurrence across {1} file with '{2}'.",
|
|
678
678
|
occurrences,
|
|
679
679
|
fileCount,
|
|
680
680
|
replaceValue
|
|
681
681
|
));
|
|
682
682
|
}
|
|
683
|
-
return ( localize(
|
|
683
|
+
return ( localize(8331, "Replaced {0} occurrence across {1} file.", occurrences, fileCount));
|
|
684
684
|
}
|
|
685
685
|
if (replaceValue) {
|
|
686
686
|
return ( localize(
|
|
687
|
-
|
|
687
|
+
8332,
|
|
688
688
|
"Replaced {0} occurrence across {1} files with '{2}'.",
|
|
689
689
|
occurrences,
|
|
690
690
|
fileCount,
|
|
691
691
|
replaceValue
|
|
692
692
|
));
|
|
693
693
|
}
|
|
694
|
-
return ( localize(
|
|
694
|
+
return ( localize(8333, "Replaced {0} occurrence across {1} files.", occurrences, fileCount));
|
|
695
695
|
}
|
|
696
696
|
if (fileCount === 1) {
|
|
697
697
|
if (replaceValue) {
|
|
698
698
|
return ( localize(
|
|
699
|
-
|
|
699
|
+
8334,
|
|
700
700
|
"Replaced {0} occurrences across {1} file with '{2}'.",
|
|
701
701
|
occurrences,
|
|
702
702
|
fileCount,
|
|
703
703
|
replaceValue
|
|
704
704
|
));
|
|
705
705
|
}
|
|
706
|
-
return ( localize(
|
|
706
|
+
return ( localize(8335, "Replaced {0} occurrences across {1} file.", occurrences, fileCount));
|
|
707
707
|
}
|
|
708
708
|
if (replaceValue) {
|
|
709
709
|
return ( localize(
|
|
710
|
-
|
|
710
|
+
8336,
|
|
711
711
|
"Replaced {0} occurrences across {1} files with '{2}'.",
|
|
712
712
|
occurrences,
|
|
713
713
|
fileCount,
|
|
714
714
|
replaceValue
|
|
715
715
|
));
|
|
716
716
|
}
|
|
717
|
-
return ( localize(
|
|
717
|
+
return ( localize(8337, "Replaced {0} occurrences across {1} files.", occurrences, fileCount));
|
|
718
718
|
}
|
|
719
719
|
buildReplaceAllConfirmationMessage(occurrences, fileCount, replaceValue) {
|
|
720
720
|
if (occurrences === 1) {
|
|
721
721
|
if (fileCount === 1) {
|
|
722
722
|
if (replaceValue) {
|
|
723
723
|
return ( localize(
|
|
724
|
-
|
|
724
|
+
8338,
|
|
725
725
|
"Replace {0} occurrence across {1} file with '{2}'?",
|
|
726
726
|
occurrences,
|
|
727
727
|
fileCount,
|
|
728
728
|
replaceValue
|
|
729
729
|
));
|
|
730
730
|
}
|
|
731
|
-
return ( localize(
|
|
731
|
+
return ( localize(8339, "Replace {0} occurrence across {1} file?", occurrences, fileCount));
|
|
732
732
|
}
|
|
733
733
|
if (replaceValue) {
|
|
734
734
|
return ( localize(
|
|
735
|
-
|
|
735
|
+
8340,
|
|
736
736
|
"Replace {0} occurrence across {1} files with '{2}'?",
|
|
737
737
|
occurrences,
|
|
738
738
|
fileCount,
|
|
739
739
|
replaceValue
|
|
740
740
|
));
|
|
741
741
|
}
|
|
742
|
-
return ( localize(
|
|
742
|
+
return ( localize(8341, "Replace {0} occurrence across {1} files?", occurrences, fileCount));
|
|
743
743
|
}
|
|
744
744
|
if (fileCount === 1) {
|
|
745
745
|
if (replaceValue) {
|
|
746
746
|
return ( localize(
|
|
747
|
-
|
|
747
|
+
8342,
|
|
748
748
|
"Replace {0} occurrences across {1} file with '{2}'?",
|
|
749
749
|
occurrences,
|
|
750
750
|
fileCount,
|
|
751
751
|
replaceValue
|
|
752
752
|
));
|
|
753
753
|
}
|
|
754
|
-
return ( localize(
|
|
754
|
+
return ( localize(8343, "Replace {0} occurrences across {1} file?", occurrences, fileCount));
|
|
755
755
|
}
|
|
756
756
|
if (replaceValue) {
|
|
757
757
|
return ( localize(
|
|
758
|
-
|
|
758
|
+
8344,
|
|
759
759
|
"Replace {0} occurrences across {1} files with '{2}'?",
|
|
760
760
|
occurrences,
|
|
761
761
|
fileCount,
|
|
762
762
|
replaceValue
|
|
763
763
|
));
|
|
764
764
|
}
|
|
765
|
-
return ( localize(
|
|
765
|
+
return ( localize(8345, "Replace {0} occurrences across {1} files?", occurrences, fileCount));
|
|
766
766
|
}
|
|
767
767
|
clearMessage() {
|
|
768
768
|
this.searchWithoutFolderMessageElement = undefined;
|
|
@@ -1127,7 +1127,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1127
1127
|
this.searchWidget.clear();
|
|
1128
1128
|
}
|
|
1129
1129
|
this.viewModel.cancelSearch();
|
|
1130
|
-
this.tree.ariaLabel = ( localize(
|
|
1130
|
+
this.tree.ariaLabel = ( localize(8346, "Empty Search"));
|
|
1131
1131
|
this.accessibilitySignalService.playSignal(AccessibilitySignal.clear);
|
|
1132
1132
|
this.reLayout();
|
|
1133
1133
|
}
|
|
@@ -1371,7 +1371,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1371
1371
|
}
|
|
1372
1372
|
else {
|
|
1373
1373
|
const nonExistantPath = query.folderQueries[0].folder.fsPath;
|
|
1374
|
-
const searchPathNotFoundError = ( localize(
|
|
1374
|
+
const searchPathNotFoundError = ( localize(8347, "Search path not found: {0}", nonExistantPath));
|
|
1375
1375
|
return Promise.reject(( (new Error(searchPathNotFoundError))));
|
|
1376
1376
|
}
|
|
1377
1377
|
return undefined;
|
|
@@ -1429,7 +1429,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1429
1429
|
else if (this.inputPatternIncludes.onlySearchInOpenEditors()) {
|
|
1430
1430
|
if (hasIncludes && hasExcludes) {
|
|
1431
1431
|
message = ( localize(
|
|
1432
|
-
|
|
1432
|
+
8348,
|
|
1433
1433
|
"No results found in open editors matching '{0}' excluding '{1}' - ",
|
|
1434
1434
|
includePatternText,
|
|
1435
1435
|
excludePatternText
|
|
@@ -1437,21 +1437,21 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1437
1437
|
}
|
|
1438
1438
|
else if (hasIncludes) {
|
|
1439
1439
|
message = ( localize(
|
|
1440
|
-
|
|
1440
|
+
8349,
|
|
1441
1441
|
"No results found in open editors matching '{0}' - ",
|
|
1442
1442
|
includePatternText
|
|
1443
1443
|
));
|
|
1444
1444
|
}
|
|
1445
1445
|
else if (hasExcludes) {
|
|
1446
1446
|
message = ( localize(
|
|
1447
|
-
|
|
1447
|
+
8350,
|
|
1448
1448
|
"No results found in open editors excluding '{0}' - ",
|
|
1449
1449
|
excludePatternText
|
|
1450
1450
|
));
|
|
1451
1451
|
}
|
|
1452
1452
|
else {
|
|
1453
1453
|
message = ( localize(
|
|
1454
|
-
|
|
1454
|
+
8351,
|
|
1455
1455
|
"No results found in open editors. Review your settings for configured exclusions and check your gitignore files - "
|
|
1456
1456
|
));
|
|
1457
1457
|
}
|
|
@@ -1459,21 +1459,21 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1459
1459
|
else {
|
|
1460
1460
|
if (hasIncludes && hasExcludes) {
|
|
1461
1461
|
message = ( localize(
|
|
1462
|
-
|
|
1462
|
+
8352,
|
|
1463
1463
|
"No results found in '{0}' excluding '{1}' - ",
|
|
1464
1464
|
includePatternText,
|
|
1465
1465
|
excludePatternText
|
|
1466
1466
|
));
|
|
1467
1467
|
}
|
|
1468
1468
|
else if (hasIncludes) {
|
|
1469
|
-
message = ( localize(
|
|
1469
|
+
message = ( localize(8353, "No results found in '{0}' - ", includePatternText));
|
|
1470
1470
|
}
|
|
1471
1471
|
else if (hasExcludes) {
|
|
1472
|
-
message = ( localize(
|
|
1472
|
+
message = ( localize(8354, "No results found excluding '{0}' - ", excludePatternText));
|
|
1473
1473
|
}
|
|
1474
1474
|
else {
|
|
1475
1475
|
message = ( localize(
|
|
1476
|
-
|
|
1476
|
+
8355,
|
|
1477
1477
|
"No results found. Review your settings for configured exclusions and check your gitignore files - "
|
|
1478
1478
|
));
|
|
1479
1479
|
}
|
|
@@ -1482,20 +1482,20 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1482
1482
|
const messageEl = this.clearMessage();
|
|
1483
1483
|
append(messageEl, message);
|
|
1484
1484
|
if (!completed) {
|
|
1485
|
-
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1485
|
+
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8356, "Search again")), () => this.triggerQueryChange({ preserveFocus: false }), this.hoverService))));
|
|
1486
1486
|
append(messageEl, searchAgainButton.element);
|
|
1487
1487
|
}
|
|
1488
1488
|
else if (hasIncludes || hasExcludes) {
|
|
1489
|
-
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1489
|
+
const searchAgainButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8357, "Search again in all files")), this.onSearchAgain.bind(this), this.hoverService))));
|
|
1490
1490
|
append(messageEl, searchAgainButton.element);
|
|
1491
1491
|
}
|
|
1492
1492
|
else {
|
|
1493
|
-
const openSettingsButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1493
|
+
const openSettingsButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8358, "Open Settings")), this.onOpenSettings.bind(this), this.hoverService))));
|
|
1494
1494
|
append(messageEl, openSettingsButton.element);
|
|
1495
1495
|
}
|
|
1496
1496
|
if (completed) {
|
|
1497
1497
|
append(messageEl, $('span', undefined, ' - '));
|
|
1498
|
-
const learnMoreButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1498
|
+
const learnMoreButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8359, "Learn More")), this.onLearnMore.bind(this), this.hoverService))));
|
|
1499
1499
|
append(messageEl, learnMoreButton.element);
|
|
1500
1500
|
}
|
|
1501
1501
|
if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) {
|
|
@@ -1506,7 +1506,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1506
1506
|
else {
|
|
1507
1507
|
this.viewModel.searchResult.toggleHighlights(this.isVisible());
|
|
1508
1508
|
status(( localize(
|
|
1509
|
-
|
|
1509
|
+
8360,
|
|
1510
1510
|
"Search returned {0} results in {1} files",
|
|
1511
1511
|
this.viewModel.searchResult.count(this.aiResultsVisible),
|
|
1512
1512
|
this.viewModel.searchResult.fileCount()
|
|
@@ -1514,7 +1514,7 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1514
1514
|
}
|
|
1515
1515
|
if (completed && completed.limitHit) {
|
|
1516
1516
|
completed.messages.push({ type: TextSearchCompleteMessageType.Warning, text: ( localize(
|
|
1517
|
-
|
|
1517
|
+
8361,
|
|
1518
1518
|
"The result set only contains a subset of all matches. Be more specific in your search to narrow down the results."
|
|
1519
1519
|
)) });
|
|
1520
1520
|
}
|
|
@@ -1610,25 +1610,25 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1610
1610
|
const messageEl = this.clearMessage();
|
|
1611
1611
|
const resultMsg = clear ? '' : this.buildResultCountMessage(resultCount, fileCount);
|
|
1612
1612
|
this.tree.ariaLabel = resultMsg + ( localize(
|
|
1613
|
-
|
|
1613
|
+
8362,
|
|
1614
1614
|
" - Search: {0}",
|
|
1615
1615
|
this.searchResult.query?.contentPattern.pattern ?? ''
|
|
1616
1616
|
));
|
|
1617
1617
|
append(messageEl, resultMsg);
|
|
1618
1618
|
if (fileCount > 0) {
|
|
1619
1619
|
if (disregardExcludesAndIgnores) {
|
|
1620
|
-
const excludesDisabledMessage = ' - ' + ( localize(
|
|
1621
|
-
const enableExcludesButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1620
|
+
const excludesDisabledMessage = ' - ' + ( localize(8363, "exclude settings and ignore files are disabled")) + ' ';
|
|
1621
|
+
const enableExcludesButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8364, "enable")), this.onEnableExcludes.bind(this), this.hoverService, ( localize(8365, "Use Exclude Settings and Ignore Files"))))));
|
|
1622
1622
|
append(messageEl, $('span', undefined, excludesDisabledMessage, '(', enableExcludesButton.element, ')'));
|
|
1623
1623
|
}
|
|
1624
1624
|
if (onlyOpenEditors) {
|
|
1625
|
-
const searchingInOpenMessage = ' - ' + ( localize(
|
|
1626
|
-
const disableOpenEditorsButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1625
|
+
const searchingInOpenMessage = ' - ' + ( localize(8366, "searching only in open files")) + ' ';
|
|
1626
|
+
const disableOpenEditorsButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8367, "disable")), this.onDisableSearchInOpenEditors.bind(this), this.hoverService, ( localize(8368, "Search in entire workspace"))))));
|
|
1627
1627
|
append(messageEl, $('span', undefined, searchingInOpenMessage, '(', disableOpenEditorsButton.element, ')'));
|
|
1628
1628
|
}
|
|
1629
1629
|
append(messageEl, ' - ');
|
|
1630
|
-
const openInEditorTooltip = appendKeyBindingLabel(( localize(
|
|
1631
|
-
const openInEditorButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1630
|
+
const openInEditorTooltip = appendKeyBindingLabel(( localize(8369, "Copy current search results to an editor")), this.keybindingService.lookupKeybinding(SearchCommandIds.OpenInEditorCommandId));
|
|
1631
|
+
const openInEditorButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8370, "Open in editor")), () => this.instantiationService.invokeFunction(createEditorFromSearchResult, this.searchResult, this.searchIncludePattern.getValue(), this.searchExcludePattern.getValue(), this.searchIncludePattern.onlySearchInOpenEditors()), this.hoverService, openInEditorTooltip))));
|
|
1632
1632
|
append(messageEl, openInEditorButton.element);
|
|
1633
1633
|
this.reLayout();
|
|
1634
1634
|
}
|
|
@@ -1645,25 +1645,25 @@ let SearchView = class SearchView extends ViewPane {
|
|
|
1645
1645
|
}
|
|
1646
1646
|
buildResultCountMessage(resultCount, fileCount) {
|
|
1647
1647
|
if (resultCount === 1 && fileCount === 1) {
|
|
1648
|
-
return ( localize(
|
|
1648
|
+
return ( localize(8371, "{0} result in {1} file", resultCount, fileCount));
|
|
1649
1649
|
}
|
|
1650
1650
|
else if (resultCount === 1) {
|
|
1651
|
-
return ( localize(
|
|
1651
|
+
return ( localize(8372, "{0} result in {1} files", resultCount, fileCount));
|
|
1652
1652
|
}
|
|
1653
1653
|
else if (fileCount === 1) {
|
|
1654
|
-
return ( localize(
|
|
1654
|
+
return ( localize(8373, "{0} results in {1} file", resultCount, fileCount));
|
|
1655
1655
|
}
|
|
1656
1656
|
else {
|
|
1657
|
-
return ( localize(
|
|
1657
|
+
return ( localize(8374, "{0} results in {1} files", resultCount, fileCount));
|
|
1658
1658
|
}
|
|
1659
1659
|
}
|
|
1660
1660
|
showSearchWithoutFolderMessage() {
|
|
1661
1661
|
this.searchWithoutFolderMessageElement = this.clearMessage();
|
|
1662
1662
|
const textEl = append(this.searchWithoutFolderMessageElement, $('p', undefined, ( localize(
|
|
1663
|
-
|
|
1663
|
+
8375,
|
|
1664
1664
|
"You have not opened or specified a folder. Only open files are currently searched - "
|
|
1665
1665
|
))));
|
|
1666
|
-
const openFolderButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(
|
|
1666
|
+
const openFolderButton = this.messageDisposables.add(( (new SearchLinkButton(( localize(8376, "Open Folder")), () => {
|
|
1667
1667
|
this.commandService.executeCommand(isMacintosh && isNative ? OpenFileFolderAction.ID : OpenFolderAction.ID).catch(err => onUnexpectedError(err));
|
|
1668
1668
|
}, this.hoverService))));
|
|
1669
1669
|
append(textEl, openFolderButton.element);
|
|
@@ -75,10 +75,10 @@ function stopPropagationForMultiLineDownwards(event, value, textarea) {
|
|
|
75
75
|
let SearchWidget = class SearchWidget extends Widget {
|
|
76
76
|
static { SearchWidget_1 = this; }
|
|
77
77
|
static { this.INPUT_MAX_HEIGHT = 134; }
|
|
78
|
-
static { this.REPLACE_ALL_DISABLED_LABEL = ( localize(
|
|
78
|
+
static { this.REPLACE_ALL_DISABLED_LABEL = ( localize(8311, "Replace All (Submit Search to Enable)")); }
|
|
79
79
|
static { this.REPLACE_ALL_ENABLED_LABEL = (keyBindingService2) => {
|
|
80
80
|
const kb = keyBindingService2.lookupKeybinding(ReplaceAllAction.ID);
|
|
81
|
-
return appendKeyBindingLabel(( localize(
|
|
81
|
+
return appendKeyBindingLabel(( localize(8312, "Replace All")), kb);
|
|
82
82
|
}; }
|
|
83
83
|
constructor(container, options, contextViewService, contextKeyService, keybindingService, clipboardServce, configurationService, accessibilityService, contextMenuService, instantiationService, editorService) {
|
|
84
84
|
super();
|
|
@@ -274,7 +274,7 @@ let SearchWidget = class SearchWidget extends Widget {
|
|
|
274
274
|
buttonSecondaryForeground: undefined,
|
|
275
275
|
buttonSecondaryHoverBackground: undefined,
|
|
276
276
|
buttonSeparator: undefined,
|
|
277
|
-
title: ( localize(
|
|
277
|
+
title: ( localize(8313, "Toggle Replace")),
|
|
278
278
|
hoverDelegate: getDefaultHoverDelegate('element'),
|
|
279
279
|
};
|
|
280
280
|
this.toggleReplaceButton = this._register(( (new Button(parent, opts))));
|
|
@@ -285,9 +285,9 @@ let SearchWidget = class SearchWidget extends Widget {
|
|
|
285
285
|
}
|
|
286
286
|
renderSearchInput(parent, options) {
|
|
287
287
|
const inputOptions = {
|
|
288
|
-
label: ( localize(
|
|
288
|
+
label: ( localize(8314, 'Search: Type Search Term and press Enter to search')),
|
|
289
289
|
validation: (value) => this.validateSearchInput(value),
|
|
290
|
-
placeholder: ( localize(
|
|
290
|
+
placeholder: ( localize(8315, "Search")),
|
|
291
291
|
appendCaseSensitiveLabel: appendKeyBindingLabel('', this.keybindingService.lookupKeybinding(SearchCommandIds.ToggleCaseSensitiveCommandId)),
|
|
292
292
|
appendWholeWordsLabel: appendKeyBindingLabel('', this.keybindingService.lookupKeybinding(SearchCommandIds.ToggleWholeWordCommandId)),
|
|
293
293
|
appendRegexLabel: appendKeyBindingLabel('', this.keybindingService.lookupKeybinding(SearchCommandIds.ToggleRegexCommandId)),
|
|
@@ -341,7 +341,7 @@ let SearchWidget = class SearchWidget extends Widget {
|
|
|
341
341
|
this._register(this.searchInputFocusTracker.onDidBlur(() => this.searchInputBoxFocused.set(false)));
|
|
342
342
|
this.showContextToggle = ( (new Toggle({
|
|
343
343
|
isChecked: false,
|
|
344
|
-
title: appendKeyBindingLabel(( localize(
|
|
344
|
+
title: appendKeyBindingLabel(( localize(8316, "Toggle Context Lines")), this.keybindingService.lookupKeybinding(ToggleSearchEditorContextLinesCommandId)),
|
|
345
345
|
icon: searchShowContextIcon,
|
|
346
346
|
hoverDelegate: getDefaultHoverDelegate('element'),
|
|
347
347
|
...defaultToggleStyles
|
|
@@ -387,8 +387,8 @@ let SearchWidget = class SearchWidget extends Widget {
|
|
|
387
387
|
this.replaceContainer = append(parent, $('.replace-container.disabled'));
|
|
388
388
|
const replaceBox = append(this.replaceContainer, $('.replace-input'));
|
|
389
389
|
this.replaceInput = this._register(( (new ContextScopedReplaceInput(replaceBox, this.contextViewService, {
|
|
390
|
-
label: ( localize(
|
|
391
|
-
placeholder: ( localize(
|
|
390
|
+
label: ( localize(8317, 'Replace: Type replace term and press Enter to preview')),
|
|
391
|
+
placeholder: ( localize(8318, "Replace")),
|
|
392
392
|
appendPreserveCaseLabel: appendKeyBindingLabel('', this.keybindingService.lookupKeybinding(SearchCommandIds.TogglePreserveCaseId)),
|
|
393
393
|
history: options.replaceHistory,
|
|
394
394
|
showHistoryHint: () => showHistoryKeybindingHint(this.keybindingService),
|
|
@@ -120,7 +120,7 @@ let SearchEditor = class SearchEditor extends AbstractTextCodeEditor {
|
|
|
120
120
|
this._register(this.queryEditorWidget.onDidToggleContext(() => this.triggerSearch({ resetCursor: false })));
|
|
121
121
|
this.includesExcludesContainer = append(container, $('.includes-excludes'));
|
|
122
122
|
this.toggleQueryDetailsButton = append(this.includesExcludesContainer, $('.expand' + ThemeIcon.asCSSSelector(searchDetailsIcon), { tabindex: 0, role: 'button' }));
|
|
123
|
-
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localize(
|
|
123
|
+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('element'), this.toggleQueryDetailsButton, ( localize(8432, "Toggle Search Details"))));
|
|
124
124
|
this._register(addDisposableListener(this.toggleQueryDetailsButton, EventType.CLICK, e => {
|
|
125
125
|
EventHelper.stop(e);
|
|
126
126
|
this.toggleIncludesExcludes();
|
|
@@ -145,19 +145,19 @@ let SearchEditor = class SearchEditor extends AbstractTextCodeEditor {
|
|
|
145
145
|
}
|
|
146
146
|
}));
|
|
147
147
|
const folderIncludesList = append(this.includesExcludesContainer, $('.file-types.includes'));
|
|
148
|
-
const filesToIncludeTitle = ( localize(
|
|
148
|
+
const filesToIncludeTitle = ( localize(8433, "files to include"));
|
|
149
149
|
append(folderIncludesList, $('h4', undefined, filesToIncludeTitle));
|
|
150
150
|
this.inputPatternIncludes = this._register(scopedInstantiationService.createInstance(IncludePatternInputWidget, folderIncludesList, this.contextViewService, {
|
|
151
|
-
ariaLabel: ( localize(
|
|
151
|
+
ariaLabel: ( localize(8434, 'Search Include Patterns')),
|
|
152
152
|
inputBoxStyles: searchEditorInputboxStyles
|
|
153
153
|
}));
|
|
154
154
|
this.inputPatternIncludes.onSubmit(triggeredOnType => this.triggerSearch({ resetCursor: false, delay: triggeredOnType ? this.searchConfig.searchOnTypeDebouncePeriod : 0 }));
|
|
155
155
|
this._register(this.inputPatternIncludes.onChangeSearchInEditorsBox(() => this.triggerSearch()));
|
|
156
156
|
const excludesList = append(this.includesExcludesContainer, $('.file-types.excludes'));
|
|
157
|
-
const excludesTitle = ( localize(
|
|
157
|
+
const excludesTitle = ( localize(8435, "files to exclude"));
|
|
158
158
|
append(excludesList, $('h4', undefined, excludesTitle));
|
|
159
159
|
this.inputPatternExcludes = this._register(scopedInstantiationService.createInstance(ExcludePatternInputWidget, excludesList, this.contextViewService, {
|
|
160
|
-
ariaLabel: ( localize(
|
|
160
|
+
ariaLabel: ( localize(8436, 'Search Exclude Patterns')),
|
|
161
161
|
inputBoxStyles: searchEditorInputboxStyles
|
|
162
162
|
}));
|
|
163
163
|
this.inputPatternExcludes.onSubmit(triggeredOnType => this.triggerSearch({ resetCursor: false, delay: triggeredOnType ? this.searchConfig.searchOnTypeDebouncePeriod : 0 }));
|
|
@@ -176,7 +176,7 @@ let SearchEditor = class SearchEditor extends AbstractTextCodeEditor {
|
|
|
176
176
|
clearNode(this.messageBox);
|
|
177
177
|
this.messageDisposables.clear();
|
|
178
178
|
if (show) {
|
|
179
|
-
const runAgainLink = append(this.messageBox, $('a.pointer.prominent.message', {}, ( localize(
|
|
179
|
+
const runAgainLink = append(this.messageBox, $('a.pointer.prominent.message', {}, ( localize(8437, "Run Search"))));
|
|
180
180
|
this.messageDisposables.add(addDisposableListener(runAgainLink, EventType.CLICK, async () => {
|
|
181
181
|
await this.triggerSearch();
|
|
182
182
|
this.searchResultEditor.focus();
|
|
@@ -389,7 +389,7 @@ let SearchEditor = class SearchEditor extends AbstractTextCodeEditor {
|
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
391
|
alert(( localize(
|
|
392
|
-
|
|
392
|
+
8438,
|
|
393
393
|
"Matched {0} at {1} in file {2}",
|
|
394
394
|
matchText,
|
|
395
395
|
matchLineText,
|
|
@@ -687,7 +687,7 @@ let SearchEditor = class SearchEditor extends AbstractTextCodeEditor {
|
|
|
687
687
|
}
|
|
688
688
|
}
|
|
689
689
|
getAriaLabel() {
|
|
690
|
-
return this.getInput()?.getName() ?? ( localize(
|
|
690
|
+
return this.getInput()?.getName() ?? ( localize(8439, "Search"));
|
|
691
691
|
}
|
|
692
692
|
};
|
|
693
693
|
SearchEditor = SearchEditor_1 = ( (__decorate([
|
|
@@ -711,7 +711,7 @@ SearchEditor = SearchEditor_1 = ( (__decorate([
|
|
|
711
711
|
( (__param(18, ILogService))),
|
|
712
712
|
( (__param(19, IHoverService)))
|
|
713
713
|
], SearchEditor)));
|
|
714
|
-
const searchEditorTextInputBorder = registerColor('searchEditor.textInputBorder', inputBorder, ( localize(
|
|
714
|
+
const searchEditorTextInputBorder = registerColor('searchEditor.textInputBorder', inputBorder, ( localize(8440, "Search editor text input box border.")));
|
|
715
715
|
function findNextRange(matchRanges, currentPosition) {
|
|
716
716
|
for (const matchRange of matchRanges) {
|
|
717
717
|
if (Position.isBefore(currentPosition, matchRange.getStartPosition())) {
|
|
@@ -29,7 +29,7 @@ import { registerIcon } from 'vscode/vscode/vs/platform/theme/common/iconRegistr
|
|
|
29
29
|
|
|
30
30
|
var SearchEditorInput_1;
|
|
31
31
|
const SEARCH_EDITOR_EXT = '.code-search';
|
|
32
|
-
const SearchEditorIcon = registerIcon('search-editor-label-icon', Codicon.search, ( localize(
|
|
32
|
+
const SearchEditorIcon = registerIcon('search-editor-label-icon', Codicon.search, ( localize(8429, 'Icon of the search editor label.')));
|
|
33
33
|
let SearchEditorInput = class SearchEditorInput extends EditorInput {
|
|
34
34
|
static { SearchEditorInput_1 = this; }
|
|
35
35
|
static { this.ID = SearchEditorInputTypeId; }
|
|
@@ -162,16 +162,16 @@ let SearchEditorInput = class SearchEditorInput extends EditorInput {
|
|
|
162
162
|
if (this.backingUri) {
|
|
163
163
|
const originalURI = EditorResourceAccessor.getOriginalUri(this);
|
|
164
164
|
return ( localize(
|
|
165
|
-
|
|
165
|
+
8430,
|
|
166
166
|
"Search: {0}",
|
|
167
167
|
basename((originalURI ?? this.backingUri).path, SEARCH_EDITOR_EXT)
|
|
168
168
|
));
|
|
169
169
|
}
|
|
170
170
|
const query = this._cachedConfigurationModel?.config?.query?.trim();
|
|
171
171
|
if (query) {
|
|
172
|
-
return ( localize(
|
|
172
|
+
return ( localize(8430, "Search: {0}", trimToMax(query)));
|
|
173
173
|
}
|
|
174
|
-
return ( localize(
|
|
174
|
+
return ( localize(8431, "Search"));
|
|
175
175
|
}
|
|
176
176
|
setDirty(dirty) {
|
|
177
177
|
const wasDirty = this.dirty;
|
|
@@ -164,7 +164,7 @@ const extractSearchQueryFromLines = (lines) => {
|
|
|
164
164
|
out += '\\';
|
|
165
165
|
}
|
|
166
166
|
else {
|
|
167
|
-
throw Error(localize(
|
|
167
|
+
throw Error(localize(10787, "All backslashes in Query string must be escaped (\\\\)"));
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
else {
|
|
@@ -210,16 +210,16 @@ const serializeSearchResultForEditor = (searchResult, rawIncludePattern, rawExcl
|
|
|
210
210
|
throw Error('Internal Error: Expected query, got null');
|
|
211
211
|
}
|
|
212
212
|
const config = contentPatternToSearchConfiguration(searchResult.query, rawIncludePattern, rawExcludePattern, contextLines);
|
|
213
|
-
const filecount = searchResult.fileCount() > 1 ? ( localize(
|
|
214
|
-
const resultcount = searchResult.count() > 1 ? ( localize(
|
|
213
|
+
const filecount = searchResult.fileCount() > 1 ? ( localize(10788, "{0} files", searchResult.fileCount())) : ( localize(10789, "1 file"));
|
|
214
|
+
const resultcount = searchResult.count() > 1 ? ( localize(10790, "{0} results", searchResult.count())) : ( localize(10791, "1 result"));
|
|
215
215
|
const info = [
|
|
216
216
|
searchResult.count()
|
|
217
217
|
? `${resultcount} - ${filecount}`
|
|
218
|
-
: ( localize(
|
|
218
|
+
: ( localize(10792, "No Results")),
|
|
219
219
|
];
|
|
220
220
|
if (limitHit) {
|
|
221
221
|
info.push(( localize(
|
|
222
|
-
|
|
222
|
+
10793,
|
|
223
223
|
"The result set only contains a subset of all matches. Be more specific in your search to narrow down the results."
|
|
224
224
|
)));
|
|
225
225
|
}
|