remove lezer code

This commit is contained in:
2025-06-17 18:14:00 -07:00
parent 64652edf4b
commit a3137319bb

View File

@@ -2,37 +2,15 @@ import { AbstractEditor, EditorDelegate, Marker } from "./types";
import { basicSetup } from "codemirror"; import { basicSetup } from "codemirror";
import { EditorView, hoverTooltip, Tooltip } from "@codemirror/view"; import { EditorView, hoverTooltip, Tooltip } from "@codemirror/view";
import { Compartment } from "@codemirror/state"; import { Compartment } from "@codemirror/state";
import { parser } from "./parser.js"; import { oneDark } from "@codemirror/theme-one-dark";
import { oneDark, oneDark as themeOneDark } from "@codemirror/theme-one-dark"; import { linter } from "@codemirror/lint";
import { styleTags, tags as t } from "@lezer/highlight";
import { linter, Diagnostic } from "@codemirror/lint";
import { import {
LanguageSupport, LanguageSupport,
LRLanguage,
StreamLanguage, StreamLanguage,
StringStream, StringStream,
} from "@codemirror/language"; } from "@codemirror/language";
import { ABBREV } from "./abbrev.js"; import { ABBREV } from "./abbrev.js";
let parserWithMetadata = parser.configure({
props: [
styleTags({
Identifier: t.variableName,
LineComment: t.lineComment,
"if then else data where": t.keyword,
}),
// indentNodeProp, foldNodeProp
],
});
const newtLanguage = LRLanguage.define({
parser: parserWithMetadata,
languageData: {
commentTokens: {
line: "--",
},
},
});
// prettier flattened this... // prettier flattened this...
const keywords = [ const keywords = [
"let", "let",
@@ -144,25 +122,29 @@ export class CMEditor implements AbstractEditor {
linter((view) => this.delegate.lint(view)), linter((view) => this.delegate.lint(view)),
this.theme.of(EditorView.baseTheme({})), this.theme.of(EditorView.baseTheme({})),
EditorView.updateListener.of((update) => { EditorView.updateListener.of((update) => {
let doc = update.state.doc let doc = update.state.doc;
update.changes.iterChanges((fromA, toA, fromB, toB, inserted) => { update.changes.iterChanges((fromA, toA, fromB, toB, inserted) => {
if (" ')\\".includes(inserted.toString())) { if (" ')\\".includes(inserted.toString())) {
console.log('changes', update.changes, update.changes.desc) console.log("changes", update.changes, update.changes.desc);
let line = doc.lineAt(fromA) let line = doc.lineAt(fromA);
let e = fromA - line.from let e = fromA - line.from;
const m = line.text.slice(0, e).match(/(\\[^ ]+)$/); const m = line.text.slice(0, e).match(/(\\[^ ]+)$/);
if (m) { if (m) {
let s = e - m[0].length let s = e - m[0].length;
let key = line.text.slice(s, e) let key = line.text.slice(s, e);
if (ABBREV[key]) { if (ABBREV[key]) {
this.view.dispatch({ this.view.dispatch({
changes: { from: line.from + s, to: fromA, insert: ABBREV[key] }, changes: {
from: line.from + s,
to: fromA,
insert: ABBREV[key],
},
}); });
} }
} }
} }
}) });
}), }),
hoverTooltip((view, pos) => { hoverTooltip((view, pos) => {
let cursor = this.view.state.doc.lineAt(pos); let cursor = this.view.state.doc.lineAt(pos);