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..."))]
};
}
}