@codingame/monaco-vscode-debug-service-override 1.83.2 → 1.83.3
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/baseDebugView.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +90 -68
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +5 -26
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +61 -104
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +3 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +29 -51
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +190 -203
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +11 -31
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +32 -32
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +21 -48
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +11 -15
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +28 -80
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +56 -68
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +17 -50
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTitle.js +31 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +9 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +12 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +8 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +13 -11
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +6 -25
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +9 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +15 -21
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +6 -20
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +5 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +10 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +10 -13
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +61 -6
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +6 -9
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -12
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +21 -13
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +41 -143
- package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +11 -36
- package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +11 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -49
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -4
|
@@ -13,7 +13,7 @@ import { dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
|
13
13
|
import * as resources from 'monaco-editor/esm/vs/base/common/resources.js';
|
|
14
14
|
import { isCodeEditor } from 'monaco-editor/esm/vs/editor/browser/editorBrowser.js';
|
|
15
15
|
import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
|
|
16
|
-
import {
|
|
16
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
17
17
|
import { createAndFillInActionBarActions, createAndFillInContextMenuActions } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
|
|
18
18
|
import { registerAction2, Action2, MenuId, IMenuService } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
19
19
|
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
@@ -447,15 +447,11 @@ class ExceptionBreakpointsRenderer {
|
|
|
447
447
|
renderElement(exceptionBreakpoint, index, data) {
|
|
448
448
|
data.context = exceptionBreakpoint;
|
|
449
449
|
data.name.textContent = exceptionBreakpoint.label || `${exceptionBreakpoint.filter} exceptions`;
|
|
450
|
-
data.breakpoint.title = exceptionBreakpoint.verified ? (exceptionBreakpoint.description || data.name.textContent) : exceptionBreakpoint.message || (
|
|
450
|
+
data.breakpoint.title = exceptionBreakpoint.verified ? (exceptionBreakpoint.description || data.name.textContent) : exceptionBreakpoint.message || localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'unverifiedExceptionBreakpoint', "Unverified Exception Breakpoint");
|
|
451
451
|
data.breakpoint.classList.toggle('disabled', !exceptionBreakpoint.verified);
|
|
452
452
|
data.checkbox.checked = exceptionBreakpoint.enabled;
|
|
453
453
|
data.condition.textContent = exceptionBreakpoint.condition || '';
|
|
454
|
-
data.condition.title = (
|
|
455
|
-
'expressionCondition',
|
|
456
|
-
"Expression condition: {0}",
|
|
457
|
-
exceptionBreakpoint.condition
|
|
458
|
-
));
|
|
454
|
+
data.condition.title = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'expressionCondition', "Expression condition: {0}", exceptionBreakpoint.condition);
|
|
459
455
|
const primary = [];
|
|
460
456
|
this.breakpointSupportsCondition.set(exceptionBreakpoint.supportsCondition);
|
|
461
457
|
this.breakpointItemType.set('exceptionBreakpoint');
|
|
@@ -507,12 +503,7 @@ let FunctionBreakpointsRenderer = class FunctionBreakpointsRenderer {
|
|
|
507
503
|
data.checkbox.checked = functionBreakpoint.enabled;
|
|
508
504
|
data.breakpoint.title = message ? message : '';
|
|
509
505
|
if (functionBreakpoint.condition && functionBreakpoint.hitCondition) {
|
|
510
|
-
data.condition.textContent = (
|
|
511
|
-
'expressionAndHitCount',
|
|
512
|
-
"Expression: {0} | Hit Count: {1}",
|
|
513
|
-
functionBreakpoint.condition,
|
|
514
|
-
functionBreakpoint.hitCondition
|
|
515
|
-
));
|
|
506
|
+
data.condition.textContent = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'expressionAndHitCount', "Expression: {0} | Hit Count: {1}", functionBreakpoint.condition, functionBreakpoint.hitCondition);
|
|
516
507
|
}
|
|
517
508
|
else {
|
|
518
509
|
data.condition.textContent = functionBreakpoint.condition || functionBreakpoint.hitCondition || '';
|
|
@@ -520,10 +511,7 @@ let FunctionBreakpointsRenderer = class FunctionBreakpointsRenderer {
|
|
|
520
511
|
const session = this.debugService.getViewModel().focusedSession;
|
|
521
512
|
data.breakpoint.classList.toggle('disabled', (session && !session.capabilities.supportsFunctionBreakpoints) || !this.debugService.getModel().areBreakpointsActivated());
|
|
522
513
|
if (session && !session.capabilities.supportsFunctionBreakpoints) {
|
|
523
|
-
data.breakpoint.title = (
|
|
524
|
-
'functionBreakpointsNotSupported',
|
|
525
|
-
"Function breakpoints are not supported by this debug type"
|
|
526
|
-
));
|
|
514
|
+
data.breakpoint.title = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpointsNotSupported', "Function breakpoints are not supported by this debug type");
|
|
527
515
|
}
|
|
528
516
|
const primary = [];
|
|
529
517
|
this.breakpointSupportsCondition.set(!session || !!session.capabilities.supportsConditionalBreakpoints);
|
|
@@ -577,13 +565,10 @@ let DataBreakpointsRenderer = class DataBreakpointsRenderer {
|
|
|
577
565
|
const session = this.debugService.getViewModel().focusedSession;
|
|
578
566
|
data.breakpoint.classList.toggle('disabled', (session && !session.capabilities.supportsDataBreakpoints) || !this.debugService.getModel().areBreakpointsActivated());
|
|
579
567
|
if (session && !session.capabilities.supportsDataBreakpoints) {
|
|
580
|
-
data.breakpoint.title = (
|
|
581
|
-
'dataBreakpointsNotSupported',
|
|
582
|
-
"Data breakpoints are not supported by this debug type"
|
|
583
|
-
));
|
|
568
|
+
data.breakpoint.title = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'dataBreakpointsNotSupported', "Data breakpoints are not supported by this debug type");
|
|
584
569
|
}
|
|
585
570
|
if (dataBreakpoint.accessType) {
|
|
586
|
-
const accessType = dataBreakpoint.accessType === 'read' ? (
|
|
571
|
+
const accessType = dataBreakpoint.accessType === 'read' ? localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'read', "Read") : dataBreakpoint.accessType === 'write' ? localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'write', "Write") : localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'access', "Access");
|
|
587
572
|
data.accessType.textContent = accessType;
|
|
588
573
|
}
|
|
589
574
|
else {
|
|
@@ -729,26 +714,17 @@ class FunctionBreakpointInputRenderer {
|
|
|
729
714
|
data.checkbox.checked = functionBreakpoint.enabled;
|
|
730
715
|
data.checkbox.disabled = true;
|
|
731
716
|
data.inputBox.value = functionBreakpoint.name || '';
|
|
732
|
-
let placeholder = (
|
|
733
|
-
let ariaLabel = (
|
|
717
|
+
let placeholder = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpointPlaceholder', "Function to break on");
|
|
718
|
+
let ariaLabel = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakPointInputAriaLabel', "Type function breakpoint.");
|
|
734
719
|
if (data.type === 'condition') {
|
|
735
720
|
data.inputBox.value = functionBreakpoint.condition || '';
|
|
736
|
-
placeholder = (
|
|
737
|
-
|
|
738
|
-
"Break when expression evaluates to true"
|
|
739
|
-
));
|
|
740
|
-
ariaLabel = ( localize(
|
|
741
|
-
'functionBreakPointExpresionAriaLabel',
|
|
742
|
-
"Type expression. Function breakpoint will break when expression evaluates to true"
|
|
743
|
-
));
|
|
721
|
+
placeholder = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpointExpressionPlaceholder', "Break when expression evaluates to true");
|
|
722
|
+
ariaLabel = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakPointExpresionAriaLabel', "Type expression. Function breakpoint will break when expression evaluates to true");
|
|
744
723
|
}
|
|
745
724
|
else if (data.type === 'hitCount') {
|
|
746
725
|
data.inputBox.value = functionBreakpoint.hitCondition || '';
|
|
747
|
-
placeholder = (
|
|
748
|
-
ariaLabel = (
|
|
749
|
-
'functionBreakPointHitCountAriaLabel',
|
|
750
|
-
"Type hit count. Function breakpoint will break when hit count is met."
|
|
751
|
-
));
|
|
726
|
+
placeholder = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpointHitCountPlaceholder', "Break when hit count is met");
|
|
727
|
+
ariaLabel = localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakPointHitCountAriaLabel', "Type hit count. Function breakpoint will break when hit count is met.");
|
|
752
728
|
}
|
|
753
729
|
data.inputBox.setAriaLabel(ariaLabel);
|
|
754
730
|
data.inputBox.setPlaceHolder(placeholder);
|
|
@@ -781,7 +757,7 @@ class ExceptionBreakpointInputRenderer {
|
|
|
781
757
|
this.view.breakpointInputFocused.set(true);
|
|
782
758
|
const inputBoxContainer = dom.append(breakpoint, $('.inputBoxContainer'));
|
|
783
759
|
const inputBox = ( new InputBox(inputBoxContainer, this.contextViewService, {
|
|
784
|
-
ariaLabel: (
|
|
760
|
+
ariaLabel: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'exceptionBreakpointAriaLabel', "Type exception breakpoint condition"),
|
|
785
761
|
inputBoxStyles: defaultInputBoxStyles
|
|
786
762
|
}));
|
|
787
763
|
const wrapUp = (success) => {
|
|
@@ -811,10 +787,7 @@ class ExceptionBreakpointInputRenderer {
|
|
|
811
787
|
return template;
|
|
812
788
|
}
|
|
813
789
|
renderElement(exceptionBreakpoint, _index, data) {
|
|
814
|
-
const placeHolder = exceptionBreakpoint.conditionDescription || (
|
|
815
|
-
'exceptionBreakpointPlaceholder',
|
|
816
|
-
"Break when expression evaluates to true"
|
|
817
|
-
));
|
|
790
|
+
const placeHolder = exceptionBreakpoint.conditionDescription || localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'exceptionBreakpointPlaceholder', "Break when expression evaluates to true");
|
|
818
791
|
data.inputBox.setPlaceHolder(placeHolder);
|
|
819
792
|
data.breakpoint = exceptionBreakpoint;
|
|
820
793
|
data.checkbox.checked = exceptionBreakpoint.enabled;
|
|
@@ -835,7 +808,7 @@ class BreakpointsAccessibilityProvider {
|
|
|
835
808
|
this.labelService = labelService;
|
|
836
809
|
}
|
|
837
810
|
getWidgetAriaLabel() {
|
|
838
|
-
return (
|
|
811
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'breakpoints', "Breakpoints");
|
|
839
812
|
}
|
|
840
813
|
getRole() {
|
|
841
814
|
return 'checkbox';
|
|
@@ -884,7 +857,7 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
884
857
|
if (!breakpoint$1.enabled || !breakpointsActivated) {
|
|
885
858
|
return {
|
|
886
859
|
icon: breakpointIcon.disabled,
|
|
887
|
-
message: breakpoint$1.logMessage ? (
|
|
860
|
+
message: breakpoint$1.logMessage ? localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'disabledLogpoint', "Disabled Logpoint") : localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'disabledBreakpoint', "Disabled Breakpoint"),
|
|
888
861
|
};
|
|
889
862
|
}
|
|
890
863
|
const appendMessage = (text) => {
|
|
@@ -893,7 +866,7 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
893
866
|
if (debugActive && !breakpoint$1.verified) {
|
|
894
867
|
return {
|
|
895
868
|
icon: breakpointIcon.unverified,
|
|
896
|
-
message: ('message' in breakpoint$1 && breakpoint$1.message) ? breakpoint$1.message : (breakpoint$1.logMessage ? (
|
|
869
|
+
message: ('message' in breakpoint$1 && breakpoint$1.message) ? breakpoint$1.message : (breakpoint$1.logMessage ? localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'unverifiedLogpoint', "Unverified Logpoint") : localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'unverifiedBreakpoint', "Unverified Breakpoint")),
|
|
897
870
|
showAdapterUnverifiedMessage: true
|
|
898
871
|
};
|
|
899
872
|
}
|
|
@@ -901,34 +874,28 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
901
874
|
if (!breakpoint$1.supported) {
|
|
902
875
|
return {
|
|
903
876
|
icon: breakpointIcon.unverified,
|
|
904
|
-
message: (
|
|
905
|
-
'dataBreakpointUnsupported',
|
|
906
|
-
"Data breakpoints not supported by this debug type"
|
|
907
|
-
)),
|
|
877
|
+
message: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'dataBreakpointUnsupported', "Data breakpoints not supported by this debug type"),
|
|
908
878
|
};
|
|
909
879
|
}
|
|
910
880
|
return {
|
|
911
881
|
icon: breakpointIcon.regular,
|
|
912
|
-
message: breakpoint$1.message || (
|
|
882
|
+
message: breakpoint$1.message || localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'dataBreakpoint', "Data Breakpoint")
|
|
913
883
|
};
|
|
914
884
|
}
|
|
915
885
|
if (breakpoint$1 instanceof FunctionBreakpoint) {
|
|
916
886
|
if (!breakpoint$1.supported) {
|
|
917
887
|
return {
|
|
918
888
|
icon: breakpointIcon.unverified,
|
|
919
|
-
message: (
|
|
920
|
-
'functionBreakpointUnsupported',
|
|
921
|
-
"Function breakpoints not supported by this debug type"
|
|
922
|
-
)),
|
|
889
|
+
message: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpointUnsupported', "Function breakpoints not supported by this debug type"),
|
|
923
890
|
};
|
|
924
891
|
}
|
|
925
892
|
const messages = [];
|
|
926
|
-
messages.push(breakpoint$1.message || (
|
|
893
|
+
messages.push(breakpoint$1.message || localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'functionBreakpoint', "Function Breakpoint"));
|
|
927
894
|
if (breakpoint$1.condition) {
|
|
928
|
-
messages.push((
|
|
895
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'expression', "Expression condition: {0}", breakpoint$1.condition));
|
|
929
896
|
}
|
|
930
897
|
if (breakpoint$1.hitCondition) {
|
|
931
|
-
messages.push((
|
|
898
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'hitCount', "Hit Count: {0}", breakpoint$1.hitCondition));
|
|
932
899
|
}
|
|
933
900
|
return {
|
|
934
901
|
icon: breakpointIcon.regular,
|
|
@@ -939,10 +906,7 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
939
906
|
if (!breakpoint$1.supported) {
|
|
940
907
|
return {
|
|
941
908
|
icon: breakpointIcon.unverified,
|
|
942
|
-
message: (
|
|
943
|
-
'instructionBreakpointUnsupported',
|
|
944
|
-
"Instruction breakpoints not supported by this debug type"
|
|
945
|
-
)),
|
|
909
|
+
message: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'instructionBreakpointUnsupported', "Instruction breakpoints not supported by this debug type"),
|
|
946
910
|
};
|
|
947
911
|
}
|
|
948
912
|
const messages = [];
|
|
@@ -950,17 +914,13 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
950
914
|
messages.push(breakpoint$1.message);
|
|
951
915
|
}
|
|
952
916
|
else if (breakpoint$1.instructionReference) {
|
|
953
|
-
messages.push((
|
|
954
|
-
'instructionBreakpointAtAddress',
|
|
955
|
-
"Instruction breakpoint at address {0}",
|
|
956
|
-
breakpoint$1.instructionReference
|
|
957
|
-
)));
|
|
917
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'instructionBreakpointAtAddress', "Instruction breakpoint at address {0}", breakpoint$1.instructionReference));
|
|
958
918
|
}
|
|
959
919
|
else {
|
|
960
|
-
messages.push((
|
|
920
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'instructionBreakpoint', "Instruction breakpoint"));
|
|
961
921
|
}
|
|
962
922
|
if (breakpoint$1.hitCondition) {
|
|
963
|
-
messages.push((
|
|
923
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'hitCount', "Hit Count: {0}", breakpoint$1.hitCondition));
|
|
964
924
|
}
|
|
965
925
|
return {
|
|
966
926
|
icon: breakpointIcon.regular,
|
|
@@ -972,27 +932,24 @@ function getBreakpointMessageAndIcon(state, breakpointsActivated, breakpoint$1,
|
|
|
972
932
|
if (!breakpoint$1.supported) {
|
|
973
933
|
return {
|
|
974
934
|
icon: debugBreakpointUnsupported,
|
|
975
|
-
message: (
|
|
976
|
-
'breakpointUnsupported',
|
|
977
|
-
"Breakpoints of this type are not supported by the debugger"
|
|
978
|
-
)),
|
|
935
|
+
message: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'breakpointUnsupported', "Breakpoints of this type are not supported by the debugger"),
|
|
979
936
|
};
|
|
980
937
|
}
|
|
981
938
|
if (breakpoint$1.logMessage) {
|
|
982
|
-
messages.push((
|
|
939
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'logMessage', "Log Message: {0}", breakpoint$1.logMessage));
|
|
983
940
|
}
|
|
984
941
|
if (breakpoint$1.condition) {
|
|
985
|
-
messages.push((
|
|
942
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'expression', "Expression condition: {0}", breakpoint$1.condition));
|
|
986
943
|
}
|
|
987
944
|
if (breakpoint$1.hitCondition) {
|
|
988
|
-
messages.push((
|
|
945
|
+
messages.push(localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'hitCount', "Hit Count: {0}", breakpoint$1.hitCondition));
|
|
989
946
|
}
|
|
990
947
|
return {
|
|
991
948
|
icon: breakpoint$1.logMessage ? logBreakpoint.regular : conditionalBreakpoint.regular,
|
|
992
949
|
message: appendMessage(messages.join('\n'))
|
|
993
950
|
};
|
|
994
951
|
}
|
|
995
|
-
const message = ('message' in breakpoint$1 && breakpoint$1.message) ? breakpoint$1.message : breakpoint$1 instanceof Breakpoint && labelService ? labelService.getUriLabel(breakpoint$1.uri) : (
|
|
952
|
+
const message = ('message' in breakpoint$1 && breakpoint$1.message) ? breakpoint$1.message : breakpoint$1 instanceof Breakpoint && labelService ? labelService.getUriLabel(breakpoint$1.uri) : localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'breakpoint', "Breakpoint");
|
|
996
953
|
return {
|
|
997
954
|
icon: breakpointIcon.regular,
|
|
998
955
|
message
|
|
@@ -1003,12 +960,9 @@ registerAction2(class extends Action2 {
|
|
|
1003
960
|
super({
|
|
1004
961
|
id: 'workbench.debug.viewlet.action.addFunctionBreakpointAction',
|
|
1005
962
|
title: {
|
|
1006
|
-
value: (
|
|
963
|
+
value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'addFunctionBreakpoint', "Add Function Breakpoint"),
|
|
1007
964
|
original: 'Add Function Breakpoint',
|
|
1008
|
-
mnemonicTitle: (
|
|
1009
|
-
{ key: 'miFunctionBreakpoint', comment: ['&& denotes a mnemonic'] },
|
|
1010
|
-
"&&Function Breakpoint..."
|
|
1011
|
-
))
|
|
965
|
+
mnemonicTitle: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', { key: 'miFunctionBreakpoint', comment: ['&& denotes a mnemonic'] }, "&&Function Breakpoint...")
|
|
1012
966
|
},
|
|
1013
967
|
f1: true,
|
|
1014
968
|
icon: watchExpressionsAddFuncBreakpoint,
|
|
@@ -1034,7 +988,7 @@ registerAction2(class extends Action2 {
|
|
|
1034
988
|
constructor() {
|
|
1035
989
|
super({
|
|
1036
990
|
id: 'workbench.debug.viewlet.action.toggleBreakpointsActivatedAction',
|
|
1037
|
-
title: { value: (
|
|
991
|
+
title: { value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'activateBreakpoints', "Toggle Activate Breakpoints"), original: 'Toggle Activate Breakpoints' },
|
|
1038
992
|
f1: true,
|
|
1039
993
|
icon: breakpointsActivate,
|
|
1040
994
|
menu: {
|
|
@@ -1054,7 +1008,7 @@ registerAction2(class extends Action2 {
|
|
|
1054
1008
|
constructor() {
|
|
1055
1009
|
super({
|
|
1056
1010
|
id: 'workbench.debug.viewlet.action.removeBreakpoint',
|
|
1057
|
-
title: (
|
|
1011
|
+
title: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'removeBreakpoint', "Remove Breakpoint"),
|
|
1058
1012
|
icon: Codicon.removeClose,
|
|
1059
1013
|
menu: [{
|
|
1060
1014
|
id: MenuId.DebugBreakpointsContext,
|
|
@@ -1091,11 +1045,8 @@ registerAction2(class extends Action2 {
|
|
|
1091
1045
|
id: 'workbench.debug.viewlet.action.removeAllBreakpoints',
|
|
1092
1046
|
title: {
|
|
1093
1047
|
original: 'Remove All Breakpoints',
|
|
1094
|
-
value: (
|
|
1095
|
-
mnemonicTitle: (
|
|
1096
|
-
{ key: 'miRemoveAllBreakpoints', comment: ['&& denotes a mnemonic'] },
|
|
1097
|
-
"Remove &&All Breakpoints"
|
|
1098
|
-
))
|
|
1048
|
+
value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'removeAllBreakpoints', "Remove All Breakpoints"),
|
|
1049
|
+
mnemonicTitle: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', { key: 'miRemoveAllBreakpoints', comment: ['&& denotes a mnemonic'] }, "Remove &&All Breakpoints")
|
|
1099
1050
|
},
|
|
1100
1051
|
f1: true,
|
|
1101
1052
|
icon: breakpointsRemoveAll,
|
|
@@ -1131,11 +1082,8 @@ registerAction2(class extends Action2 {
|
|
|
1131
1082
|
id: 'workbench.debug.viewlet.action.enableAllBreakpoints',
|
|
1132
1083
|
title: {
|
|
1133
1084
|
original: 'Enable All Breakpoints',
|
|
1134
|
-
value: (
|
|
1135
|
-
mnemonicTitle: (
|
|
1136
|
-
{ key: 'miEnableAllBreakpoints', comment: ['&& denotes a mnemonic'] },
|
|
1137
|
-
"&&Enable All Breakpoints"
|
|
1138
|
-
)),
|
|
1085
|
+
value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'enableAllBreakpoints', "Enable All Breakpoints"),
|
|
1086
|
+
mnemonicTitle: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', { key: 'miEnableAllBreakpoints', comment: ['&& denotes a mnemonic'] }, "&&Enable All Breakpoints"),
|
|
1139
1087
|
},
|
|
1140
1088
|
f1: true,
|
|
1141
1089
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
@@ -1163,11 +1111,8 @@ registerAction2(class extends Action2 {
|
|
|
1163
1111
|
id: 'workbench.debug.viewlet.action.disableAllBreakpoints',
|
|
1164
1112
|
title: {
|
|
1165
1113
|
original: 'Disable All Breakpoints',
|
|
1166
|
-
value: (
|
|
1167
|
-
mnemonicTitle: (
|
|
1168
|
-
{ key: 'miDisableAllBreakpoints', comment: ['&& denotes a mnemonic'] },
|
|
1169
|
-
"Disable A&&ll Breakpoints"
|
|
1170
|
-
))
|
|
1114
|
+
value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'disableAllBreakpoints', "Disable All Breakpoints"),
|
|
1115
|
+
mnemonicTitle: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', { key: 'miDisableAllBreakpoints', comment: ['&& denotes a mnemonic'] }, "Disable A&&ll Breakpoints")
|
|
1171
1116
|
},
|
|
1172
1117
|
f1: true,
|
|
1173
1118
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
@@ -1193,7 +1138,7 @@ registerAction2(class extends Action2 {
|
|
|
1193
1138
|
constructor() {
|
|
1194
1139
|
super({
|
|
1195
1140
|
id: 'workbench.debug.viewlet.action.reapplyBreakpointsAction',
|
|
1196
|
-
title: { value: (
|
|
1141
|
+
title: { value: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'reapplyAllBreakpoints', "Reapply All Breakpoints"), original: 'Reapply All Breakpoints' },
|
|
1197
1142
|
f1: true,
|
|
1198
1143
|
precondition: CONTEXT_IN_DEBUG_MODE,
|
|
1199
1144
|
menu: [{
|
|
@@ -1214,7 +1159,7 @@ registerAction2(class extends ViewAction {
|
|
|
1214
1159
|
super({
|
|
1215
1160
|
id: 'debug.editBreakpoint',
|
|
1216
1161
|
viewId: BREAKPOINTS_VIEW_ID,
|
|
1217
|
-
title: (
|
|
1162
|
+
title: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'editCondition', "Edit Condition..."),
|
|
1218
1163
|
icon: Codicon.edit,
|
|
1219
1164
|
precondition: CONTEXT_BREAKPOINT_SUPPORTS_CONDITION,
|
|
1220
1165
|
menu: [{
|
|
@@ -1242,8 +1187,20 @@ registerAction2(class extends ViewAction {
|
|
|
1242
1187
|
}
|
|
1243
1188
|
else if (breakpoint instanceof FunctionBreakpoint) {
|
|
1244
1189
|
const contextMenuService = accessor.get(IContextMenuService);
|
|
1245
|
-
const actions = [( new Action(
|
|
1246
|
-
|
|
1190
|
+
const actions = [( new Action(
|
|
1191
|
+
'breakpoint.editCondition',
|
|
1192
|
+
localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'editCondition', "Edit Condition..."),
|
|
1193
|
+
undefined,
|
|
1194
|
+
true,
|
|
1195
|
+
async () => view.renderInputBox({ breakpoint, type: 'condition' })
|
|
1196
|
+
)),
|
|
1197
|
+
( new Action(
|
|
1198
|
+
'breakpoint.editCondition',
|
|
1199
|
+
localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'editHitCount', "Edit Hit Count..."),
|
|
1200
|
+
undefined,
|
|
1201
|
+
true,
|
|
1202
|
+
async () => view.renderInputBox({ breakpoint, type: 'hitCount' })
|
|
1203
|
+
))];
|
|
1247
1204
|
const domNode = breakpointIdToActionBarDomeNode.get(breakpoint.getId());
|
|
1248
1205
|
if (domNode) {
|
|
1249
1206
|
contextMenuService.showContextMenu({
|
|
@@ -1263,7 +1220,7 @@ registerAction2(class extends ViewAction {
|
|
|
1263
1220
|
super({
|
|
1264
1221
|
id: 'debug.editFunctionBreakpoint',
|
|
1265
1222
|
viewId: BREAKPOINTS_VIEW_ID,
|
|
1266
|
-
title: (
|
|
1223
|
+
title: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'editBreakpoint', "Edit Function Breakpoint..."),
|
|
1267
1224
|
menu: [{
|
|
1268
1225
|
id: MenuId.DebugBreakpointsContext,
|
|
1269
1226
|
group: '1_breakpoints',
|
|
@@ -1281,7 +1238,7 @@ registerAction2(class extends ViewAction {
|
|
|
1281
1238
|
super({
|
|
1282
1239
|
id: 'debug.editFunctionBreakpointHitCount',
|
|
1283
1240
|
viewId: BREAKPOINTS_VIEW_ID,
|
|
1284
|
-
title: (
|
|
1241
|
+
title: localizeWithPath('vs/workbench/contrib/debug/browser/breakpointsView', 'editHitCount', "Edit Hit Count..."),
|
|
1285
1242
|
precondition: CONTEXT_BREAKPOINT_SUPPORTS_CONDITION,
|
|
1286
1243
|
menu: [{
|
|
1287
1244
|
id: MenuId.DebugBreakpointsContext,
|
|
@@ -4,7 +4,7 @@ import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
|
|
|
4
4
|
import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
5
5
|
import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
|
|
6
6
|
import { GlyphMarginLane, OverviewRulerLane } from 'monaco-editor/esm/vs/editor/common/model.js';
|
|
7
|
-
import {
|
|
7
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
8
8
|
import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
|
|
9
9
|
import { registerColor } from 'monaco-editor/esm/vs/platform/theme/common/colorRegistry.js';
|
|
10
10
|
import { themeColorFromId } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
|
|
@@ -14,14 +14,8 @@ import { debugStackframe, debugStackframeFocused } from 'vscode/vscode/vs/workbe
|
|
|
14
14
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
15
15
|
import './media/callStackEditorContribution.css.js';
|
|
16
16
|
|
|
17
|
-
const topStackFrameColor = registerColor('editor.stackFrameHighlightBackground', { dark: '#ffff0033', light: '#ffff6673', hcDark: '#ffff0033', hcLight: '#ffff6673' }, (
|
|
18
|
-
|
|
19
|
-
'Background color for the highlight of line at the top stack frame position.'
|
|
20
|
-
)));
|
|
21
|
-
const focusedStackFrameColor = registerColor('editor.focusedStackFrameHighlightBackground', { dark: '#7abd7a4d', light: '#cee7ce73', hcDark: '#7abd7a4d', hcLight: '#cee7ce73' }, ( localize(
|
|
22
|
-
'focusedStackFrameLineHighlight',
|
|
23
|
-
'Background color for the highlight of line at focused stack frame position.'
|
|
24
|
-
)));
|
|
17
|
+
const topStackFrameColor = registerColor('editor.stackFrameHighlightBackground', { dark: '#ffff0033', light: '#ffff6673', hcDark: '#ffff0033', hcLight: '#ffff6673' }, localizeWithPath('vs/workbench/contrib/debug/browser/callStackEditorContribution', 'topStackFrameLineHighlight', 'Background color for the highlight of line at the top stack frame position.'));
|
|
18
|
+
const focusedStackFrameColor = registerColor('editor.focusedStackFrameHighlightBackground', { dark: '#7abd7a4d', light: '#cee7ce73', hcDark: '#7abd7a4d', hcLight: '#cee7ce73' }, localizeWithPath('vs/workbench/contrib/debug/browser/callStackEditorContribution', 'focusedStackFrameLineHighlight', 'Background color for the highlight of line at focused stack frame position.'));
|
|
25
19
|
const stickiness = 1 ;
|
|
26
20
|
const TOP_STACK_FRAME_MARGIN = {
|
|
27
21
|
description: 'top-stack-frame-margin',
|
|
@@ -10,7 +10,7 @@ import { createMatches } from 'monaco-editor/esm/vs/base/common/filters.js';
|
|
|
10
10
|
import { DisposableStore, dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
11
11
|
import { posix } from 'monaco-editor/esm/vs/base/common/path.js';
|
|
12
12
|
import { commonSuffixLength } from 'monaco-editor/esm/vs/base/common/strings.js';
|
|
13
|
-
import {
|
|
13
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
14
14
|
import { MenuEntryActionViewItem, SubmenuEntryActionViewItem, createAndFillInContextMenuActions, createAndFillInActionBarActions } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
|
|
15
15
|
import { MenuItemAction, SubmenuItemAction, MenuId, registerAction2, MenuRegistry, IMenuService } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
16
16
|
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
@@ -130,7 +130,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
130
130
|
this.stateMessage.hidden = false;
|
|
131
131
|
}
|
|
132
132
|
else if (sessions.length === 1 && sessions[0].state === 3 ) {
|
|
133
|
-
this.stateMessageLabel.textContent = (
|
|
133
|
+
this.stateMessageLabel.textContent = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'running', comment: ['indicates state'] }, "Running");
|
|
134
134
|
this.stateMessageLabel.title = sessions[0].getLabel();
|
|
135
135
|
this.stateMessageLabel.classList.remove('exception');
|
|
136
136
|
this.stateMessage.hidden = false;
|
|
@@ -210,7 +210,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
210
210
|
if (e instanceof ThreadAndSessionIds) {
|
|
211
211
|
return LoadMoreRenderer.LABEL;
|
|
212
212
|
}
|
|
213
|
-
return (
|
|
213
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'showMoreStackFrames2', "Show More Stack Frames");
|
|
214
214
|
},
|
|
215
215
|
getCompressedNodeKeyboardNavigationLabel: (e) => {
|
|
216
216
|
const firstItem = e[0];
|
|
@@ -468,7 +468,7 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
468
468
|
this.doRenderElement(lastElement, matches, templateData);
|
|
469
469
|
}
|
|
470
470
|
doRenderElement(session, matches, data) {
|
|
471
|
-
data.session.title = (
|
|
471
|
+
data.session.title = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'session', comment: ['Session is a noun'] }, "Session");
|
|
472
472
|
data.label.set(session.getLabel(), matches);
|
|
473
473
|
const stoppedDetails = session.getStoppedDetails();
|
|
474
474
|
const thread = session.getAllThreads().find(t => t.stopped);
|
|
@@ -497,7 +497,7 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
497
497
|
data.stateLabel.classList.toggle('exception', thread.stoppedDetails.reason === 'exception');
|
|
498
498
|
}
|
|
499
499
|
else {
|
|
500
|
-
data.stateLabel.textContent = (
|
|
500
|
+
data.stateLabel.textContent = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'running', comment: ['indicates state'] }, "Running");
|
|
501
501
|
data.stateLabel.classList.remove('exception');
|
|
502
502
|
}
|
|
503
503
|
}
|
|
@@ -629,14 +629,20 @@ let StackFramesRenderer = class StackFramesRenderer {
|
|
|
629
629
|
}
|
|
630
630
|
data.actionBar.clear();
|
|
631
631
|
if (hasActions) {
|
|
632
|
-
const action = ( new Action(
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
632
|
+
const action = ( new Action(
|
|
633
|
+
'debug.callStack.restartFrame',
|
|
634
|
+
localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'restartFrame', "Restart Frame"),
|
|
635
|
+
ThemeIcon.asClassName(debugRestartFrame),
|
|
636
|
+
true,
|
|
637
|
+
async () => {
|
|
638
|
+
try {
|
|
639
|
+
await stackFrame.restart();
|
|
640
|
+
}
|
|
641
|
+
catch (e) {
|
|
642
|
+
this.notificationService.error(e);
|
|
643
|
+
}
|
|
638
644
|
}
|
|
639
|
-
|
|
645
|
+
));
|
|
640
646
|
data.actionBar.push(action, { icon: true, label: false });
|
|
641
647
|
}
|
|
642
648
|
}
|
|
@@ -673,7 +679,7 @@ class ErrorsRenderer {
|
|
|
673
679
|
}
|
|
674
680
|
class LoadMoreRenderer {
|
|
675
681
|
static { this.ID = 'loadMore'; }
|
|
676
|
-
static { this.LABEL = (
|
|
682
|
+
static { this.LABEL = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'loadAllStackFrames', "Load More Stack Frames"); }
|
|
677
683
|
constructor() { }
|
|
678
684
|
get templateId() {
|
|
679
685
|
return LoadMoreRenderer.ID;
|
|
@@ -706,15 +712,10 @@ class ShowMoreRenderer {
|
|
|
706
712
|
renderElement(element, index, data) {
|
|
707
713
|
const stackFrames = element.element;
|
|
708
714
|
if (stackFrames.every(sf => !!(sf.source && sf.source.origin && sf.source.origin === stackFrames[0].source.origin))) {
|
|
709
|
-
data.label.textContent = (
|
|
710
|
-
'showMoreAndOrigin',
|
|
711
|
-
"Show {0} More: {1}",
|
|
712
|
-
stackFrames.length,
|
|
713
|
-
stackFrames[0].source.origin
|
|
714
|
-
));
|
|
715
|
+
data.label.textContent = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'showMoreAndOrigin', "Show {0} More: {1}", stackFrames.length, stackFrames[0].source.origin);
|
|
715
716
|
}
|
|
716
717
|
else {
|
|
717
|
-
data.label.textContent = (
|
|
718
|
+
data.label.textContent = localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'showMoreStackFrames', "Show {0} More Stack Frames", stackFrames.length);
|
|
718
719
|
}
|
|
719
720
|
}
|
|
720
721
|
renderCompressedElements(node, index, templateData, height) {
|
|
@@ -757,11 +758,7 @@ function stoppedText(stoppedDetails) {
|
|
|
757
758
|
}
|
|
758
759
|
function stoppedDescription(stoppedDetails) {
|
|
759
760
|
return stoppedDetails.description ||
|
|
760
|
-
(stoppedDetails.reason ? (
|
|
761
|
-
{ key: 'pausedOn', comment: ['indicates reason for program being paused'] },
|
|
762
|
-
"Paused on {0}",
|
|
763
|
-
stoppedDetails.reason
|
|
764
|
-
)) : ( localize('paused', "Paused")));
|
|
761
|
+
(stoppedDetails.reason ? localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'pausedOn', comment: ['indicates reason for program being paused'] }, "Paused on {0}", stoppedDetails.reason) : localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'paused', "Paused"));
|
|
765
762
|
}
|
|
766
763
|
function isDebugModel(obj) {
|
|
767
764
|
return typeof obj.getSessions === 'function';
|
|
@@ -854,10 +851,7 @@ class CallStackDataSource {
|
|
|
854
851
|
}
|
|
855
852
|
class CallStackAccessibilityProvider {
|
|
856
853
|
getWidgetAriaLabel() {
|
|
857
|
-
return (
|
|
858
|
-
{ comment: ['Debug is a noun in this context, not a verb.'], key: 'callStackAriaLabel' },
|
|
859
|
-
"Debug Call Stack"
|
|
860
|
-
));
|
|
854
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { comment: ['Debug is a noun in this context, not a verb.'], key: 'callStackAriaLabel' }, "Debug Call Stack");
|
|
861
855
|
}
|
|
862
856
|
getWidgetRole() {
|
|
863
857
|
return 'treegrid';
|
|
@@ -867,37 +861,21 @@ class CallStackAccessibilityProvider {
|
|
|
867
861
|
}
|
|
868
862
|
getAriaLabel(element) {
|
|
869
863
|
if (element instanceof Thread) {
|
|
870
|
-
return (
|
|
871
|
-
{ key: 'threadAriaLabel', comment: ['Placeholders stand for the thread name and the thread state.For example "Thread 1" and "Stopped'] },
|
|
872
|
-
"Thread {0} {1}",
|
|
873
|
-
element.name,
|
|
874
|
-
element.stateLabel
|
|
875
|
-
));
|
|
864
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'threadAriaLabel', comment: ['Placeholders stand for the thread name and the thread state.For example "Thread 1" and "Stopped'] }, "Thread {0} {1}", element.name, element.stateLabel);
|
|
876
865
|
}
|
|
877
866
|
if (element instanceof StackFrame) {
|
|
878
|
-
return (
|
|
879
|
-
'stackFrameAriaLabel',
|
|
880
|
-
"Stack Frame {0}, line {1}, {2}",
|
|
881
|
-
element.name,
|
|
882
|
-
element.range.startLineNumber,
|
|
883
|
-
getSpecificSourceName(element)
|
|
884
|
-
));
|
|
867
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'stackFrameAriaLabel', "Stack Frame {0}, line {1}, {2}", element.name, element.range.startLineNumber, getSpecificSourceName(element));
|
|
885
868
|
}
|
|
886
869
|
if (isDebugSession(element)) {
|
|
887
870
|
const thread = element.getAllThreads().find(t => t.stopped);
|
|
888
|
-
const state = thread ? thread.stateLabel : (
|
|
889
|
-
return (
|
|
890
|
-
{ key: 'sessionLabel', comment: ['Placeholders stand for the session name and the session state. For example "Launch Program" and "Running"'] },
|
|
891
|
-
"Session {0} {1}",
|
|
892
|
-
element.getLabel(),
|
|
893
|
-
state
|
|
894
|
-
));
|
|
871
|
+
const state = thread ? thread.stateLabel : localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'running', comment: ['indicates state'] }, "Running");
|
|
872
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', { key: 'sessionLabel', comment: ['Placeholders stand for the session name and the session state. For example "Launch Program" and "Running"'] }, "Session {0} {1}", element.getLabel(), state);
|
|
895
873
|
}
|
|
896
874
|
if (typeof element === 'string') {
|
|
897
875
|
return element;
|
|
898
876
|
}
|
|
899
877
|
if (element instanceof Array) {
|
|
900
|
-
return (
|
|
878
|
+
return localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'showMoreStackFrames', "Show {0} More Stack Frames", element.length);
|
|
901
879
|
}
|
|
902
880
|
return LoadMoreRenderer.LABEL;
|
|
903
881
|
}
|
|
@@ -925,7 +903,7 @@ registerAction2(class Collapse extends ViewAction {
|
|
|
925
903
|
super({
|
|
926
904
|
id: 'callStack.collapse',
|
|
927
905
|
viewId: CALLSTACK_VIEW_ID,
|
|
928
|
-
title: (
|
|
906
|
+
title: localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'collapse', "Collapse All"),
|
|
929
907
|
f1: false,
|
|
930
908
|
icon: Codicon.collapseAll,
|
|
931
909
|
precondition: ( CONTEXT_DEBUG_STATE.isEqualTo(getStateLabel(2 ))),
|