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

final fixes

This commit is contained in:
Víctor Losada Hernández
2026-03-27 12:16:27 +01:00
parent 9edb0e2fc6
commit c0b3a1940f
5 changed files with 7 additions and 17 deletions

View File

@@ -1,3 +1,4 @@
/* eslint max-lines: ["error", { "max": 400 }] */
import './codeEditor.less';
import React, { useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
@@ -19,7 +20,7 @@ import { languages } from '@codemirror/language-data';
import { css } from '@codemirror/lang-css';
import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
import { autocompleteEmoji } from './autocompleteEmoji.js';
import { searchKeymap, highlightSelectionMatches, search, openSearchPanel } from '@codemirror/search';
import { searchKeymap, search } from '@codemirror/search';
import * as themes from '@uiw/codemirror-themes-all';
const themeCompartment = new Compartment();
@@ -32,7 +33,7 @@ import { legacyCustomHighlightStyle, legacyTokenizeCustomMarkdown } from './lega
const createHighlightPlugin = (renderer, tab)=>{
const tokenize = renderer === 'V3' ? tokenizeCustomMarkdown : legacyTokenizeCustomMarkdown;
/* eslint-disable no-restricted-syntax */
class countWidget extends WidgetType {
constructor(count) {
super();
@@ -47,6 +48,7 @@ const createHighlightPlugin = (renderer, tab)=>{
}
ignoreEvent() { return true; }
}
/* eslint-enable no-restricted-syntax */
return ViewPlugin.fromClass(
class {

View File

@@ -15,17 +15,13 @@ const customTags = {
definitionList : 'definitionList', // .cm-definitionList
definitionTerm : 'definitionTerm', // .cm-definitionTerm
definitionDesc : 'definitionDesc', // .cm-definitionDesc
definitionColon : 'definitionColon',// .cm-definitionColon
definitionColon : 'definitionColon', // .cm-definitionColon
};
export function tokenizeCustomMarkdown(text) {
const tokens = [];
const lines = text.split('\n');
// Track multi-line blocks
const inBlock = false;
const blockStart = 0;
lines.forEach((lineText, lineNumber)=>{
// --- Page / snippet lines ---
if(/^(?=\\page(?:break)?(?: *{[^\n{}]*})?$)/m.test(lineText)) tokens.push({ line: lineNumber, type: customTags.pageLine });
@@ -92,7 +88,6 @@ export function tokenizeCustomMarkdown(text) {
if(match) {
const [full, term, colons, desc] = match;
let offset = 0;
// Entire line as definitionList
tokens.push({
line : lineNumber,
@@ -131,7 +126,6 @@ export function tokenizeCustomMarkdown(text) {
// multiline def list
if(!/^::/.test(lines[lineNumber]) && lineNumber + 1 < lines.length && /^::/.test(lines[lineNumber + 1])) {
const term = lineText;
const startLine = lineNumber;
const defs = [];
let endLine = startLine;

View File

@@ -1,3 +1,4 @@
/* eslint max-lines: ["error", { "max": 300 }] */
import { keymap } from '@codemirror/view';
import { undo, redo } from '@codemirror/commands';

View File

@@ -1,7 +1,6 @@
import { HighlightStyle } from '@codemirror/language';
import { tags } from '@lezer/highlight';
// Making the tokens
const customTags = {
pageLine : 'pageLine', // .cm-pageLine
snippetLine : 'snippetLine', // .cm-snippetLine
@@ -11,10 +10,6 @@ export function legacyTokenizeCustomMarkdown(text) {
const tokens = [];
const lines = text.split('\n');
// Track multi-line blocks
const inBlock = false;
const blockStart = 0;
lines.forEach((lineText, lineNumber)=>{
// --- Page / snippet lines ---
if(/^(?=\\page(?:break)?(?: *{[^\n{}]*})?$)/m.test(lineText)) tokens.push({ line: lineNumber, type: customTags.pageLine });
@@ -31,4 +26,3 @@ export const legacyCustomHighlightStyle = HighlightStyle.define([
{ tag: customTags.snippetLine, class: 'cm-snippetLine', color: '#0af' },
]);