0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-12 13:12:46 +00:00

Merge pull request #3067 from Gazook89/Definition-List-Highlighting

Add syntax highlighting for definition lists
This commit is contained in:
Trevor Buckner
2023-10-05 22:43:58 -04:00
committed by GitHub
2 changed files with 59 additions and 40 deletions

View File

@@ -149,6 +149,17 @@ const Editor = createClass({
codeMirror.addLineClass(lineNumber, 'text', 'columnSplit'); codeMirror.addLineClass(lineNumber, 'text', 'columnSplit');
} }
// definition lists
if(line.includes('::')){
const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym;
let match;
while ((match = regex.exec(line)) != null){
codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[0]) }, { line: lineNumber, ch: line.indexOf(match[0]) + match[0].length }, { className: 'define' });
codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[1]) }, { line: lineNumber, ch: line.indexOf(match[1]) + match[1].length }, { className: 'term' });
codeMirror.markText({ line: lineNumber, ch: line.indexOf(match[2]) }, { line: lineNumber, ch: line.indexOf(match[2]) + match[2].length }, { className: 'definition' });
}
}
// Highlight injectors {style} // Highlight injectors {style}
if(line.includes('{') && line.includes('}')){ if(line.includes('{') && line.includes('}')){
const regex = /(?:^|[^{\n])({(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\2})/gm; const regex = /(?:^|[^{\n])({(?=((?::(?:"[\w,\-()#%. ]*"|[\w\-()#%.]*)|[^"':{}\s]*)*))\2})/gm;

View File

@@ -1,65 +1,73 @@
@import 'themes/codeMirror/customEditorStyles.less'; @import 'themes/codeMirror/customEditorStyles.less';
.editor{ .editor {
position : relative; position : relative;
width : 100%; width : 100%;
.codeEditor{ .codeEditor {
height : 100%; height : 100%;
.pageLine{ .pageLine {
background : #33333328; background : #33333328;
border-top : #339 solid 1px; border-top : #333399 solid 1px;
} }
.editor-page-count{ .editor-page-count {
color : grey;
float : right; float : right;
color : grey;
} }
.columnSplit{ .columnSplit {
font-style : italic; font-style : italic;
color : grey; color : grey;
background-color : fade(#299, 15%); background-color : fade(#229999, 15%);
border-bottom : #299 solid 1px; border-bottom : #229999 solid 1px;
} }
.block:not(.cm-comment){ .define {
color : purple; &:not(.term):not(.definition) {
font-weight : bold;
color : #949494;
background : #E5E5E5;
border-radius : 3px;
}
&.term { color : rgb(96, 117, 143); }
&.definition { color : rgb(97, 57, 178); }
}
.block:not(.cm-comment) {
font-weight : bold; font-weight : bold;
color : purple;
//font-style: italic; //font-style: italic;
} }
.inline-block:not(.cm-comment){ .inline-block:not(.cm-comment) {
color : red;
font-weight : bold; font-weight : bold;
color : red;
//font-style: italic; //font-style: italic;
} }
.injection:not(.cm-comment){ .injection:not(.cm-comment) {
font-weight : bold;
color : green; color : green;
font-weight : bold;
} }
} }
.brewJump{ .brewJump {
position : absolute; position : absolute;
background-color : @teal; right : 20px;
cursor : pointer; bottom : 20px;
width : 30px; z-index : 1000000;
height : 30px; display : flex;
display : flex; align-items : center;
align-items : center; justify-content : center;
bottom : 20px; width : 30px;
right : 20px; height : 30px;
z-index : 1000000; cursor : pointer;
justify-content : center; background-color : @teal;
.tooltipLeft("Jump to brew page"); .tooltipLeft('Jump to brew page');
} }
.editorToolbar{ .editorToolbar {
position: absolute; position : absolute;
top: 5px; top : 5px;
left: 50%; left : 50%;
color: black; z-index : 9;
font-size: 13px; font-size : 13px;
z-index: 9; color : black;
span { span { padding : 2px 5px; }
padding: 2px 5px;
}
} }
} }