Skip to content

Commit 3801e10

Browse files
committed
Decent baseline syntax highlighting.
1 parent 27f60bd commit 3801e10

File tree

6 files changed

+28
-11
lines changed

6 files changed

+28
-11
lines changed

assets/bundle.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22994,21 +22994,27 @@
2299422994
maxTerm: 15,
2299522995
skippedNodes: [0, 1],
2299622996
repeatNodeCount: 1,
22997-
tokenData: "'|~RgXY!jYZ!j]^!jpq!jqr!{st!{tu!{uv$Vvw!{wx!{z}!{}!O!{!O!P%b!P![!{![!]%g!]!c!{!c!}%l#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~!oS]~XY!jYZ!j]^!jpq!j~#Q_U~qr!{st!{tu!{vw!{wx!{z}!{}!O!{!P![!{!]!}!{#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~$SP;=`<%l!{~$YTYZ$ipq$nuv$n!c!}%V#T#o%V~$nOP~~$sSP~OY$nZ;'S$n;'S;=`%P<%lO$n~%SP;=`<%l$n~%[QV~!c!}%V#T#o%V~%gOS~~%lOR~~%q_U~qr&pst&ptu&pvw&pwx&pz}&p}!O&p!P![&p!]!}&p#Q#o&p#p#q&p#r#s&p$g;'S&p;'S;=`'v<%lO&p~&w_T~U~qr&pst&ptu&pvw&pwx&pz}&p}!O&p!P![&p!]!}&p#Q#o&p#p#q&p#r#s&p$g;'S&p;'S;=`'v<%lO&p~'yP;=`<%l&p",
22997+
tokenData: "&x~RgXY!jYZ!j]^!jpq!jqr!{st!{tu!{uv$Vvw!{wx!{z}!{}!O!{!O!P%b!P![!{![!]%g!]!c!{!c!}%l#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~!oS]~XY!jYZ!j]^!jpq!j~#Q_U~qr!{st!{tu!{vw!{wx!{z}!{}!O!{!P![!{!]!}!{#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~$SP;=`<%l!{~$YTYZ$ipq$nuv$n!c!}%V#T#o%V~$nOP~~$sSP~OY$nZ;'S$n;'S;=`%P<%lO$n~%SP;=`<%l$n~%[QV~!c!}%V#T#o%V~%gOS~~%lOR~~%s_T~U~qr%lst%ltu%lvw%lwx%lz}%l}!O%l!P![%l!]!}%l#Q#o%l#p#q%l#r#s%l$g;'S%l;'S;=`&r<%lO%l~&uP;=`<%l%l",
2299822998
tokenizers: [0],
2299922999
topRules: { "File": [0, 2] },
2300023000
specialized: [{ term: 6, get: (value) => spec_Identifier[value] || -1 }],
2300123001
tokenPrec: 33
2300223002
});
2300323003

2300423004
// src/twelf-mode.ts
23005+
var twelfHighlightStyle = HighlightStyle.define([
23006+
...defaultHighlightStyle.specs,
23007+
{ tag: tags.variableName, color: "#0a0" },
23008+
{ tag: tags.atom, color: "#000" },
23009+
{ tag: tags.comment, color: "#777", fontStyle: "italic" }
23010+
]);
2300523011
var twelfLanguage = LRLanguage.define({
2300623012
name: "twelf",
2300723013
parser: parser.configure({
2300823014
props: [
2300923015
styleTags({
23010-
Identifier: tags.variableName,
23011-
FVar: tags.keyword,
23016+
Identifier: tags.atom,
23017+
FVar: tags.variableName,
2301223018
LineComment: tags.comment,
2301323019
Pragma: tags.keyword,
2301423020
Type: tags.keyword
@@ -23166,6 +23172,7 @@
2316623172
const editor = new EditorView({
2316723173
extensions: [
2316823174
basicSetup,
23175+
syntaxHighlighting(twelfHighlightStyle),
2316923176
twelf(),
2317023177
// These css tweaks came from the "See this example" in
2317123178
// https://discuss.codemirror.net/t/fill-a-div-with-the-editor/5248/2

assets/bundle.js.map

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grammar/twelf.grammar

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
Colon{':'} Period{'.'}
99
identifierChar { $[-\!|#$&'*-,/-9;-Z^-z~\u{a1}-\u{10ffff}] }
1010
Identifier { identifierChar+ }
11-
FVar { $[A-Z] identifierChar+ }
11+
FVar { $[A-Z] identifierChar* }
1212
@precedence {FVar, Identifier}
1313
LineComment { (('% '|'%%') ![\n]*) | '%\n' }
1414
Pragma { '%' $[a-zA-Z]+ }
15+
1516
}
1617

1718
Arrow {

src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { EditorView, basicSetup } from "codemirror"
2+
import { syntaxHighlighting } from '@codemirror/language';
23
import { decode, encode } from "./encoding";
34
import { WasiSnapshotPreview1, args_get, args_sizes_get, clock_time_get, environ_sizes_get, fd_write } from "./wasi";
4-
import { twelf as twelfMode } from './twelf-mode';
5+
import { twelfHighlightStyle, twelf as twelfMode } from './twelf-mode';
56

67
enum Status {
78
OK = 0,
@@ -149,6 +150,7 @@ async function getWasm(url: string): Promise<ArrayBuffer> {
149150
function initEditor(): EditorView {
150151
const editor = new EditorView({
151152
extensions: [basicSetup,
153+
syntaxHighlighting(twelfHighlightStyle),
152154
twelfMode(),
153155
// These css tweaks came from the "See this example" in
154156
// https://discuss.codemirror.net/t/fill-a-div-with-the-editor/5248/2

src/twelf-mode.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
import { Extension } from "@codemirror/state"
2-
import { continuedIndent, indentNodeProp, foldNodeProp, foldInside, LRLanguage, LanguageSupport } from "@codemirror/language"
2+
import { defaultHighlightStyle, HighlightStyle, continuedIndent, indentNodeProp, foldNodeProp, foldInside, LRLanguage, LanguageSupport } from "@codemirror/language"
33
import { parser } from './twelf-parser';
44
import { styleTags, tags as t } from "@lezer/highlight";
55

6+
export const twelfHighlightStyle = HighlightStyle.define([
7+
...defaultHighlightStyle.specs,
8+
{ tag: t.variableName, color: "#0a0" },
9+
{ tag: t.atom, color: "#000" },
10+
{ tag: t.comment, color: "#777", fontStyle: "italic" }
11+
])
12+
613
export const twelfLanguage = LRLanguage.define({
714
name: "twelf",
815
parser: parser.configure({
916
props: [
1017
styleTags({
11-
Identifier: t.variableName,
12-
FVar: t.keyword,
18+
Identifier: t.atom,
19+
FVar: t.variableName,
1320
LineComment: t.comment,
1421
Pragma: t.keyword,
1522
Type: t.keyword,

src/twelf-parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export const parser = LRParser.deserialize({
1010
maxTerm: 15,
1111
skippedNodes: [0,1],
1212
repeatNodeCount: 1,
13-
tokenData: "'|~RgXY!jYZ!j]^!jpq!jqr!{st!{tu!{uv$Vvw!{wx!{z}!{}!O!{!O!P%b!P![!{![!]%g!]!c!{!c!}%l#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~!oS]~XY!jYZ!j]^!jpq!j~#Q_U~qr!{st!{tu!{vw!{wx!{z}!{}!O!{!P![!{!]!}!{#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~$SP;=`<%l!{~$YTYZ$ipq$nuv$n!c!}%V#T#o%V~$nOP~~$sSP~OY$nZ;'S$n;'S;=`%P<%lO$n~%SP;=`<%l$n~%[QV~!c!}%V#T#o%V~%gOS~~%lOR~~%q_U~qr&pst&ptu&pvw&pwx&pz}&p}!O&p!P![&p!]!}&p#Q#o&p#p#q&p#r#s&p$g;'S&p;'S;=`'v<%lO&p~&w_T~U~qr&pst&ptu&pvw&pwx&pz}&p}!O&p!P![&p!]!}&p#Q#o&p#p#q&p#r#s&p$g;'S&p;'S;=`'v<%lO&p~'yP;=`<%l&p",
13+
tokenData: "&x~RgXY!jYZ!j]^!jpq!jqr!{st!{tu!{uv$Vvw!{wx!{z}!{}!O!{!O!P%b!P![!{![!]%g!]!c!{!c!}%l#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~!oS]~XY!jYZ!j]^!jpq!j~#Q_U~qr!{st!{tu!{vw!{wx!{z}!{}!O!{!P![!{!]!}!{#Q#o!{#p#q!{#r#s!{$g;'S!{;'S;=`$P<%lO!{~$SP;=`<%l!{~$YTYZ$ipq$nuv$n!c!}%V#T#o%V~$nOP~~$sSP~OY$nZ;'S$n;'S;=`%P<%lO$n~%SP;=`<%l$n~%[QV~!c!}%V#T#o%V~%gOS~~%lOR~~%s_T~U~qr%lst%ltu%lvw%lwx%lz}%l}!O%l!P![%l!]!}%l#Q#o%l#p#q%l#r#s%l$g;'S%l;'S;=`&r<%lO%l~&uP;=`<%l%l",
1414
tokenizers: [0],
1515
topRules: {"File":[0,2]},
1616
specialized: [{term: 6, get: (value) => spec_Identifier[value] || -1}],

0 commit comments

Comments
 (0)