0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-03-27 21:08:13 +00:00

default cm5 theme back

This commit is contained in:
Víctor Losada Hernández
2026-03-27 13:13:36 +01:00
parent c0b3a1940f
commit ad9f4773b0
6 changed files with 111 additions and 5 deletions

View File

@@ -22,7 +22,10 @@ import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
import { autocompleteEmoji } from './autocompleteEmoji.js';
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 highlightCompartment = new Compartment();
@@ -170,11 +173,11 @@ const CodeEditor = forwardRef(
openText : '▾',
closedText : '▸'
}),
themeCompartment.of(themeExtension),
highlightActiveLine(),
highlightActiveLineGutter(),
highlightCompartment.of(combinedHighlight),
themeCompartment.of(themeExtension),
autocompleteEmoji,
search(),
];

View File

@@ -24,6 +24,20 @@
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 */
.sourceMoveFlash .cm-line {
animation-name: sourceMoveAnimation;

View File

@@ -228,7 +228,8 @@ export function tokenizeCustomMarkdown(text) {
}
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: customTags.pageLine, color: '#f0a' },
{ tag: customTags.snippetLine, class: 'cm-snippetLine', color: '#0af' },

View File

@@ -9,7 +9,9 @@
background : white;
.codeEditor {
height : calc(100% - 25px);
.cm-editor { height : 100%; }
.cm-editor { height : 100%;
outline:none !important;
}
&.brewSnippets .cm-snippetLine {
background : #33333328;
border-top : #333399 solid 1px;

View File

@@ -24,7 +24,10 @@ const ThemeSnippets = {
};
//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)
.filter(([name, value]) =>

View 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 });