more settings support

This commit is contained in:
Sandeep Somavarapu 2016-08-31 23:15:58 +02:00
parent d0ec4e6a6a
commit 72b38ef1c5

View file

@ -18,6 +18,8 @@ interface ThemeGlobalSettings {
lineHighlight?: string;
rangeHighlight?: string;
hoverHighlight?: string;
selection?: string;
inactiveSelection?: string;
selectionHighlight?: string;
@ -28,6 +30,10 @@ interface ThemeGlobalSettings {
wordHighlight?: string;
wordHighlightStrong?: string;
referenceHighlight?: string;
activeLinkForeground?: string;
}
class Theme {
@ -145,7 +151,9 @@ export class EditorStylesContribution {
new EditorSelectionStyleRules(),
new EditorWordHighlightStyleRules(),
new EditorFindStyleRules(),
new EditorReferenceSearchStyleRules()
new EditorReferenceSearchStyleRules(),
new EditorHoverHighlightStyleRules(),
new EditorLinkStyleRules()
];
let theme = new Theme(themeId, themeDocument);
if (theme.hasGlobalSettings()) {
@ -210,6 +218,24 @@ class EditorForegroundStyleRules extends EditorStyleRules {
}
}
class EditorHoverHighlightStyleRules extends EditorStyleRules {
public getCssRules(theme: Theme): string[] {
let cssRules = [];
this.addBackgroundColorRule(theme, '.hoverHighlight', theme.getGlobalSettings().hoverHighlight, cssRules);
return cssRules;
}
}
class EditorLinkStyleRules extends EditorStyleRules {
public getCssRules(theme: Theme): string[] {
let cssRules = [];
if (theme.getGlobalSettings().activeLinkForeground) {
cssRules.push(`.monaco-editor.${theme.getSelector()} .detected-link-active { color: ${theme.getGlobalSettings().activeLinkForeground} !important; }`);
}
return cssRules;
}
}
class EditorSelectionStyleRules extends EditorStyleRules {
public getCssRules(theme: Theme): string[] {
let cssRules = [];
@ -271,6 +297,7 @@ class EditorReferenceSearchStyleRules extends EditorStyleRules {
public getCssRules(theme: Theme): string[] {
let cssRules = [];
this.addBackgroundColorRule(theme, '.reference-zone-widget .ref-tree .referenceMatch', theme.getGlobalSettings().findMatchHighlight, cssRules);
this.addBackgroundColorRule(theme, '.reference-zone-widget .preview .reference-decoration', theme.getGlobalSettings().referenceHighlight, cssRules);
return cssRules;
}
}