@@ -19,11 +19,12 @@ import { IRange } from 'vs/editor/common/core/range';
1919import { ISelection } from 'vs/editor/common/core/selection' ;
2020import * as htmlContent from 'vs/base/common/htmlContent' ;
2121import * as languageSelector from 'vs/editor/common/modes/languageSelector' ;
22- import { WorkspaceEditDto , ResourceTextEditDto , ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol' ;
22+ import { WorkspaceEditDto , ResourceTextEditDto , ResourceFileEditDto , IMarkdownStringDto } from 'vs/workbench/api/node/extHost.protocol' ;
2323import { MarkerSeverity , IRelatedInformation , IMarkerData , MarkerTag } from 'vs/platform/markers/common/markers' ;
2424import { ACTIVE_GROUP , SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService' ;
2525import { ExtHostDocumentsAndEditors } from 'vs/workbench/api/node/extHostDocumentsAndEditors' ;
2626import { isString , isNumber } from 'vs/base/common/types' ;
27+ import * as marked from 'vs/base/common/marked/marked' ;
2728
2829export interface PositionLike {
2930 line : number ;
@@ -220,6 +221,29 @@ export namespace MarkdownString {
220221 return { value : '' } ;
221222 }
222223 }
224+
225+ export function from2 ( markup : vscode . MarkedString | vscode . MarkdownString ) : IMarkdownStringDto {
226+ let { value, isTrusted } = from ( markup ) ;
227+
228+ let uris = Object . create ( null ) ;
229+ let renderer = new marked . Renderer ( ) ;
230+
231+ renderer . image = renderer . link = ( href : string ) : string => {
232+ try {
233+ uris [ href ] = URI . parse ( href , true ) ;
234+ } catch ( e ) {
235+ // ignore
236+ }
237+ return '' ;
238+ } ;
239+ marked ( value , { renderer } ) ;
240+ return {
241+ isTrusted,
242+ value,
243+ uris
244+ } ;
245+ }
246+
223247 export function to ( value : htmlContent . IMarkdownString ) : vscode . MarkdownString {
224248 const ret = new htmlContent . MarkdownString ( value . value ) ;
225249 ret . isTrusted = value . isTrusted ;
0 commit comments