diff --git a/src/vs/base/common/htmlContent.ts b/src/vs/base/common/htmlContent.ts index 56f52a957ec..3943f6f8114 100644 --- a/src/vs/base/common/htmlContent.ts +++ b/src/vs/base/common/htmlContent.ts @@ -67,7 +67,7 @@ function markedStringEqual(a:MarkedString, b:MarkedString): boolean { ); } -export function textToMarkedString(text: string) : MarkedString { +export function textAsCodeBlock(text: string) : MarkedString { return { language: 'string', value: text }; } diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index c36c704bf4c..d9bd54ef51d 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -8,7 +8,7 @@ import * as nls from 'vs/nls'; import network = require('vs/base/common/network'); import Event, {Emitter} from 'vs/base/common/event'; import {EmitterEvent} from 'vs/base/common/eventEmitter'; -import {MarkedString, textToMarkedString} from 'vs/base/common/htmlContent'; +import {MarkedString, textAsCodeBlock} from 'vs/base/common/htmlContent'; import {IDisposable} from 'vs/base/common/lifecycle'; import Severity from 'vs/base/common/severity'; import URI from 'vs/base/common/uri'; @@ -121,7 +121,6 @@ class ModelMarkerHandler { let className: string; let color: string; let darkColor: string; - let hoverMessage: MarkedString[] = null; switch (marker.severity) { case Severity.Ignore: @@ -141,16 +140,24 @@ class ModelMarkerHandler { break; } - if (typeof marker.message === 'string') { - hoverMessage = [ textToMarkedString(marker.message) ]; - } else if (Array.isArray(marker.message)) { - hoverMessage = marker.message; - } else if (marker.message) { - hoverMessage = [ marker.message ]; - } + let hoverMessage: MarkedString[] = null; + let {message, source} = marker; - if (hoverMessage && marker.source) { - hoverMessage.unshift(`[${marker.source}] `); + if (typeof message === 'string') { + if (source) { + message = nls.localize('sourceAndDiagMessage', "[{0}] {1}", source, message); + } + hoverMessage = [textAsCodeBlock(message)]; + } else if (message) { + // this some old undocumented trick to get + // formatted error messages. no clue if we still + // have a need for that + hoverMessage = source ? [`[${marker.source}] `] : []; + if (Array.isArray(message)) { + hoverMessage.push(...( message)); + } else { + hoverMessage.push(message); + } } return { diff --git a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts index 33e4861d11e..895923a27a6 100644 --- a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts +++ b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts @@ -9,7 +9,7 @@ import 'vs/css!./goToDeclaration'; import * as nls from 'vs/nls'; import {Throttler} from 'vs/base/common/async'; import {onUnexpectedError} from 'vs/base/common/errors'; -import {MarkedString, textToMarkedString} from 'vs/base/common/htmlContent'; +import {MarkedString, textAsCodeBlock} from 'vs/base/common/htmlContent'; import {KeyCode, KeyMod} from 'vs/base/common/keyCodes'; import * as platform from 'vs/base/common/platform'; import Severity from 'vs/base/common/severity'; @@ -385,7 +385,7 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC value: text }; } else { - hoverMessage = textToMarkedString(text); + hoverMessage = textAsCodeBlock(text); } } diff --git a/src/vs/editor/contrib/hover/browser/modesContentHover.ts b/src/vs/editor/contrib/hover/browser/modesContentHover.ts index 3b8e6f1b2a5..734b56205f1 100644 --- a/src/vs/editor/contrib/hover/browser/modesContentHover.ts +++ b/src/vs/editor/contrib/hover/browser/modesContentHover.ts @@ -20,7 +20,7 @@ import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; import {getHover} from '../common/hover'; import {HoverOperation, IHoverComputer} from './hoverOperation'; import {ContentHoverWidget} from './hoverWidgets'; -import {textToMarkedString, MarkedString} from 'vs/base/common/htmlContent'; +import {textAsCodeBlock, MarkedString} from 'vs/base/common/htmlContent'; class ModesContentComputer implements IHoverComputer { @@ -112,7 +112,7 @@ class ModesContentComputer implements IHoverComputer { private _getLoadingMessage(): Hover { return { range: this._range, - contents: [textToMarkedString(nls.localize('modesContentHover.loading', "Loading..."))] + contents: [textAsCodeBlock(nls.localize('modesContentHover.loading', "Loading..."))] }; } }