Merge pull request #119817 from yannickowow/master

Show current DataBreakpoint access type in "Breakpoints" view (#119588)
This commit is contained in:
Isidor Nikolic 2021-03-29 14:40:13 +02:00 committed by GitHub
commit c318085f38
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

View file

@ -326,6 +326,10 @@ interface IFunctionBreakpointTemplateData extends IBaseBreakpointWithIconTemplat
condition: HTMLElement;
}
interface IDataBreakpointTemplateData extends IBaseBreakpointWithIconTemplateData {
accessType: HTMLElement;
}
interface IFunctionBreakpointInputTemplateData {
inputBox: InputBox;
checkbox: HTMLInputElement;
@ -573,7 +577,7 @@ class FunctionBreakpointsRenderer implements IListRenderer<FunctionBreakpoint, I
}
}
class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IBaseBreakpointWithIconTemplateData> {
class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IDataBreakpointTemplateData> {
constructor(
@IDebugService private readonly debugService: IDebugService,
@ -588,8 +592,8 @@ class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IBaseBrea
return DataBreakpointsRenderer.ID;
}
renderTemplate(container: HTMLElement): IBaseBreakpointWithIconTemplateData {
const data: IBreakpointTemplateData = Object.create(null);
renderTemplate(container: HTMLElement): IDataBreakpointTemplateData {
const data: IDataBreakpointTemplateData = Object.create(null);
data.breakpoint = dom.append(container, $('.breakpoint'));
data.icon = $('.icon');
@ -603,11 +607,12 @@ class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IBaseBrea
dom.append(data.breakpoint, data.checkbox);
data.name = dom.append(data.breakpoint, $('span.name'));
data.accessType = dom.append(data.breakpoint, $('span.access-type'));
return data;
}
renderElement(dataBreakpoint: DataBreakpoint, _index: number, data: IBaseBreakpointWithIconTemplateData): void {
renderElement(dataBreakpoint: DataBreakpoint, _index: number, data: IDataBreakpointTemplateData): void {
data.context = dataBreakpoint;
data.name.textContent = dataBreakpoint.description;
const { icon, message } = getBreakpointMessageAndIcon(this.debugService.state, this.debugService.getModel().areBreakpointsActivated(), dataBreakpoint, this.labelService);
@ -622,6 +627,12 @@ class DataBreakpointsRenderer implements IListRenderer<DataBreakpoint, IBaseBrea
if (session && !session.capabilities.supportsDataBreakpoints) {
data.breakpoint.title = localize('dataBreakpointsNotSupported', "Data breakpoints are not supported by this debug type");
}
if (dataBreakpoint.accessType) {
const accessType = dataBreakpoint.accessType === 'read' ? localize('read', "Read") : dataBreakpoint.accessType === 'write' ? localize('write', "Write") : localize('access', "Access");
data.accessType.textContent = accessType;
} else {
data.accessType.textContent = '';
}
}
disposeTemplate(templateData: IBaseBreakpointWithIconTemplateData): void {

View file

@ -319,6 +319,7 @@
justify-content: center;
}
.debug-pane .debug-breakpoints .breakpoint > .access-type,
.debug-pane .debug-breakpoints .breakpoint > .file-path,
.debug-pane .debug-breakpoints .breakpoint > .condition {
opacity: 0.7;