mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 11:38:51 +01:00
working on markdown string dto
This commit is contained in:
@@ -274,6 +274,12 @@ export interface ISerializedSignatureHelpProviderMetadata {
|
||||
readonly retriggerCharacters: ReadonlyArray<string>;
|
||||
}
|
||||
|
||||
export interface IMarkdownStringDto {
|
||||
isTrusted: boolean;
|
||||
value: string;
|
||||
uris: { [n: string]: UriComponents };
|
||||
}
|
||||
|
||||
export interface MainThreadLanguageFeaturesShape extends IDisposable {
|
||||
$unregister(handle: number): void;
|
||||
$registerOutlineSupport(handle: number, selector: ISerializedDocumentFilter[], extensionId: string): void;
|
||||
|
||||
@@ -664,7 +664,7 @@ class SuggestAdapter {
|
||||
label: item.label,
|
||||
kind: typeConvert.CompletionItemKind.from(item.kind),
|
||||
detail: item.detail,
|
||||
documentation: item.documentation,
|
||||
documentation: typeConvert.MarkdownString.from(item.documentation),
|
||||
filterText: item.filterText,
|
||||
sortText: item.sortText,
|
||||
preselect: item.preselect,
|
||||
|
||||
@@ -19,11 +19,12 @@ import { IRange } from 'vs/editor/common/core/range';
|
||||
import { ISelection } from 'vs/editor/common/core/selection';
|
||||
import * as htmlContent from 'vs/base/common/htmlContent';
|
||||
import * as languageSelector from 'vs/editor/common/modes/languageSelector';
|
||||
import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol';
|
||||
import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto, IMarkdownStringDto } from 'vs/workbench/api/node/extHost.protocol';
|
||||
import { MarkerSeverity, IRelatedInformation, IMarkerData, MarkerTag } from 'vs/platform/markers/common/markers';
|
||||
import { ACTIVE_GROUP, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService';
|
||||
import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/node/extHostDocumentsAndEditors';
|
||||
import { isString, isNumber } from 'vs/base/common/types';
|
||||
import * as marked from 'vs/base/common/marked/marked';
|
||||
|
||||
export interface PositionLike {
|
||||
line: number;
|
||||
@@ -220,6 +221,29 @@ export namespace MarkdownString {
|
||||
return { value: '' };
|
||||
}
|
||||
}
|
||||
|
||||
export function from2(markup: vscode.MarkedString | vscode.MarkdownString): IMarkdownStringDto {
|
||||
let { value, isTrusted } = from(markup);
|
||||
|
||||
let uris = Object.create(null);
|
||||
let renderer = new marked.Renderer();
|
||||
|
||||
renderer.image = renderer.link = (href: string): string => {
|
||||
try {
|
||||
uris[href] = URI.parse(href, true);
|
||||
} catch (e) {
|
||||
// ignore
|
||||
}
|
||||
return '';
|
||||
};
|
||||
marked(value, { renderer });
|
||||
return {
|
||||
isTrusted,
|
||||
value,
|
||||
uris
|
||||
};
|
||||
}
|
||||
|
||||
export function to(value: htmlContent.IMarkdownString): vscode.MarkdownString {
|
||||
const ret = new htmlContent.MarkdownString(value.value);
|
||||
ret.isTrusted = value.isTrusted;
|
||||
|
||||
Reference in New Issue
Block a user