提交 7b15718c 编写于 作者: D danielfrankcom

Extracted appendStylizedStringToContainer function from replViewer.ts

上级 a6153b62
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { LinkDetector } from 'vs/workbench/parts/debug/browser/linkDetector';
/**
* @param root The {@link HTMLElement} to append the content to.
* @param stringContent The text content to be appended.
* @param cssClasses The list of CSS styles to apply to the text content.
* @param linkDetector The {@link LinkDetector} responsible for generating links from {@param stringContent}.
*/
export function appendStylizedStringToContainer(root: HTMLElement, stringContent: string, cssClasses: string[], linkDetector: LinkDetector): void {
if (!root || !stringContent) {
return;
}
const content = linkDetector.handleLinks(stringContent);
let container: HTMLElement;
if (typeof content === 'string') {
container = document.createElement('span');
container.textContent = content;
} else {
container = content;
}
container.className = cssClasses.join(' ');
root.appendChild(container);
}
\ No newline at end of file
......@@ -23,6 +23,7 @@ import { CopyAction, CopyAllAction } from 'vs/workbench/parts/debug/electron-bro
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
import { LinkDetector } from 'vs/workbench/parts/debug/browser/linkDetector';
import { appendStylizedStringToContainer } from 'vs/workbench/parts/debug/browser/debugANSIHandling';
const $ = dom.$;
......@@ -327,7 +328,8 @@ export class ReplExpressionsRenderer implements IRenderer {
if (sequenceFound) {
// Flush buffer with previous styles.
this.appendStylizedStringToContainer(root, buffer, styleNames);
appendStylizedStringToContainer(root, buffer, styleNames, this.linkDetector);
buffer = '';
/*
......@@ -380,37 +382,13 @@ export class ReplExpressionsRenderer implements IRenderer {
// Flush remaining text buffer if not empty.
if (buffer) {
this.appendStylizedStringToContainer(root, buffer, styleNames);
appendStylizedStringToContainer(root, buffer, styleNames, this.linkDetector);
}
return root;
}
/**
* @param root The {@link HTMLElement} to append the content to.
* @param stringContent The text content to be appended.
* @param cssClasses The list of CSS styles to apply to the text content.
*/
private appendStylizedStringToContainer(root: HTMLElement, stringContent: string, cssClasses: string[]): void {
if (!root || !stringContent) {
return;
}
const content = this.linkDetector.handleLinks(stringContent);
let container: HTMLElement;
if (typeof content === 'string') {
container = document.createElement('span');
container.textContent = content;
} else {
container = content;
}
container.className = cssClasses.join(' ');
root.appendChild(container);
}
public disposeTemplate(tree: ITree, templateId: string, templateData: any): void {
if (templateData.toDispose) {
lifecycle.dispose(templateData.toDispose);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册