mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-03-28 03:38:11 +00:00
default cm5 theme back
This commit is contained in:
@@ -22,7 +22,10 @@ import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
|
|||||||
import { autocompleteEmoji } from './autocompleteEmoji.js';
|
import { autocompleteEmoji } from './autocompleteEmoji.js';
|
||||||
import { searchKeymap, search } from '@codemirror/search';
|
import { searchKeymap, search } from '@codemirror/search';
|
||||||
|
|
||||||
import * as themes from '@uiw/codemirror-themes-all';
|
import * as themesImport from '@uiw/codemirror-themes-all';
|
||||||
|
import { defaultCM5Theme } from '@themes/codeMirror/customThemes/default.js';
|
||||||
|
|
||||||
|
const themes = { default: defaultCM5Theme, ...themesImport };
|
||||||
const themeCompartment = new Compartment();
|
const themeCompartment = new Compartment();
|
||||||
const highlightCompartment = new Compartment();
|
const highlightCompartment = new Compartment();
|
||||||
|
|
||||||
@@ -170,11 +173,11 @@ const CodeEditor = forwardRef(
|
|||||||
openText : '▾',
|
openText : '▾',
|
||||||
closedText : '▸'
|
closedText : '▸'
|
||||||
}),
|
}),
|
||||||
themeCompartment.of(themeExtension),
|
|
||||||
|
|
||||||
highlightActiveLine(),
|
highlightActiveLine(),
|
||||||
highlightActiveLineGutter(),
|
highlightActiveLineGutter(),
|
||||||
highlightCompartment.of(combinedHighlight),
|
highlightCompartment.of(combinedHighlight),
|
||||||
|
themeCompartment.of(themeExtension),
|
||||||
autocompleteEmoji,
|
autocompleteEmoji,
|
||||||
search(),
|
search(),
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -24,6 +24,20 @@
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cm-gutterElement span {
|
||||||
|
font-family : inherit;
|
||||||
|
font-weight : 600;
|
||||||
|
color : grey;
|
||||||
|
text-shadow : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-foldGutter {
|
||||||
|
cursor : pointer;
|
||||||
|
border-left : 1px solid #EEEEEE;
|
||||||
|
transition : background 0.1s;
|
||||||
|
&:hover { background : #DDDDDD; }
|
||||||
|
}
|
||||||
|
|
||||||
/* Flash animation for source moves */
|
/* Flash animation for source moves */
|
||||||
.sourceMoveFlash .cm-line {
|
.sourceMoveFlash .cm-line {
|
||||||
animation-name: sourceMoveAnimation;
|
animation-name: sourceMoveAnimation;
|
||||||
|
|||||||
@@ -228,7 +228,8 @@ export function tokenizeCustomMarkdown(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const customHighlightStyle = HighlightStyle.define([
|
export const customHighlightStyle = HighlightStyle.define([
|
||||||
{ tag: tags.heading1, color: '#000', fontWeight: '700' },
|
{ tag: tags.heading, class: 'cm-header' },
|
||||||
|
{ tag: tags.heading1, class: 'cm-header cm-header-1' },
|
||||||
{ tag: tags.keyword, color: '#07a' }, // example for your markdown headings
|
{ tag: tags.keyword, color: '#07a' }, // example for your markdown headings
|
||||||
{ tag: customTags.pageLine, color: '#f0a' },
|
{ tag: customTags.pageLine, color: '#f0a' },
|
||||||
{ tag: customTags.snippetLine, class: 'cm-snippetLine', color: '#0af' },
|
{ tag: customTags.snippetLine, class: 'cm-snippetLine', color: '#0af' },
|
||||||
|
|||||||
@@ -9,7 +9,9 @@
|
|||||||
background : white;
|
background : white;
|
||||||
.codeEditor {
|
.codeEditor {
|
||||||
height : calc(100% - 25px);
|
height : calc(100% - 25px);
|
||||||
.cm-editor { height : 100%; }
|
.cm-editor { height : 100%;
|
||||||
|
outline:none !important;
|
||||||
|
}
|
||||||
&.brewSnippets .cm-snippetLine {
|
&.brewSnippets .cm-snippetLine {
|
||||||
background : #33333328;
|
background : #33333328;
|
||||||
border-top : #333399 solid 1px;
|
border-top : #333399 solid 1px;
|
||||||
|
|||||||
@@ -24,7 +24,10 @@ const ThemeSnippets = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//import EditorThemes from '../../../../build/homebrew/codeMirror/editorThemes.json';
|
//import EditorThemes from '../../../../build/homebrew/codeMirror/editorThemes.json';
|
||||||
import * as themes from '@uiw/codemirror-themes-all';
|
import * as themesImport from '@uiw/codemirror-themes-all';
|
||||||
|
import { defaultCM5Theme } from '@themes/codeMirror/customThemes/default.js';
|
||||||
|
|
||||||
|
const themes = { default: defaultCM5Theme, ...themesImport };
|
||||||
|
|
||||||
const EditorThemes = Object.entries(themes)
|
const EditorThemes = Object.entries(themes)
|
||||||
.filter(([name, value]) =>
|
.filter(([name, value]) =>
|
||||||
|
|||||||
83
themes/codeMirror/customThemes/default.js
Normal file
83
themes/codeMirror/customThemes/default.js
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
// themes/codeMirror/customThemes/default.js
|
||||||
|
import { EditorView } from '@codemirror/view';
|
||||||
|
import { Compartment } from '@codemirror/state';
|
||||||
|
|
||||||
|
export const themeCompartment = new Compartment();
|
||||||
|
|
||||||
|
export const defaultCM5Theme = EditorView.theme({
|
||||||
|
"&": {
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
},
|
||||||
|
".cm-content": {
|
||||||
|
padding: "4px 0",
|
||||||
|
fontFamily: "monospace",
|
||||||
|
fontSize: "13px",
|
||||||
|
lineHeight: "1",
|
||||||
|
},
|
||||||
|
".cm-line": {
|
||||||
|
padding: "0 4px",
|
||||||
|
},
|
||||||
|
".cm-gutters": {
|
||||||
|
borderRight: "1px solid #ddd",
|
||||||
|
backgroundColor: "#f7f7f7",
|
||||||
|
whiteSpace: "nowrap",
|
||||||
|
},
|
||||||
|
".cm-linenumber": {
|
||||||
|
padding: "0 3px 0 5px",
|
||||||
|
minWidth: "20px",
|
||||||
|
textAlign: "right",
|
||||||
|
color: "#999",
|
||||||
|
whiteSpace: "nowrap",
|
||||||
|
},
|
||||||
|
".cm-cursor": {
|
||||||
|
borderLeft: "1px solid black",
|
||||||
|
},
|
||||||
|
".cm-fat-cursor": {
|
||||||
|
width: "auto",
|
||||||
|
backgroundColor: "#7e7",
|
||||||
|
caretColor: "transparent",
|
||||||
|
},
|
||||||
|
".cm-activeline-background": {
|
||||||
|
backgroundColor: "#e8f2ff",
|
||||||
|
},
|
||||||
|
".cm-selected": {
|
||||||
|
backgroundColor: "#d7d4f0",
|
||||||
|
},
|
||||||
|
".cm-foldmarker": {
|
||||||
|
color: "blue",
|
||||||
|
textShadow:
|
||||||
|
"#b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px",
|
||||||
|
fontFamily: "arial",
|
||||||
|
lineHeight: "0.3",
|
||||||
|
cursor: "pointer",
|
||||||
|
},
|
||||||
|
|
||||||
|
// Semantic classes
|
||||||
|
".cm-header": { color: "blue", fontWeight: "bold" },
|
||||||
|
".cm-strong": { fontWeight: "bold" },
|
||||||
|
".cm-em": { fontStyle: "italic" },
|
||||||
|
".cm-quote": { color: "#090" },
|
||||||
|
".cm-keyword": { color: "#708" },
|
||||||
|
".cm-atom": { color: "#219" },
|
||||||
|
".cm-number": { color: "#164" },
|
||||||
|
".cm-def": { color: "#00f" },
|
||||||
|
".cm-variable-2": { color: "#05a" },
|
||||||
|
".cm-variable-3, .cm-type": { color: "#085" },
|
||||||
|
".cm-comment": { color: "#a50" },
|
||||||
|
".cm-string": { color: "#a11" },
|
||||||
|
".cm-string-2": { color: "#f50" },
|
||||||
|
".cm-meta, .cm-qualifier": { color: "#555" },
|
||||||
|
".cm-builtin": { color: "#30a" },
|
||||||
|
".cm-bracket": { color: "#997" },
|
||||||
|
".cm-tag": { color: "#170" },
|
||||||
|
".cm-attribute": { color: "#00c" },
|
||||||
|
".cm-hr": { color: "#999" },
|
||||||
|
".cm-link": { color: "#00c", textDecoration: "underline" },
|
||||||
|
".cm-negative": { color: "#d44" },
|
||||||
|
".cm-positive": { color: "#292" },
|
||||||
|
".cm-error, .cm-invalidchar": { color: "#f00" },
|
||||||
|
".cm-matchingbracket": { color: "#0b0" },
|
||||||
|
".cm-nonmatchingbracket": { color: "#a22" },
|
||||||
|
".cm-matchingtag": { backgroundColor: "rgba(255, 150, 0, 0.3)" },
|
||||||
|
}, { dark: false });
|
||||||
Reference in New Issue
Block a user