@athrio/loom 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/LanguageLoader-DJGDopcP.js +3 -0
  2. package/dist/{LanguageLoader-BzlRnQhO.js → LanguageLoader-kZ-5Qbwr.js} +19 -11
  3. package/dist/{LanguageLoader-BzlRnQhO.js.map → LanguageLoader-kZ-5Qbwr.js.map} +1 -1
  4. package/dist/{LanguageService-BTCvgdWm.js → LanguageService-CcElIYBZ.js} +2 -2
  5. package/dist/{LanguageService-BTCvgdWm.js.map → LanguageService-CcElIYBZ.js.map} +1 -1
  6. package/dist/{LoomFormatter-Bu8L8cdR.js → LoomFormatter-D6wh-SLN.js} +11 -3
  7. package/dist/{LoomFormatter-Bu8L8cdR.js.map → LoomFormatter-D6wh-SLN.js.map} +1 -1
  8. package/dist/{LoomServer-DXIree_1.js → LoomServer-C54yIIo1.js} +28 -12
  9. package/dist/{LoomServer-DXIree_1.js.map → LoomServer-C54yIIo1.js.map} +1 -1
  10. package/dist/{LoomStore-pA-ohGNX.js → LoomStore-axDgE8RF.js} +103 -21
  11. package/dist/LoomStore-axDgE8RF.js.map +1 -0
  12. package/dist/{Runtime-XT-nb-2w.js → Runtime-Cj1Rsxs1.js} +1 -1
  13. package/dist/{Runtime-Byw6clui.js → Runtime-D4WijrpR.js} +3 -3
  14. package/dist/{Runtime-Byw6clui.js.map → Runtime-D4WijrpR.js.map} +1 -1
  15. package/dist/_virtual_tree-sitter-loom-CFLf84Ng.js +15 -0
  16. package/dist/{dist-D3YSXNOO.js → dist-LBqwqmSY.js} +2 -2
  17. package/dist/{dist-D3YSXNOO.js.map → dist-LBqwqmSY.js.map} +1 -1
  18. package/dist/main.js +224 -49
  19. package/dist/main.js.map +1 -1
  20. package/package.json +3 -1
  21. package/dist/LanguageLoader-DJZBFaqF.js +0 -3
  22. package/dist/LoomStore-pA-ohGNX.js.map +0 -1
  23. package/dist/tree-sitter-loom/editors/helix/queries/loom/highlights.scm +0 -120
  24. package/dist/tree-sitter-loom/editors/helix/queries/loom/injections.scm +0 -413
  25. package/dist/tree-sitter-loom/queries/highlights.scm +0 -120
  26. package/dist/tree-sitter-loom/queries/injections.scm +0 -85
  27. package/dist/tree-sitter-loom/src/parser.c +0 -4689
  28. package/dist/tree-sitter-loom/src/scanner.c +0 -293
  29. package/dist/tree-sitter-loom/src/tree_sitter/alloc.h +0 -54
  30. package/dist/tree-sitter-loom/src/tree_sitter/array.h +0 -330
  31. package/dist/tree-sitter-loom/src/tree_sitter/parser.h +0 -286
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athrio/loom",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "Tangle Loom literate sources into real source files.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,6 +24,7 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "vite build",
27
+ "compile": "bun compile.ts",
27
28
  "typecheck": "tsc -p tsconfig.json --noEmit",
28
29
  "test": "bun test",
29
30
  "prepack": "bun run build"
@@ -35,6 +36,7 @@
35
36
  "@effect/platform-node": "4.0.5",
36
37
  "effect": "4.0.5",
37
38
  "tree-sitter-loom": "workspace:*",
39
+ "typescript": "^6.0.3",
38
40
  "vite": "^8.0.12"
39
41
  }
40
42
  }
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import { t as loadActive } from "./LanguageLoader-BzlRnQhO.js";
3
- export { loadActive };
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoomStore-pA-ohGNX.js","names":[],"sources":["../../loom-ast/src/ast/LoomSymbol.ts","../../loom-lang-services/src/LoomStore.ts"],"sourcesContent":["import { Array, Match, Option, Schema } from 'effect'\nimport { type Position } from '#ast/LoomNode'\nimport {\n type LoomDocument,\n type LoomFrontmatter,\n type LoomHeading,\n type LoomSection,\n} from '#ast/LoomAst'\nimport { type SectionBodyWeft, type TocWeft } from '#ast/Weft'\nimport { type WarpAnchorToken, type WarpToken } from '#ast/LoomTokens'\n\nexport const SymbolKindSchema = Schema.Literals([\n 'headingTitle',\n 'sectionAnchor',\n 'warpAnchor',\n 'warpDef',\n 'specifier',\n 'sink',\n 'arrow',\n 'tilde',\n 'prose',\n 'frontmatterMembership',\n 'frontmatterValue',\n 'frontmatterTitle',\n 'frontmatterPart',\n 'frontmatterPartName',\n 'tocPart',\n 'tocEntry',\n])\nexport type SymbolKind = typeof SymbolKindSchema.Type\n\nexport interface SpanFeatures {\n readonly navigation?: boolean\n readonly semantic?: boolean\n readonly structure?: boolean\n readonly verification?: boolean\n readonly completion?: boolean\n}\n\nexport const SemanticTokenSchema = Schema.Literals([\n 'namespace',\n 'variable',\n 'keyword',\n 'string',\n 'operator',\n])\nexport type SemanticToken = typeof SemanticTokenSchema.Type\n\nexport interface SymbolProfile {\n readonly semantic: Option.Option<SemanticToken>\n readonly features: SpanFeatures\n}\n\nconst profile = (\n semantic: Option.Option<SemanticToken>,\n features: SpanFeatures,\n): SymbolProfile => ({ semantic, features })\n\nexport const profileOf = (kind: SymbolKind): SymbolProfile =>\n Match.value(kind).pipe(\n Match.when('headingTitle', () =>\n profile(Option.some('namespace'), { navigation: true, structure: true }),\n ),\n Match.when('sectionAnchor', () =>\n profile(Option.some('namespace'), {\n navigation: true,\n structure: true,\n verification: true,\n }),\n ),\n Match.when('warpAnchor', () =>\n profile(Option.some('variable'), { navigation: true, verification: true }),\n ),\n Match.when('warpDef', () => profile(Option.some('variable'), { navigation: true })),\n Match.when('specifier', () => profile(Option.some('keyword'), { verification: true })),\n Match.when('sink', () => profile(Option.some('string'), { verification: true })),\n Match.when('arrow', () => profile(Option.some('operator'), {})),\n Match.when('tilde', () => profile(Option.some('operator'), {})),\n Match.when('prose', () => profile(Option.none(), { structure: true })),\n Match.when('frontmatterMembership', () =>\n profile(Option.some('namespace'), { structure: true }),\n ),\n Match.when('frontmatterValue', () => profile(Option.some('string'), { structure: true })),\n Match.when('frontmatterTitle', () =>\n profile(Option.some('namespace'), { navigation: true, structure: true }),\n ),\n Match.when('frontmatterPart', () =>\n profile(Option.some('namespace'), { navigation: true, structure: true }),\n ),\n Match.when('frontmatterPartName', () =>\n profile(Option.some('namespace'), { navigation: true, structure: true }),\n ),\n Match.when('tocPart', () =>\n profile(Option.some('namespace'), { navigation: true, structure: true }),\n ),\n Match.when('tocEntry', () =>\n profile(Option.some('namespace'), {\n navigation: true,\n structure: true,\n verification: true,\n }),\n ),\n Match.exhaustive,\n )\n\nexport interface Symbol {\n readonly kind: SymbolKind\n readonly position: Position\n}\n\nconst anchorKind = (warpsInScope: ReadonlySet<string>, anchor: WarpAnchorToken): SymbolKind =>\n warpsInScope.has(anchor.name.value) ? 'warpAnchor' : 'sectionAnchor'\n\nconst namesOf = (warps: ReadonlyArray<WarpToken>): ReadonlyArray<string> =>\n Array.map(warps, (warp) => warp.name.value)\n\nconst at = (kind: SymbolKind, position: Position): Symbol => ({ kind, position })\n\nconst optSymbol = (\n kind: SymbolKind,\n token: { readonly position: Position } | undefined,\n): ReadonlyArray<Symbol> =>\n Option.toArray(Option.map(Option.fromNullishOr(token), (t) => at(kind, t.position)))\n\nconst frontmatterSymbols = (fm: LoomFrontmatter): ReadonlyArray<Symbol> => [\n ...optSymbol('frontmatterPart', fm.part),\n ...optSymbol('frontmatterPartName', fm.partName),\n ...optSymbol('frontmatterMembership', fm.chapter),\n ...optSymbol('frontmatterTitle', fm.title),\n ...optSymbol('frontmatterValue', fm.package),\n ...optSymbol('frontmatterValue', fm.language),\n]\n\nconst tocSymbols = (weft: TocWeft): ReadonlyArray<Symbol> => [\n ...optSymbol('tocPart', weft.part),\n ...optSymbol('tocEntry', weft.title),\n]\n\nconst headingSymbols = (heading: LoomHeading): ReadonlyArray<Symbol> => [\n ...Option.toArray(\n Option.map(Option.fromNullishOr(heading.title), (t) => at('headingTitle', t.position)),\n ),\n ...Option.toArray(\n Option.map(Option.fromNullishOr(heading.specifier), (s) => at('specifier', s.label.position)),\n ),\n ...Option.toArray(Option.map(Option.fromNullishOr(heading.sink), (s) => at('sink', s.position))),\n]\n\nconst delimiterOf = (weft: SectionBodyWeft): ReadonlyArray<Symbol> =>\n Match.value(weft).pipe(\n Match.when({ type: 'ArrowWeft' }, (w) => [at('arrow', w.arrow.position)]),\n Match.when({ type: 'TildeWeft' }, (w) => [at('tilde', w.tilde.position)]),\n Match.orElse(() => []),\n )\n\nconst sectionSymbols = (\n section: LoomSection,\n documentWarps: ReadonlyArray<string>,\n): ReadonlyArray<Symbol> => {\n const warps = Array.flatMap(section.preamble, (weft) => weft.warps)\n const scope = new Set([...documentWarps, ...namesOf(warps)])\n const anchors = [\n ...Array.flatMap(section.preamble, (weft) => weft.anchors),\n ...Array.flatMap(section.code, (weft) => weft.anchors),\n ]\n return [\n ...headingSymbols(section.heading),\n ...Array.map(warps, (warp) => at('warpDef', warp.name.position)),\n ...Array.map(anchors, (anchor) => at(anchorKind(scope, anchor), anchor.name.position)),\n ...Array.flatMap(section.code, delimiterOf),\n ...Array.flatMap(section.entries ?? [], tocSymbols),\n ]\n}\n\nexport const symbolsOf = (doc: LoomDocument): ReadonlyArray<Symbol> => {\n const warps = Array.flatMap(doc.preamble, (weft) => weft.warps)\n const scope = new Set(namesOf(warps))\n return [\n ...Array.flatMap(Option.toArray(Option.fromNullishOr(doc.frontmatter)), frontmatterSymbols),\n ...Array.map(warps, (warp) => at('warpDef', warp.name.position)),\n ...Array.map(\n Array.flatMap(doc.preamble, (weft) => weft.anchors),\n (anchor) => at(anchorKind(scope, anchor), anchor.name.position),\n ),\n ...Array.flatMap(doc.sections, (section) => sectionSymbols(section, namesOf(warps))),\n ]\n}\n\nexport const symbolAt = (doc: LoomDocument, offset: number): Option.Option<Symbol> =>\n Array.findFirst(\n symbolsOf(doc),\n (symbol) => symbol.position.start.offset <= offset && offset <= symbol.position.end.offset,\n )\n","import { Data, Effect, Option, pipe } from 'effect'\nimport { execFile } from 'node:child_process'\nimport { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'\nimport { dirname, join } from 'node:path'\nimport { promisify } from 'node:util'\n\nconst run = promisify(execFile)\n\nexport const servicePackage = (id: string): string => `@athrio/loom-service-${id}`\n\nexport const workspaceOf = (dir: string): Option.Option<string> => {\n if (existsSync(join(dir, '.loom'))) return Option.some(dir)\n const parent = dirname(dir)\n return parent === dir ? Option.none() : workspaceOf(parent)\n}\n\nexport const workspaceRoot = (dir: string): string => Option.getOrElse(workspaceOf(dir), () => dir)\n\nexport const storeDir = (dir: string): string =>\n process.env.LOOM_HOME === undefined\n ? join(workspaceRoot(dir), '.loom', 'services')\n : join(process.env.LOOM_HOME, 'services')\n\nconst servicePrefix = 'loom-service-'\n\nexport const installedServices = (dir: string): Effect.Effect<ReadonlyArray<string>> =>\n Effect.sync(() => {\n const scope = join(storeDir(dir), 'node_modules', '@athrio')\n if (!existsSync(scope)) return []\n return readdirSync(scope)\n .filter((name) => name.startsWith(servicePrefix))\n .map((name) => name.slice(servicePrefix.length))\n })\n\nexport const serviceVersion = '0.0.12'\n\nexport const installedVersion = (id: string, dir: string): Option.Option<string> =>\n pipe(\n Option.liftThrowable(() =>\n readFileSync(join(storeDir(dir), 'node_modules', servicePackage(id), 'package.json'), 'utf8'),\n )(),\n Option.flatMap(\n Option.liftThrowable((text: string) => JSON.parse(text) as { readonly version?: unknown }),\n ),\n Option.flatMap((manifest) =>\n typeof manifest.version === 'string' ? Option.some(manifest.version) : Option.none(),\n ),\n )\n\nexport class StoreError extends Data.TaggedError('StoreError')<{\n readonly id: string\n readonly cause: unknown\n}> {}\n\nconst prepareStore = (store: string): void => {\n mkdirSync(store, { recursive: true })\n const manifest = join(store, 'package.json')\n if (!existsSync(manifest))\n writeFileSync(\n manifest,\n `${JSON.stringify({ name: 'loom-services', private: true }, null, 2)}\\n`,\n )\n}\n\nexport type ServiceInstall = Data.TaggedEnum<{\n Current: {}\n Installed: {}\n Updated: { readonly from: string }\n}>\nexport const ServiceInstall = Data.taggedEnum<ServiceInstall>()\n\nexport const addService = (id: string, dir: string): Effect.Effect<ServiceInstall, StoreError> =>\n Effect.gen(function* () {\n const store = storeDir(dir)\n const installed = installedVersion(id, dir)\n if (Option.contains(installed, serviceVersion)) return ServiceInstall.Current()\n yield* Effect.sync(() => prepareStore(store))\n yield* Effect.tryPromise({\n try: () =>\n run('npm', [\n 'install',\n `${servicePackage(id)}@${serviceVersion}`,\n '--prefix',\n store,\n '--omit=peer',\n '--no-audit',\n '--no-fund',\n ]),\n catch: (cause) => new StoreError({ id, cause }),\n })\n return Option.match(installed, {\n onNone: () => ServiceInstall.Installed(),\n onSome: (from) => ServiceInstall.Updated({ from }),\n })\n })\n\nexport const removeService = (id: string, dir: string): Effect.Effect<void> =>\n Effect.sync(() =>\n rmSync(join(storeDir(dir), 'node_modules', servicePackage(id)), {\n recursive: true,\n force: true,\n }),\n )\n"],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- (frontmatter_fence) @punctuation.special
2
-
3
- (field
4
- ":" @punctuation.delimiter)
5
-
6
- ((field
7
- key: (key) @_key
8
- value: (value) @markup.heading)
9
- (#match? @_key "^Part"))
10
-
11
- ((field
12
- key: (key) @_key
13
- value: (value) @markup.heading)
14
- (#match? @_key "^Chapter"))
15
-
16
- ((field
17
- key: (key) @_key
18
- value: (value) @string.special.path)
19
- (#eq? @_key "Package"))
20
-
21
- ((field
22
- key: (key) @_key
23
- value: (value) @type)
24
- (#eq? @_key "Language"))
25
-
26
- ((field
27
- key: (key) @_key
28
- value: (value) @string)
29
- (#not-match? @_key "^Part")
30
- (#not-match? @_key "^Chapter")
31
- (#not-eq? @_key "Package")
32
- (#not-eq? @_key "Language"))
33
-
34
- (field
35
- key: (key) @variable.other.member)
36
-
37
- ((heading
38
- (heading_marker) @_marker) @markup.heading.1
39
- (#eq? @_marker "# "))
40
-
41
- ((heading
42
- (heading_marker) @_marker) @markup.heading.2
43
- (#eq? @_marker "## "))
44
-
45
- ((heading
46
- (heading_marker) @_marker) @markup.heading.3
47
- (#eq? @_marker "### "))
48
-
49
- ((heading
50
- (heading_marker) @_marker) @markup.heading.4
51
- (#eq? @_marker "#### "))
52
-
53
- ((heading
54
- (heading_marker) @_marker) @markup.heading.5
55
- (#eq? @_marker "##### "))
56
-
57
- ((heading
58
- (heading_marker) @_marker) @markup.heading.6
59
- (#eq? @_marker "###### "))
60
-
61
- (specifier
62
- [
63
- "{"
64
- "}"
65
- ] @punctuation.bracket)
66
-
67
- (specifier
68
- label: (label) @type)
69
-
70
- ((specifier
71
- label: (label) @keyword.directive)
72
- (#any-of? @keyword.directive "Tangle" "tangle" "TOC" "toc"))
73
-
74
- (sink
75
- [
76
- "["
77
- "]"
78
- ] @punctuation.bracket)
79
-
80
- (sink
81
- file: (file) @string.special.path)
82
-
83
- (arrow) @operator
84
-
85
- (tilde) @operator
86
-
87
- (anchor
88
- (anchor_open) @punctuation.special
89
- "]" @punctuation.special)
90
-
91
- (anchor
92
- name: (name) @label)
93
-
94
- (anchor
95
- target: (target) @string.special.path)
96
-
97
- (warp
98
- [
99
- "{{"
100
- "}}"
101
- ] @punctuation.special)
102
-
103
- (warp
104
- name: (identifier) @variable)
105
-
106
- (warp
107
- ":" @punctuation.delimiter)
108
-
109
- (warp
110
- annotation: (annotation) @type)
111
-
112
- (warp
113
- "=" @operator)
114
-
115
- (warp
116
- default: (default) @string)
117
-
118
- (note) @comment
119
-
120
- (note_marker) @comment.note
@@ -1,413 +0,0 @@
1
- ((preamble) @injection.content
2
- (#set! injection.language "markdown"))
3
-
4
- ((prose) @injection.content
5
- (#set! injection.language "markdown"))
6
-
7
- ((toc) @injection.content
8
- (#set! injection.language "markdown")
9
- (#set! injection.include-children))
10
-
11
- (section
12
- (heading
13
- specifier: (specifier
14
- label: (label) @injection.language))
15
- (code) @injection.content
16
- (#not-match? @injection.language "^(Tangle|tangle|TOC|toc|Prose|prose)$")
17
- (#not-match? @injection.language "^(TypeScript|JavaScript|JSON|YAML|TOML|Markdown|CSS|HTML|Dockerfile|Rust|Python|Go|Lua|C|Bash)$"))
18
-
19
- ((section
20
- (heading
21
- specifier: (specifier
22
- label: (label) @_language))
23
- (code) @injection.content)
24
- (#eq? @_language "TypeScript")
25
- (#set! injection.language "typescript"))
26
-
27
- ((section
28
- (heading
29
- specifier: (specifier
30
- label: (label) @_language))
31
- (code) @injection.content)
32
- (#eq? @_language "JavaScript")
33
- (#set! injection.language "javascript"))
34
-
35
- ((section
36
- (heading
37
- specifier: (specifier
38
- label: (label) @_language))
39
- (code) @injection.content)
40
- (#eq? @_language "JSON")
41
- (#set! injection.language "json"))
42
-
43
- ((section
44
- (heading
45
- specifier: (specifier
46
- label: (label) @_language))
47
- (code) @injection.content)
48
- (#eq? @_language "YAML")
49
- (#set! injection.language "yaml"))
50
-
51
- ((section
52
- (heading
53
- specifier: (specifier
54
- label: (label) @_language))
55
- (code) @injection.content)
56
- (#eq? @_language "TOML")
57
- (#set! injection.language "toml"))
58
-
59
- ((section
60
- (heading
61
- specifier: (specifier
62
- label: (label) @_language))
63
- (code) @injection.content)
64
- (#eq? @_language "Markdown")
65
- (#set! injection.language "markdown"))
66
-
67
- ((section
68
- (heading
69
- specifier: (specifier
70
- label: (label) @_language))
71
- (code) @injection.content)
72
- (#eq? @_language "CSS")
73
- (#set! injection.language "css"))
74
-
75
- ((section
76
- (heading
77
- specifier: (specifier
78
- label: (label) @_language))
79
- (code) @injection.content)
80
- (#eq? @_language "HTML")
81
- (#set! injection.language "html"))
82
-
83
- ((section
84
- (heading
85
- specifier: (specifier
86
- label: (label) @_language))
87
- (code) @injection.content)
88
- (#eq? @_language "Dockerfile")
89
- (#set! injection.language "dockerfile"))
90
-
91
- ((section
92
- (heading
93
- specifier: (specifier
94
- label: (label) @_language))
95
- (code) @injection.content)
96
- (#eq? @_language "Rust")
97
- (#set! injection.language "rust"))
98
-
99
- ((section
100
- (heading
101
- specifier: (specifier
102
- label: (label) @_language))
103
- (code) @injection.content)
104
- (#eq? @_language "Python")
105
- (#set! injection.language "python"))
106
-
107
- ((section
108
- (heading
109
- specifier: (specifier
110
- label: (label) @_language))
111
- (code) @injection.content)
112
- (#eq? @_language "Go")
113
- (#set! injection.language "go"))
114
-
115
- ((section
116
- (heading
117
- specifier: (specifier
118
- label: (label) @_language))
119
- (code) @injection.content)
120
- (#eq? @_language "Lua")
121
- (#set! injection.language "lua"))
122
-
123
- ((section
124
- (heading
125
- specifier: (specifier
126
- label: (label) @_language))
127
- (code) @injection.content)
128
- (#eq? @_language "C")
129
- (#set! injection.language "c"))
130
-
131
- ((section
132
- (heading
133
- specifier: (specifier
134
- label: (label) @_language))
135
- (code) @injection.content)
136
- (#eq? @_language "Bash")
137
- (#set! injection.language "bash"))
138
-
139
- (document
140
- (frontmatter
141
- (field
142
- key: (key) @_key
143
- value: (value) @injection.language))
144
- (section
145
- (heading
146
- !specifier
147
- !sink)
148
- (code) @injection.content)
149
- (#eq? @_key "Language")
150
- (#not-match? @injection.language "^(Prose|prose)$")
151
- (#not-match? @injection.language "^(TypeScript|JavaScript|JSON|YAML|TOML|Markdown|CSS|HTML|Dockerfile|Rust|Python|Go|Lua|C|Bash)$"))
152
-
153
- ((document
154
- (frontmatter
155
- (field
156
- key: (key) @_key
157
- value: (value) @_language))
158
- (section
159
- (heading
160
- !specifier
161
- !sink)
162
- (code) @injection.content))
163
- (#eq? @_key "Language")
164
- (#eq? @_language "TypeScript")
165
- (#set! injection.language "typescript"))
166
-
167
- ((document
168
- (frontmatter
169
- (field
170
- key: (key) @_key
171
- value: (value) @_language))
172
- (section
173
- (heading
174
- !specifier
175
- !sink)
176
- (code) @injection.content))
177
- (#eq? @_key "Language")
178
- (#eq? @_language "JavaScript")
179
- (#set! injection.language "javascript"))
180
-
181
- ((document
182
- (frontmatter
183
- (field
184
- key: (key) @_key
185
- value: (value) @_language))
186
- (section
187
- (heading
188
- !specifier
189
- !sink)
190
- (code) @injection.content))
191
- (#eq? @_key "Language")
192
- (#eq? @_language "JSON")
193
- (#set! injection.language "json"))
194
-
195
- ((document
196
- (frontmatter
197
- (field
198
- key: (key) @_key
199
- value: (value) @_language))
200
- (section
201
- (heading
202
- !specifier
203
- !sink)
204
- (code) @injection.content))
205
- (#eq? @_key "Language")
206
- (#eq? @_language "YAML")
207
- (#set! injection.language "yaml"))
208
-
209
- ((document
210
- (frontmatter
211
- (field
212
- key: (key) @_key
213
- value: (value) @_language))
214
- (section
215
- (heading
216
- !specifier
217
- !sink)
218
- (code) @injection.content))
219
- (#eq? @_key "Language")
220
- (#eq? @_language "TOML")
221
- (#set! injection.language "toml"))
222
-
223
- ((document
224
- (frontmatter
225
- (field
226
- key: (key) @_key
227
- value: (value) @_language))
228
- (section
229
- (heading
230
- !specifier
231
- !sink)
232
- (code) @injection.content))
233
- (#eq? @_key "Language")
234
- (#eq? @_language "Markdown")
235
- (#set! injection.language "markdown"))
236
-
237
- ((document
238
- (frontmatter
239
- (field
240
- key: (key) @_key
241
- value: (value) @_language))
242
- (section
243
- (heading
244
- !specifier
245
- !sink)
246
- (code) @injection.content))
247
- (#eq? @_key "Language")
248
- (#eq? @_language "CSS")
249
- (#set! injection.language "css"))
250
-
251
- ((document
252
- (frontmatter
253
- (field
254
- key: (key) @_key
255
- value: (value) @_language))
256
- (section
257
- (heading
258
- !specifier
259
- !sink)
260
- (code) @injection.content))
261
- (#eq? @_key "Language")
262
- (#eq? @_language "HTML")
263
- (#set! injection.language "html"))
264
-
265
- ((document
266
- (frontmatter
267
- (field
268
- key: (key) @_key
269
- value: (value) @_language))
270
- (section
271
- (heading
272
- !specifier
273
- !sink)
274
- (code) @injection.content))
275
- (#eq? @_key "Language")
276
- (#eq? @_language "Dockerfile")
277
- (#set! injection.language "dockerfile"))
278
-
279
- ((document
280
- (frontmatter
281
- (field
282
- key: (key) @_key
283
- value: (value) @_language))
284
- (section
285
- (heading
286
- !specifier
287
- !sink)
288
- (code) @injection.content))
289
- (#eq? @_key "Language")
290
- (#eq? @_language "Rust")
291
- (#set! injection.language "rust"))
292
-
293
- ((document
294
- (frontmatter
295
- (field
296
- key: (key) @_key
297
- value: (value) @_language))
298
- (section
299
- (heading
300
- !specifier
301
- !sink)
302
- (code) @injection.content))
303
- (#eq? @_key "Language")
304
- (#eq? @_language "Python")
305
- (#set! injection.language "python"))
306
-
307
- ((document
308
- (frontmatter
309
- (field
310
- key: (key) @_key
311
- value: (value) @_language))
312
- (section
313
- (heading
314
- !specifier
315
- !sink)
316
- (code) @injection.content))
317
- (#eq? @_key "Language")
318
- (#eq? @_language "Go")
319
- (#set! injection.language "go"))
320
-
321
- ((document
322
- (frontmatter
323
- (field
324
- key: (key) @_key
325
- value: (value) @_language))
326
- (section
327
- (heading
328
- !specifier
329
- !sink)
330
- (code) @injection.content))
331
- (#eq? @_key "Language")
332
- (#eq? @_language "Lua")
333
- (#set! injection.language "lua"))
334
-
335
- ((document
336
- (frontmatter
337
- (field
338
- key: (key) @_key
339
- value: (value) @_language))
340
- (section
341
- (heading
342
- !specifier
343
- !sink)
344
- (code) @injection.content))
345
- (#eq? @_key "Language")
346
- (#eq? @_language "C")
347
- (#set! injection.language "c"))
348
-
349
- ((document
350
- (frontmatter
351
- (field
352
- key: (key) @_key
353
- value: (value) @_language))
354
- (section
355
- (heading
356
- !specifier
357
- !sink)
358
- (code) @injection.content))
359
- (#eq? @_key "Language")
360
- (#eq? @_language "Bash")
361
- (#set! injection.language "bash"))
362
-
363
- (section
364
- (heading
365
- !specifier
366
- sink: (sink
367
- file: (file) @injection.filename))
368
- (code) @injection.content)
369
-
370
- (section
371
- (heading
372
- specifier: (specifier
373
- label: (label) @_tangle)
374
- sink: (sink
375
- file: (file) @injection.filename))
376
- (code) @injection.content
377
- (#any-of? @_tangle "Tangle" "tangle"))
378
-
379
- (document
380
- (frontmatter
381
- (field
382
- key: (key) @_key
383
- value: (value) @injection.filename))
384
- (section
385
- (heading
386
- specifier: (specifier
387
- label: (label) @_tangle)
388
- !sink)
389
- (code) @injection.content)
390
- (#eq? @_key "Package")
391
- (#any-of? @_tangle "Tangle" "tangle"))
392
-
393
- ((section
394
- (heading
395
- specifier: (specifier
396
- label: (label) @_language))
397
- (code) @injection.content)
398
- (#any-of? @_language "Prose" "prose")
399
- (#set! injection.language "markdown"))
400
-
401
- ((document
402
- (frontmatter
403
- (field
404
- key: (key) @_key
405
- value: (value) @_language))
406
- (section
407
- (heading
408
- !specifier
409
- !sink)
410
- (code) @injection.content))
411
- (#eq? @_key "Language")
412
- (#any-of? @_language "Prose" "prose")
413
- (#set! injection.language "markdown"))
@@ -1,120 +0,0 @@
1
- (frontmatter_fence) @punctuation.special
2
-
3
- (field
4
- ":" @punctuation.delimiter)
5
-
6
- ((field
7
- key: (key) @_key
8
- value: (value) @markup.heading)
9
- (#match? @_key "^Part"))
10
-
11
- ((field
12
- key: (key) @_key
13
- value: (value) @markup.heading)
14
- (#match? @_key "^Chapter"))
15
-
16
- ((field
17
- key: (key) @_key
18
- value: (value) @string.special.path)
19
- (#eq? @_key "Package"))
20
-
21
- ((field
22
- key: (key) @_key
23
- value: (value) @type)
24
- (#eq? @_key "Language"))
25
-
26
- ((field
27
- key: (key) @_key
28
- value: (value) @string)
29
- (#not-match? @_key "^Part")
30
- (#not-match? @_key "^Chapter")
31
- (#not-eq? @_key "Package")
32
- (#not-eq? @_key "Language"))
33
-
34
- (field
35
- key: (key) @property)
36
-
37
- ((heading
38
- (heading_marker) @_marker) @markup.heading.1
39
- (#eq? @_marker "# "))
40
-
41
- ((heading
42
- (heading_marker) @_marker) @markup.heading.2
43
- (#eq? @_marker "## "))
44
-
45
- ((heading
46
- (heading_marker) @_marker) @markup.heading.3
47
- (#eq? @_marker "### "))
48
-
49
- ((heading
50
- (heading_marker) @_marker) @markup.heading.4
51
- (#eq? @_marker "#### "))
52
-
53
- ((heading
54
- (heading_marker) @_marker) @markup.heading.5
55
- (#eq? @_marker "##### "))
56
-
57
- ((heading
58
- (heading_marker) @_marker) @markup.heading.6
59
- (#eq? @_marker "###### "))
60
-
61
- (specifier
62
- [
63
- "{"
64
- "}"
65
- ] @punctuation.bracket)
66
-
67
- (specifier
68
- label: (label) @type)
69
-
70
- ((specifier
71
- label: (label) @keyword.directive)
72
- (#any-of? @keyword.directive "Tangle" "tangle" "TOC" "toc"))
73
-
74
- (sink
75
- [
76
- "["
77
- "]"
78
- ] @punctuation.bracket)
79
-
80
- (sink
81
- file: (file) @string.special.path)
82
-
83
- (arrow) @operator
84
-
85
- (tilde) @operator
86
-
87
- (anchor
88
- (anchor_open) @punctuation.special
89
- "]" @punctuation.special)
90
-
91
- (anchor
92
- name: (name) @label)
93
-
94
- (anchor
95
- target: (target) @string.special.path)
96
-
97
- (warp
98
- [
99
- "{{"
100
- "}}"
101
- ] @punctuation.special)
102
-
103
- (warp
104
- name: (identifier) @variable)
105
-
106
- (warp
107
- ":" @punctuation.delimiter)
108
-
109
- (warp
110
- annotation: (annotation) @type)
111
-
112
- (warp
113
- "=" @operator)
114
-
115
- (warp
116
- default: (default) @string)
117
-
118
- (note) @comment
119
-
120
- (note_marker) @comment.note