@codingame/monaco-vscode-debug-service-override 8.0.3 → 9.0.0
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/debug/browser/callStackView.js +16 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +107 -107
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +49 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +19 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +37 -27
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +15 -13
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +8 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +21 -21
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +53 -42
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +109 -82
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +9 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +6 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +7 -7
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +8 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +80 -30
- package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibilityHelp.js +12 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibleView.js +7 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +19 -13
- package/vscode/src/vs/workbench/contrib/debug/browser/runAndDebugAccessibilityHelp.js +29 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +11 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +21 -20
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +7 -7
- package/vscode/src/vs/workbench/contrib/debug/common/debugAccessibilityAnnouncer.js +2 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +44 -44
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +11 -11
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +0 -233
|
@@ -62,7 +62,7 @@ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/
|
|
|
62
62
|
import { getSimpleEditorOptions, getSimpleCodeEditorWidgetOptions } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions';
|
|
63
63
|
import { FocusSessionActionViewItem } from './debugActionViewItems.js';
|
|
64
64
|
import { debugConsoleEvaluationPrompt, debugConsoleClearAll } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
65
|
-
import { LinkDetector } from '
|
|
65
|
+
import { LinkDetector } from 'vscode/vscode/vs/workbench/contrib/debug/browser/linkDetector';
|
|
66
66
|
import { ReplFilter } from './replFilter.js';
|
|
67
67
|
import { ReplDelegate, ReplDataSource, ReplVariablesRenderer, ReplOutputElementRenderer, ReplEvaluationInputsRenderer, ReplGroupRenderer, ReplEvaluationResultsRenderer, ReplRawObjectsRenderer, ReplAccessibilityProvider } from './replViewer.js';
|
|
68
68
|
import { DEBUG_SCHEME, CONTEXT_MULTI_SESSION_REPL, State, CONTEXT_IN_DEBUG_REPL, REPL_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
@@ -76,6 +76,7 @@ import { IAccessibilitySignalService } from 'vscode/vscode/vs/platform/accessibi
|
|
|
76
76
|
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
77
77
|
import { AccessibilityVerbositySettingId } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
78
78
|
import { AccessibilityCommandId } from 'vscode/vscode/vs/workbench/contrib/accessibility/common/accessibilityCommands';
|
|
79
|
+
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
79
80
|
|
|
80
81
|
var Repl_1, ReplOptions_1;
|
|
81
82
|
const $ = $$1;
|
|
@@ -97,7 +98,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
97
98
|
super({
|
|
98
99
|
...options,
|
|
99
100
|
filterOptions: {
|
|
100
|
-
placeholder: ( localize(
|
|
101
|
+
placeholder: ( localize(6006, "Filter (e.g. text, !exclude, \\escape)")),
|
|
101
102
|
text: filterText,
|
|
102
103
|
history: JSON.parse(storageService.get(FILTER_HISTORY_STORAGE_KEY, StorageScope.WORKSPACE, '[]')),
|
|
103
104
|
}
|
|
@@ -115,6 +116,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
115
116
|
this.replInputLineCount = 1;
|
|
116
117
|
this.styleChangedWhenInvisible = false;
|
|
117
118
|
this.modelChangeListener = Disposable.None;
|
|
119
|
+
this.findIsOpen = false;
|
|
118
120
|
this.menu = menuService.createMenu(MenuId.DebugConsoleContext, contextKeyService);
|
|
119
121
|
this._register(this.menu);
|
|
120
122
|
this.history = ( (new HistoryNavigator(
|
|
@@ -288,6 +290,9 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
288
290
|
focusFilter() {
|
|
289
291
|
this.filterWidget.focus();
|
|
290
292
|
}
|
|
293
|
+
openFind() {
|
|
294
|
+
this.tree?.openFind();
|
|
295
|
+
}
|
|
291
296
|
setMode() {
|
|
292
297
|
if (!this.isVisible()) {
|
|
293
298
|
return;
|
|
@@ -441,6 +446,9 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
441
446
|
collapseAll() {
|
|
442
447
|
this.tree?.collapseAll();
|
|
443
448
|
}
|
|
449
|
+
getDebugSession() {
|
|
450
|
+
return this.tree?.getInput();
|
|
451
|
+
}
|
|
444
452
|
getReplInput() {
|
|
445
453
|
return this.replInput;
|
|
446
454
|
}
|
|
@@ -496,7 +504,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
496
504
|
await autoExpandElements(session.getReplElements());
|
|
497
505
|
}
|
|
498
506
|
const { total, filtered } = this.getFilterStats();
|
|
499
|
-
this.filterWidget.updateBadge(total === filtered || total === 0 ? undefined : ( localize(
|
|
507
|
+
this.filterWidget.updateBadge(total === filtered || total === 0 ? undefined : ( localize(6007, "Showing {0} of {1}", filtered, total)));
|
|
500
508
|
}, Repl_1.REFRESH_DELAY))
|
|
501
509
|
);
|
|
502
510
|
}
|
|
@@ -550,7 +558,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
550
558
|
accessibilityProvider: ( (new ReplAccessibilityProvider())),
|
|
551
559
|
identityProvider,
|
|
552
560
|
mouseSupport: false,
|
|
553
|
-
findWidgetEnabled:
|
|
561
|
+
findWidgetEnabled: true,
|
|
554
562
|
keyboardNavigationLabelProvider: { getKeyboardNavigationLabel: (e) => ( (e.toString(true))) },
|
|
555
563
|
horizontalScrolling: !wordWrap,
|
|
556
564
|
setRowLineHeight: false,
|
|
@@ -569,8 +577,12 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
569
577
|
this.previousTreeScrollHeight = tree.scrollHeight;
|
|
570
578
|
}));
|
|
571
579
|
this._register(tree.onContextMenu(e => this.onContextMenu(e)));
|
|
580
|
+
this._register(tree.onDidChangeFindOpenState((open) => this.findIsOpen = open));
|
|
572
581
|
let lastSelectedString;
|
|
573
582
|
this._register(tree.onMouseClick(() => {
|
|
583
|
+
if (this.findIsOpen) {
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
574
586
|
const selection = getWindow(this.treeContainer).getSelection();
|
|
575
587
|
if (!selection || selection.type !== 'Range' || lastSelectedString === ( (selection.toString()))) {
|
|
576
588
|
this.replInput.focus();
|
|
@@ -615,17 +627,17 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
615
627
|
this._register(addStandardDisposableListener(this.replInputContainer, EventType.BLUR, () => this.replInputContainer.classList.remove('synthetic-focus')));
|
|
616
628
|
}
|
|
617
629
|
getAriaLabel() {
|
|
618
|
-
let ariaLabel = ( localize(
|
|
630
|
+
let ariaLabel = ( localize(6008, "Debug Console"));
|
|
619
631
|
if (!this.configurationService.getValue(AccessibilityVerbositySettingId.Debug)) {
|
|
620
632
|
return ariaLabel;
|
|
621
633
|
}
|
|
622
634
|
const keybinding = this.keybindingService.lookupKeybinding(AccessibilityCommandId.OpenAccessibilityHelp)?.getAriaLabel();
|
|
623
635
|
if (keybinding) {
|
|
624
|
-
ariaLabel = ( localize(
|
|
636
|
+
ariaLabel = ( localize(6009, "{0}, use ({1}) for accessibility help", ariaLabel, keybinding));
|
|
625
637
|
}
|
|
626
638
|
else {
|
|
627
639
|
ariaLabel = ( localize(
|
|
628
|
-
|
|
640
|
+
6010,
|
|
629
641
|
"{0}, run the command Open Accessibility Help which is currently not triggerable via keybinding.",
|
|
630
642
|
ariaLabel
|
|
631
643
|
));
|
|
@@ -665,7 +677,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
665
677
|
},
|
|
666
678
|
renderOptions: {
|
|
667
679
|
after: {
|
|
668
|
-
contentText: ( localize(
|
|
680
|
+
contentText: ( localize(6011, "Please start a debug session to evaluate expressions")),
|
|
669
681
|
color: transparentForeground ? ( (transparentForeground.toString())) : undefined
|
|
670
682
|
}
|
|
671
683
|
}
|
|
@@ -778,7 +790,7 @@ class AcceptReplInputAction extends EditorAction {
|
|
|
778
790
|
constructor() {
|
|
779
791
|
super({
|
|
780
792
|
id: 'repl.action.acceptInput',
|
|
781
|
-
label: ( localize(
|
|
793
|
+
label: ( localize(6012, "Debug Console: Accept Input")),
|
|
782
794
|
alias: 'Debug Console: Accept Input',
|
|
783
795
|
precondition: CONTEXT_IN_DEBUG_REPL,
|
|
784
796
|
kbOpts: {
|
|
@@ -794,30 +806,61 @@ class AcceptReplInputAction extends EditorAction {
|
|
|
794
806
|
repl?.acceptReplInput();
|
|
795
807
|
}
|
|
796
808
|
}
|
|
797
|
-
class FilterReplAction extends
|
|
809
|
+
class FilterReplAction extends ViewAction {
|
|
798
810
|
constructor() {
|
|
799
811
|
super({
|
|
812
|
+
viewId: REPL_VIEW_ID,
|
|
800
813
|
id: 'repl.action.filter',
|
|
801
|
-
|
|
802
|
-
alias: 'Debug Console: Focus Filter',
|
|
814
|
+
title: ( localize(6013, "Debug Console: Focus Filter")),
|
|
803
815
|
precondition: CONTEXT_IN_DEBUG_REPL,
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
816
|
+
keybinding: [{
|
|
817
|
+
when: EditorContextKeys.textInputFocus,
|
|
818
|
+
primary: KeyMod.CtrlCmd | KeyCode.KeyF,
|
|
819
|
+
weight: KeybindingWeight.EditorContrib
|
|
820
|
+
}]
|
|
809
821
|
});
|
|
810
822
|
}
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
823
|
+
runInView(accessor, repl) {
|
|
824
|
+
repl.focusFilter();
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
class FindReplAction extends ViewAction {
|
|
828
|
+
constructor() {
|
|
829
|
+
super({
|
|
830
|
+
viewId: REPL_VIEW_ID,
|
|
831
|
+
id: 'repl.action.find',
|
|
832
|
+
title: ( localize(6014, "Debug Console: Focus Find")),
|
|
833
|
+
precondition: CONTEXT_IN_DEBUG_REPL,
|
|
834
|
+
keybinding: [{
|
|
835
|
+
when: ( (ContextKeyExpr.or(
|
|
836
|
+
CONTEXT_IN_DEBUG_REPL,
|
|
837
|
+
(ContextKeyExpr.equals('focusedView', 'workbench.panel.repl.view'))
|
|
838
|
+
))),
|
|
839
|
+
primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KeyF,
|
|
840
|
+
weight: KeybindingWeight.EditorContrib
|
|
841
|
+
}],
|
|
842
|
+
icon: Codicon.search,
|
|
843
|
+
menu: [{
|
|
844
|
+
id: MenuId.ViewTitle,
|
|
845
|
+
group: 'navigation',
|
|
846
|
+
when: ( (ContextKeyExpr.equals('view', REPL_VIEW_ID))),
|
|
847
|
+
order: 15
|
|
848
|
+
}, {
|
|
849
|
+
id: MenuId.DebugConsoleContext,
|
|
850
|
+
group: 'z_commands',
|
|
851
|
+
order: 25
|
|
852
|
+
}],
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
runInView(accessor, view) {
|
|
856
|
+
view.openFind();
|
|
814
857
|
}
|
|
815
858
|
}
|
|
816
859
|
class ReplCopyAllAction extends EditorAction {
|
|
817
860
|
constructor() {
|
|
818
861
|
super({
|
|
819
862
|
id: 'repl.action.copyAll',
|
|
820
|
-
label: ( localize(
|
|
863
|
+
label: ( localize(6015, "Debug: Console Copy All")),
|
|
821
864
|
alias: 'Debug Console Copy All',
|
|
822
865
|
precondition: CONTEXT_IN_DEBUG_REPL,
|
|
823
866
|
});
|
|
@@ -832,7 +875,8 @@ class ReplCopyAllAction extends EditorAction {
|
|
|
832
875
|
}
|
|
833
876
|
registerEditorAction(AcceptReplInputAction);
|
|
834
877
|
registerEditorAction(ReplCopyAllAction);
|
|
835
|
-
|
|
878
|
+
registerAction2(FilterReplAction);
|
|
879
|
+
registerAction2(FindReplAction);
|
|
836
880
|
class SelectReplActionViewItem extends FocusSessionActionViewItem {
|
|
837
881
|
getSessions() {
|
|
838
882
|
return this.debugService.getModel().getSessions(true).filter(s => s.hasSeparateRepl() && !( (sessionsToIgnore.has(s))));
|
|
@@ -853,7 +897,7 @@ registerAction2(class extends ViewAction {
|
|
|
853
897
|
super({
|
|
854
898
|
id: selectReplCommandId,
|
|
855
899
|
viewId: REPL_VIEW_ID,
|
|
856
|
-
title: ( localize(
|
|
900
|
+
title: ( localize(6016, "Select Debug Console")),
|
|
857
901
|
f1: false,
|
|
858
902
|
menu: {
|
|
859
903
|
id: MenuId.ViewTitle,
|
|
@@ -885,9 +929,9 @@ registerAction2(class extends ViewAction {
|
|
|
885
929
|
super({
|
|
886
930
|
id: 'workbench.debug.panel.action.clearReplAction',
|
|
887
931
|
viewId: REPL_VIEW_ID,
|
|
888
|
-
title: ( localize2(
|
|
932
|
+
title: ( localize2(6017, 'Clear Console')),
|
|
889
933
|
metadata: {
|
|
890
|
-
description: ( localize2(
|
|
934
|
+
description: ( localize2(6018, 'Clears all program output from your debug REPL'))
|
|
891
935
|
},
|
|
892
936
|
f1: true,
|
|
893
937
|
icon: debugConsoleClearAll,
|
|
@@ -900,7 +944,13 @@ registerAction2(class extends ViewAction {
|
|
|
900
944
|
id: MenuId.DebugConsoleContext,
|
|
901
945
|
group: 'z_commands',
|
|
902
946
|
order: 20
|
|
903
|
-
}]
|
|
947
|
+
}],
|
|
948
|
+
keybinding: [{
|
|
949
|
+
primary: 0,
|
|
950
|
+
mac: { primary: KeyMod.CtrlCmd | KeyCode.KeyK },
|
|
951
|
+
weight: KeybindingWeight.WorkbenchContrib + 1,
|
|
952
|
+
when: ( (ContextKeyExpr.equals('focusedView', 'workbench.panel.repl.view')))
|
|
953
|
+
}],
|
|
904
954
|
});
|
|
905
955
|
}
|
|
906
956
|
runInView(_accessor, view) {
|
|
@@ -913,7 +963,7 @@ registerAction2(class extends ViewAction {
|
|
|
913
963
|
constructor() {
|
|
914
964
|
super({
|
|
915
965
|
id: 'debug.collapseRepl',
|
|
916
|
-
title: ( localize(
|
|
966
|
+
title: ( localize(6019, "Collapse All")),
|
|
917
967
|
viewId: REPL_VIEW_ID,
|
|
918
968
|
menu: {
|
|
919
969
|
id: MenuId.DebugConsoleContext,
|
|
@@ -931,7 +981,7 @@ registerAction2(class extends ViewAction {
|
|
|
931
981
|
constructor() {
|
|
932
982
|
super({
|
|
933
983
|
id: 'debug.replPaste',
|
|
934
|
-
title: ( localize(
|
|
984
|
+
title: ( localize(6020, "Paste")),
|
|
935
985
|
viewId: REPL_VIEW_ID,
|
|
936
986
|
precondition: ( (CONTEXT_DEBUG_STATE.notEqualsTo(getStateLabel(State.Inactive)))),
|
|
937
987
|
menu: {
|
|
@@ -961,7 +1011,7 @@ registerAction2(class extends ViewAction {
|
|
|
961
1011
|
constructor() {
|
|
962
1012
|
super({
|
|
963
1013
|
id: 'workbench.debug.action.copyAll',
|
|
964
|
-
title: ( localize(
|
|
1014
|
+
title: ( localize(6021, "Copy All")),
|
|
965
1015
|
viewId: REPL_VIEW_ID,
|
|
966
1016
|
menu: {
|
|
967
1017
|
id: MenuId.DebugConsoleContext,
|
|
@@ -979,7 +1029,7 @@ registerAction2(class extends Action2 {
|
|
|
979
1029
|
constructor() {
|
|
980
1030
|
super({
|
|
981
1031
|
id: 'debug.replCopy',
|
|
982
|
-
title: ( localize(
|
|
1032
|
+
title: ( localize(6022, "Copy")),
|
|
983
1033
|
menu: {
|
|
984
1034
|
id: MenuId.DebugConsoleContext,
|
|
985
1035
|
group: '2_cutcopypaste',
|
|
@@ -5,7 +5,6 @@ import { getReplView } from './repl.js';
|
|
|
5
5
|
import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
6
6
|
import { AccessibilityVerbositySettingId } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
7
7
|
import { localize } from 'vscode/vscode/vs/nls';
|
|
8
|
-
import { AccessibilityHelpNLS } from 'vscode/vscode/vs/editor/common/standaloneStrings';
|
|
9
8
|
|
|
10
9
|
class ReplAccessibilityHelp {
|
|
11
10
|
constructor() {
|
|
@@ -44,58 +43,42 @@ class ReplAccessibilityHelpProvider extends Disposable {
|
|
|
44
43
|
provideContent() {
|
|
45
44
|
return [
|
|
46
45
|
( localize(
|
|
47
|
-
|
|
46
|
+
6059,
|
|
48
47
|
"The debug console is a Read-Eval-Print-Loop that allows you to evaluate expressions and run commands and can be focused with{0}.",
|
|
49
48
|
'<keybinding:workbench.panel.repl.view.focus>'
|
|
50
49
|
)),
|
|
51
50
|
( localize(
|
|
52
|
-
|
|
51
|
+
6060,
|
|
53
52
|
"The debug console output can be navigated to from the input field with the Focus Previous Widget command{0}.",
|
|
54
53
|
'<keybinding:widgetNavigation.focusPrevious>'
|
|
55
54
|
)),
|
|
56
55
|
( localize(
|
|
57
|
-
|
|
56
|
+
6061,
|
|
58
57
|
"The debug console input can be navigated to from the output with the Focus Next Widget command{0}.",
|
|
59
58
|
'<keybinding:widgetNavigation.focusNext>'
|
|
60
59
|
)),
|
|
61
60
|
( localize(
|
|
62
|
-
|
|
61
|
+
6062,
|
|
63
62
|
"The debug console output history can be navigated with the up and down arrow keys."
|
|
64
63
|
)),
|
|
65
64
|
( localize(
|
|
66
|
-
|
|
65
|
+
6063,
|
|
67
66
|
"The Open Accessible View command{0} will allow character by character navigation of the console output.",
|
|
68
67
|
'<keybinding:editor.action.accessibleView>'
|
|
69
68
|
)),
|
|
70
69
|
( localize(
|
|
71
|
-
|
|
72
|
-
"The Show Run and Debug view command{0} will open the Run and Debug view.",
|
|
70
|
+
6064,
|
|
71
|
+
"The Show Run and Debug view command{0} will open the Run and Debug view and provides more information about debugging.",
|
|
73
72
|
'<keybinding:workbench.view.debug>'
|
|
74
73
|
)),
|
|
75
|
-
AccessibilityHelpNLS.setBreakpoint,
|
|
76
74
|
( localize(
|
|
77
|
-
|
|
78
|
-
"The
|
|
79
|
-
|
|
80
|
-
( localize(
|
|
81
|
-
6123,
|
|
82
|
-
"The Debug: Continue command{0} will continue execution until the next breakpoint.",
|
|
83
|
-
'<keybinding:workbench.action.debug.continue>'
|
|
84
|
-
)),
|
|
85
|
-
( localize(
|
|
86
|
-
6124,
|
|
87
|
-
"The Debug: Step Into command{0} will step into the next function call.",
|
|
88
|
-
'<keybinding:workbench.action.debug.stepInto>'
|
|
89
|
-
)),
|
|
90
|
-
( localize(
|
|
91
|
-
6125,
|
|
92
|
-
"The Debug: Step Over command{0} will step over the current function call.",
|
|
93
|
-
'<keybinding:workbench.action.debug.stepOver>'
|
|
75
|
+
6065,
|
|
76
|
+
"The Debug: Clear Console command{0} will clear the console output.",
|
|
77
|
+
'<keybinding:workbench.debug.panel.action.clearReplAction>'
|
|
94
78
|
)),
|
|
95
79
|
( localize(
|
|
96
|
-
|
|
97
|
-
"The
|
|
98
|
-
'<keybinding:workbench.action.debug.stepOut>'
|
|
80
|
+
6066,
|
|
81
|
+
"The setting `debug.expandLazyVariables` controls whether variables are evaluated automatically. This is enabled by default when using a screen reader."
|
|
99
82
|
)),
|
|
100
83
|
].join('\n');
|
|
101
84
|
}
|
|
@@ -2,7 +2,6 @@ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
|
2
2
|
import { AccessibleViewType, AccessibleViewProviderId } from 'vscode/vscode/vs/platform/accessibility/browser/accessibleView';
|
|
3
3
|
import { IAccessibleViewService } from 'vscode/vscode/vs/platform/accessibility/browser/accessibleView.service';
|
|
4
4
|
import { AccessibilityVerbositySettingId } from 'vscode/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
|
|
5
|
-
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug.service';
|
|
6
5
|
import { getReplView } from './repl.js';
|
|
7
6
|
import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService.service';
|
|
8
7
|
import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
@@ -19,22 +18,20 @@ class ReplAccessibleView {
|
|
|
19
18
|
}
|
|
20
19
|
getProvider(accessor) {
|
|
21
20
|
const viewsService = accessor.get(IViewsService);
|
|
22
|
-
const debugService = accessor.get(IDebugService);
|
|
23
21
|
const accessibleViewService = accessor.get(IAccessibleViewService);
|
|
24
22
|
const replView = getReplView(viewsService);
|
|
25
23
|
if (!replView) {
|
|
26
24
|
return undefined;
|
|
27
25
|
}
|
|
28
26
|
const focusedElement = replView.getFocusedElement();
|
|
29
|
-
return ( new ReplOutputAccessibleViewProvider(replView, focusedElement,
|
|
27
|
+
return ( new ReplOutputAccessibleViewProvider(replView, focusedElement, accessibleViewService));
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
30
|
let ReplOutputAccessibleViewProvider = class ReplOutputAccessibleViewProvider extends Disposable {
|
|
33
|
-
constructor(_replView, _focusedElement,
|
|
31
|
+
constructor(_replView, _focusedElement, _accessibleViewService) {
|
|
34
32
|
super();
|
|
35
33
|
this._replView = _replView;
|
|
36
34
|
this._focusedElement = _focusedElement;
|
|
37
|
-
this._debugService = _debugService;
|
|
38
35
|
this._accessibleViewService = _accessibleViewService;
|
|
39
36
|
this.id = AccessibleViewProviderId.Repl;
|
|
40
37
|
this._onDidChangeContent = this._register(( new Emitter()));
|
|
@@ -50,12 +47,11 @@ let ReplOutputAccessibleViewProvider = class ReplOutputAccessibleViewProvider ex
|
|
|
50
47
|
this._treeHadFocus = !!_focusedElement;
|
|
51
48
|
}
|
|
52
49
|
provideContent() {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return 'No debug session is active.';
|
|
50
|
+
const debugSession = this._replView.getDebugSession();
|
|
51
|
+
if (!debugSession) {
|
|
52
|
+
return 'No debug session available.';
|
|
57
53
|
}
|
|
58
|
-
const elements =
|
|
54
|
+
const elements = debugSession.getReplElements();
|
|
59
55
|
if (!elements.length) {
|
|
60
56
|
return 'No output in the debug console.';
|
|
61
57
|
}
|
|
@@ -115,8 +111,7 @@ let ReplOutputAccessibleViewProvider = class ReplOutputAccessibleViewProvider ex
|
|
|
115
111
|
}
|
|
116
112
|
};
|
|
117
113
|
ReplOutputAccessibleViewProvider = ( __decorate([
|
|
118
|
-
( __param(2,
|
|
119
|
-
( __param(3, IAccessibleViewService))
|
|
114
|
+
( __param(2, IAccessibleViewService))
|
|
120
115
|
], ReplOutputAccessibleViewProvider));
|
|
121
116
|
|
|
122
117
|
export { ReplAccessibleView };
|
|
@@ -5,7 +5,7 @@ import { HighlightedLabel } from 'vscode/vscode/vs/base/browser/ui/highlightedla
|
|
|
5
5
|
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
6
6
|
import { CachedListVirtualDelegate } from 'vscode/vscode/vs/base/browser/ui/list/list';
|
|
7
7
|
import { createMatches } from 'vscode/vscode/vs/base/common/filters';
|
|
8
|
-
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
8
|
+
import { DisposableStore, Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
9
9
|
import { basename } from 'vscode/vscode/vs/base/common/path';
|
|
10
10
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
11
11
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
@@ -91,16 +91,19 @@ class ReplEvaluationResultsRenderer {
|
|
|
91
91
|
renderTemplate(container) {
|
|
92
92
|
const output = append(container, $('.evaluation-result.expression'));
|
|
93
93
|
const value = append(output, $('span.value'));
|
|
94
|
-
return { value };
|
|
94
|
+
return { value, elementStore: ( (new DisposableStore())) };
|
|
95
95
|
}
|
|
96
96
|
renderElement(element, index, templateData) {
|
|
97
|
+
templateData.elementStore.clear();
|
|
97
98
|
const expression = element.element;
|
|
98
|
-
renderExpressionValue(expression, templateData.value, {
|
|
99
|
+
renderExpressionValue(templateData.elementStore, expression, templateData.value, {
|
|
99
100
|
colorize: true,
|
|
100
|
-
|
|
101
|
+
hover: false,
|
|
102
|
+
linkDetector: this.linkDetector,
|
|
101
103
|
}, this.hoverService);
|
|
102
104
|
}
|
|
103
105
|
disposeTemplate(templateData) {
|
|
106
|
+
templateData.elementStore.dispose();
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
@@ -175,7 +178,7 @@ let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressi
|
|
|
175
178
|
const isReplVariable = expression instanceof ReplVariableElement;
|
|
176
179
|
if (isReplVariable || !expression.name) {
|
|
177
180
|
data.label.set('');
|
|
178
|
-
renderExpressionValue(isReplVariable ? expression.expression : expression, data.value, { colorize: true, linkDetector: this.linkDetector }, this.hoverService);
|
|
181
|
+
renderExpressionValue(data.elementDisposable, isReplVariable ? expression.expression : expression, data.value, { colorize: true, linkDetector: this.linkDetector, hover: false }, this.hoverService);
|
|
179
182
|
data.expression.classList.remove('nested-variable');
|
|
180
183
|
}
|
|
181
184
|
else {
|
|
@@ -208,9 +211,10 @@ class ReplRawObjectsRenderer {
|
|
|
208
211
|
const name = append(expression, $('span.name'));
|
|
209
212
|
const label = ( (new HighlightedLabel(name)));
|
|
210
213
|
const value = append(expression, $('span.value'));
|
|
211
|
-
return { container, expression, name, label, value };
|
|
214
|
+
return { container, expression, name, label, value, elementStore: ( (new DisposableStore())) };
|
|
212
215
|
}
|
|
213
216
|
renderElement(node, index, templateData) {
|
|
217
|
+
templateData.elementStore.clear();
|
|
214
218
|
const element = node.element;
|
|
215
219
|
templateData.label.set(element.name ? `${element.name}:` : '', createMatches(node.filterData));
|
|
216
220
|
if (element.name) {
|
|
@@ -219,11 +223,13 @@ class ReplRawObjectsRenderer {
|
|
|
219
223
|
else {
|
|
220
224
|
templateData.name.textContent = '';
|
|
221
225
|
}
|
|
222
|
-
renderExpressionValue(element.value, templateData.value, {
|
|
223
|
-
linkDetector: this.linkDetector
|
|
226
|
+
renderExpressionValue(templateData.elementStore, element.value, templateData.value, {
|
|
227
|
+
linkDetector: this.linkDetector,
|
|
228
|
+
hover: false,
|
|
224
229
|
}, this.hoverService);
|
|
225
230
|
}
|
|
226
231
|
disposeTemplate(templateData) {
|
|
232
|
+
templateData.elementStore.dispose();
|
|
227
233
|
templateData.label.dispose();
|
|
228
234
|
}
|
|
229
235
|
}
|
|
@@ -300,25 +306,25 @@ class ReplDataSource {
|
|
|
300
306
|
}
|
|
301
307
|
class ReplAccessibilityProvider {
|
|
302
308
|
getWidgetAriaLabel() {
|
|
303
|
-
return ( localize(
|
|
309
|
+
return ( localize(10291, "Debug Console"));
|
|
304
310
|
}
|
|
305
311
|
getAriaLabel(element) {
|
|
306
312
|
if (element instanceof Variable) {
|
|
307
|
-
return ( localize(
|
|
313
|
+
return ( localize(10292, "Variable {0}, value {1}", element.name, element.value));
|
|
308
314
|
}
|
|
309
315
|
if (element instanceof ReplOutputElement || element instanceof ReplEvaluationInput || element instanceof ReplEvaluationResult) {
|
|
310
|
-
return element.value + (element instanceof ReplOutputElement && element.count > 1 ? ( localize(
|
|
316
|
+
return element.value + (element instanceof ReplOutputElement && element.count > 1 ? ( localize(10293, ", occurred {0} times", element.count)) : '');
|
|
311
317
|
}
|
|
312
318
|
if (element instanceof RawObjectReplElement) {
|
|
313
319
|
return ( localize(
|
|
314
|
-
|
|
320
|
+
10294,
|
|
315
321
|
"Debug console variable {0}, value {1}",
|
|
316
322
|
element.name,
|
|
317
323
|
element.value
|
|
318
324
|
));
|
|
319
325
|
}
|
|
320
326
|
if (element instanceof ReplGroup) {
|
|
321
|
-
return ( localize(
|
|
327
|
+
return ( localize(10295, "Debug console group {0}", element.name));
|
|
322
328
|
}
|
|
323
329
|
return '';
|
|
324
330
|
}
|
|
@@ -57,68 +57,79 @@ let RunAndDebugAccessibilityHelpProvider = class RunAndDebugAccessibilityHelpPro
|
|
|
57
57
|
provideContent() {
|
|
58
58
|
return [
|
|
59
59
|
( localize(
|
|
60
|
-
|
|
60
|
+
6067,
|
|
61
61
|
"The Show Run and Debug view command{0} will open the current view.",
|
|
62
62
|
'<keybinding:workbench.view.debug>'
|
|
63
63
|
)),
|
|
64
64
|
( localize(
|
|
65
|
-
|
|
65
|
+
6068,
|
|
66
66
|
"The Debug: Start Debugging command{0} will start a debug session.",
|
|
67
67
|
'<keybinding:workbench.action.debug.start>'
|
|
68
68
|
)),
|
|
69
|
+
( localize(
|
|
70
|
+
6069,
|
|
71
|
+
"Access debug output and evaluate expressions in the debug console, which can be focused with{0}.",
|
|
72
|
+
'<keybinding:workbench.panel.repl.view.focus>'
|
|
73
|
+
)),
|
|
69
74
|
AccessibilityHelpNLS.setBreakpoint,
|
|
70
|
-
|
|
75
|
+
AccessibilityHelpNLS.addToWatch,
|
|
76
|
+
( localize(6070, "Once debugging, the following commands will be available:")),
|
|
77
|
+
( localize(
|
|
78
|
+
6071,
|
|
79
|
+
"- Debug: Restart Debugging command{0} will restart the current debug session.",
|
|
80
|
+
'<keybinding:workbench.action.debug.restart>'
|
|
81
|
+
)),
|
|
71
82
|
( localize(
|
|
72
|
-
|
|
83
|
+
6072,
|
|
84
|
+
"- Debug: Stop Debugging command{0} will stop the current debugging session.",
|
|
85
|
+
'<keybinding:workbench.action.debug.stop>'
|
|
86
|
+
)),
|
|
87
|
+
( localize(
|
|
88
|
+
6073,
|
|
73
89
|
"- Debug: Continue command{0} will continue execution until the next breakpoint.",
|
|
74
90
|
'<keybinding:workbench.action.debug.continue>'
|
|
75
91
|
)),
|
|
76
92
|
( localize(
|
|
77
|
-
|
|
93
|
+
6074,
|
|
78
94
|
"- Debug: Step Into command{0} will step into the next function call.",
|
|
79
95
|
'<keybinding:workbench.action.debug.stepInto>'
|
|
80
96
|
)),
|
|
81
97
|
( localize(
|
|
82
|
-
|
|
98
|
+
6075,
|
|
83
99
|
"- Debug: Step Over command{0} will step over the current function call.",
|
|
84
100
|
'<keybinding:workbench.action.debug.stepOver>'
|
|
85
101
|
)),
|
|
86
102
|
( localize(
|
|
87
|
-
|
|
103
|
+
6076,
|
|
88
104
|
"- Debug: Step Out command{0} will step out of the current function call.",
|
|
89
105
|
'<keybinding:workbench.action.debug.stepOut>'
|
|
90
106
|
)),
|
|
91
107
|
( localize(
|
|
92
|
-
|
|
108
|
+
6077,
|
|
93
109
|
'The debug viewlet is comprised of several views that can be focused with the following commands or navigated to via tab then arrow keys:'
|
|
94
110
|
)),
|
|
95
111
|
( localize(
|
|
96
|
-
|
|
112
|
+
6078,
|
|
97
113
|
"- Debug: Focus Breakpoints View command{0} will focus the breakpoints view.",
|
|
98
114
|
'<keybinding:workbench.debug.action.focusBreakpointsView>'
|
|
99
115
|
)),
|
|
100
116
|
( localize(
|
|
101
|
-
|
|
117
|
+
6079,
|
|
102
118
|
"- Debug: Focus Call Stack View command{0} will focus the call stack view.",
|
|
103
119
|
'<keybinding:workbench.debug.action.focusCallStackView>'
|
|
104
120
|
)),
|
|
105
121
|
( localize(
|
|
106
|
-
|
|
122
|
+
6080,
|
|
107
123
|
"- Debug: Focus Variables View command{0} will focus the variables view.",
|
|
108
124
|
'<keybinding:workbench.debug.action.focusVariablesView>'
|
|
109
125
|
)),
|
|
110
126
|
( localize(
|
|
111
|
-
|
|
127
|
+
6081,
|
|
112
128
|
"- Debug: Focus Watch View command{0} will focus the watch view.",
|
|
113
129
|
'<keybinding:workbench.debug.action.focusWatchView>'
|
|
114
130
|
)),
|
|
115
131
|
( localize(
|
|
116
|
-
|
|
117
|
-
"The debug console is a Read-Eval-Print-Loop that allows you to evaluate expressions and run commands and can be focused with{0}.",
|
|
118
|
-
'<keybinding:workbench.panel.repl.view.focus>'
|
|
119
|
-
)),
|
|
120
|
-
( localize(
|
|
121
|
-
6140,
|
|
132
|
+
6082,
|
|
122
133
|
"The setting {0} controls whether watch variable changes are announced.",
|
|
123
134
|
'accessibility.debugWatchVariableAnnouncements'
|
|
124
135
|
)),
|
|
@@ -26,7 +26,7 @@ const STATUS_BAR_DEBUGGING_BACKGROUND = registerColor('statusBar.debuggingBackgr
|
|
|
26
26
|
hcDark: '#BA592C',
|
|
27
27
|
hcLight: '#B5200D'
|
|
28
28
|
}, ( localize(
|
|
29
|
-
|
|
29
|
+
6023,
|
|
30
30
|
"Status bar background color when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
31
31
|
)));
|
|
32
32
|
const STATUS_BAR_DEBUGGING_FOREGROUND = registerColor('statusBar.debuggingForeground', {
|
|
@@ -35,14 +35,14 @@ const STATUS_BAR_DEBUGGING_FOREGROUND = registerColor('statusBar.debuggingForegr
|
|
|
35
35
|
hcDark: STATUS_BAR_FOREGROUND,
|
|
36
36
|
hcLight: '#FFFFFF'
|
|
37
37
|
}, ( localize(
|
|
38
|
-
|
|
38
|
+
6024,
|
|
39
39
|
"Status bar foreground color when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
40
40
|
)));
|
|
41
41
|
const STATUS_BAR_DEBUGGING_BORDER = registerColor('statusBar.debuggingBorder', STATUS_BAR_BORDER, ( localize(
|
|
42
|
-
|
|
42
|
+
6025,
|
|
43
43
|
"Status bar border color separating to the sidebar and editor when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
44
44
|
)));
|
|
45
|
-
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor('commandCenter.debuggingBackground', ( (transparent(STATUS_BAR_DEBUGGING_BACKGROUND, 0.258))), ( localize(
|
|
45
|
+
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor('commandCenter.debuggingBackground', ( (transparent(STATUS_BAR_DEBUGGING_BACKGROUND, 0.258))), ( localize(6026, "Command center background color when a program is being debugged")), true);
|
|
46
46
|
let StatusBarColorProvider = class StatusBarColorProvider {
|
|
47
47
|
set enabled(enabled) {
|
|
48
48
|
if (enabled === !!this.disposable) {
|