summaryrefslogtreecommitdiff
path: root/localrepo/tree-sitter-20220212.1632.tar
blob: 1abce8386d6a699420365fc700526437ab1c9916 (plain)
ofshex dumpascii
0000 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 00 00 00 00 00 00 tree-sitter-20220212.1632/......
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 32 34 36 00 20 35 00 00 00 0000000.00000000000.013246..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
0220 69 74 74 65 72 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter.el........................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 33 31 36 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 35 31 00 20 30 00 00 00 0031664.00000000000.016051..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2e 65 6c 20 2d 2d 2d 20 49 6e 63 72 65 6d 65 6e 74 ;;;.tree-sitter.el.---.Increment
0420 61 6c 20 70 61 72 73 69 6e 67 20 73 79 73 74 65 6d 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 al.parsing.system.-*-.lexical-bi
0440 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 0a 3b 3b 20 nding:.t;.coding:.utf-8.-*-..;;.
0460 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 31 20 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e Copyright.(C).2021..Tu...n-Anh.N
0480 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 54 75 e1 ba a5 6e 2d 41 6e 68 guy...n.;;.;;.Author:.Tu...n-Anh
04a0 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a .Nguy...n.<ubolonton@gmail.com>.
04c0 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 61 6e 67 75 61 67 65 73 20 74 6f 6f 6c 73 20 70 61 72 ;;.Keywords:.languages.tools.par
04e0 73 65 72 73 20 74 72 65 65 2d 73 69 74 74 65 72 0a 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 sers.tree-sitter.;;.Homepage:.ht
0500 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 2d 74 72 65 65 2d 73 69 74 74 tps://github.com/emacs-tree-sitt
0520 65 72 2f 65 6c 69 73 70 2d 74 72 65 65 2d 73 69 74 74 65 72 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a er/elisp-tree-sitter.;;.Version:
0540 20 30 2e 31 38 2e 30 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 .0.18.0.;;.Package-Requires:.((e
0560 6d 61 63 73 20 22 32 35 2e 31 22 29 20 28 74 73 63 20 22 30 2e 31 38 2e 30 22 29 29 0a 3b 3b 20 macs."25.1").(tsc."0.18.0")).;;.
0580 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 4d 49 54 0a 0a 3b 3b SPDX-License-Identifier:.MIT..;;
05a0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 62 61 ;.Commentary:..;;.This.is.the.ba
05c0 73 65 20 66 72 61 6d 65 77 6f 72 6b 20 6f 66 20 74 68 65 20 45 6d 61 63 73 20 62 69 6e 64 69 6e se.framework.of.the.Emacs.bindin
05e0 67 20 66 6f 72 20 54 72 65 65 2d 73 69 74 74 65 72 2c 20 61 6e 0a 3b 3b 20 69 6e 63 72 65 6d 65 g.for.Tree-sitter,.an.;;.increme
0600 6e 74 61 6c 20 70 61 72 73 69 6e 67 20 73 79 73 74 65 6d 2e 20 49 74 20 69 6e 63 6c 75 64 65 73 ntal.parsing.system..It.includes
0620 20 61 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 61 0a 3b 3b .a.minor.mode.that.provides.a.;;
0640 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 73 79 6e 74 61 78 20 74 72 65 65 20 74 68 61 74 20 69 .buffer-local.syntax.tree.that.i
0660 73 20 75 70 64 61 74 65 64 20 6f 6e 20 65 76 65 72 79 20 74 65 78 74 20 63 68 61 6e 67 65 2e 20 s.updated.on.every.text.change..
0680 54 68 69 73 20 6d 69 6e 6f 72 0a 3b 3b 20 6d 6f 64 65 20 69 73 20 74 68 65 20 62 61 73 65 20 66 This.minor.;;.mode.is.the.base.f
06a0 6f 72 20 6f 74 68 65 72 20 6c 69 62 72 61 72 69 65 73 20 74 6f 20 62 75 69 6c 64 20 6f 6e 2e 20 or.other.libraries.to.build.on..
06c0 41 6e 20 65 78 61 6d 70 6c 65 20 69 73 20 74 68 65 20 69 6e 63 6c 75 64 65 64 0a 3b 3b 20 63 6f An.example.is.the.included.;;.co
06e0 64 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6d 69 6e 6f 72 20 6d 6f 64 65 2e 0a 0a 3b 3b 3b de-highlighting.minor.mode...;;;
0700 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 74 73 63 29 0a 28 72 65 71 75 69 72 65 20 .Code:..(require.'tsc).(require.
0720 27 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 'tree-sitter-load)..(defgroup.tr
0740 65 65 2d 73 69 74 74 65 72 20 6e 69 6c 0a 20 20 22 49 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 ee-sitter.nil..."Incremental.par
0760 73 69 6e 67 20 73 79 73 74 65 6d 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 61 6e 67 75 61 67 65 sing.system."...:group.'language
0780 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 s)..(defcustom.tree-sitter-after
07a0 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f -change-functions.nil..."Functio
07c0 6e 73 20 74 6f 20 63 61 6c 6c 20 65 61 63 68 20 74 69 6d 65 20 60 74 72 65 65 2d 73 69 74 74 65 ns.to.call.each.time.`tree-sitte
07e0 72 2d 74 72 65 65 27 20 69 73 20 75 70 64 61 74 65 64 2e 0a 45 61 63 68 20 66 75 6e 63 74 69 6f r-tree'.is.updated..Each.functio
0800 6e 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 61 n.will.be.called.with.a.single.a
0820 72 67 75 6d 65 6e 74 3a 20 74 68 65 20 4f 4c 44 2d 54 52 45 45 2e 20 54 68 69 73 20 61 72 67 75 rgument:.the.OLD-TREE..This.argu
0840 6d 65 6e 74 0a 77 69 6c 6c 20 62 65 20 6e 69 6c 20 77 68 65 6e 20 74 68 65 20 62 75 66 66 65 72 ment.will.be.nil.when.the.buffer
0860 20 69 73 20 70 61 72 73 65 64 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 2e 0a 0a .is.parsed.for.the.first.time...
0880 46 6f 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6c 6f 67 69 63 20 74 68 61 74 20 73 68 For.initialization.logic.that.sh
08a0 6f 75 6c 64 20 62 65 20 72 75 6e 20 6f 6e 6c 79 20 6f 6e 63 65 2c 20 75 73 65 0a 60 74 72 65 65 ould.be.run.only.once,.use.`tree
08c0 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 66 69 72 73 74 2d 70 61 72 73 65 2d 68 6f 6f 6b 27 20 -sitter-after-first-parse-hook'.
08e0 69 6e 73 74 65 61 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 instead."...:type.'hook...:group
0900 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d .'tree-sitter)..(defcustom.tree-
0920 73 69 74 74 65 72 2d 61 66 74 65 72 2d 66 69 72 73 74 2d 70 61 72 73 65 2d 68 6f 6f 6b 20 6e 69 sitter-after-first-parse-hook.ni
0940 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 61 66 74 65 72 20 74 68 65 l..."Functions.to.call.after.the
0960 20 62 75 66 66 65 72 20 69 73 20 70 61 72 73 65 64 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 .buffer.is.parsed.for.the.first.
0980 74 69 6d 65 2e 0a 54 68 69 73 20 68 6f 6f 6b 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 66 time..This.hook.should.be.used.f
09a0 6f 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6c 6f 67 69 63 20 74 68 61 74 20 72 65 71 or.initialization.logic.that.req
09c0 75 69 72 65 73 20 69 6e 73 70 65 63 74 69 6e 67 20 74 68 65 0a 73 79 6e 74 61 78 20 74 72 65 65 uires.inspecting.the.syntax.tree
09e0 2e 20 49 74 20 69 73 20 72 75 6e 20 61 66 74 65 72 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d ..It.is.run.after.`tree-sitter-m
0a00 6f 64 65 2d 68 6f 6f 6b 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f ode-hook'."...:type.'hook...:gro
0a20 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 up.'tree-sitter)..(defcustom.tre
0a40 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 6f 6e 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 46 75 e-sitter-after-on-hook.nil..."Fu
0a60 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 61 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20 60 nctions.to.call.after.enabling.`
0a80 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 2e 0a 55 73 65 20 74 68 69 73 20 74 6f 20 65 tree-sitter-mode'..Use.this.to.e
0aa0 6e 61 62 6c 65 20 6f 74 68 65 72 20 6d 69 6e 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 20 64 65 70 nable.other.minor.modes.that.dep
0ac0 65 6e 64 73 20 6f 6e 20 74 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 2e 22 0a 20 20 3a 74 79 70 ends.on.the.syntax.tree."...:typ
0ae0 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a e.'hook...:group.'tree-sitter)..
0b00 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 61 6a 6f 72 2d 6d 6f 64 (defcustom.tree-sitter-major-mod
0b20 65 2d 6c 61 6e 67 75 61 67 65 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 74 68 e-language-alist.nil..."Alist.th
0b40 61 74 20 6d 61 70 73 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 74 72 65 65 2d 73 69 74 74 at.maps.major.modes.to.tree-sitt
0b60 65 72 20 6c 61 6e 67 75 61 67 65 20 6e 61 6d 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 er.language.names."...:group.'tr
0b80 65 65 2d 73 69 74 74 65 72 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 2d 74 ee-sitter...:type.'(alist.:key-t
0ba0 79 70 65 20 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 61 6c 75 ype.symbol.................:valu
0bc0 65 2d 74 79 70 65 20 73 79 6d 62 6f 6c 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 74 e-type.symbol))..(defvar-local.t
0be0 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d 73 69 74 74 ree-sitter-tree.nil..."Tree-sitt
0c00 65 72 20 73 79 6e 74 61 78 20 74 72 65 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c er.syntax.tree.")..(defvar-local
0c20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d .tree-sitter-parser.nil..."Tree-
0c40 73 69 74 74 65 72 20 70 61 72 73 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 sitter.parser.")..(defvar-local.
0c60 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 20 6e 69 6c 0a 20 20 22 54 72 65 65 tree-sitter-language.nil..."Tree
0c80 2d 73 69 74 74 65 72 20 6c 61 6e 67 75 61 67 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 -sitter.language.")..(defvar-loc
0ca0 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 74 65 78 74 2d 62 65 66 6f 72 65 2d 63 68 61 6e al.tree-sitter--text-before-chan
0cc0 67 65 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 ge.nil)..(defvar-local.tree-sitt
0ce0 65 72 2d 2d 62 65 67 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 6e 69 6c 29 0a 0a 28 64 65 66 er--beg-before-change.nil)..(def
0d00 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 28 62 un.tree-sitter--before-change.(b
0d20 65 67 20 6f 6c 64 2d 65 6e 64 29 0a 20 20 22 55 70 64 61 74 65 20 72 65 6c 65 76 61 6e 74 20 65 eg.old-end)..."Update.relevant.e
0d40 64 69 74 69 6e 67 20 73 74 61 74 65 73 2e 20 49 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 60 62 65 66 diting.states..Installed.on.`bef
0d60 6f 72 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 42 45 47 20 61 6e 64 20 4f ore-change-functions'..BEG.and.O
0d80 4c 44 2d 45 4e 44 20 61 72 65 20 74 68 65 20 62 65 67 69 6e 20 61 6e 64 20 65 6e 64 20 70 6f 73 LD-END.are.the.begin.and.end.pos
0da0 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 74 65 78 74 20 74 6f 20 62 65 20 63 68 61 6e 67 65 64 itions.of.the.text.to.be.changed
0dc0 2e 22 0a 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 67 2d 62 65 66 6f ."...(setq.tree-sitter--beg-befo
0de0 72 65 2d 63 68 61 6e 67 65 20 62 65 67 29 0a 20 20 28 74 73 63 2d 2d 77 69 74 68 6f 75 74 2d 72 re-change.beg)...(tsc--without-r
0e00 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 46 61 6c 6c 62 61 63 6b estriction.....;;.TODO:.Fallback
0e20 20 74 6f 20 61 20 66 75 6c 6c 20 70 61 72 73 65 20 69 66 20 74 68 69 73 20 72 65 67 69 6f 6e 20 .to.a.full.parse.if.this.region.
0e40 69 73 20 74 6f 6f 20 62 69 67 2e 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 is.too.big......(setq.tree-sitte
0e60 72 2d 2d 74 65 78 74 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 r--text-before-change...........
0e80 28 77 68 65 6e 20 28 3e 20 6f 6c 64 2d 65 6e 64 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 (when.(>.old-end.beg)...........
0ea0 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 ..(buffer-substring-no-propertie
0ec0 73 20 62 65 67 20 6f 6c 64 2d 65 6e 64 29 29 29 29 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 48 6f s.beg.old-end)))))..;;;.TODO:.Ho
0ee0 77 20 64 6f 20 77 65 20 62 61 74 63 68 20 2a 61 66 74 65 72 2a 20 68 6f 6f 6b 73 20 74 6f 20 72 w.do.we.batch.*after*.hooks.to.r
0f00 65 2d 70 61 72 73 65 20 6f 6e 6c 79 20 6f 6e 63 65 3f 20 4d 61 79 62 65 20 75 73 69 6e 67 0a 3b e-parse.only.once?.Maybe.using.;
0f20 3b 3b 20 60 72 75 6e 2d 77 69 74 68 2d 69 64 6c 65 2d 74 69 6d 65 72 27 20 77 69 74 68 20 30 2d ;;.`run-with-idle-timer'.with.0-
0f40 73 65 63 6f 6e 64 20 74 69 6d 65 6f 75 74 3f 0a 3b 3b 3b 0a 3b 3b 3b 20 58 58 58 3a 20 46 69 67 second.timeout?.;;;.;;;.XXX:.Fig
0f60 75 72 65 20 6f 75 74 20 68 6f 77 20 74 6f 20 64 65 74 65 63 74 20 77 68 65 74 68 65 72 20 69 74 ure.out.how.to.detect.whether.it
0f80 20 77 61 73 20 61 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 6f 6e 6c 79 20 63 68 61 6e 67 65 .was.a.text-property-only.change
0fa0 2e 0a 3b 3b 3b 20 54 68 65 72 65 27 73 20 6e 6f 20 70 6f 69 6e 74 20 69 6e 20 72 65 70 61 72 73 ..;;;.There's.no.point.in.repars
0fc0 69 6e 67 20 69 6e 20 74 68 65 73 65 20 73 69 74 75 61 74 69 6f 6e 73 2e 0a 28 64 65 66 75 6e 20 ing.in.these.situations..(defun.
0fe0 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 28 62 65 67 20 6e tree-sitter--after-change.(beg.n
1000 65 77 2d 65 6e 64 20 6f 6c 64 2d 6c 65 6e 29 0a 20 20 22 55 70 64 61 74 65 20 72 65 6c 65 76 61 ew-end.old-len)..."Update.releva
1020 6e 74 20 65 64 69 74 69 6e 67 20 73 74 61 74 65 73 20 61 6e 64 20 72 65 70 61 72 73 65 20 74 68 nt.editing.states.and.reparse.th
1040 65 20 62 75 66 66 65 72 20 28 69 6e 63 72 65 6d 65 6e 74 61 6c 6c 79 29 2e 0a 49 6e 73 74 61 6c e.buffer.(incrementally)..Instal
1060 6c 65 64 20 6f 6e 20 60 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e led.on.`after-change-functions'.
1080 0a 0a 42 45 47 20 69 73 20 74 68 65 20 62 65 67 69 6e 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 ..BEG.is.the.begin.position.of.t
10a0 68 65 20 63 68 61 6e 67 65 2e 0a 4e 45 57 2d 45 4e 44 20 69 73 20 74 68 65 20 65 6e 64 20 70 6f he.change..NEW-END.is.the.end.po
10c0 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 64 20 74 65 78 74 2e 0a 4f 4c 44 2d sition.of.the.changed.text..OLD-
10e0 4c 45 4e 20 69 73 20 74 68 65 20 63 68 61 72 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6f 6c LEN.is.the.char.length.of.the.ol
1100 64 20 74 65 78 74 2e 22 0a 20 20 28 77 68 65 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 d.text."...(when.tree-sitter-tre
1120 65 0a 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 3a 62 79 74 65 20 28 70 6f 73 69 74 69 6f 6e 2d e.....(let.((beg:byte.(position-
1140 62 79 74 65 73 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 65 6e 64 3a 62 bytes.beg))...........(new-end:b
1160 79 74 65 20 28 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 6e 65 77 2d 65 6e 64 29 29 0a 20 20 yte.(position-bytes.new-end))...
1180 20 20 20 20 20 20 20 20 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 20 62 ........old-end:byte...........b
11a0 65 67 3a 70 6f 69 6e 74 20 6f 6c 64 2d 65 6e 64 3a 70 6f 69 6e 74 20 6e 65 77 2d 65 6e 64 3a 70 eg:point.old-end:point.new-end:p
11c0 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 74 73 63 2d 2d 73 61 76 65 2d 63 6f 6e 74 65 78 74 0a 20 oint).......(tsc--save-context..
11e0 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 3a 70 6f 69 6e 74 20 28 74 73 63 2d 2d 70 6f 69 .......(setq.beg:point.(tsc--poi
1200 6e 74 2d 66 72 6f 6d 2d 70 6f 73 69 74 69 6f 6e 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 nt-from-position.beg)...........
1220 20 20 20 20 6e 65 77 2d 65 6e 64 3a 70 6f 69 6e 74 20 28 74 73 63 2d 2d 70 6f 69 6e 74 2d 66 72 ....new-end:point.(tsc--point-fr
1240 6f 6d 2d 70 6f 73 69 74 69 6f 6e 20 6e 65 77 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 om-position.new-end))).......;;.
1260 43 6f 6d 70 75 74 65 20 74 68 65 20 6f 6c 64 20 74 65 78 74 27 73 20 65 6e 64 20 62 79 74 65 20 Compute.the.old.text's.end.byte.
1280 70 6f 73 69 74 69 6f 6e 2c 20 6c 69 6e 65 20 6e 75 6d 62 65 72 2c 20 62 79 74 65 20 63 6f 6c 75 position,.line.number,.byte.colu
12a0 6d 6e 2e 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 3b 3b 20 54 72 65 65 2d 73 69 74 74 65 mn........;;.......;;.Tree-sitte
12c0 72 20 77 6f 72 6b 73 20 77 69 74 68 20 62 79 74 65 20 70 6f 73 69 74 69 6f 6e 73 2c 20 6c 69 6e r.works.with.byte.positions,.lin
12e0 65 20 6e 75 6d 62 65 72 73 2c 20 62 79 74 65 20 63 6f 6c 75 6d 6e 73 2e 0a 20 20 20 20 20 20 3b e.numbers,.byte.columns........;
1300 3b 20 45 6d 61 63 73 20 70 72 69 6d 61 72 69 6c 79 20 77 6f 72 6b 73 20 77 69 74 68 20 63 68 61 ;.Emacs.primarily.works.with.cha
1320 72 61 63 74 65 72 20 70 6f 73 69 74 69 6f 6e 73 2e 20 43 6f 6e 76 65 72 74 69 6e 67 20 74 68 65 racter.positions..Converting.the
1340 20 6c 61 74 74 65 72 0a 20 20 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 66 6f 72 6d 65 72 2c 20 .latter.......;;.to.the.former,.
1360 66 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6f 6c 64 20 74 65 78 74 2c 20 72 65 71 for.the.end.of.the.old.text,.req
1380 75 69 72 65 73 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 0a 20 20 20 20 20 20 3b 3b 20 61 63 uires.looking.at.the.......;;.ac
13a0 74 75 61 6c 20 6f 6c 64 20 74 65 78 74 27 73 20 63 6f 6e 74 65 6e 74 2e 20 54 72 65 65 2d 73 69 tual.old.text's.content..Tree-si
13c0 74 74 65 72 20 69 74 73 65 6c 66 20 63 61 6e 6e 6f 74 20 64 6f 20 74 68 61 74 2c 20 62 65 63 61 tter.itself.cannot.do.that,.beca
13e0 75 73 65 0a 20 20 20 20 20 20 3b 3b 20 69 74 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 6b use.......;;.it.is.designed.to.k
1400 65 65 70 20 74 72 61 63 6b 20 6f 66 20 6f 6e 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 73 2c 20 6e eep.track.of.only.the.numbers,.n
1420 6f 74 20 61 20 6d 69 72 72 6f 72 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 3b 3b 20 62 75 66 66 ot.a.mirror.of.the.......;;.buff
1440 65 72 27 73 20 74 65 78 74 2e 20 57 69 74 68 6f 75 74 20 72 65 2d 64 65 73 69 67 6e 69 6e 67 20 er's.text..Without.re-designing.
1460 45 6d 61 63 73 27 73 20 63 68 61 6e 67 65 20 74 72 61 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 Emacs's.change.tracking.mechanis
1480 6d 2c 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 73 74 6f 72 65 20 74 68 65 20 6f 6c 64 20 74 65 78 m,.......;;.we.store.the.old.tex
14a0 74 20 74 68 72 6f 75 67 68 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 63 t.through.`tree-sitter--before-c
14c0 68 61 6e 67 65 27 2c 20 61 6e 64 20 69 6e 73 70 65 63 74 0a 20 20 20 20 20 20 3b 3b 20 69 74 20 hange',.and.inspect.......;;.it.
14e0 68 65 72 65 2e 20 54 4f 44 4f 20 58 58 58 20 46 49 58 3a 20 49 6d 70 72 6f 76 65 20 63 68 61 6e here..TODO.XXX.FIX:.Improve.chan
1500 67 65 20 74 72 61 63 6b 69 6e 67 20 69 6e 20 45 6d 61 63 73 2e 0a 20 20 20 20 20 20 28 69 66 20 ge.tracking.in.Emacs........(if.
1520 28 3d 20 6f 6c 64 2d 6c 65 6e 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 6c (=.old-len.0)...........(setq.ol
1540 64 2d 65 6e 64 3a 62 79 74 65 20 62 65 67 3a 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 d-end:byte.beg:byte.............
1560 20 20 20 20 6f 6c 64 2d 65 6e 64 3a 70 6f 69 6e 74 20 62 65 67 3a 70 6f 69 6e 74 29 0a 20 20 20 ....old-end:point.beg:point)....
1580 20 20 20 20 20 28 6c 65 74 20 28 28 6f 6c 64 2d 74 65 78 74 20 74 72 65 65 2d 73 69 74 74 65 72 .....(let.((old-text.tree-sitter
15a0 2d 2d 74 65 78 74 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 --text-before-change)...........
15c0 20 20 20 20 28 72 65 6c 2d 62 65 67 20 28 31 2b 20 28 2d 20 62 65 67 20 74 72 65 65 2d 73 69 74 ....(rel-beg.(1+.(-.beg.tree-sit
15e0 74 65 72 2d 2d 62 65 67 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 29 29 29 29 0a 20 20 20 20 20 ter--beg-before-change))))......
1600 20 20 20 20 20 3b 3b 20 46 49 58 3a 20 44 6f 6e 27 74 20 61 73 73 75 6d 65 20 62 65 66 6f 72 65 .....;;.FIX:.Don't.assume.before
1620 2d 63 68 61 6e 67 65 27 73 20 62 65 67 20 61 6e 64 20 61 66 74 65 72 2d 63 68 61 6e 67 65 27 73 -change's.beg.and.after-change's
1640 20 62 65 67 20 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 73 61 6d 65 2e 0a .beg.are...........;;.the.same..
1660 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 ..........(with-temp-buffer.....
1680 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6f 6c 64 2d 74 65 78 74 29 0a 20 20 20 20 20 20 ........(insert.old-text).......
16a0 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(pcase-let*...............
16c0 20 20 28 28 72 65 6c 2d 6f 6c 64 2d 65 6e 64 20 28 2b 20 72 65 6c 2d 62 65 67 20 6f 6c 64 2d 6c ..((rel-old-end.(+.rel-beg.old-l
16e0 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 6c 64 2d 6c 65 6e 3a 62 en))..................(old-len:b
1700 79 74 65 20 28 2d 20 28 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 72 65 6c 2d 6f 6c 64 2d 65 yte.(-.(position-bytes.rel-old-e
1720 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd).............................
1740 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 72 65 6c 2d 62 65 67 29 29 29 ......(position-bytes.rel-beg)))
1760 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 62 65 67 3a 6c 69 6e 75 6d 20 ..................(`(,beg:linum.
1780 2e 20 2c 62 65 67 3a 62 79 74 65 63 6f 6c 29 20 62 65 67 3a 70 6f 69 6e 74 29 0a 20 20 20 20 20 ..,beg:bytecol).beg:point)......
17a0 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6c 2d 62 65 67 3a 6c 69 6e 75 6d 20 28 6c 69 6e 65 ............(rel-beg:linum.(line
17c0 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 72 65 6c 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 -number-at-pos.rel-beg))........
17e0 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 72 65 6c 2d 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 ..........(`(,rel-old-end:linum.
1800 2e 20 2c 72 65 6c 2d 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 63 6f 6c 29 0a 20 20 20 20 20 20 20 20 ..,rel-old-end:bytecol).........
1820 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 2d 70 6f 69 6e 74 2d 66 72 6f 6d 2d 70 6f 73 69 74 ..........(tsc--point-from-posit
1840 69 6f 6e 20 72 65 6c 2d 6f 6c 64 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.rel-old-end))...............
1860 20 20 20 28 6f 6c 64 2d 64 69 66 66 3a 6c 69 6e 75 6d 20 28 2d 20 72 65 6c 2d 6f 6c 64 2d 65 6e ...(old-diff:linum.(-.rel-old-en
1880 64 3a 6c 69 6e 75 6d 20 72 65 6c 2d 62 65 67 3a 6c 69 6e 75 6d 29 29 0a 20 20 20 20 20 20 20 20 d:linum.rel-beg:linum)).........
18a0 20 20 20 20 20 20 20 20 20 28 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 28 2b 20 62 65 67 3a 6c .........(old-end:linum.(+.beg:l
18c0 69 6e 75 6d 20 6f 6c 64 2d 64 69 66 66 3a 6c 69 6e 75 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 inum.old-diff:linum))...........
18e0 20 20 20 20 20 20 20 28 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 63 6f 6c 20 28 69 66 20 28 3e 20 6f .......(old-end:bytecol.(if.(>.o
1900 6c 64 2d 64 69 66 66 3a 6c 69 6e 75 6d 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ld-diff:linum.0)................
1920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6c 2d 6f 6c 64 2d 65 .......................rel-old-e
1940 6e 64 3a 62 79 74 65 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd:bytecol......................
1960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 62 65 67 3a 62 79 74 65 63 6f 6c 20 6f 6c ...............(+.beg:bytecol.ol
1980 64 2d 6c 65 6e 3a 62 79 74 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 d-len:byte))))...............(se
19a0 74 71 20 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 20 28 2b 20 62 65 67 3a 62 79 74 65 20 6f 6c 64 2d tq.old-end:byte.(+.beg:byte.old-
19c0 6c 65 6e 3a 62 79 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6c len:byte).....................ol
19e0 64 2d 65 6e 64 3a 70 6f 69 6e 74 20 60 28 2c 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 2e 20 2c d-end:point.`(,old-end:linum...,
1a00 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 63 6f 6c 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 74 73 63 old-end:bytecol)))))).......(tsc
1a20 2d 65 64 69 74 2d 74 72 65 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 -edit-tree.tree-sitter-tree.....
1a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 3a 62 79 74 65 20 6f 6c 64 2d 65 6e .................beg:byte.old-en
1a60 64 3a 62 79 74 65 20 6e 65 77 2d 65 6e 64 3a 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 d:byte.new-end:byte.............
1a80 20 20 20 20 20 20 20 20 20 62 65 67 3a 70 6f 69 6e 74 20 6f 6c 64 2d 65 6e 64 3a 70 6f 69 6e 74 .........beg:point.old-end:point
1aa0 20 6e 65 77 2d 65 6e 64 3a 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 .new-end:point).......(tree-sitt
1ac0 65 72 2d 2d 64 6f 2d 70 61 72 73 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 er--do-parse))))..(defun.tree-si
1ae0 74 74 65 72 2d 2d 64 6f 2d 70 61 72 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 63 tter--do-parse.()..."Parse.the.c
1b00 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 73 79 6e urrent.buffer.and.update.the.syn
1b20 74 61 78 20 74 72 65 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 6c 64 2d 74 72 65 65 20 74 72 65 tax.tree."...(let.((old-tree.tre
1b40 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 e-sitter-tree)).....(setq.tree-s
1b60 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f itter-tree...........;;.https://
1b80 67 69 74 68 75 62 2e 63 6f 6d 2f 65 6d 61 63 73 2d 74 72 65 65 2d 73 69 74 74 65 72 2f 65 6c 69 github.com/emacs-tree-sitter/eli
1ba0 73 70 2d 74 72 65 65 2d 73 69 74 74 65 72 2f 69 73 73 75 65 73 2f 33 0a 20 20 20 20 20 20 20 20 sp-tree-sitter/issues/3.........
1bc0 20 20 28 74 73 63 2d 2d 77 69 74 68 6f 75 74 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 ..(tsc--without-restriction.....
1be0 20 20 20 20 20 20 20 20 28 74 73 63 2d 70 61 72 73 65 2d 63 68 75 6e 6b 73 20 74 72 65 65 2d 73 ........(tsc-parse-chunks.tree-s
1c00 69 74 74 65 72 2d 70 61 72 73 65 72 20 23 27 74 73 63 2d 2d 62 75 66 66 65 72 2d 69 6e 70 75 74 itter-parser.#'tsc--buffer-input
1c20 20 6f 6c 64 2d 74 72 65 65 29 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d .old-tree))).....(run-hook-with-
1c40 61 72 67 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 args.'tree-sitter-after-change-f
1c60 75 6e 63 74 69 6f 6e 73 20 6f 6c 64 2d 74 72 65 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 unctions.old-tree)))..(defun.tre
1c80 65 2d 73 69 74 74 65 72 2d 2d 73 65 74 75 70 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 60 74 72 e-sitter--setup.()..."Enable.`tr
1ca0 65 65 2d 73 69 74 74 65 72 27 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 ee-sitter'.in.the.current.buffer
1cc0 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 ."...(unless.tree-sitter-languag
1ce0 65 0a 20 20 20 20 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 e.....;;.Determine.the.language.
1d00 73 79 6d 62 6f 6c 20 62 61 73 65 64 20 6f 6e 20 60 6d 61 6a 6f 72 2d 6d 6f 64 65 27 20 2e 0a 20 symbol.based.on.`major-mode'....
1d20 20 20 20 28 6c 65 74 20 28 28 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 28 61 6c 69 73 74 2d 67 65 74 ...(let.((lang-symbol.(alist-get
1d40 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 61 6a 6f 72 2d 6d 6f .major-mode.tree-sitter-major-mo
1d60 64 65 2d 6c 61 6e 67 75 61 67 65 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 de-language-alist))).......(unle
1d80 73 73 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e ss.lang-symbol.........(error."N
1da0 6f 20 6c 61 6e 67 75 61 67 65 20 72 65 67 69 73 74 65 72 65 64 20 66 6f 72 20 6d 61 6a 6f 72 20 o.language.registered.for.major.
1dc0 6d 6f 64 65 20 60 25 73 27 22 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 73 mode.`%s'".major-mode)).......(s
1de0 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 20 28 74 72 65 65 2d 73 etq.tree-sitter-language.(tree-s
1e00 69 74 74 65 72 2d 72 65 71 75 69 72 65 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 29 29 29 29 0a 20 20 itter-require.lang-symbol))))...
1e20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 0a 20 20 20 20 28 (unless.tree-sitter-parser.....(
1e40 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 20 28 74 73 63 2d 6d 61 6b setq.tree-sitter-parser.(tsc-mak
1e60 65 2d 70 61 72 73 65 72 29 29 0a 20 20 20 20 28 74 73 63 2d 73 65 74 2d 6c 61 6e 67 75 61 67 65 e-parser)).....(tsc-set-language
1e80 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d .tree-sitter-parser.tree-sitter-
1ea0 6c 61 6e 67 75 61 67 65 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 63 language))...(add-hook.'before-c
1ec0 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 hange-functions.#'tree-sitter--b
1ee0 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 3a 61 70 70 65 6e 64 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 efore-change.:append.:local)...(
1f00 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 add-hook.'after-change-functions
1f20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 3a 61 70 .#'tree-sitter--after-change.:ap
1f40 70 65 6e 64 20 3a 6c 6f 63 61 6c 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 pend.:local))..(defun.tree-sitte
1f60 72 2d 2d 74 65 61 72 64 6f 77 6e 20 28 29 0a 20 20 22 44 69 73 61 62 6c 65 20 60 74 72 65 65 2d r--teardown.()..."Disable.`tree-
1f80 73 69 74 74 65 72 27 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a sitter'.in.the.current.buffer.".
1fa0 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e ..(remove-hook.'after-change-fun
1fc0 63 74 69 6f 6e 73 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 61 66 74 65 72 2d 63 68 61 6e ctions.#'tree-sitter--after-chan
1fe0 67 65 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 ge.:local)...(remove-hook.'befor
2000 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 e-change-functions.#'tree-sitter
2020 2d 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 73 65 74 71 20 --before-change.:local)...(setq.
2040 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 74 72 65 tree-sitter-tree.nil.........tre
2060 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 74 72 65 65 e-sitter-parser.nil.........tree
2080 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 20 6e 69 6c 29 29 0a 0a 28 64 65 66 6d 61 63 72 -sitter-language.nil))..(defmacr
20a0 6f 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 65 72 72 6f 72 2d 70 72 6f 74 65 63 74 20 28 62 6f o.tree-sitter--error-protect.(bo
20c0 64 79 2d 66 6f 72 6d 20 26 72 65 73 74 20 65 72 72 6f 72 2d 66 6f 72 6d 73 29 0a 20 20 22 45 78 dy-form.&rest.error-forms)..."Ex
20e0 65 63 75 74 65 20 42 4f 44 59 2d 46 4f 52 4d 20 77 69 74 68 20 45 52 52 4f 52 2d 46 4f 52 4d 53 ecute.BODY-FORM.with.ERROR-FORMS
2100 20 61 73 20 63 6c 65 61 6e 75 70 20 63 6f 64 65 20 74 68 61 74 20 69 73 20 65 78 65 63 75 74 65 .as.cleanup.code.that.is.execute
2120 64 20 6f 6e 20 65 72 72 6f 72 2e 0a 55 6e 6c 69 6b 65 20 60 75 6e 77 69 6e 64 2d 70 72 6f 74 65 d.on.error..Unlike.`unwind-prote
2140 63 74 27 2c 20 45 52 52 4f 52 2d 46 4f 52 4d 53 20 69 73 20 6e 6f 74 20 65 78 65 63 75 74 65 64 ct',.ERROR-FORMS.is.not.executed
2160 20 69 66 20 42 4f 44 59 2d 46 4f 52 4d 20 64 6f 65 73 20 6e 6f 74 0a 73 69 67 6e 61 6c 20 61 6e .if.BODY-FORM.does.not.signal.an
2180 20 65 72 72 6f 72 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a .error."...(declare.(indent.1)).
21a0 20 20 60 28 6c 65 74 20 28 28 65 72 72 20 74 29 29 0a 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 ..`(let.((err.t))......(unwind-p
21c0 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 2c 62 6f 64 79 2d 66 6f 72 rotect..........(prog1.,body-for
21e0 6d 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 72 72 20 6e 69 6c 29 29 0a 20 20 20 m............(setq.err.nil))....
2200 20 20 20 20 28 77 68 65 6e 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 2c 40 65 72 72 6f 72 2d 66 ....(when.err..........,@error-f
2220 6f 72 6d 73 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 orms))))..;;;###autoload.(define
2240 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 22 -minor-mode.tree-sitter-mode..."
2260 4d 69 6e 6f 72 20 6d 6f 64 65 20 74 68 61 74 20 6b 65 65 70 73 20 61 6e 20 75 70 2d 74 6f 2d 64 Minor.mode.that.keeps.an.up-to-d
2280 61 74 65 20 73 79 6e 74 61 78 20 74 72 65 65 20 75 73 69 6e 67 20 69 6e 63 72 65 6d 65 6e 74 61 ate.syntax.tree.using.incrementa
22a0 6c 20 70 61 72 73 69 6e 67 2e 22 0a 20 20 3a 69 6e 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 l.parsing."...:init-value.nil...
22c0 3a 6c 69 67 68 74 65 72 20 22 20 74 72 65 65 2d 73 69 74 74 65 72 22 0a 20 20 3a 61 66 74 65 72 :lighter.".tree-sitter"...:after
22e0 2d 68 6f 6f 6b 20 28 77 68 65 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 -hook.(when.tree-sitter-mode....
2300 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 .............(unless.tree-sitter
2320 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 -tree...................(tree-si
2340 74 74 65 72 2d 2d 64 6f 2d 70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tter--do-parse).................
2360 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d ..(run-hooks.'tree-sitter-after-
2380 66 69 72 73 74 2d 70 61 72 73 65 2d 68 6f 6f 6b 29 29 29 0a 20 20 28 69 66 20 74 72 65 65 2d 73 first-parse-hook)))...(if.tree-s
23a0 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 65 itter-mode.......(tree-sitter--e
23c0 72 72 6f 72 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 rror-protect...........(progn...
23e0 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 73 65 74 75 70 29 0a 20 ..........(tree-sitter--setup)..
2400 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 57 68 65 6e 20 74 68 65 20 64 65 70 ...........;;.TODO:.When.the.dep
2420 65 6e 64 65 6e 74 20 6d 6f 64 65 20 72 65 71 75 65 73 74 65 64 20 75 73 2c 20 62 75 74 20 74 68 endent.mode.requested.us,.but.th
2440 65 6e 20 66 61 69 6c 65 64 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 75 72 6e en.failed.to.............;;.turn
2460 20 69 74 73 65 6c 66 20 6f 6e 2c 20 77 65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 74 .itself.on,.we.should.probably.t
2480 75 72 6e 20 6f 75 72 73 65 6c 76 65 73 20 6f 66 66 20 61 73 20 77 65 6c 6c 2e 0a 20 20 20 20 20 urn.ourselves.off.as.well.......
24a0 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 74 72 65 .......(with-demoted-errors."tre
24c0 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 6f 6e 2d 68 6f 6f 6b 3a 20 25 53 22 0a 20 20 20 20 e-sitter-after-on-hook:.%S".....
24e0 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 74 72 65 65 2d 73 69 74 74 65 ..........(run-hooks.'tree-sitte
2500 72 2d 61 66 74 65 72 2d 6f 6e 2d 68 6f 6f 6b 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 r-after-on-hook))).........(setq
2520 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 .tree-sitter-mode.nil).........(
2540 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 74 65 61 72 64 6f 77 6e 29 29 0a 20 20 20 20 28 72 75 6e tree-sitter--teardown)).....(run
2560 2d 68 6f 6f 6b 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 6f 66 66 2d -hooks.'tree-sitter--before-off-
2580 68 6f 6f 6b 29 0a 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 74 65 61 72 64 6f 77 6e hook).....(tree-sitter--teardown
25a0 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 74 75 72 6e 2d )))..;;;###autoload.(defun.turn-
25c0 6f 6e 2d 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 20 28 29 0a 20 20 22 54 75 72 6e 20 6f on-tree-sitter-mode.()..."Turn.o
25e0 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 6e 20 61 20 62 75 66 66 65 72 n.`tree-sitter-mode'.in.a.buffer
2600 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 3b 3b 20 46 49 58 3a 20 49 67 6e 6f 72 65 ,.if.possible."...;;.FIX:.Ignore
2620 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 65 72 72 6f 72 73 2e 20 4c 6f 67 20 74 68 65 20 72 65 73 74 .only.known.errors..Log.the.rest
2640 2c 20 61 74 20 6c 65 61 73 74 2e 0a 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 ,.at.least....(ignore-errors....
2660 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 20 31 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 .(tree-sitter-mode.1)))..;;;###a
2680 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 67 6c 6f 62 61 6c 69 7a 65 64 2d 6d 69 6e 6f 72 utoload.(define-globalized-minor
26a0 2d 6d 6f 64 65 20 67 6c 6f 62 61 6c 2d 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 -mode.global-tree-sitter-mode...
26c0 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 20 74 75 72 6e 2d 6f 6e 2d 74 72 65 65 2d 73 69 tree-sitter-mode.turn-on-tree-si
26e0 74 74 65 72 2d 6d 6f 64 65 0a 20 20 3a 69 6e 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 3a 67 tter-mode...:init-value.nil...:g
2700 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d roup.'tree-sitter)..(defun.tree-
2720 73 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c 6c 2d 66 6f 72 6d 20 28 66 75 6e 63 29 0a 20 20 22 52 sitter--funcall-form.(func)..."R
2740 65 74 75 72 6e 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 28 66 75 6e 63 61 6c 6c 20 eturn.an.equivalent.to.(funcall.
2760 46 55 4e 43 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 20 61 20 6d 61 63 72 FUNC).that.can.be.used.in.a.macr
2780 6f 2e 0a 49 66 20 46 55 4e 43 20 69 73 20 61 20 71 75 6f 74 65 64 20 73 79 6d 62 6f 6c 2c 20 73 o..If.FUNC.is.a.quoted.symbol,.s
27a0 6b 69 70 20 74 68 65 20 60 66 75 6e 63 61 6c 6c 27 20 69 6e 64 69 72 65 63 74 69 6f 6e 2e 22 0a kip.the.`funcall'.indirection.".
27c0 20 20 28 69 66 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 ..(if.(and.(consp.func).........
27e0 20 20 20 28 6d 65 6d 71 20 28 63 61 72 20 66 75 6e 63 29 20 27 28 71 75 6f 74 65 20 66 75 6e 63 ...(memq.(car.func).'(quote.func
2800 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 64 72 tion))............(symbolp.(cadr
2820 20 66 75 6e 63 29 29 29 0a 20 20 20 20 20 20 60 28 2c 28 63 61 64 72 20 66 75 6e 63 29 29 0a 20 .func))).......`(,(cadr.func))..
2840 20 20 20 60 28 66 75 6e 63 61 6c 6c 20 2c 66 75 6e 63 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f ...`(funcall.,func)))..(defmacro
2860 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 68 61 6e 64 6c 65 2d 64 65 70 65 6e 64 65 6e 74 20 28 .tree-sitter--handle-dependent.(
2880 6d 6f 64 65 20 73 65 74 75 70 2d 66 75 6e 63 74 69 6f 6e 20 74 65 61 72 64 6f 77 6e 2d 66 75 6e mode.setup-function.teardown-fun
28a0 63 74 69 6f 6e 29 0a 20 20 22 42 75 69 6c 64 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 63 6f 64 ction)..."Build.the.block.of.cod
28c0 65 20 74 68 61 74 20 68 61 6e 64 6c 65 73 20 65 6e 61 62 6c 69 6e 67 2f 64 69 73 61 62 6c 69 6e e.that.handles.enabling/disablin
28e0 67 20 6f 66 20 61 20 64 65 70 65 6e 64 65 6e 74 20 6d 6f 64 65 2e 0a 55 73 65 20 74 68 69 73 20 g.of.a.dependent.mode..Use.this.
2900 61 73 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65 20 60 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 as.the.body.of.the.`define-minor
2920 2d 6d 6f 64 65 27 20 62 6c 6f 63 6b 20 74 68 61 74 20 64 65 66 69 6e 65 73 20 4d 4f 44 45 2e 0a -mode'.block.that.defines.MODE..
2940 0a 57 68 65 6e 20 4d 4f 44 45 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 69 74 20 61 75 74 6f 6d 61 .When.MODE.is.enabled,.it.automa
2960 74 69 63 61 6c 6c 79 20 65 6e 61 62 6c 65 73 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 tically.enables.`tree-sitter-mod
2980 65 27 2e 20 57 68 65 6e 20 4d 4f 44 45 20 69 73 0a 64 69 73 61 62 6c 65 64 2c 20 69 74 20 64 6f e'..When.MODE.is.disabled,.it.do
29a0 65 73 20 6e 6f 74 20 64 69 73 61 62 6c 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 es.not.disable.`tree-sitter-mode
29c0 27 2c 20 73 69 6e 63 65 20 74 68 65 20 6c 61 74 74 65 72 20 6d 61 79 20 68 61 76 65 20 62 65 65 ',.since.the.latter.may.have.bee
29e0 6e 0a 72 65 71 75 65 73 74 65 64 20 62 79 20 65 6e 64 20 75 73 65 72 2c 20 6f 72 20 6f 74 68 65 n.requested.by.end.user,.or.othe
2a00 72 20 64 65 70 65 6e 64 65 6e 74 20 6d 6f 64 65 73 2e 0a 0a 57 68 65 6e 20 60 74 72 65 65 2d 73 r.dependent.modes...When.`tree-s
2a20 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 73 20 64 69 73 61 62 6c 65 64 2c 20 69 74 20 61 75 74 6f itter-mode'.is.disabled,.it.auto
2a40 6d 61 74 69 63 61 6c 6c 79 20 64 69 73 61 62 6c 65 73 20 4d 4f 44 45 2c 20 77 68 69 63 68 20 77 matically.disables.MODE,.which.w
2a60 69 6c 6c 0a 6e 6f 74 20 66 75 6e 63 74 69 6f 6e 20 63 6f 72 72 65 63 74 6c 79 20 6f 74 68 65 72 ill.not.function.correctly.other
2a80 77 69 73 65 2e 20 54 68 69 73 20 68 61 70 70 65 6e 73 20 62 65 66 6f 72 65 20 60 74 72 65 65 2d wise..This.happens.before.`tree-
2aa0 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 63 6c 65 61 6e 73 0a 75 70 20 69 74 73 20 6f 77 6e 20 73 sitter-mode'.cleans.up.its.own.s
2ac0 74 61 74 65 2e 0a 0a 53 45 54 55 50 2d 46 55 4e 43 54 49 4f 4e 20 69 73 20 63 61 6c 6c 65 64 20 tate...SETUP-FUNCTION.is.called.
2ae0 77 68 65 6e 20 4d 4f 44 45 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 61 66 74 65 72 20 4d 4f 44 45 when.MODE.is.enabled,.after.MODE
2b00 20 76 61 72 69 61 62 6c 65 20 68 61 73 20 62 65 65 6e 20 73 65 74 0a 74 6f 20 74 2c 20 61 6e 64 .variable.has.been.set.to.t,.and
2b20 20 61 66 74 65 72 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 68 61 73 20 61 6c .after.`tree-sitter-mode'.has.al
2b40 72 65 61 64 79 20 62 65 65 6e 20 65 6e 61 62 6c 65 64 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 ready.been.enabled..However,.it.
2b60 6d 75 73 74 0a 6e 6f 74 20 61 73 73 75 6d 65 20 74 68 61 74 20 60 74 72 65 65 2d 73 69 74 74 65 must.not.assume.that.`tree-sitte
2b80 72 2d 74 72 65 65 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 69 6e 63 65 20 74 68 65 20 66 69 r-tree'.is.non-nil,.since.the.fi
2ba0 72 73 74 20 70 61 72 73 65 20 6d 61 79 20 6e 6f 74 0a 68 61 70 70 65 6e 20 79 65 74 2e 20 49 74 rst.parse.may.not.happen.yet..It
2bc0 20 73 68 6f 75 6c 64 20 69 6e 73 74 65 61 64 20 73 65 74 20 75 70 20 68 6f 6f 6b 73 20 74 6f 20 .should.instead.set.up.hooks.to.
2be0 68 61 6e 64 6c 65 20 70 61 72 73 65 20 65 76 65 6e 74 73 2e 0a 0a 54 45 41 52 44 4f 57 4e 2d 46 handle.parse.events...TEARDOWN-F
2c00 55 4e 43 54 49 4f 4e 20 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 4d 4f 44 45 20 69 73 20 64 UNCTION.is.called.when.MODE.is.d
2c20 69 73 61 62 6c 65 64 2c 20 61 66 74 65 72 20 4d 4f 44 45 20 76 61 72 69 61 62 6c 65 20 68 61 73 isabled,.after.MODE.variable.has
2c40 20 62 65 65 6e 0a 73 65 74 20 74 6f 20 6e 69 6c 2e 20 49 74 20 73 68 6f 75 6c 64 20 63 6c 65 61 .been.set.to.nil..It.should.clea
2c60 6e 20 75 70 20 61 6e 79 20 73 74 61 74 65 20 73 65 74 20 75 70 20 62 79 20 4d 4f 44 45 2c 20 61 n.up.any.state.set.up.by.MODE,.a
2c80 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 73 69 67 6e 61 6c 0a 61 6e 79 20 65 72 72 6f 72 2e 20 nd.should.not.signal.any.error..
2ca0 49 74 20 69 73 20 61 6c 73 6f 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 53 45 54 55 50 2d 46 55 4e It.is.also.called.when.SETUP-FUN
2cc0 43 54 49 4f 4e 20 73 69 67 6e 61 6c 73 20 61 6e 20 65 72 72 6f 72 2c 20 74 6f 20 75 6e 64 6f 20 CTION.signals.an.error,.to.undo.
2ce0 61 6e 79 0a 70 61 72 74 69 61 6c 20 73 65 74 75 70 2e 0a 0a 42 6f 74 68 20 53 45 54 55 50 2d 46 any.partial.setup...Both.SETUP-F
2d00 55 4e 43 54 49 4f 4e 20 61 6e 64 20 54 45 41 52 44 4f 57 4e 2d 46 55 4e 43 54 49 4f 4e 20 73 68 UNCTION.and.TEARDOWN-FUNCTION.sh
2d20 6f 75 6c 64 20 62 65 20 69 64 65 6d 70 6f 74 65 6e 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 ould.be.idempotent."...(declare.
2d40 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 73 65 74 75 70 20 28 74 72 65 65 (indent.1))...(let.((setup.(tree
2d60 2d 73 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c 6c 2d 66 6f 72 6d 20 73 65 74 75 70 2d 66 75 6e 63 -sitter--funcall-form.setup-func
2d80 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 74 65 61 72 64 6f 77 6e 20 28 74 72 65 65 2d 73 tion)).........(teardown.(tree-s
2da0 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c 6c 2d 66 6f 72 6d 20 74 65 61 72 64 6f 77 6e 2d 66 75 6e itter--funcall-form.teardown-fun
2dc0 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 60 28 69 66 20 2c 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 ction))).....`(if.,mode.........
2de0 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d .(progn............(tree-sitter-
2e00 2d 65 72 72 6f 72 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b -error-protect................;;
2e20 20 4d 61 6b 65 20 73 75 72 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 73 .Make.sure.`tree-sitter-mode'.is
2e40 20 65 6e 61 62 6c 65 64 20 62 65 66 6f 72 65 20 4d 4f 44 45 2e 0a 20 20 20 20 20 20 20 20 20 20 .enabled.before.MODE............
2e60 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e .....(progn..................(un
2e80 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 less.tree-sitter-mode...........
2ea0 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 .........(tree-sitter-mode))....
2ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 73 65 74 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 ..............,setup)...........
2ee0 20 20 20 3b 3b 20 53 65 74 75 70 20 66 61 69 6c 65 64 2e 20 43 6c 65 61 6e 20 74 68 69 6e 67 73 ...;;.Setup.failed..Clean.things
2f00 20 75 70 2c 20 6c 65 61 76 65 20 6e 6f 20 74 72 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 .up,.leave.no.trace.............
2f20 20 20 28 73 65 74 71 20 2c 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(setq.,mode.nil)..............
2f40 2c 74 65 61 72 64 6f 77 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 69 73 61 62 6c 65 ,teardown)............;;.Disable
2f60 20 4d 4f 44 45 20 77 68 65 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 73 .MODE.when.`tree-sitter-mode'.is
2f80 20 64 69 73 61 62 6c 65 64 2e 20 51 75 6f 74 69 6e 67 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 .disabled..Quoting.is...........
2fa0 20 3b 3b 20 69 6d 70 6f 72 74 61 6e 74 2c 20 62 65 63 61 75 73 65 20 77 65 20 64 6f 6e 27 74 20 .;;.important,.because.we.don't.
2fc0 77 61 6e 74 20 61 20 76 61 72 69 61 62 6c 65 2d 63 61 70 74 75 72 69 6e 67 20 63 6c 6f 73 75 72 want.a.variable-capturing.closur
2fe0 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 74 72 65 65 2d 73 69 e.............(add-hook.'tree-si
3000 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 6f 66 66 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 tter--before-off-hook...........
3020 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 20 27 28 6c ...........(with-no-warnings.'(l
3040 61 6d 62 64 61 20 28 29 20 28 2c 6d 6f 64 65 20 2d 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ambda.().(,mode.-1)))...........
3060 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 29 0a 20 20 20 20 20 20 20 2c ...........nil.:local))........,
3080 74 65 61 72 64 6f 77 6e 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 teardown)))..;;;###autoload.(def
30a0 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 74 72 65 ine-obsolete-function-alias.'tre
30c0 65 2d 73 69 74 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 27 74 72 65 65 2d 73 69 74 e-sitter-node-at-point.'tree-sit
30e0 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 20 22 32 30 32 31 2d 30 38 2d 33 30 22 29 0a 0a 28 ter-node-at-pos."2021-08-30")..(
3100 64 65 66 69 6e 65 2d 65 72 72 6f 72 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 69 6e 76 61 6c 69 define-error.'tree-sitter-invali
3120 64 2d 6e 6f 64 65 2d 74 79 70 65 20 22 4e 6f 20 73 75 63 68 20 6e 6f 64 65 2d 74 79 70 65 22 29 d-node-type."No.such.node-type")
3140 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 ..;;;###autoload.(defun.tree-sit
3160 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 64 65 2d ter-node-at-pos.(&optional.node-
3180 74 79 70 65 20 70 6f 73 20 69 67 6e 6f 72 65 2d 69 6e 76 61 6c 69 64 2d 74 79 70 65 29 0a 20 20 type.pos.ignore-invalid-type)...
31a0 22 52 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 73 79 6e 74 61 78 20 6e 6f 64 65 "Return.the.smallest.syntax.node
31c0 20 6f 66 20 74 79 70 65 20 4e 4f 44 45 2d 54 59 50 45 20 61 74 20 50 4f 53 2e 0a 4e 4f 44 45 2d .of.type.NODE-TYPE.at.POS..NODE-
31e0 54 59 50 45 20 6d 61 79 20 62 65 20 61 20 73 79 6d 62 6f 6c 2c 20 63 6f 72 72 65 73 70 6f 6e 64 TYPE.may.be.a.symbol,.correspond
3200 69 6e 67 20 74 6f 20 61 20 6e 61 6d 65 64 20 73 79 6e 74 61 78 20 6e 6f 64 65 3b 20 61 20 73 74 ing.to.a.named.syntax.node;.a.st
3220 72 69 6e 67 2c 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 61 6e 20 61 6e 6f 6e 79 6d ring,.corresponding.to.an.anonym
3240 6f 75 73 20 6e 6f 64 65 2c 20 6f 72 20 61 20 6b 65 79 77 6f 72 64 2c 20 68 6f 6c 64 69 6e 67 20 ous.node,.or.a.keyword,.holding.
3260 61 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 2e 20 46 6f 72 0a 74 68 65 20 73 70 65 63 69 61 6c a.special.value..For.the.special
3280 20 76 61 6c 75 65 20 60 3a 6e 61 6d 65 64 27 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c .value.`:named',.return.the.smal
32a0 6c 65 73 74 20 6e 61 6d 65 64 20 6e 6f 64 65 20 61 74 20 50 4f 53 2e 20 46 6f 72 20 74 68 65 0a lest.named.node.at.POS..For.the.
32c0 73 70 65 63 69 61 6c 20 76 61 6c 75 65 20 60 3a 61 6e 6f 6e 79 6d 6f 75 73 27 2c 20 72 65 74 75 special.value.`:anonymous',.retu
32e0 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 61 6e 6f 6e 79 6d 6f 75 73 20 6e 6f 64 65 20 61 rn.the.smallest.anonymous.node.a
3300 74 20 50 4f 53 2e 20 49 46 20 50 4f 53 20 69 73 0a 6e 69 6c 2c 20 50 4f 53 20 64 65 66 61 75 6c t.POS..IF.POS.is.nil,.POS.defaul
3320 74 73 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 2e 20 55 6e 6c 65 73 73 20 49 47 4e 4f 52 45 2d 49 ts.to.the.point..Unless.IGNORE-I
3340 4e 56 41 4c 49 44 2d 54 59 50 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 69 67 6e 61 6c 20 61 NVALID-TYPE.is.non-nil,.signal.a
3360 6e 0a 65 72 72 6f 72 20 77 68 65 6e 20 61 20 73 70 65 63 69 66 69 65 64 20 6e 61 6d 65 64 20 4e n.error.when.a.specified.named.N
3380 4f 44 45 2d 54 59 50 45 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 69 6e 20 74 68 65 20 63 ODE-TYPE.does.not.exist.in.the.c
33a0 75 72 72 65 6e 74 20 67 72 61 6d 6d 61 72 2e 0a 57 68 65 6e 65 76 65 72 20 4e 4f 44 45 2d 54 59 urrent.grammar..Whenever.NODE-TY
33c0 50 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 6f 74 68 65 72 20 74 68 61 6e 20 60 3a 6e 61 6d 65 PE.is.non-nil.(other.than.`:name
33e0 64 27 29 2c 20 69 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 66 6f 72 20 74 68 65 0a 66 75 6e 63 d'),.it.is.possible.for.the.func
3400 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e tion.to.return.nil."...(when.(an
3420 64 20 28 6e 6f 74 20 69 67 6e 6f 72 65 2d 69 6e 76 61 6c 69 64 2d 74 79 70 65 29 0a 20 20 20 20 d.(not.ignore-invalid-type).....
3440 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........node-type..............
3460 28 6e 6f 74 20 28 6b 65 79 77 6f 72 64 70 20 6e 6f 64 65 2d 74 79 70 65 29 29 29 0a 20 20 20 20 (not.(keywordp.node-type))).....
3480 28 77 68 65 6e 20 28 3d 20 30 20 28 74 73 63 2d 6c 61 6e 67 2d 6e 6f 64 65 2d 74 79 70 65 2d 69 (when.(=.0.(tsc-lang-node-type-i
34a0 64 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 20 6e 6f 64 65 2d 74 79 70 65 d.tree-sitter-language.node-type
34c0 29 29 0a 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 69 6e )).......(signal.'tree-sitter-in
34e0 76 61 6c 69 64 2d 6e 6f 64 65 2d 74 79 70 65 20 28 6c 69 73 74 20 6e 6f 64 65 2d 74 79 70 65 29 valid-node-type.(list.node-type)
3500 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 20 28 74 73 63 2d 72 6f 6f 74 2d 6e 6f 64 )))...(let*.((root.(tsc-root-nod
3520 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 e.tree-sitter-tree))..........(p
3540 20 28 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 .(or.pos.(point)))..........(nod
3560 65 20 28 69 66 20 28 65 71 20 6e 6f 64 65 2d 74 79 70 65 20 3a 6e 61 6d 65 64 29 0a 20 20 20 20 e.(if.(eq.node-type.:named).....
3580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 67 65 74 2d 6e 61 6d 65 64 2d 64 65 ...............(tsc-get-named-de
35a0 73 63 65 6e 64 61 6e 74 2d 66 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 72 6f 6f 74 scendant-for-position-range.root
35c0 20 70 20 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 67 65 74 2d .p.p)..................(tsc-get-
35e0 64 65 73 63 65 6e 64 61 6e 74 2d 66 6f 72 2d 70 6f 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 72 6f descendant-for-position-range.ro
3600 6f 74 20 70 20 70 29 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 6e 6f 64 65 2d 74 79 70 65 0a ot.p.p)))).....(pcase.node-type.
3620 20 20 20 20 20 20 28 27 6e 69 6c 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 3a 6e 61 6d 65 64 20 ......('nil.node).......(:named.
3640 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 3a 61 6e 6f 6e 79 6d 6f 75 73 20 28 75 6e 6c 65 73 73 20 node).......(:anonymous.(unless.
3660 28 74 73 63 2d 6e 6f 64 65 2d 6e 61 6d 65 64 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 65 29 29 0a 20 (tsc-node-named-p.node).node))..
3680 20 20 20 20 20 28 5f 20 28 6c 65 74 20 28 28 74 68 69 73 20 6e 6f 64 65 29 20 72 65 73 75 6c 74 .....(_.(let.((this.node).result
36a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 68 69 73 0a 20 20 20 20 20 20 20 )............(while.this........
36c0 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 6e 6f 64 65 2d 74 79 70 65 20 28 74 73 63 2d ......(if.(equal.node-type.(tsc-
36e0 6e 6f 64 65 2d 74 79 70 65 20 74 68 69 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 node-type.this))................
3700 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(setq.result.this.............
3720 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...........this.nil)............
3740 20 20 20 20 28 73 65 74 71 20 74 68 69 73 20 28 74 73 63 2d 67 65 74 2d 70 61 72 65 6e 74 20 74 ....(setq.this.(tsc-get-parent.t
3760 68 69 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 29 0a 0a his))))............result)))))..
3780 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 3b 3b 3b 20 74 72 65 65 2d (provide.'tree-sitter).;;;.tree-
37a0 73 69 74 74 65 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 sitter.el.ends.here.............
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
3820 69 74 74 65 72 2d 6c 6f 61 64 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-load.el...................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3880 30 30 30 37 35 34 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 37 37 30 00 20 30 00 00 00 0007546.00000000000.016770..0...
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 2e 65 6c 20 2d 2d 2d 20 4c 61 6e 67 ;;;.tree-sitter-load.el.---.Lang
3a20 75 61 67 65 20 6c 6f 61 64 69 6e 67 20 66 6f 72 20 74 72 65 65 2d 73 69 74 74 65 72 20 2d 2a 2d uage.loading.for.tree-sitter.-*-
3a40 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e 67 3a 20 75 74 66 .lexical-binding:.t;.coding:.utf
3a60 2d 38 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 20 20 54 -8.-*-..;;.Copyright.(C).2020..T
3a80 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a u...n-Anh.Nguy...n.;;.;;.Author:
3aa0 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c 6f 6e 74 6f 6e 40 .Tu...n-Anh.Nguy...n.<ubolonton@
3ac0 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 gmail.com>.;;.SPDX-License-Ident
3ae0 69 66 69 65 72 3a 20 4d 49 54 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 ifier:.MIT..;;;.Commentary:..;;.
3b00 54 68 69 73 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 This.file.implements.functions.t
3b20 6f 20 73 65 61 72 63 68 2c 20 6c 6f 61 64 20 61 6e 64 20 72 65 67 69 73 74 65 72 20 60 74 72 65 o.search,.load.and.register.`tre
3b40 65 2d 73 69 74 74 65 72 27 0a 3b 3b 20 6c 61 6e 67 75 61 67 65 20 6f 62 6a 65 63 74 73 20 28 67 e-sitter'.;;.language.objects.(g
3b60 72 61 6d 6d 61 72 73 29 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 rammars)...;;;.Code:..(require.'
3b80 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 73 65 71 29 0a 0a 28 72 65 71 75 69 72 65 20 27 74 map).(require.'seq)..(require.'t
3ba0 73 63 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 63 6c 69 29 0a 0a sc).(require.'tree-sitter-cli)..
3bc0 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 70 (eval-when-compile...(require.'p
3be0 63 61 73 65 29 29 0a 0a 28 64 65 66 76 61 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 case))..(defvar.tree-sitter-lang
3c00 75 61 67 65 73 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6f 66 20 6d 61 70 70 69 6e 67 uages.nil..."An.alist.of.mapping
3c20 73 20 66 72 6f 6d 20 6c 61 6e 67 75 61 67 65 20 6e 61 6d 65 20 73 79 6d 62 6f 6c 73 20 74 6f 20 s.from.language.name.symbols.to.
3c40 6c 61 6e 67 75 61 67 65 20 6f 62 6a 65 63 74 73 2e 0a 53 65 65 20 60 74 72 65 65 2d 73 69 74 74 language.objects..See.`tree-sitt
3c60 65 72 2d 72 65 71 75 69 72 65 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 74 72 65 65 2d 73 69 74 er-require'.")..(defvar.tree-sit
3c80 74 65 72 2d 6c 6f 61 64 2d 70 61 74 68 20 28 6c 69 73 74 20 28 74 72 65 65 2d 73 69 74 74 65 72 ter-load-path.(list.(tree-sitter
3ca0 2d 63 6c 69 2d 62 69 6e 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 -cli-bin-directory))..."List.of.
3cc0 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 20 73 68 61 72 65 64 directories.to.search.for.shared
3ce0 20 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20 64 65 66 69 6e 65 20 6c 61 6e 67 75 61 67 65 73 .libraries.that.define.languages
3d00 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 2d 73 75 .")..(defvar.tree-sitter-load-su
3d20 66 66 69 78 65 73 0a 20 20 28 70 63 61 73 65 20 73 79 73 74 65 6d 2d 74 79 70 65 0a 20 20 20 20 ffixes...(pcase.system-type.....
3d40 3b 3b 20 54 68 65 20 43 4c 49 20 74 6f 6f 6c 20 6f 75 74 70 75 74 73 20 60 2e 73 6f 27 2c 20 62 ;;.The.CLI.tool.outputs.`.so',.b
3d60 75 74 20 60 2e 64 79 6c 69 62 27 20 69 73 20 6d 6f 72 65 20 73 65 6e 73 69 62 6c 65 20 6f 6e 20 ut.`.dylib'.is.more.sensible.on.
3d80 6d 61 63 4f 53 2e 0a 20 20 20 20 28 27 64 61 72 77 69 6e 20 28 6c 69 73 74 20 22 2e 64 79 6c 69 macOS......('darwin.(list.".dyli
3da0 62 22 20 22 2e 73 6f 22 29 29 0a 20 20 20 20 28 27 67 6e 75 2f 6c 69 6e 75 78 20 28 6c 69 73 74 b".".so")).....('gnu/linux.(list
3dc0 20 22 2e 73 6f 22 29 29 0a 20 20 20 20 28 27 77 69 6e 64 6f 77 73 2d 6e 74 20 28 6c 69 73 74 20 .".so")).....('windows-nt.(list.
3de0 22 2e 64 6c 6c 22 29 29 0a 20 20 20 20 28 5f 20 28 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 ".dll")).....(_.(error."Unsuppor
3e00 74 65 64 20 73 79 73 74 65 6d 2d 74 79 70 65 20 25 73 22 20 73 79 73 74 65 6d 2d 74 79 70 65 29 ted.system-type.%s".system-type)
3e20 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 75 66 66 69 78 65 73 20 66 6f 72 20 73 68 61 72 65 ))..."List.of.suffixes.for.share
3e40 64 20 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20 64 65 66 69 6e 65 20 74 72 65 65 2d 73 69 74 d.libraries.that.define.tree-sit
3e60 74 65 72 20 6c 61 6e 67 75 61 67 65 73 2e 22 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 41 6c 6c 6f ter.languages.")..;;;.TODO:.Allo
3e80 77 20 73 70 65 63 69 66 79 69 6e 67 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2e 0a 28 64 65 66 w.specifying.absolute.path..(def
3ea0 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 20 28 6c 61 6e 67 2d 73 79 6d 62 6f 6c un.tree-sitter-load.(lang-symbol
3ec0 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 20 6e 61 74 69 76 65 2d 73 79 6d 62 6f 6c 2d 6e 61 .&optional.file.native-symbol-na
3ee0 6d 65 29 0a 20 20 22 4c 6f 61 64 20 61 20 6c 61 6e 67 75 61 67 65 20 67 72 61 6d 6d 61 72 20 66 me)..."Load.a.language.grammar.f
3f00 72 6f 6d 20 46 49 4c 45 20 61 6e 64 20 72 65 67 69 73 74 65 72 20 69 74 20 75 6e 64 65 72 20 74 rom.FILE.and.register.it.under.t
3f20 68 65 20 6e 61 6d 65 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 2e 0a 49 66 20 61 6e 6f 74 68 65 72 20 he.name.LANG-SYMBOL..If.another.
3f40 6c 61 6e 67 75 61 67 65 20 77 61 73 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 language.was.already.registered.
3f60 75 6e 64 65 72 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 2c 20 6f 76 65 72 72 69 64 65 20 69 74 under.the.same.name,.override.it
3f80 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 6f 61 ...This.function.returns.the.loa
3fa0 64 65 64 20 6c 61 6e 67 75 61 67 65 20 6f 62 6a 65 63 74 2e 0a 0a 46 49 4c 45 20 73 68 6f 75 6c ded.language.object...FILE.shoul
3fc0 64 20 62 65 20 74 68 65 20 62 61 73 65 20 6e 61 6d 65 20 28 77 69 74 68 6f 75 74 20 65 78 74 65 d.be.the.base.name.(without.exte
3fe0 6e 73 69 6f 6e 29 20 6f 66 20 74 68 65 20 6e 61 74 69 76 65 20 73 68 61 72 65 64 20 6c 69 62 72 nsion).of.the.native.shared.libr
4000 61 72 79 0a 74 68 61 74 20 65 78 70 6f 72 74 73 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 61 73 ary.that.exports.the.language.as
4020 20 74 68 65 20 6e 61 74 69 76 65 20 73 79 6d 62 6f 6c 20 4e 41 54 49 56 45 2d 53 59 4d 42 4f 4c .the.native.symbol.NATIVE-SYMBOL
4040 2d 4e 41 4d 45 2e 0a 0a 49 66 20 46 49 4c 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 62 61 73 65 -NAME...If.FILE.is.nil,.the.base
4060 20 6e 61 6d 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 4c 41 4e 47 2d 53 59 4d 42 .name.is.assumed.to.be.LANG-SYMB
4080 4f 4c 27 73 20 6e 61 6d 65 2e 0a 0a 49 66 20 4e 41 54 49 56 45 2d 53 59 4d 42 4f 4c 2d 4e 41 4d OL's.name...If.NATIVE-SYMBOL-NAM
40a0 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 65 78 70 6f 72 74 E.is.nil,.the.name.of.the.export
40c0 65 64 20 6e 61 74 69 76 65 20 73 79 6d 62 6f 6c 20 69 73 20 61 73 73 75 6d 65 64 0a 74 6f 20 62 ed.native.symbol.is.assumed.to.b
40e0 65 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 27 73 20 6e 61 6d 65 2c 20 70 72 65 66 69 78 65 64 20 77 e.LANG-SYMBOL's.name,.prefixed.w
4100 69 74 68 20 5c 22 74 72 65 65 5f 73 69 74 74 65 72 5f 5c 22 2e 22 0a 20 20 28 6c 65 74 2a 20 28 ith.\"tree_sitter_\"."...(let*.(
4120 28 6c 61 6e 67 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6c 61 6e 67 2d 73 79 6d (lang-name.(symbol-name.lang-sym
4140 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 61 6d 70 6c 65 3a 20 63 2d 73 68 61 bol))..........;;.Example:.c-sha
4160 72 70 20 2d 3e 20 63 5f 73 68 61 72 70 2e 0a 20 20 20 20 20 20 20 20 20 28 66 61 6c 6c 62 61 63 rp.->.c_sharp...........(fallbac
4180 6b 2d 6e 61 6d 65 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 k-name.(replace-regexp-in-string
41a0 20 22 2d 22 20 22 5f 22 20 6c 61 6e 67 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e ."-"."_".lang-name))..........(n
41c0 61 74 69 76 65 2d 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6f 72 20 6e 61 74 69 76 65 2d 73 79 6d ative-symbol-name.(or.native-sym
41e0 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bol-name........................
4200 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 74 72 65 65 5f 73 69 74 74 65 72 5f 25 ..........(format."tree_sitter_%
4220 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s"..............................
4240 20 20 20 20 20 20 20 20 20 20 20 20 66 61 6c 6c 62 61 63 6b 2d 6e 61 6d 65 29 29 29 0a 20 20 20 ............fallback-name)))....
4260 20 20 20 20 20 20 3b 3b 20 4c 69 73 74 20 6f 66 20 62 61 73 65 20 66 69 6c 65 20 6e 61 6d 65 73 ......;;.List.of.base.file.names
4280 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 2e 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 73 20 .to.search.for...........(files.
42a0 28 69 66 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 (if.file.....................;;.
42c0 55 73 65 20 6f 6e 6c 79 20 46 49 4c 45 2c 20 69 66 20 69 74 27 73 20 67 69 76 65 6e 2e 0a 20 20 Use.only.FILE,.if.it's.given....
42e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 69 6c 65 29 0a 20 20 ..................(list.file)...
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 75 73 65 ................;;.Otherwise.use
4320 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 2e 20 46 69 72 73 74 2c 20 61 73 2d 69 73 2e 20 54 68 65 6e .LANG-SYMBOL..First,.as-is..Then
4340 2c 20 77 69 74 68 20 68 79 70 68 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.with.hyphens..................
4360 20 3b 3b 20 72 65 70 6c 61 63 65 64 20 62 79 20 75 6e 64 65 72 73 63 6f 72 65 73 2e 0a 20 20 20 .;;.replaced.by.underscores.....
4380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6c 61 6e 67 2d 6e 61 6d 65 0a 20 ...............(cons.lang-name..
43a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 .......................(unless.(
43c0 73 74 72 69 6e 67 3d 20 6c 61 6e 67 2d 6e 61 6d 65 20 66 61 6c 6c 62 61 63 6b 2d 6e 61 6d 65 29 string=.lang-name.fallback-name)
43e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 ...........................(list
4400 20 66 61 6c 6c 62 61 63 6b 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 .fallback-name)))))..........(fu
4420 6c 6c 2d 70 61 74 68 20 28 73 65 71 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 62 61 73 65 2d ll-path.(seq-some.(lambda.(base-
4440 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name)...........................
4460 20 20 20 20 20 28 6c 6f 63 61 74 65 2d 66 69 6c 65 20 62 61 73 65 2d 6e 61 6d 65 0a 20 20 20 20 .....(locate-file.base-name.....
4480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44a0 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 2d 70 61 74 68 0a 20 20 ........tree-sitter-load-path...
44c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44e0 20 20 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 2d 73 75 66 66 69 ..........tree-sitter-load-suffi
4500 78 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xes))...........................
4520 20 20 20 66 69 6c 65 73 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 66 75 6c 6c 2d 70 61 74 ...files))).....(unless.full-pat
4540 68 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 44 65 66 69 6e 65 20 63 75 73 74 6f 6d 20 65 h.......;;.TODO:.Define.custom.e
4560 72 72 6f 72 20 63 6c 61 73 73 2e 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 rror.class........(error."Cannot
4580 20 66 69 6e 64 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 20 66 6f 72 20 6c 61 6e 67 75 61 67 .find.shared.library.for.languag
45a0 65 3a 20 25 53 22 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 e:.%S".lang-symbol)).....(let.((
45c0 6c 61 6e 67 75 61 67 65 20 28 74 73 63 2d 2d 6c 6f 61 64 2d 6c 61 6e 67 75 61 67 65 20 66 75 6c language.(tsc--load-language.ful
45e0 6c 2d 70 61 74 68 20 6e 61 74 69 76 65 2d 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6c 61 6e 67 2d 73 l-path.native-symbol-name.lang-s
4600 79 6d 62 6f 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6d 61 70 2d 65 6c 74 20 74 72 ymbol))).......(setf.(map-elt.tr
4620 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 73 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 29 ee-sitter-languages.lang-symbol)
4640 20 6c 61 6e 67 75 61 67 65 29 0a 20 20 20 20 20 20 6c 61 6e 67 75 61 67 65 29 29 29 0a 0a 3b 3b .language).......language)))..;;
4660 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d ;###autoload.(defun.tree-sitter-
4680 72 65 71 75 69 72 65 20 28 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 26 6f 70 74 69 6f 6e 61 6c 20 66 require.(lang-symbol.&optional.f
46a0 69 6c 65 20 6e 61 74 69 76 65 2d 73 79 6d 62 6f 6c 2d 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 ile.native-symbol-name)..."Retur
46c0 6e 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 6f 62 6a 65 63 74 20 6c 6f 61 64 65 64 20 61 6e 64 n.the.language.object.loaded.and
46e0 20 72 65 67 69 73 74 65 72 65 64 20 75 6e 64 65 72 20 74 68 65 20 6e 61 6d 65 20 4c 41 4e 47 2d .registered.under.the.name.LANG-
4700 53 59 4d 42 4f 4c 2e 0a 49 66 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 68 61 73 20 6e 6f 74 20 SYMBOL..If.the.language.has.not.
4720 62 65 65 6e 20 6c 6f 61 64 65 64 20 79 65 74 2c 20 6c 6f 61 64 20 69 74 20 77 69 74 68 20 60 74 been.loaded.yet,.load.it.with.`t
4740 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 27 2e 0a 0a 46 49 4c 45 20 73 68 6f 75 6c 64 20 62 ree-sitter-load'...FILE.should.b
4760 65 20 74 68 65 20 62 61 73 65 20 6e 61 6d 65 20 28 77 69 74 68 6f 75 74 20 65 78 74 65 6e 73 69 e.the.base.name.(without.extensi
4780 6f 6e 29 20 6f 66 20 74 68 65 20 6e 61 74 69 76 65 20 73 68 61 72 65 64 20 6c 69 62 72 61 72 79 on).of.the.native.shared.library
47a0 0a 74 68 61 74 20 65 78 70 6f 72 74 73 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 61 73 20 74 68 .that.exports.the.language.as.th
47c0 65 20 6e 61 74 69 76 65 20 73 79 6d 62 6f 6c 20 4e 41 54 49 56 45 2d 53 59 4d 42 4f 4c 2d 4e 41 e.native.symbol.NATIVE-SYMBOL-NA
47e0 4d 45 2e 0a 0a 49 66 20 46 49 4c 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 62 61 73 65 20 6e 61 ME...If.FILE.is.nil,.the.base.na
4800 6d 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 27 me.is.assumed.to.be.LANG-SYMBOL'
4820 73 20 6e 61 6d 65 2e 0a 0a 49 66 20 4e 41 54 49 56 45 2d 53 59 4d 42 4f 4c 2d 4e 41 4d 45 20 69 s.name...If.NATIVE-SYMBOL-NAME.i
4840 73 20 6e 69 6c 2c 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 65 78 70 6f 72 74 65 64 20 s.nil,.the.name.of.the.exported.
4860 6e 61 74 69 76 65 20 73 79 6d 62 6f 6c 20 69 73 20 61 73 73 75 6d 65 64 0a 74 6f 20 62 65 20 4c native.symbol.is.assumed.to.be.L
4880 41 4e 47 2d 53 59 4d 42 4f 4c 27 73 20 6e 61 6d 65 2c 20 70 72 65 66 69 78 65 64 20 77 69 74 68 ANG-SYMBOL's.name,.prefixed.with
48a0 20 5c 22 74 72 65 65 5f 73 69 74 74 65 72 5f 5c 22 2e 22 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 .\"tree_sitter_\"."...(or.(alist
48c0 2d 67 65 74 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e -get.lang-symbol.tree-sitter-lan
48e0 67 75 61 67 65 73 29 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 20 guages).......(tree-sitter-load.
4900 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 66 69 6c 65 20 6e 61 74 69 76 65 2d 73 79 6d 62 6f 6c 2d 6e lang-symbol.file.native-symbol-n
4920 61 6d 65 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f ame)))..(provide.'tree-sitter-lo
4940 61 64 29 0a 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 6f 61 64 2e 65 6c 20 65 6e 64 73 ad).;;;.tree-sitter-load.el.ends
4960 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .here...........................
4980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a00 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
4a20 69 74 74 65 72 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-pkg.el....................
4a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4a80 30 30 30 31 30 33 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 31 32 00 20 30 00 00 00 0001032.00000000000.016612..0...
4aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4c00 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 74 72 65 65 2d 73 69 74 74 65 72 22 20 22 32 (define-package."tree-sitter"."2
4c20 30 32 32 30 32 31 32 2e 31 36 33 32 22 20 22 49 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 73 69 0220212.1632"."Incremental.parsi
4c40 6e 67 20 73 79 73 74 65 6d 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 0a 20 20 ng.system"...'((emacs."25.1")...
4c60 20 20 28 74 73 63 20 22 30 2e 31 38 2e 30 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 39 30 39 ..(tsc."0.18.0"))...:commit."909
4c80 37 31 37 63 36 38 35 66 66 35 61 32 33 32 37 66 61 32 63 61 38 66 62 38 61 32 35 32 31 36 31 32 717c685ff5a2327fa2ca8fb8a2521612
4ca0 39 33 36 31 63 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 54 75 e1 ba a5 6e 2d 41 6e 68 9361c".:authors...'(("Tu...n-Anh
4cc0 20 4e 67 75 79 e1 bb 85 6e 22 20 2e 20 22 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f .Nguy...n"..."ubolonton@gmail.co
4ce0 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22 54 75 e1 ba a5 6e m"))...:maintainers...'(("Tu...n
4d00 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 22 20 2e 20 22 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 -Anh.Nguy...n"..."ubolonton@gmai
4d20 6c 2e 63 6f 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 54 75 e1 ba l.com"))...:maintainer...'("Tu..
4d40 a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 22 20 2e 20 22 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d .n-Anh.Nguy...n"..."ubolonton@gm
4d60 61 69 6c 2e 63 6f 6d 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 6c 61 6e 67 75 ail.com")...:keywords...'("langu
4d80 61 67 65 73 22 20 22 74 6f 6f 6c 73 22 20 22 70 61 72 73 65 72 73 22 20 22 74 72 65 65 2d 73 69 ages"."tools"."parsers"."tree-si
4da0 74 74 65 72 22 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f tter")...:url."https://github.co
4dc0 6d 2f 65 6d 61 63 73 2d 74 72 65 65 2d 73 69 74 74 65 72 2f 65 6c 69 73 70 2d 74 72 65 65 2d 73 m/emacs-tree-sitter/elisp-tree-s
4de0 69 74 74 65 72 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e itter").;;.Local.Variables:.;;.n
4e00 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 o-byte-compile:.t.;;.End:.......
4e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5000 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
5020 69 74 74 65 72 2d 64 65 62 75 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-debug.el..................
5040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
5080 30 30 31 34 33 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 31 32 35 00 20 30 00 00 00 0014340.00000000000.017125..0...
50a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
50e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
5120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
5140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5200 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2e 65 6c 20 2d 2d 2d 20 44 65 62 ;;;.tree-sitter-debug.el.---.Deb
5220 75 67 20 74 6f 6f 6c 73 20 66 6f 72 20 74 72 65 65 2d 73 69 74 74 65 72 20 2d 2a 2d 20 6c 65 78 ug.tools.for.tree-sitter.-*-.lex
5240 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d ical-binding:.t;.coding:.utf-8.-
5260 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 39 20 20 54 75 e1 ba a5 *-..;;.Copyright.(C).2019..Tu...
5280 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 54 75 e1 n-Anh.Nguy...n.;;.;;.Author:.Tu.
52a0 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 ..n-Anh.Nguy...n.<ubolonton@gmai
52c0 6c 2e 63 6f 6d 3e 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 l.com>.;;.SPDX-License-Identifie
52e0 72 3a 20 4d 49 54 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 r:.MIT..;;;.Commentary:..;;.This
5300 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 64 65 62 75 67 20 75 74 69 6c 69 74 69 65 73 20 66 .file.contains.debug.utilities.f
5320 6f 72 20 74 72 65 65 2d 73 69 74 74 65 72 2e 0a 3b 3b 0a 3b 3b 20 28 74 72 65 65 2d 73 69 74 74 or.tree-sitter..;;.;;.(tree-sitt
5340 65 72 2d 64 65 62 75 67 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 er-debug-mode)..;;;.Code:..(requ
5360 69 72 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 72 65 71 75 69 72 65 20 27 67 65 6e ire.'tree-sitter)..(require.'gen
5380 65 72 61 74 6f 72 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 erator)..(defvar-local.tree-sitt
53a0 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 42 75 66 er-debug--tree-buffer.nil..."Buf
53c0 66 65 72 20 75 73 65 64 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 73 79 6e 74 61 78 20 74 fer.used.to.display.the.syntax.t
53e0 72 65 65 20 6f 66 20 74 68 69 73 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c ree.of.this.buffer.")..(defvar-l
5400 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 73 6f 75 72 63 65 2d 63 ocal.tree-sitter-debug--source-c
5420 6f 64 65 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 53 6f 75 72 63 65 20 62 75 66 66 65 72 20 ode-buffer.nil..."Source.buffer.
5440 6f 66 20 74 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 of.the.syntax.tree.displayed.in.
5460 74 68 69 73 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 27 20 62 75 66 66 65 72 2e this.`tree-sitter-debug'.buffer.
5480 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 20 ")..(defgroup.tree-sitter-debug.
54a0 6e 69 6c 0a 20 20 22 54 72 65 65 20 73 69 74 74 65 72 20 64 65 62 75 67 20 61 6e 64 20 64 69 73 nil..."Tree.sitter.debug.and.dis
54c0 70 6c 61 79 20 66 65 61 74 75 72 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 play.features."...:group.'tree-s
54e0 69 74 74 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 itter)..(defcustom.tree-sitter-d
5500 65 62 75 67 2d 6a 75 6d 70 2d 62 75 74 74 6f 6e 73 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 ebug-jump-buttons.nil..."Whether
5520 20 74 6f 20 65 6e 61 62 6c 65 20 6a 75 6d 70 2d 74 6f 2d 6e 6f 64 65 20 62 75 74 74 6f 6e 73 20 .to.enable.jump-to-node.buttons.
5540 69 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 27 20 76 69 65 77 73 2e 0a 54 68 in.`tree-sitter-debug'.views..Th
5560 69 73 20 63 61 6e 20 68 61 76 65 20 61 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 70 65 6e 61 6c 74 is.can.have.a.performance.penalt
5580 79 20 69 6e 20 6c 61 72 67 65 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f y.in.large.buffers."...:type.'bo
55a0 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 olean...:group.'tree-sitter-debu
55c0 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 g)..(defcustom.tree-sitter-debug
55e0 2d 68 69 67 68 6c 69 67 68 74 2d 6a 75 6d 70 2d 72 65 67 69 6f 6e 20 6e 69 6c 0a 20 20 22 57 68 -highlight-jump-region.nil..."Wh
5600 65 74 68 65 72 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 20 6e 6f 64 65 20 6a 75 6d 70 ether.to.highlight.the.node.jump
5620 65 64 20 74 6f 2e 0a 54 68 69 73 20 6f 6e 6c 79 20 74 61 6b 65 73 20 65 66 66 65 63 74 20 69 66 ed.to..This.only.takes.effect.if
5640 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 6a 75 6d 70 2d 62 75 74 74 6f 6e 73 .`tree-sitter-debug-jump-buttons
5660 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a '.is.non-nil."...:type.'boolean.
5680 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 29 0a 0a 28 64 ..:group.'tree-sitter-debug)..(d
56a0 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 62 75 74 74 6f 6e 2d 6e efun.tree-sitter-debug--button-n
56c0 6f 64 65 2d 6c 6f 6f 6b 75 70 20 28 62 75 74 74 6f 6e 29 0a 20 20 22 54 68 65 20 66 75 6e 63 74 ode-lookup.(button)..."The.funct
56e0 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 77 68 65 6e 20 61 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d ion.to.call.when.a.`tree-sitter-
5700 64 65 62 75 67 27 20 42 55 54 54 4f 4e 20 69 73 20 63 6c 69 63 6b 65 64 2e 22 0a 20 20 28 75 6e debug'.BUTTON.is.clicked."...(un
5720 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 73 6f 75 72 63 65 2d 63 less.tree-sitter-debug--source-c
5740 6f 64 65 2d 62 75 66 66 65 72 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 73 6f 75 72 63 65 ode-buffer.....(error."No.source
5760 20 63 6f 64 65 20 62 75 66 66 65 72 20 73 65 74 22 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 .code.buffer.set"))...(unless.(b
5780 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d uffer-live-p.tree-sitter-debug--
57a0 73 6f 75 72 63 65 2d 63 6f 64 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 source-code-buffer).....(user-er
57c0 72 6f 72 20 22 53 6f 75 72 63 65 20 63 6f 64 65 20 62 75 66 66 65 72 20 68 61 73 20 62 65 65 6e ror."Source.code.buffer.has.been
57e0 20 6b 69 6c 6c 65 64 22 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 62 75 74 74 6f 6e 0a 20 20 20 20 .killed"))...(unless.button.....
5800 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 20 (user-error."This.function.must.
5820 62 65 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 62 75 74 74 6f 6e 22 29 29 0a 20 20 28 74 72 65 65 be.called.on.a.button"))...(tree
5840 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 67 6f 74 6f 2d 6e 6f 64 65 20 74 72 65 65 2d 73 69 -sitter-debug--goto-node.tree-si
5860 74 74 65 72 2d 64 65 62 75 67 2d 2d 73 6f 75 72 63 65 2d 63 6f 64 65 2d 62 75 66 66 65 72 0a 20 tter-debug--source-code-buffer..
5880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
58a0 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 70 6f 69 6e 74 73 2d 74 6f 29 29 29 0a button-get.button.'points-to))).
58c0 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 67 6f 74 6f 2d .(defun.tree-sitter-debug--goto-
58e0 6e 6f 64 65 20 28 62 75 66 66 65 72 20 62 79 74 65 2d 72 61 6e 67 65 29 0a 20 20 22 53 77 69 74 node.(buffer.byte-range)..."Swit
5900 63 68 20 74 6f 20 42 55 46 46 45 52 2c 20 63 65 6e 74 65 72 69 6e 67 20 6f 6e 20 74 68 65 20 72 ch.to.BUFFER,.centering.on.the.r
5920 65 67 69 6f 6e 20 64 65 66 69 6e 65 64 20 62 79 20 4e 4f 44 45 2e 22 0a 20 20 28 73 77 69 74 63 egion.defined.by.NODE."...(switc
5940 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 62 75 66 66 65 72 29 h-to-buffer-other-window.buffer)
5960 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 62 79 74 65 2d 74 6f 2d 70 6f 73 69 74 69 6f 6e 20 ...(goto-char.(byte-to-position.
5980 28 63 61 72 20 62 79 74 65 2d 72 61 6e 67 65 29 29 29 0a 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 (car.byte-range)))...(push-mark.
59a0 28 62 79 74 65 2d 74 6f 2d 70 6f 73 69 74 69 6f 6e 20 28 63 64 72 20 62 79 74 65 2d 72 61 6e 67 (byte-to-position.(cdr.byte-rang
59c0 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 e))..............tree-sitter-deb
59e0 75 67 2d 68 69 67 68 6c 69 67 68 74 2d 6a 75 6d 70 2d 72 65 67 69 6f 6e 29 29 0a 0a 28 64 65 66 ug-highlight-jump-region))..(def
5a00 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 70 6c 61 79 2d 6e 6f un.tree-sitter-debug--display-no
5a20 64 65 20 28 6e 61 6d 65 64 2d 70 20 74 79 70 65 20 73 74 61 72 74 2d 62 79 74 65 20 65 6e 64 2d de.(named-p.type.start-byte.end-
5a40 62 79 74 65 20 64 65 70 74 68 29 0a 20 20 22 44 69 73 70 6c 61 79 20 4e 4f 44 45 20 74 68 61 74 byte.depth)..."Display.NODE.that
5a60 20 61 70 70 65 61 72 73 20 61 74 20 74 68 65 20 67 69 76 65 6e 20 44 45 50 54 48 20 69 6e 20 74 .appears.at.the.given.DEPTH.in.t
5a80 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 2e 22 0a 20 20 28 77 68 65 6e 20 6e 61 6d 65 64 2d 70 he.syntax.tree."...(when.named-p
5aa0 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2a 20 32 20 64 .....(insert.(make-string.(*.2.d
5ac0 65 70 74 68 29 20 3f 5c 20 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 2d 74 65 78 74 epth).?\.)).....(let.((node-text
5ae0 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 5c 6e 22 20 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 28 .(format."%s:\n".type))).......(
5b00 69 66 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 6a 75 6d 70 2d 62 75 74 74 6f 6e if.tree-sitter-debug-jump-button
5b20 73 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 62 75 74 74 6f 6e 20 6e 6f 64 65 2d s...........(insert-button.node-
5b40 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 61 text..........................'a
5b60 63 74 69 6f 6e 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 62 75 74 74 6f 6e ction.'tree-sitter-debug--button
5b80 2d 6e 6f 64 65 2d 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-lookup....................
5ba0 20 20 20 20 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 ......'follow-link.t............
5bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 6f 69 6e 74 73 2d 74 6f 20 60 28 2c 73 74 61 72 ..............'points-to.`(,star
5be0 74 2d 62 79 74 65 20 2e 20 2c 65 6e 64 2d 62 79 74 65 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e t-byte...,end-byte)).........(in
5c00 73 65 72 74 20 6e 6f 64 65 2d 74 65 78 74 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 74 72 65 sert.node-text)))))..(defvar.tre
5c20 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 74 72 61 76 65 72 73 61 6c 2d 6d 65 74 68 6f 64 20 e-sitter-debug-traversal-method.
5c40 3a 6d 61 70 63 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 :mapc)..(defun.tree-sitter-debug
5c60 2d 2d 64 69 73 70 6c 61 79 2d 74 72 65 65 20 28 5f 6f 6c 64 2d 74 72 65 65 29 0a 20 20 22 44 69 --display-tree.(_old-tree)..."Di
5c80 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 74 splay.the.current.`tree-sitter-t
5ca0 72 65 65 27 2e 22 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 52 65 2d 72 65 6e 64 65 72 20 6f 6e 6c 79 ree'."...;;.TODO:.Re-render.only
5cc0 20 61 66 66 65 63 74 65 64 20 6e 6f 64 65 73 2e 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 74 .affected.nodes....(when-let.((t
5ce0 72 65 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 20 20 28 77 69 74 68 ree.tree-sitter-tree)).....(with
5d00 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 -current-buffer.tree-sitter-debu
5d20 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 6c 65 74 20 28 62 75 66 66 65 g--tree-buffer.......(let.(buffe
5d40 72 2d 72 65 61 64 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 r-read-only).........(erase-buff
5d60 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 er).........(pcase.tree-sitter-d
5d80 65 62 75 67 2d 74 72 61 76 65 72 73 61 6c 2d 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 ebug-traversal-method...........
5da0 28 3a 6d 61 70 63 20 28 74 73 63 2d 74 72 61 76 65 72 73 65 2d 6d 61 70 63 0a 20 20 20 20 20 20 (:mapc.(tsc-traverse-mapc.......
5dc0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 70 73 29 0a 20 20 20 20 ............(lambda.(props).....
5de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 5b 2c ................(pcase-let.((`[,
5e00 6e 61 6d 65 64 2d 70 20 2c 74 79 70 65 20 2c 73 74 61 72 74 2d 62 79 74 65 20 2c 65 6e 64 2d 62 named-p.,type.,start-byte.,end-b
5e20 79 74 65 20 2c 64 65 70 74 68 5d 20 70 72 6f 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 yte.,depth].props)).............
5e40 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 ..........(tree-sitter-debug--di
5e60 73 70 6c 61 79 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 splay-node......................
5e80 20 20 6e 61 6d 65 64 2d 70 20 74 79 70 65 20 73 74 61 72 74 2d 62 79 74 65 20 65 6e 64 2d 62 79 ..named-p.type.start-byte.end-by
5ea0 74 65 20 64 65 70 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 te.depth)))...................tr
5ec0 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 3a 6e 61 6d 65 64 2d 70 20 3a ee...................[:named-p.:
5ee0 74 79 70 65 20 3a 73 74 61 72 74 2d 62 79 74 65 20 3a 65 6e 64 2d 62 79 74 65 20 3a 64 65 70 74 type.:start-byte.:end-byte.:dept
5f00 68 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3a 69 74 65 72 20 28 69 74 65 72 2d 64 6f 20 28 h]))...........(:iter.(iter-do.(
5f20 70 72 6f 70 73 20 28 74 73 63 2d 74 72 61 76 65 72 73 65 2d 69 74 65 72 0a 20 20 20 20 20 20 20 props.(tsc-traverse-iter........
5f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 65 65 20 ...........................tree.
5f60 5b 3a 6e 61 6d 65 64 2d 70 20 3a 74 79 70 65 20 3a 73 74 61 72 74 2d 62 79 74 65 20 3a 65 6e 64 [:named-p.:type.:start-byte.:end
5f80 2d 62 79 74 65 20 3a 64 65 70 74 68 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -byte.:depth])).................
5fa0 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 5b 2c 6e 61 6d 65 64 2d 70 20 2c 74 79 70 65 ...(pcase-let.((`[,named-p.,type
5fc0 20 2c 73 74 61 72 74 2d 62 79 74 65 20 2c 65 6e 64 2d 62 79 74 65 20 2c 64 65 70 74 68 5d 20 70 .,start-byte.,end-byte.,depth].p
5fe0 72 6f 70 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 rops))......................(tre
6000 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 70 6c 61 79 2d 6e 6f 64 65 0a 20 20 20 e-sitter-debug--display-node....
6020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 64 2d 70 20 74 79 70 65 20 ...................named-p.type.
6040 73 74 61 72 74 2d 62 79 74 65 20 65 6e 64 2d 62 79 74 65 20 64 65 70 74 68 29 29 29 29 0a 20 20 start-byte.end-byte.depth))))...
6060 20 20 20 20 20 20 20 20 28 3a 64 6f 20 28 74 73 63 2d 74 72 61 76 65 72 73 65 2d 64 6f 20 28 5b ........(:do.(tsc-traverse-do.([
6080 6e 61 6d 65 64 2d 70 20 74 79 70 65 20 73 74 61 72 74 2d 62 79 74 65 20 65 6e 64 2d 62 79 74 65 named-p.type.start-byte.end-byte
60a0 20 64 65 70 74 68 5d 20 74 72 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .depth].tree)..................(
60c0 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 70 6c 61 79 2d 6e 6f 64 65 0a tree-sitter-debug--display-node.
60e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 64 2d 70 20 74 79 70 65 20 73 ..................named-p.type.s
6100 74 61 72 74 2d 62 79 74 65 20 65 6e 64 2d 62 79 74 65 20 64 65 70 74 68 29 29 29 29 29 29 29 29 tart-byte.end-byte.depth))))))))
6120 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 73 65 74 75 ..(defun.tree-sitter-debug--setu
6140 70 20 28 29 0a 20 20 22 53 65 74 20 75 70 20 73 79 6e 74 61 78 20 74 72 65 65 20 64 65 62 75 67 p.()..."Set.up.syntax.tree.debug
6160 67 69 6e 67 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 ging.in.the.current.buffer."...(
6180 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 74 72 65 65 2d 73 69 74 74 65 unless.(buffer-live-p.tree-sitte
61a0 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 71 20 r-debug--tree-buffer).....(setq.
61c0 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 0a 20 tree-sitter-debug--tree-buffer..
61e0 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 28 66 6f 72 .........(get-buffer-create.(for
6200 6d 61 74 20 22 2a 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 3a 20 25 73 2a 22 20 28 62 75 mat."*tree-sitter-tree:.%s*".(bu
6220 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 6f 75 72 63 65 2d 62 ffer-name)))))...(let.((source-b
6240 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 69 uffer.(current-buffer))).....(wi
6260 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 th-current-buffer.tree-sitter-de
6280 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 64 bug--tree-buffer.......(buffer-d
62a0 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 isable-undo).......(setq.tree-si
62c0 74 74 65 72 2d 64 65 62 75 67 2d 2d 73 6f 75 72 63 65 2d 63 6f 64 65 2d 62 75 66 66 65 72 20 73 tter-debug--source-code-buffer.s
62e0 6f 75 72 63 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d ource-buffer.............buffer-
6300 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 74 72 65 65 read-only.t)))...(add-hook.'tree
6320 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 -sitter-after-change-functions.#
6340 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 70 6c 61 79 2d 74 72 65 65 'tree-sitter-debug--display-tree
6360 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 62 .nil.:local)...(add-hook.'kill-b
6380 75 66 66 65 72 2d 68 6f 6f 6b 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d uffer-hook.#'tree-sitter-debug--
63a0 74 65 61 72 64 6f 77 6e 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 64 69 73 70 6c 61 79 2d teardown.nil.:local)...(display-
63c0 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 buffer.tree-sitter-debug--tree-b
63e0 75 66 66 65 72 29 0a 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 uffer)...(tree-sitter-debug--dis
6400 70 6c 61 79 2d 74 72 65 65 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 play-tree.nil))..(defun.tree-sit
6420 74 65 72 2d 64 65 62 75 67 2d 2d 74 65 61 72 64 6f 77 6e 20 28 29 0a 20 20 22 54 65 61 72 20 64 ter-debug--teardown.()..."Tear.d
6440 6f 77 6e 20 73 79 6e 74 61 78 20 74 72 65 65 20 64 65 62 75 67 67 69 6e 67 20 69 6e 20 74 68 65 own.syntax.tree.debugging.in.the
6460 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b .current.buffer."...(remove-hook
6480 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 .'tree-sitter-after-change-funct
64a0 69 6f 6e 73 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 64 69 73 70 6c 61 ions.#'tree-sitter-debug--displa
64c0 79 2d 74 72 65 65 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c y-tree.:local)...(when.(buffer-l
64e0 69 76 65 2d 70 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 ive-p.tree-sitter-debug--tree-bu
6500 66 66 65 72 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 ffer).....(kill-buffer.tree-sitt
6520 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 73 65 74 71 er-debug--tree-buffer).....(setq
6540 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 2d 74 72 65 65 2d 62 75 66 66 65 72 20 .tree-sitter-debug--tree-buffer.
6560 6e 69 6c 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d nil)))..;;;###autoload.(define-m
6580 69 6e 6f 72 2d 6d 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 6d 6f 64 65 inor-mode.tree-sitter-debug-mode
65a0 0a 20 20 22 54 6f 67 67 6c 65 20 73 79 6e 74 61 78 20 74 72 65 65 20 64 65 62 75 67 67 69 6e 67 ..."Toggle.syntax.tree.debugging
65c0 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 54 68 69 73 20 6d 6f .for.the.current.buffer..This.mo
65e0 64 65 20 64 69 73 70 6c 61 79 73 20 74 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 20 69 6e 20 61 de.displays.the.syntax.tree.in.a
6600 6e 6f 74 68 65 72 20 62 75 66 66 65 72 2c 20 61 6e 64 20 6b 65 65 70 73 20 69 74 20 75 70 2d 74 nother.buffer,.and.keeps.it.up-t
6620 6f 2d 64 61 74 65 2e 22 0a 20 20 3a 69 6e 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 3a 67 72 o-date."...:init-value.nil...:gr
6640 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 0a 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d oup.'tree-sitter...(tree-sitter-
6660 2d 68 61 6e 64 6c 65 2d 64 65 70 65 6e 64 65 6e 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 -handle-dependent.tree-sitter-de
6680 62 75 67 2d 6d 6f 64 65 0a 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 bug-mode.....#'tree-sitter-debug
66a0 2d 2d 73 65 74 75 70 0a 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d --setup.....#'tree-sitter-debug-
66c0 2d 74 65 61 72 64 6f 77 6e 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 -teardown))..;;;###autoload.(def
66e0 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2d 71 75 65 72 79 20 28 70 61 74 74 un.tree-sitter-debug-query.(patt
6700 65 72 6e 73 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 74 63 68 65 73 20 74 61 67 2d 61 73 73 69 67 erns.&optional.matches.tag-assig
6720 6e 65 72 29 0a 20 20 22 45 78 65 63 75 74 65 20 71 75 65 72 79 20 50 41 54 54 45 52 4e 53 20 61 ner)..."Execute.query.PATTERNS.a
6740 67 61 69 6e 73 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 6e 74 61 78 20 74 72 65 65 20 61 gainst.the.current.syntax.tree.a
6760 6e 64 20 72 65 74 75 72 6e 20 63 61 70 74 75 72 65 73 2e 0a 0a 49 66 20 74 68 65 20 6f 70 74 69 nd.return.captures...If.the.opti
6780 6f 6e 61 6c 20 61 72 67 20 4d 41 54 43 48 45 53 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 6d 61 74 onal.arg.MATCHES.is.non-nil,.mat
67a0 63 68 65 73 20 28 66 72 6f 6d 20 60 74 73 63 2d 71 75 65 72 79 2d 6d 61 74 63 68 65 73 27 29 20 ches.(from.`tsc-query-matches').
67c0 61 72 65 0a 72 65 74 75 72 6e 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 63 61 70 74 75 72 65 73 are.returned.instead.of.captures
67e0 20 28 66 72 6f 6d 20 60 74 73 63 2d 71 75 65 72 79 2d 63 61 70 74 75 72 65 73 27 29 2e 0a 0a 49 .(from.`tsc-query-captures')...I
6800 66 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 54 41 47 2d 41 53 53 49 47 4e 45 52 20 f.the.optional.arg.TAG-ASSIGNER.
6820 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 70 61 73 73 65 64 20 74 6f 20 60 74 73 63 is.non-nil,.it.is.passed.to.`tsc
6840 2d 6d 61 6b 65 2d 71 75 65 72 79 27 20 74 6f 0a 61 73 73 69 67 6e 20 63 75 73 74 6f 6d 20 74 61 -make-query'.to.assign.custom.ta
6860 67 73 20 74 6f 20 63 61 70 74 75 72 65 20 6e 61 6d 65 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 gs.to.capture.names...This.funct
6880 69 6f 6e 20 69 73 20 70 72 69 6d 61 72 69 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 64 65 62 75 ion.is.primarily.useful.for.debu
68a0 67 67 69 6e 67 20 70 75 72 70 6f 73 65 2e 20 4f 74 68 65 72 20 70 61 63 6b 61 67 65 73 20 73 68 gging.purpose..Other.packages.sh
68c0 6f 75 6c 64 0a 62 75 69 6c 64 20 71 75 65 72 69 65 73 20 61 6e 64 20 63 75 72 73 6f 72 73 20 6f ould.build.queries.and.cursors.o
68e0 6e 63 65 2c 20 74 68 65 6e 20 72 65 75 73 65 20 74 68 65 6d 2e 22 0a 20 20 28 6c 65 74 2a 20 28 nce,.then.reuse.them."...(let*.(
6900 28 71 75 65 72 79 20 28 74 73 63 2d 6d 61 6b 65 2d 71 75 65 72 79 20 74 72 65 65 2d 73 69 74 74 (query.(tsc-make-query.tree-sitt
6920 65 72 2d 6c 61 6e 67 75 61 67 65 20 70 61 74 74 65 72 6e 73 20 74 61 67 2d 61 73 73 69 67 6e 65 er-language.patterns.tag-assigne
6940 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 6f 6f 74 2d 6e 6f 64 65 20 28 74 73 63 2d 72 6f 6f r))..........(root-node.(tsc-roo
6960 74 2d 6e 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 29 0a 20 20 20 20 28 t-node.tree-sitter-tree))).....(
6980 74 73 63 2d 2d 77 69 74 68 6f 75 74 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 tsc--without-restriction.......(
69a0 69 66 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 71 75 65 72 79 2d if.matches...........(tsc-query-
69c0 6d 61 74 63 68 65 73 20 71 75 65 72 79 20 72 6f 6f 74 2d 6e 6f 64 65 20 23 27 74 73 63 2d 2d 62 matches.query.root-node.#'tsc--b
69e0 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 uffer-substring-no-properties)..
6a00 20 20 20 20 20 20 20 28 74 73 63 2d 71 75 65 72 79 2d 63 61 70 74 75 72 65 73 20 71 75 65 72 79 .......(tsc-query-captures.query
6a20 20 72 6f 6f 74 2d 6e 6f 64 65 20 23 27 74 73 63 2d 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 .root-node.#'tsc--buffer-substri
6a40 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 29 29 29 29 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a ng-no-properties)))))..;;;.TODO:
6a60 20 4b 69 6c 6c 20 74 72 65 65 2d 62 75 66 66 65 72 20 77 68 65 6e 20 60 74 72 65 65 2d 73 69 74 .Kill.tree-buffer.when.`tree-sit
6a80 74 65 72 27 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 69 73 20 74 75 72 6e 65 64 20 6f 66 66 2e 0a 0a ter'.minor.mode.is.turned.off...
6aa0 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 29 0a 3b 3b 3b (provide.'tree-sitter-debug).;;;
6ac0 20 74 72 65 65 2d 73 69 74 74 65 72 2d 64 65 62 75 67 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a .tree-sitter-debug.el.ends.here.
6ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c00 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
6c20 69 74 74 65 72 2d 68 6c 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-hl.el.....................
6c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
6c80 30 30 36 35 35 31 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 34 37 00 20 30 00 00 00 0065510.00000000000.016447..0...
6ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
6d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
6d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6e00 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2e 65 6c 20 2d 2d 2d 20 53 79 6e 74 61 78 ;;;.tree-sitter-hl.el.---.Syntax
6e20 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 74 72 65 65 2d 73 69 74 74 .highlighting.based.on.tree-sitt
6e40 65 72 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e er.-*-.lexical-binding:.t;.codin
6e60 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 g:.utf-8.-*-..;;.Copyright.(C).2
6e80 30 32 30 20 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 020..Tu...n-Anh.Nguy...n.;;.;;.A
6ea0 75 74 68 6f 72 3a 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c uthor:.Tu...n-Anh.Nguy...n.<ubol
6ec0 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 54 69 6d 6f onton@gmail.com>.;;.........Timo
6ee0 20 76 6f 6e 20 48 61 72 74 7a 20 3c 63 30 75 6e 74 6c 69 7a 7a 69 40 67 6d 61 69 6c 2e 63 6f 6d .von.Hartz.<c0untlizzi@gmail.com
6f00 3e 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 4d 49 >.;;.SPDX-License-Identifier:.MI
6f20 54 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 T..;;;.Commentary:..;;.This.file
6f40 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 6e 65 77 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 .implements.a.new.syntax.highlig
6f60 68 74 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 27 2e 0a 0a 3b hting.based.on.`tree-sitter'...;
6f80 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 ;;.Code:..(require.'tree-sitter)
6fa0 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 ..(eval-when-compile...(require.
6fc0 27 63 6c 2d 6c 69 62 29 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 'cl-lib))..;;;.-----------------
6fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
7000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 ---------------------------.;;;.
7020 46 61 63 65 73 20 66 6f 72 20 63 6f 6d 6d 6f 6e 6c 79 20 75 73 65 64 20 68 69 67 68 6c 69 67 68 Faces.for.commonly.used.highligh
7040 74 20 6e 61 6d 65 73 3a 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 43 41 t.names:.`tree-sitter-hl-face:CA
7060 50 54 55 52 45 2d 4e 41 4d 45 27 2e 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 65 65 2d 73 69 74 PTURE-NAME'...(defgroup.tree-sit
7080 74 65 72 2d 68 6c 20 6e 69 6c 0a 20 20 22 53 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e ter-hl.nil..."Syntax.highlightin
70a0 67 20 75 73 69 6e 67 20 74 72 65 65 2d 73 69 74 74 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 g.using.tree-sitter."...:group.'
70c0 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 65 65 2d 73 69 74 tree-sitter)..(defgroup.tree-sit
70e0 74 65 72 2d 68 6c 2d 66 61 63 65 73 20 6e 69 6c 0a 20 20 22 46 61 63 65 73 20 66 6f 72 20 68 69 ter-hl-faces.nil..."Faces.for.hi
7100 67 68 6c 69 67 68 74 69 6e 67 20 63 6f 64 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 ghlighting.code."...:group.'tree
7120 2d 73 69 74 74 65 72 2d 68 6c 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -sitter-hl)..;;;.---------------
7140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 46 75 6e 63 74 69 ---------------------.;;;.Functi
7160 6f 6e 73 2e 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 ons...(defface.tree-sitter-hl-fa
7180 63 65 3a 66 75 6e 63 74 69 6f 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 ce:function...'((default.:inheri
71a0 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 t.font-lock-function-name-face))
71c0 0a 20 20 22 46 61 63 65 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f ..."Face.for.function.declaratio
71e0 6e 73 2c 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61 6e 64 20 62 69 6e 64 69 6e 67 73 2e 22 0a 20 ns,.definitions.and.bindings."..
7200 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a .:group.'tree-sitter-hl-faces)..
7220 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 66 75 6e (defface.tree-sitter-hl-face:fun
7240 63 74 69 6f 6e 2e 63 61 6c 6c 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 ction.call...'((default.:inherit
7260 20 28 6c 69 6e 6b 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 .(link.font-lock-function-name-f
7280 61 63 65 29 20 3a 75 6e 64 65 72 6c 69 6e 65 20 6e 69 6c 29 29 0a 20 20 22 46 61 63 65 20 66 6f ace).:underline.nil))..."Face.fo
72a0 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 r.function.calls."...:group.'tre
72c0 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 e-sitter-hl-faces)..(defface.tre
72e0 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 66 75 6e 63 74 69 6f 6e 2e 62 75 69 6c 74 69 e-sitter-hl-face:function.builti
7300 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 n...'((default.:inherit.font-loc
7320 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 75 69 k-builtin-face))..."Face.for.bui
7340 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d ltin.functions."...:group.'tree-
7360 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 52 65 6d 6f sitter-hl-faces)..;;;.TODO:.Remo
7380 76 65 20 74 68 69 73 3f 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c ve.this?.(defface.tree-sitter-hl
73a0 2d 66 61 63 65 3a 66 75 6e 63 74 69 6f 6e 2e 73 70 65 63 69 61 6c 0a 20 20 27 28 28 64 65 66 61 -face:function.special...'((defa
73c0 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 72 6f 63 65 73 ult.:inherit.font-lock-preproces
73e0 73 6f 72 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 73 sor-face))..."Face.for.functions
7400 20 74 68 61 74 20 61 6c 74 65 72 20 74 68 69 6e 67 73 20 61 74 20 63 6f 6d 70 69 6c 65 2f 6c 6f .that.alter.things.at.compile/lo
7420 61 64 20 74 69 6d 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d ad.time."...:group.'tree-sitter-
7440 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 52 65 6e 61 6d 65 20 74 68 69 73 hl-faces)..;;;.TODO:.Rename.this
7460 3f 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 66 ?.(defface.tree-sitter-hl-face:f
7480 75 6e 63 74 69 6f 6e 2e 6d 61 63 72 6f 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 unction.macro...'((default.:inhe
74a0 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 72 6f 63 65 73 73 6f 72 2d 66 61 63 65 29 rit.font-lock-preprocessor-face)
74c0 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6d 61 63 72 6f 20 63 61 6c 6c 73 2e 22 0a 20 20 3a 67 )..."Face.for.macro.calls."...:g
74e0 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 roup.'tree-sitter-hl-faces)..(de
7500 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6d 65 74 68 6f 64 fface.tree-sitter-hl-face:method
7520 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 ...'((default.:inherit.tree-sitt
7540 65 72 2d 68 6c 2d 66 61 63 65 3a 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 22 46 61 63 65 20 66 6f er-hl-face:function))..."Face.fo
7560 72 20 6d 65 74 68 6f 64 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 6e 64 20 64 65 66 69 6e 69 r.method.declarations.and.defini
7580 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c tions."...:group.'tree-sitter-hl
75a0 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c -faces)..(defface.tree-sitter-hl
75c0 2d 66 61 63 65 3a 6d 65 74 68 6f 64 2e 63 61 6c 6c 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a -face:method.call...'((default.:
75e0 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 66 75 6e 63 inherit.tree-sitter-hl-face:func
7600 74 69 6f 6e 2e 63 61 6c 6c 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6d 65 74 68 6f 64 20 69 tion.call))..."Face.for.method.i
7620 6e 76 6f 63 61 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 nvocations."...:group.'tree-sitt
7640 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 er-hl-faces)..(define-obsolete-f
7660 61 63 65 2d 61 6c 69 61 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 66 ace-alias.'tree-sitter-hl-face:f
7680 75 6e 63 74 69 6f 6e 2e 6d 65 74 68 6f 64 0a 20 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c unction.method...'tree-sitter-hl
76a0 2d 66 61 63 65 3a 6d 65 74 68 6f 64 20 22 30 2e 39 2e 30 22 29 0a 0a 28 64 65 66 69 6e 65 2d 6f -face:method."0.9.0")..(define-o
76c0 62 73 6f 6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d bsolete-face-alias.'tree-sitter-
76e0 68 6c 2d 66 61 63 65 3a 66 75 6e 63 74 69 6f 6e 2e 6d 65 74 68 6f 64 2e 63 61 6c 6c 0a 20 20 27 hl-face:function.method.call...'
7700 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6d 65 74 68 6f 64 2e 63 61 6c 6c 20 tree-sitter-hl-face:method.call.
7720 22 30 2e 39 2e 30 22 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d "0.9.0")..;;;.------------------
7740 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 54 79 70 65 73 2e 0a 0a 28 ------------------.;;;.Types...(
7760 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 79 70 65 defface.tree-sitter-hl-face:type
7780 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b ...'((default.:inherit.font-lock
77a0 2d 74 79 70 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 74 79 70 65 73 2e 22 -type-face))..."Face.for.types."
77c0 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 ...:group.'tree-sitter-hl-faces)
77e0 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 ..(defface.tree-sitter-hl-face:t
7800 79 70 65 2e 70 61 72 61 6d 65 74 65 72 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 ype.parameter...'((default.:inhe
7820 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 rit.font-lock-variable-name-face
7840 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 74 79 70 65 20 70 61 72 61 6d 65 74 65 72 73 2e 22 ))..."Face.for.type.parameters."
7860 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 ...:group.'tree-sitter-hl-faces)
7880 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 ..(defface.tree-sitter-hl-face:t
78a0 79 70 65 2e 61 72 67 75 6d 65 6e 74 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 ype.argument...'((default.:inher
78c0 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 79 70 65 29 29 0a 20 20 it.tree-sitter-hl-face:type))...
78e0 22 46 61 63 65 20 66 6f 72 20 74 79 70 65 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 "Face.for.type.arguments."...:gr
7900 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 oup.'tree-sitter-hl-faces)..(def
7920 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 79 70 65 2e 62 75 face.tree-sitter-hl-face:type.bu
7940 69 6c 74 69 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 iltin...'((default.:inherit.font
7960 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 -lock-builtin-face))..."Face.for
7980 20 62 75 69 6c 74 69 6e 20 74 79 70 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d .builtin.types."...:group.'tree-
79a0 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d sitter-hl-faces)..(defface.tree-
79c0 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 79 70 65 2e 73 75 70 65 72 0a 20 20 27 28 28 64 sitter-hl-face:type.super...'((d
79e0 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 efault.:inherit.tree-sitter-hl-f
7a00 61 63 65 3a 74 79 70 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 73 75 70 65 72 20 74 79 70 ace:type))..."Face.for.super.typ
7a20 65 73 20 69 6e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 61 6e 64 20 74 79 70 65 20 63 6f 6e 73 74 es.in.definitions.and.type.const
7a40 72 61 69 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 raints."...:group.'tree-sitter-h
7a60 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 52 65 6d 6f 76 65 20 74 68 69 73 3f l-faces)..;;;.TODO:.Remove.this?
7a80 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 63 6f .(defface.tree-sitter-hl-face:co
7aa0 6e 73 74 72 75 63 74 6f 72 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 nstructor...'((default.:inherit.
7ac0 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 79 70 65 29 29 0a 20 20 22 46 61 tree-sitter-hl-face:type))..."Fa
7ae0 63 65 20 66 6f 72 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 ce.for.constructors."...:group.'
7b00 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d tree-sitter-hl-faces)..;;;.-----
7b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
7b40 3b 3b 3b 20 56 61 72 69 61 62 6c 65 73 2c 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 0a 3b 3b 3b 20 ;;;.Variables,.properties...;;;.
7b60 54 4f 44 4f 3a 20 41 64 64 20 76 61 72 69 61 62 6c 65 2e 75 73 65 3f 0a 28 64 65 66 66 61 63 65 TODO:.Add.variable.use?.(defface
7b80 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 76 61 72 69 61 62 6c 65 0a 20 20 .tree-sitter-hl-face:variable...
7ba0 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 '((default.:inherit.font-lock-va
7bc0 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 76 riable-name-face))..."Face.for.v
7be0 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 64 65 66 69 6e 69 74 69 6f 6e ariable.declarations,.definition
7c00 73 2c 20 62 69 6e 64 69 6e 67 73 20 61 6e 64 20 6d 75 74 61 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 s,.bindings.and.mutations."...:g
7c20 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 roup.'tree-sitter-hl-faces)..(de
7c40 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 76 61 72 69 61 62 fface.tree-sitter-hl-face:variab
7c60 6c 65 2e 70 61 72 61 6d 65 74 65 72 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 le.parameter...'((default.:inher
7c80 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 76 61 72 69 61 62 6c 65 29 it.tree-sitter-hl-face:variable)
7ca0 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 )..."Face.for.function.parameter
7cc0 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 s."...:group.'tree-sitter-hl-fac
7ce0 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 es)..(defface.tree-sitter-hl-fac
7d00 65 3a 76 61 72 69 61 62 6c 65 2e 62 75 69 6c 74 69 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 e:variable.builtin...'((default.
7d20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 :inherit.font-lock-builtin-face)
7d40 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 75 69 6c 74 69 6e 20 76 61 72 69 61 62 6c 65 73 2e )..."Face.for.builtin.variables.
7d60 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 "...:group.'tree-sitter-hl-faces
7d80 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a )..(defface.tree-sitter-hl-face:
7da0 76 61 72 69 61 62 6c 65 2e 73 70 65 63 69 61 6c 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 variable.special...'((default.:i
7dc0 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 77 61 72 6e 69 6e 67 2d 66 61 63 65 29 29 0a nherit.font-lock-warning-face)).
7de0 20 20 22 46 61 63 65 20 66 6f 72 20 5c 22 64 61 6e 67 65 72 6f 75 73 5c 22 20 76 61 72 69 61 62 .."Face.for.\"dangerous\".variab
7e00 6c 65 73 2c 20 65 2e 67 2e 20 6d 75 74 61 62 6c 65 20 6f 72 20 64 79 6e 61 6d 69 63 61 6c 6c 79 les,.e.g..mutable.or.dynamically
7e20 2d 62 6f 75 6e 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 -bound."...:group.'tree-sitter-h
7e40 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 44 65 66 69 6e 65 20 61 20 6d 6f 72 l-faces)..;;;.TODO:.Define.a.mor
7e60 65 20 73 65 6e 73 69 62 6c 65 20 64 65 66 61 75 6c 74 2e 0a 28 64 65 66 66 61 63 65 20 74 72 65 e.sensible.default..(defface.tre
7e80 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 72 6f 70 65 72 74 79 0a 20 20 27 28 28 64 e-sitter-hl-face:property...'((d
7ea0 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 efault.:inherit.font-lock-consta
7ec0 6e 74 2d 66 61 63 65 20 3a 73 6c 61 6e 74 20 69 74 61 6c 69 63 29 29 0a 20 20 22 46 61 63 65 20 nt-face.:slant.italic))..."Face.
7ee0 66 6f 72 20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d for.properties."...:group.'tree-
7f00 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d sitter-hl-faces)..(defface.tree-
7f20 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 72 6f 70 65 72 74 79 2e 64 65 66 69 6e 69 74 69 sitter-hl-face:property.definiti
7f40 6f 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 on...'((default.:inherit.tree-si
7f60 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 76 61 72 69 61 62 6c 65 2e 70 61 72 61 6d 65 74 65 72 29 tter-hl-face:variable.parameter)
7f80 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 70 72 6f 70 65 72 74 79 20 64 65 63 6c 61 72 61 74 69 )..."Face.for.property.declarati
7fa0 6f 6e 73 20 61 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 ons.and.definitions."...:group.'
7fc0 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d tree-sitter-hl-faces)..;;;.-----
7fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
8000 3b 3b 3b 20 53 74 72 69 6e 67 73 2c 20 63 6f 6d 6d 65 6e 74 73 2c 20 74 65 78 74 20 70 72 6f 73 ;;;.Strings,.comments,.text.pros
8020 65 73 2e 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 es...(defface.tree-sitter-hl-fac
8040 65 3a 63 6f 6d 6d 65 6e 74 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 e:comment...'((default.:inherit.
8060 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 font-lock-comment-face))..."Face
8080 20 66 6f 72 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 .for.comments."...:group.'tree-s
80a0 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 itter-hl-faces)..(defface.tree-s
80c0 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 64 6f 63 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a itter-hl-face:doc...'((default.:
80e0 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 6f 63 2d 66 61 63 65 29 29 0a 20 20 22 inherit.font-lock-doc-face))..."
8100 46 61 63 65 20 66 6f 72 20 64 6f 63 73 74 72 69 6e 67 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 Face.for.docstrings."...:group.'
8120 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 tree-sitter-hl-faces)..(defface.
8140 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 73 74 72 69 6e 67 0a 20 20 27 28 28 tree-sitter-hl-face:string...'((
8160 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e default.:inherit.font-lock-strin
8180 67 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 73 74 72 69 6e 67 73 2e 22 0a 20 g-face))..."Face.for.strings."..
81a0 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a .:group.'tree-sitter-hl-faces)..
81c0 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 73 74 72 (defface.tree-sitter-hl-face:str
81e0 69 6e 67 2e 73 70 65 63 69 61 6c 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 ing.special...'((default.:inheri
8200 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 73 74 72 69 6e 67 20 3a 77 65 t.tree-sitter-hl-face:string.:we
8220 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 73 70 65 63 69 61 6c 20 ight.bold))..."Face.for.special.
8240 73 74 72 69 6e 67 73 2c 20 65 2e 67 2e 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e strings,.e.g..regular.expression
8260 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 s."...:group.'tree-sitter-hl-fac
8280 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 es)..(defface.tree-sitter-hl-fac
82a0 65 3a 65 73 63 61 70 65 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 e:escape...'((default.:inherit.f
82c0 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 ont-lock-keyword-face))..."Face.
82e0 66 6f 72 20 65 73 63 61 70 65 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 73 74 72 69 6e 67 73 for.escape.characters.in.strings
8300 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 ."...:group.'tree-sitter-hl-face
8320 73 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 52 65 6e 61 6d 65 20 74 68 69 73 3f 0a 28 64 65 66 66 s)..;;;.TODO:.Rename.this?.(deff
8340 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 65 6d 62 65 64 64 65 64 ace.tree-sitter-hl-face:embedded
8360 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 ...'((default.:inherit.default))
8380 0a 20 20 22 46 61 63 65 20 66 6f 72 20 65 6d 62 65 64 64 65 64 20 65 78 70 72 65 73 73 69 6f 6e ..."Face.for.embedded.expression
83a0 73 20 61 6e 64 20 63 6f 64 65 20 66 72 61 67 6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 s.and.code.fragments."...:group.
83c0 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 'tree-sitter-hl-faces)..;;;.----
83e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
8400 0a 3b 3b 3b 20 41 74 6f 6d 69 63 73 2c 20 63 6f 6e 73 74 61 6e 74 73 2e 0a 0a 28 64 65 66 66 61 .;;;.Atomics,.constants...(deffa
8420 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6b 65 79 77 6f 72 64 0a 20 ce.tree-sitter-hl-face:keyword..
8440 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b .'((default.:inherit.font-lock-k
8460 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6b 65 79 77 6f 72 eyword-face))..."Face.for.keywor
8480 64 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 ds."...:group.'tree-sitter-hl-fa
84a0 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 ces)..(defface.tree-sitter-hl-fa
84c0 63 65 3a 6f 70 65 72 61 74 6f 72 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 ce:operator...'((default.:inheri
84e0 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6b 65 79 77 6f 72 64 29 29 0a t.tree-sitter-hl-face:keyword)).
8500 20 20 22 46 61 63 65 20 66 6f 72 20 6f 70 65 72 61 74 6f 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 .."Face.for.operators."...:group
8520 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 .'tree-sitter-hl-faces)..(deffac
8540 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6c 61 62 65 6c 0a 20 20 27 28 e.tree-sitter-hl-face:label...'(
8560 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 (default.:inherit.font-lock-prep
8580 72 6f 63 65 73 73 6f 72 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6c 61 62 65 rocessor-face))..."Face.for.labe
85a0 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 ls."...:group.'tree-sitter-hl-fa
85c0 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 ces)..(defface.tree-sitter-hl-fa
85e0 63 65 3a 63 6f 6e 73 74 61 6e 74 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 ce:constant...'((default.:inheri
8600 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 46 t.font-lock-constant-face))..."F
8620 61 63 65 20 66 6f 72 20 63 6f 6e 73 74 61 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 ace.for.constants."...:group.'tr
8640 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 ee-sitter-hl-faces)..(defface.tr
8660 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 63 6f 6e 73 74 61 6e 74 2e 62 75 69 6c 74 ee-sitter-hl-face:constant.built
8680 69 6e 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f in...'((default.:inherit.font-lo
86a0 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 75 ck-builtin-face))..."Face.for.bu
86c0 69 6c 74 69 6e 20 63 6f 6e 73 74 61 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 iltin.constants."...:group.'tree
86e0 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 -sitter-hl-faces)..(defface.tree
8700 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6e 75 6d 62 65 72 0a 20 20 27 28 28 64 65 66 61 -sitter-hl-face:number...'((defa
8720 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 ult.:inherit.tree-sitter-hl-face
8740 3a 63 6f 6e 73 74 61 6e 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6e 75 6d 62 65 72 73 2e :constant))..."Face.for.numbers.
8760 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 "...:group.'tree-sitter-hl-faces
8780 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d )..;;;.-------------------------
87a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 50 75 6e 63 74 75 61 74 69 6f 6e 73 20 28 61 6b -----------.;;;.Punctuations.(ak
87c0 61 2e 20 73 68 6f 75 6c 64 2d 62 65 2d 64 69 6d 6d 65 64 29 2e 0a 0a 28 64 65 66 66 61 63 65 20 a..should-be-dimmed)...(defface.
87e0 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 75 6e 63 74 75 61 74 69 6f 6e 0a tree-sitter-hl-face:punctuation.
8800 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a ..'((default.:inherit.default)).
8820 20 20 22 46 61 63 65 20 66 6f 72 20 70 75 6e 63 74 75 61 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 .."Face.for.punctuations."...:gr
8840 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 oup.'tree-sitter-hl-faces)..(def
8860 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 75 6e 63 74 75 61 face.tree-sitter-hl-face:punctua
8880 74 69 6f 6e 2e 62 72 61 63 6b 65 74 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 tion.bracket...'((default.:inher
88a0 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 75 6e 63 74 75 61 74 69 it.tree-sitter-hl-face:punctuati
88c0 6f 6e 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 72 61 63 6b 65 74 73 2e 22 0a 20 20 3a 67 on))..."Face.for.brackets."...:g
88e0 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 roup.'tree-sitter-hl-faces)..(de
8900 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 75 6e 63 74 75 fface.tree-sitter-hl-face:punctu
8920 61 74 69 6f 6e 2e 64 65 6c 69 6d 69 74 65 72 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e ation.delimiter...'((default.:in
8940 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 75 6e 63 74 75 herit.tree-sitter-hl-face:punctu
8960 61 74 69 6f 6e 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 64 65 6c 69 6d 69 74 65 72 73 2e 22 ation))..."Face.for.delimiters."
8980 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 ...:group.'tree-sitter-hl-faces)
89a0 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 70 ..(defface.tree-sitter-hl-face:p
89c0 75 6e 63 74 75 61 74 69 6f 6e 2e 73 70 65 63 69 61 6c 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 unctuation.special...'((default.
89e0 3a 69 6e 68 65 72 69 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 6b 65 79 :inherit.tree-sitter-hl-face:key
8a00 77 6f 72 64 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 73 70 65 63 69 61 6c 20 70 75 6e 63 74 word))..."Face.for.special.punct
8a20 75 61 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d uations."...:group.'tree-sitter-
8a40 68 6c 2d 66 61 63 65 73 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d hl-faces)..;;;.-----------------
8a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 4d 61 72 6b 75 70 73 2e -------------------.;;;.Markups.
8a80 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 74 ..(defface.tree-sitter-hl-face:t
8aa0 61 67 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f ag...'((default.:inherit.font-lo
8ac0 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 74 61 ck-builtin-face))..."Face.for.ta
8ae0 67 73 20 69 6e 20 6d 61 72 6b 75 70 20 6c 61 6e 67 75 61 67 65 73 2e 22 0a 20 20 3a 67 72 6f 75 gs.in.markup.languages."...:grou
8b00 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 p.'tree-sitter-hl-faces)..(deffa
8b20 63 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 61 74 74 72 69 62 75 74 65 ce.tree-sitter-hl-face:attribute
8b40 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b ...'((default.:inherit.font-lock
8b60 2d 70 72 65 70 72 6f 63 65 73 73 6f 72 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 -preprocessor-face))..."Face.for
8b80 20 61 74 74 72 69 62 75 74 65 73 20 6d 61 72 6b 75 70 20 6c 61 6e 67 75 61 67 65 73 2e 22 0a 20 .attributes.markup.languages."..
8ba0 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 73 29 0a 0a .:group.'tree-sitter-hl-faces)..
8bc0 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ;;;.----------------------------
8be0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
8c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 49 6e 74 65 72 66 61 63 65 73 20 ----------------.;;;.Interfaces.
8c20 66 6f 72 20 6d 6f 64 65 73 20 61 6e 64 20 65 6e 64 20 75 73 65 72 73 2e 0a 0a 28 64 65 66 63 75 for.modes.and.end.users...(defcu
8c40 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 75 73 65 2d 66 6f 6e 74 2d 6c 6f 63 stom.tree-sitter-hl-use-font-loc
8c60 6b 2d 6b 65 79 77 6f 72 64 73 20 3a 65 78 63 65 70 74 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 k-keywords.:except-font-lock-def
8c80 61 75 6c 74 73 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 6b 65 65 70 20 75 73 69 6e 67 20 74 aults..."Whether.to.keep.using.t
8ca0 68 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 70 72 6f 76 69 64 65 64 20 62 79 20 60 66 6f 6e he.highlighting.provided.by.`fon
8cc0 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 27 2e 0a 49 66 20 60 3a 65 78 63 65 70 74 2d 66 6f t-lock-keywords'..If.`:except-fo
8ce0 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 27 2c 20 74 68 65 6e 20 6b 65 79 77 6f 72 64 73 nt-lock-defaults',.then.keywords
8d00 20 73 70 65 63 69 66 69 65 64 20 62 79 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 .specified.by.`font-lock-default
8d20 73 27 0a 61 72 65 20 69 67 6e 6f 72 65 64 2c 20 77 68 69 6c 65 20 6b 65 79 77 6f 72 64 73 20 61 s'.are.ignored,.while.keywords.a
8d40 64 64 65 64 20 74 68 72 6f 75 67 68 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 64 64 2d 6b 65 79 77 dded.through.`font-lock-add-keyw
8d60 6f 72 64 73 27 20 61 72 65 20 75 73 65 64 2e 20 54 68 65 0a 66 6f 72 6d 65 72 20 69 73 20 74 79 ords'.are.used..The.former.is.ty
8d80 70 69 63 61 6c 6c 79 20 73 65 74 20 62 79 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 2c 20 77 68 69 6c pically.set.by.major.modes,.whil
8da0 65 20 74 68 65 20 6c 61 74 74 65 72 20 69 73 20 75 73 75 61 6c 6c 79 20 73 65 74 20 62 79 20 6d e.the.latter.is.usually.set.by.m
8dc0 69 6e 6f 72 0a 6d 6f 64 65 73 20 61 6e 64 20 65 6e 64 20 75 73 65 72 73 2e 22 0a 20 20 3a 67 72 inor.modes.and.end.users."...:gr
8de0 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 0a 20 20 3a 74 79 70 65 20 27 28 63 68 oup.'tree-sitter-hl...:type.'(ch
8e00 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 59 65 73 22 20 74 29 0a 20 20 20 20 20 20 oice.(const.:tag."Yes".t).......
8e20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 22 20 6e 69 6c 29 ...........(const.:tag."No".nil)
8e40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 45 ..................(const.:tag."E
8e60 78 63 65 70 74 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 27 22 20 3a 65 78 63 xcept.`font-lock-defaults'".:exc
8e80 65 70 74 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 29 29 29 0a 0a 28 64 65 66 63 ept-font-lock-defaults)))..(defc
8ea0 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 2d 6d 61 70 70 69 6e ustom.tree-sitter-hl-face-mappin
8ec0 67 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 g-function...#'tree-sitter-hl-fa
8ee0 63 65 2d 66 72 6f 6d 2d 63 6f 6d 6d 6f 6e 2d 73 63 6f 70 65 0a 20 20 22 46 75 6e 63 74 69 6f 6e ce-from-common-scope..."Function
8f00 20 75 73 65 64 20 74 6f 20 6d 61 70 20 63 61 70 74 75 72 65 20 6e 61 6d 65 73 20 69 6e 20 71 75 .used.to.map.capture.names.in.qu
8f20 65 72 79 20 70 61 74 74 65 72 6e 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 66 61 63 ery.patterns.to.highlighting.fac
8f40 65 73 2e 0a 54 68 69 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 74 6f 20 73 65 6c es..This.can.also.be.used.to.sel
8f60 65 63 74 69 76 65 6c 79 20 64 69 73 61 62 6c 65 20 63 65 72 74 61 69 6e 20 63 61 70 74 75 72 65 ectively.disable.certain.capture
8f80 20 6e 61 6d 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 74 68 65 20 66 6f 6c 6c 6f 77 69 .names..For.example,.the.followi
8fa0 6e 67 20 63 6f 64 65 20 64 69 73 61 62 6c 65 73 20 6b 65 79 77 6f 72 64 20 68 69 67 68 6c 69 67 ng.code.disables.keyword.highlig
8fc0 68 74 69 6e 67 3a 0a 0a 20 28 61 64 64 2d 66 75 6e 63 74 69 6f 6e 20 3a 62 65 66 6f 72 65 2d 77 hting:...(add-function.:before-w
8fe0 68 69 6c 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 2d 6d 61 70 70 69 6e hile.'tree-sitter-hl-face-mappin
9000 67 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 g-function................(lambd
9020 61 20 28 63 61 70 74 75 72 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a.(capture-name)................
9040 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 3d 20 63 61 70 74 75 72 65 2d 6e 61 6d 65 20 5c 22 6b ..(not.(string=.capture-name.\"k
9060 65 79 77 6f 72 64 5c 22 29 29 29 29 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 eyword\"))))"...:group.'tree-sit
9080 74 65 72 2d 68 6c 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 76 ter-hl...:type.'function)..(defv
90a0 61 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d ar-local.tree-sitter-hl-default-
90c0 70 61 74 74 65 72 6e 73 20 6e 69 6c 0a 20 20 22 44 65 66 61 75 6c 74 20 73 79 6e 74 61 78 20 68 patterns.nil..."Default.syntax.h
90e0 69 67 68 6c 69 67 68 74 69 6e 67 20 70 61 74 74 65 72 6e 73 2e 0a 54 68 69 73 20 73 68 6f 75 6c ighlighting.patterns..This.shoul
9100 64 20 62 65 20 73 65 74 20 62 79 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 20 77 61 6e d.be.set.by.major.modes.that.wan
9120 74 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 60 74 72 65 65 2d 73 69 74 74 65 72 t.to.integrate.with.`tree-sitter
9140 2d 68 6c 27 2e 0a 49 74 20 70 6c 61 79 73 20 61 20 73 69 6d 69 6c 61 72 20 72 6f 6c 65 20 74 6f -hl'..It.plays.a.similar.role.to
9160 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 27 2e 0a 0a 49 74 20 69 73 20 65 69 .`font-lock-defaults'...It.is.ei
9180 74 68 65 72 20 61 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 20 76 65 63 74 6f 72 20 6f 66 20 53 2d ther.a.string,.or.a.vector.of.S-
91a0 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 6f 6e expressions..For.more.details.on
91c0 20 74 68 65 0a 73 79 6e 74 61 78 2c 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 65 6d 61 63 73 2d 74 .the.syntax,.see.https://emacs-t
91e0 72 65 65 2d 73 69 74 74 65 72 2e 67 69 74 68 75 62 2e 69 6f 2f 73 79 6e 74 61 78 2d 68 69 67 68 ree-sitter.github.io/syntax-high
9200 6c 69 67 68 74 69 6e 67 2f 71 75 65 72 69 65 73 2f 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 74 72 lighting/queries/.")..(defvar.tr
9220 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 70 61 74 74 65 72 6e 73 2d 61 6c 69 73 74 20 6e 69 6c ee-sitter-hl--patterns-alist.nil
9240 0a 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 6c 61 6e 67 75 61 67 65 2d 73 70 65 63 69 66 69 63 ..."Additional.language-specific
9260 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 70 61 74 74 65 72 6e 73 2e 0a 49 .syntax.highlighting.patterns..I
9280 74 20 70 6c 61 79 73 20 61 20 73 69 6d 69 6c 61 72 20 72 6f 6c 65 20 74 6f 20 60 66 6f 6e 74 2d t.plays.a.similar.role.to.`font-
92a0 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 2d 61 6c 69 73 74 27 2c 20 65 78 63 65 70 74 20 74 68 61 lock-keywords-alist',.except.tha
92c0 74 20 69 74 73 20 6b 65 79 73 20 61 72 65 0a 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c 73 2c t.its.keys.are.language.symbols,
92e0 20 6e 6f 74 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 73 79 6d 62 6f 6c 73 2e 22 29 0a 28 70 75 74 20 .not.major.mode.symbols.").(put.
9300 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 70 61 74 74 65 72 6e 73 2d 61 6c 69 73 74 20 'tree-sitter-hl--patterns-alist.
9320 27 72 69 73 6b 79 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 74 29 0a 0a 28 64 65 66 76 61 'risky-local-variable.t)..(defva
9340 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 72 61 2d 70 61 r-local.tree-sitter-hl--extra-pa
9360 74 74 65 72 6e 73 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 62 75 tterns-list.nil..."Additional.bu
9380 66 66 65 72 2d 6c 6f 63 61 6c 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 70 ffer-local.syntax.highlighting.p
93a0 61 74 74 65 72 6e 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 atterns.")..(defvar-local.tree-s
93c0 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 20 6e 69 6c 0a 20 20 22 54 72 65 65 20 71 75 65 72 itter-hl--query.nil..."Tree.quer
93e0 79 20 75 73 65 64 20 66 6f 72 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2c 20 y.used.for.syntax.highlighting,.
9400 63 6f 6d 70 69 6c 65 64 20 66 72 6f 6d 20 70 61 74 74 65 72 6e 73 2e 22 29 0a 0a 28 64 65 66 75 compiled.from.patterns.")..(defu
9420 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 6e 73 75 72 65 2d 71 75 65 72 79 20 28 n.tree-sitter-hl--ensure-query.(
9440 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 72 65 65 20 71 75 65 72 79 20 74 6f 20 62 65 )..."Return.the.tree.query.to.be
9460 20 75 73 65 64 20 66 6f 72 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 6e .used.for.syntax.highlighting.in
9480 20 74 68 69 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 .this.buffer."...(unless.tree-si
94a0 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 tter-hl--query.....(setq.tree-si
94c0 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 tter-hl--query...........(when.t
94e0 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d 70 61 74 74 65 72 6e 73 0a 20 ree-sitter-hl-default-patterns..
9500 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 6d 61 6b 65 2d 71 75 65 72 79 0a 20 20 20 20 20 ...........(tsc-make-query......
9520 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 0a 20 20 20 ........tree-sitter-language....
9540 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 74 73 63 2d 2d 73 74 72 69 ..........(mapconcat.#'tsc--stri
9560 6e 67 69 66 79 2d 70 61 74 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ngify-patterns..................
9580 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 .......(append.tree-sitter-hl--e
95a0 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 xtra-patterns-list..............
95c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 28 74 ...................(alist-get.(t
95e0 73 63 2d 2d 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 sc--lang-symbol.tree-sitter-lang
9600 75 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uage)...........................
9620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d .................tree-sitter-hl-
9640 2d 70 61 74 74 65 72 6e 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -patterns-alist)................
9660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 74 72 65 65 2d 73 69 74 74 .................(list.tree-sitt
9680 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d 70 61 74 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 20 er-hl-default-patterns))........
96a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 ................."\n")..........
96c0 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 2d 6d 61 70 70 69 6e 67 2d ....tree-sitter-hl-face-mapping-
96e0 66 75 6e 63 74 69 6f 6e 29 29 29 29 0a 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 function))))...tree-sitter-hl--q
9700 75 65 72 79 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 uery)..(defun.tree-sitter-hl-fac
9720 65 2d 66 72 6f 6d 2d 63 6f 6d 6d 6f 6e 2d 73 63 6f 70 65 20 28 63 61 70 74 75 72 65 2d 6e 61 6d e-from-common-scope.(capture-nam
9740 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 61 63 65 20 75 73 e)..."Return.the.default.face.us
9760 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 43 41 50 54 55 52 45 2d 4e 41 4d 45 2e 22 0a 20 ed.to.highlight.CAPTURE-NAME."..
9780 20 3b 3b 20 54 4f 44 4f 3a 20 49 66 20 61 20 73 63 6f 70 65 20 64 6f 65 73 20 6e 6f 74 20 68 61 .;;.TODO:.If.a.scope.does.not.ha
97a0 76 65 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 66 61 63 65 2c 20 63 68 65 63 6b 20 69 ve.a.corresponding.face,.check.i
97c0 74 73 20 61 6e 63 65 73 74 6f 72 73 2e 0a 20 20 28 69 6e 74 65 72 6e 20 28 66 6f 72 6d 61 74 20 ts.ancestors....(intern.(format.
97e0 22 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 66 61 63 65 3a 25 73 22 20 63 61 70 74 75 72 65 "tree-sitter-hl-face:%s".capture
9800 2d 6e 61 6d 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 -name)))..;;;###autoload.(defun.
9820 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 61 64 64 2d 70 61 74 74 65 72 6e 73 20 28 6c 61 6e tree-sitter-hl-add-patterns.(lan
9840 67 2d 73 79 6d 62 6f 6c 20 70 61 74 74 65 72 6e 73 29 0a 20 20 22 41 64 64 20 63 75 73 74 6f 6d g-symbol.patterns)..."Add.custom
9860 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 50 41 54 54 45 52 4e 53 2e 0a 49 .syntax.highlighting.PATTERNS..I
9880 66 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 64 65 f.LANG-SYMBOL.is.non-nil,.it.ide
98a0 6e 74 69 66 69 65 73 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 74 68 61 74 20 50 41 54 54 45 52 ntifies.the.language.that.PATTER
98c0 4e 53 20 73 68 6f 75 6c 64 20 62 65 0a 61 70 70 6c 69 65 64 20 74 6f 2e 20 49 66 20 4c 41 4e 47 NS.should.be.applied.to..If.LANG
98e0 2d 53 59 4d 42 4f 4c 20 69 73 20 6e 69 6c 2c 20 50 41 54 54 45 52 4e 53 20 61 72 65 20 61 70 70 -SYMBOL.is.nil,.PATTERNS.are.app
9900 6c 69 65 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 0a 61 6e 64 20 lied.to.the.current.buffer,.and.
9920 61 72 65 20 70 72 69 6f 72 69 74 69 7a 65 64 20 6f 76 65 72 20 6c 61 6e 67 75 61 67 65 2d 73 70 are.prioritized.over.language-sp
9940 65 63 69 66 69 63 20 70 61 74 74 65 72 6e 73 2e 20 45 69 74 68 65 72 20 77 61 79 2c 20 50 41 54 ecific.patterns..Either.way,.PAT
9960 54 45 52 4e 53 20 61 72 65 0a 70 72 69 6f 72 69 74 69 7a 65 64 20 6f 76 65 72 20 60 74 72 65 65 TERNS.are.prioritized.over.`tree
9980 2d 73 69 74 74 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d 70 61 74 74 65 72 6e 73 27 2e 0a 0a 54 -sitter-hl-default-patterns'...T
99a0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 62 79 20 6d his.function.should.be.used.by.m
99c0 69 6e 6f 72 20 6d 6f 64 65 73 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 6f 64 inor.modes.and.configuration.cod
99e0 65 2e 20 4d 61 6a 6f 72 20 6d 6f 64 65 73 0a 73 68 6f 75 6c 64 20 73 65 74 20 60 74 72 65 65 2d e..Major.modes.should.set.`tree-
9a00 73 69 74 74 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d 70 61 74 74 65 72 6e 73 27 20 69 6e 73 74 sitter-hl-default-patterns'.inst
9a20 65 61 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 ead."...(declare.(indent.1))...(
9a40 69 66 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 if.lang-symbol.......(tree-sitte
9a60 72 2d 68 6c 2d 2d 61 64 64 2d 70 61 74 74 65 72 6e 73 2d 66 6f 72 2d 6c 61 6e 67 75 61 67 65 20 r-hl--add-patterns-for-language.
9a80 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 70 61 74 74 65 72 6e 73 29 0a 20 20 20 20 28 74 72 65 65 2d lang-symbol.patterns).....(tree-
9aa0 73 69 74 74 65 72 2d 68 6c 2d 2d 61 64 64 2d 70 61 74 74 65 72 6e 73 2d 6c 6f 63 61 6c 6c 79 20 sitter-hl--add-patterns-locally.
9ac0 70 61 74 74 65 72 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d patterns)))..(defun.tree-sitter-
9ae0 68 6c 2d 2d 61 64 64 2d 70 61 74 74 65 72 6e 73 2d 6c 6f 63 61 6c 6c 79 20 28 70 61 74 74 65 72 hl--add-patterns-locally.(patter
9b00 6e 73 29 0a 20 20 22 41 64 64 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 73 79 6e 74 61 78 20 68 ns)..."Add.buffer-local.syntax.h
9b20 69 67 68 6c 69 67 68 74 69 6e 67 20 50 41 54 54 45 52 4e 53 2e 0a 54 68 65 73 65 20 77 69 6c 6c ighlighting.PATTERNS..These.will
9b40 20 74 61 6b 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 60 74 72 65 65 2d 73 69 74 74 .take.precedence.over.`tree-sitt
9b60 65 72 2d 68 6c 2d 64 65 66 61 75 6c 74 2d 70 61 74 74 65 72 6e 73 27 2c 20 61 73 20 77 65 6c 6c er-hl-default-patterns',.as.well
9b80 20 61 73 0a 70 72 65 76 69 6f 75 73 6c 79 20 61 64 64 65 64 20 70 61 74 74 65 72 6e 73 2e 22 0a .as.previously.added.patterns.".
9ba0 20 20 3b 3b 20 44 6f 20 6e 6f 74 68 69 6e 67 20 69 66 20 74 68 65 20 70 61 74 74 65 72 6e 73 20 ..;;.Do.nothing.if.the.patterns.
9bc0 61 72 65 20 61 6c 72 65 61 64 79 20 6f 6e 20 74 6f 70 2e 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 are.already.on.top....(unless.(e
9be0 71 75 61 6c 20 70 61 74 74 65 72 6e 73 20 28 63 6c 2d 66 69 72 73 74 20 74 72 65 65 2d 73 69 74 qual.patterns.(cl-first.tree-sit
9c00 74 65 72 2d 68 6c 2d 2d 65 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 74 29 29 0a 20 20 ter-hl--extra-patterns-list))...
9c20 20 20 28 6c 65 74 20 28 28 6f 6c 64 2d 6c 69 73 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c ..(let.((old-list.tree-sitter-hl
9c40 2d 2d 65 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 --extra-patterns-list)..........
9c60 20 28 6f 6c 64 2d 71 75 65 72 79 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 .(old-query.tree-sitter-hl--quer
9c80 79 29 29 0a 20 20 20 20 20 20 3b 3b 20 55 70 64 61 74 65 20 74 68 65 20 70 61 74 74 65 72 6e 73 y)).......;;.Update.the.patterns
9ca0 20 6c 69 73 74 20 61 6e 64 20 72 65 71 75 65 73 74 20 74 68 65 20 71 75 65 72 79 20 74 6f 20 62 .list.and.request.the.query.to.b
9cc0 65 20 72 65 62 75 69 6c 74 2e 2e 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 e.rebuilt..........(setq.tree-si
9ce0 74 74 65 72 2d 68 6c 2d 2d 65 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 74 0a 20 20 20 tter-hl--extra-patterns-list....
9d00 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 70 61 74 74 65 72 6e 73 29 .........(append.(list.patterns)
9d20 20 28 72 65 6d 6f 76 65 20 70 61 74 74 65 72 6e 73 20 6f 6c 64 2d 6c 69 73 74 29 29 29 0a 20 20 .(remove.patterns.old-list)))...
9d40 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 20 ....(setq.tree-sitter-hl--query.
9d60 6e 69 6c 29 0a 20 20 20 20 20 20 3b 3b 20 2e 2e 2e 20 61 6e 64 20 62 75 69 6c 64 20 69 74 20 69 nil).......;;.....and.build.it.i
9d80 66 20 70 6f 73 73 69 62 6c 65 2e 20 44 75 72 69 6e 67 20 61 20 6d 61 6a 6f 72 20 6d 6f 64 65 27 f.possible..During.a.major.mode'
9da0 73 20 68 6f 6f 6b 2c 20 77 65 20 6d 61 79 20 6e 6f 74 0a 20 20 20 20 20 20 3b 3b 20 65 76 65 6e s.hook,.we.may.not.......;;.even
9dc0 20 6b 6e 6f 77 20 74 68 65 20 6c 61 6e 67 75 61 67 65 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 .know.the.language,.in.which.cas
9de0 65 20 77 65 20 6c 65 74 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 73 65 74 75 70 27 e.we.let.`tree-sitter-hl--setup'
9e00 0a 20 20 20 20 20 20 3b 3b 20 62 75 69 6c 64 20 74 68 65 20 71 75 65 72 79 20 6c 61 74 65 72 20 .......;;.build.the.query.later.
9e20 6f 6e 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 on........(when.tree-sitter-lang
9e40 75 61 67 65 0a 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 65 72 72 6f 72 uage.........(tree-sitter--error
9e60 2d 70 72 6f 74 65 63 74 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 6e 73 75 72 65 -protect.(tree-sitter-hl--ensure
9e80 2d 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 65 6e 20 74 68 65 20 6e 65 -query)...........;;.When.the.ne
9ea0 77 6c 79 20 61 64 64 65 64 20 70 61 74 74 65 72 6e 73 20 61 72 65 20 69 6e 76 61 6c 69 64 2c 20 wly.added.patterns.are.invalid,.
9ec0 72 65 73 74 6f 72 65 20 74 68 65 20 6f 6c 64 20 73 74 61 74 65 2e 0a 20 20 20 20 20 20 20 20 20 restore.the.old.state...........
9ee0 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 20 6f 6c 64 .(setq.tree-sitter-hl--query.old
9f00 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 -query.................tree-sitt
9f20 65 72 2d 68 6c 2d 2d 65 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 74 20 6f 6c 64 2d 6c er-hl--extra-patterns-list.old-l
9f40 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 45 76 65 72 79 74 68 69 6e 67 20 69 73 20 69 ist)).........;;.Everything.is.i
9f60 6e 20 70 6c 61 63 65 2e 20 52 65 71 75 65 73 74 20 61 20 72 65 2d 72 65 6e 64 65 72 2e 0a 20 20 n.place..Request.a.re-render....
9f80 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 74 72 ......(when.(bound-and-true-p.tr
9fa0 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 72 ee-sitter-hl-mode)...........(tr
9fc0 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 69 6e 76 61 6c 69 64 61 74 65 29 29 29 29 29 29 0a 0a ee-sitter-hl--invalidate))))))..
9fe0 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 61 64 64 2d 70 61 74 74 65 (defun.tree-sitter-hl--add-patte
a000 72 6e 73 2d 66 6f 72 2d 6c 61 6e 67 75 61 67 65 20 28 6c 61 6e 67 2d 73 79 6d 62 6f 6c 20 70 61 rns-for-language.(lang-symbol.pa
a020 74 74 65 72 6e 73 29 0a 20 20 22 41 64 64 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 74 69 tterns)..."Add.syntax.highlighti
a040 6e 67 20 50 41 54 54 45 52 4e 53 20 66 6f 72 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 69 64 65 ng.PATTERNS.for.the.language.ide
a060 6e 74 69 66 69 65 64 20 62 79 20 4c 41 4e 47 2d 53 59 4d 42 4f 4c 2e 0a 53 65 65 20 60 74 72 65 ntified.by.LANG-SYMBOL..See.`tre
a080 65 2d 73 69 74 74 65 72 2d 68 6c 2d 61 64 64 2d 70 61 74 74 65 72 6e 73 27 2e 22 0a 20 20 28 6c e-sitter-hl-add-patterns'."...(l
a0a0 65 74 20 28 28 6f 6c 64 2d 6c 69 73 74 20 28 61 6c 69 73 74 2d 67 65 74 20 6c 61 6e 67 2d 73 79 et.((old-list.(alist-get.lang-sy
a0c0 6d 62 6f 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 70 61 74 74 65 72 6e 73 2d 61 6c mbol.tree-sitter-hl--patterns-al
a0e0 69 73 74 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 20 6e 6f 74 68 69 6e 67 20 69 66 20 74 68 65 20 ist))).....;;.Do.nothing.if.the.
a100 70 61 74 74 65 72 6e 73 20 61 72 65 20 61 6c 72 65 61 64 79 20 6f 6e 20 74 6f 70 2e 0a 20 20 20 patterns.are.already.on.top.....
a120 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 70 61 74 74 65 72 6e 73 20 28 63 6c 2d 66 69 72 .(unless.(equal.patterns.(cl-fir
a140 73 74 20 6f 6c 64 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 77 68 65 st.old-list)).......;;.Check.whe
a160 74 68 65 72 20 74 68 65 20 70 61 74 74 65 72 6e 73 20 61 72 65 20 76 61 6c 69 64 2e 20 54 4f 44 ther.the.patterns.are.valid..TOD
a180 4f 3a 20 53 68 6f 75 6c 64 20 77 65 20 64 65 6c 61 79 20 74 68 65 20 63 68 65 63 6b 0a 20 20 20 O:.Should.we.delay.the.check....
a1a0 20 20 20 3b 3b 20 69 66 20 6c 61 6e 67 75 61 67 65 20 69 73 20 6e 6f 74 20 79 65 74 20 6c 6f 61 ...;;.if.language.is.not.yet.loa
a1c0 64 65 64 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 74 72 79 69 6e 67 20 74 6f 20 6c 6f 61 64 20 69 ded,.instead.of.trying.to.load.i
a1e0 74 3f 0a 20 20 20 20 20 20 28 74 73 63 2d 6d 61 6b 65 2d 71 75 65 72 79 20 28 74 72 65 65 2d 73 t?.......(tsc-make-query.(tree-s
a200 69 74 74 65 72 2d 72 65 71 75 69 72 65 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 29 20 70 61 74 74 65 itter-require.lang-symbol).patte
a220 72 6e 73 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6d 61 70 2d 65 6c 74 20 74 72 65 65 2d 73 rns).......(setf.(map-elt.tree-s
a240 69 74 74 65 72 2d 68 6c 2d 2d 70 61 74 74 65 72 6e 73 2d 61 6c 69 73 74 20 6c 61 6e 67 2d 73 79 itter-hl--patterns-alist.lang-sy
a260 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 mbol).............(append.(list.
a280 70 61 74 74 65 72 6e 73 29 20 28 72 65 6d 6f 76 65 20 70 61 74 74 65 72 6e 73 20 6f 6c 64 2d 6c patterns).(remove.patterns.old-l
a2a0 69 73 74 29 29 29 29 29 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ist))))))..;;;.-----------------
a2c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
a2e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 ---------------------------.;;;.
a300 49 6e 74 65 72 6e 61 6c 20 77 6f 72 6b 69 6e 67 73 2e 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 Internal.workings...(defvar-loca
a320 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 2d 63 75 72 73 6f 72 20 6e l.tree-sitter-hl--query-cursor.n
a340 69 6c 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 il)..(defconst.tree-sitter-hl--e
a360 78 74 65 6e 64 2d 72 65 67 69 6f 6e 2d 6c 69 6d 69 74 20 32 30 34 38 0a 20 20 22 54 68 65 20 6d xtend-region-limit.2048..."The.m
a380 61 78 20 73 69 7a 65 20 64 65 6c 74 61 20 6f 66 20 74 68 65 20 28 73 74 72 75 63 74 75 72 61 6c ax.size.delta.of.the.(structural
a3a0 6c 79 29 20 65 78 74 65 6e 64 65 64 20 72 65 67 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e ly).extended.regions.")..(defcon
a3c0 73 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e st.tree-sitter-hl--extend-region
a3e0 2d 6c 65 76 65 6c 73 20 34 0a 20 20 22 54 68 65 20 6d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 6c -levels.4..."The.max.number.of.l
a400 65 76 65 6c 73 20 74 6f 20 77 61 6c 6b 20 75 70 20 74 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 evels.to.walk.up.the.syntax.tree
a420 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 72 65 67 69 6f 6e 73 2e 0a 54 68 65 20 61 73 73 75 .to.extend.the.regions..The.assu
a440 6d 70 74 69 6f 6e 20 69 73 20 74 68 61 74 3a 20 69 6e 20 61 6e 79 20 73 79 6e 74 61 78 20 68 69 mption.is.that:.in.any.syntax.hi
a460 67 68 6c 69 67 68 74 69 6e 67 20 70 61 74 74 65 72 6e 2c 20 74 68 65 20 63 61 70 74 75 72 65 73 ghlighting.pattern,.the.captures
a480 20 64 6f 20 6e 6f 74 0a 6c 69 65 20 64 65 65 70 65 72 20 74 68 61 6e 20 74 68 69 73 2e 22 29 0a .do.not.lie.deeper.than.this.").
a4a0 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 72 65 65 2d 73 69 74 74 .;;.https://github.com/tree-sitt
a4c0 65 72 2f 74 72 65 65 2d 73 69 74 74 65 72 2f 70 75 6c 6c 2f 31 31 33 30 2e 0a 28 64 65 66 76 61 er/tree-sitter/pull/1130..(defva
a4e0 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 65 6e 61 62 6c 65 2d 71 75 r-local.tree-sitter-hl-enable-qu
a500 65 72 79 2d 72 65 67 69 6f 6e 2d 65 78 74 65 6e 73 69 6f 6e 20 6e 69 6c 0a 20 20 22 57 68 65 74 ery-region-extension.nil..."Whet
a520 68 65 72 20 74 6f 20 65 78 74 65 6e 64 20 71 75 65 72 79 20 72 65 67 69 6f 6e 20 75 73 65 64 20 her.to.extend.query.region.used.
a540 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2e 0a 49 66 20 79 6f 75 20 67 65 74 20 69 6e 63 for.highlighting..If.you.get.inc
a560 6f 72 72 65 63 74 20 68 69 67 68 6c 69 67 68 74 69 6e 67 2c 20 74 72 79 20 73 65 74 74 69 6e 67 orrect.highlighting,.try.setting
a580 20 74 68 69 73 20 74 6f 20 74 2e 0a 0a 53 65 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c .this.to.t...See.`tree-sitter-hl
a5a0 2d 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 73 27 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 --extend-regions'.for.more.detai
a5c0 6c 73 2e 22 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 49 6d 70 72 6f 76 65 20 74 68 69 73 20 66 75 ls.")..;;;.TODO:.Improve.this.fu
a5e0 6e 63 74 69 6f 6e 27 73 20 64 6f 63 73 74 72 69 6e 67 2e 20 49 74 27 73 20 6e 6f 20 6c 6f 6e 67 nction's.docstring..It's.no.long
a600 65 72 20 61 63 63 75 72 61 74 65 2e 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d er.accurate..(defun.tree-sitter-
a620 68 6c 2d 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 73 20 28 68 6c 2d 72 65 67 69 6f 6e 20 71 75 hl--extend-regions.(hl-region.qu
a640 65 72 79 2d 72 65 67 69 6f 6e 29 0a 20 20 22 45 78 74 65 6e 64 20 48 4c 2d 52 45 47 49 4f 4e 20 ery-region)..."Extend.HL-REGION.
a660 61 6e 64 20 51 55 45 52 59 2d 52 45 47 49 4f 4e 20 62 65 66 6f 72 65 20 68 69 67 68 6c 69 67 68 and.QUERY-REGION.before.highligh
a680 74 69 6e 67 2c 20 6d 75 74 61 62 6c 79 2e 0a 46 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 72 ting,.mutably..For.performance.r
a6a0 65 61 73 6f 6e 2c 20 77 65 20 65 78 65 63 75 74 65 20 74 68 65 20 68 69 67 68 6c 69 67 68 74 69 eason,.we.execute.the.highlighti
a6c0 6e 67 20 71 75 65 72 79 20 6f 6e 20 61 20 72 65 67 69 6f 6e 2c 20 69 6e 73 74 65 61 64 0a 6f 66 ng.query.on.a.region,.instead.of
a6e0 20 6f 6e 20 74 68 65 20 77 68 6f 6c 65 20 62 75 66 66 65 72 2e 20 57 68 65 6e 20 72 61 6e 67 65 .on.the.whole.buffer..When.range
a700 20 72 65 73 74 72 69 63 74 69 6f 6e 20 69 73 20 75 73 65 64 2c 20 61 20 6d 61 74 63 68 20 69 73 .restriction.is.used,.a.match.is
a720 20 72 65 74 75 72 6e 65 64 20 6f 6e 6c 79 0a 77 68 65 6e 20 61 6c 6c 20 6e 6f 64 65 73 20 69 6e .returned.only.when.all.nodes.in
a740 20 61 20 70 61 74 74 65 72 6e 20 69 6e 74 65 72 73 65 63 74 20 74 68 65 20 71 75 65 72 79 20 63 .a.pattern.intersect.the.query.c
a760 75 72 73 6f 72 27 73 20 72 61 6e 67 65 2e 20 54 68 65 72 65 66 6f 72 65 2c 0a 51 55 45 52 59 2d ursor's.range..Therefore,.QUERY-
a780 52 45 47 49 4f 4e 20 73 68 6f 75 6c 64 20 69 6e 74 65 72 73 65 63 74 20 61 6c 6c 20 72 65 6c 65 REGION.should.intersect.all.rele
a7a0 76 61 6e 74 20 6e 6f 64 65 73 2c 20 6e 6f 74 20 6a 75 73 74 20 6e 6f 64 65 73 20 74 6f 20 62 65 vant.nodes,.not.just.nodes.to.be
a7c0 0a 68 69 67 68 6c 69 67 68 74 65 64 2e 0a 0a 4f 6e 65 20 63 61 73 65 20 74 68 61 74 20 69 6c 6c .highlighted...One.case.that.ill
a7e0 75 73 74 72 61 74 65 73 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 51 55 45 52 59 2d 52 45 47 49 ustrates.the.need.for.QUERY-REGI
a800 4f 4e 20 74 6f 20 62 65 20 6c 61 72 67 65 72 20 74 68 61 6e 20 48 4c 2d 52 45 47 49 4f 4e 0a 69 ON.to.be.larger.than.HL-REGION.i
a820 73 20 77 68 65 6e 20 60 65 76 69 6c 2d 61 64 6a 75 73 74 2d 63 75 72 73 6f 72 27 20 74 72 69 67 s.when.`evil-adjust-cursor'.trig
a840 67 65 72 73 20 61 20 60 76 65 72 74 69 63 61 6c 2d 6d 6f 74 69 6f 6e 27 20 28 6f 75 74 73 69 64 gers.a.`vertical-motion'.(outsid
a860 65 20 6f 66 20 61 0a 72 65 64 69 73 70 6c 61 79 29 2c 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 e.of.a.redisplay),.resulting.in.
a880 60 6a 69 74 2d 6c 6f 63 6b 2d 2d 72 75 6e 2d 66 75 6e 74 69 6f 6e 73 27 20 62 65 69 6e 67 20 63 `jit-lock--run-funtions'.being.c
a8a0 61 6c 6c 65 64 20 6f 6e 20 61 20 76 65 72 79 20 73 6d 61 6c 6c 0a 72 65 67 69 6f 6e 2e 20 41 6e alled.on.a.very.small.region..An
a8c0 6f 74 68 65 72 20 63 61 73 65 20 69 73 20 73 69 62 6c 69 6e 67 20 73 75 62 2d 70 61 74 74 65 72 other.case.is.sibling.sub-patter
a8e0 6e 73 20 62 65 69 6e 67 20 63 75 74 20 69 6e 20 68 61 6c 76 65 73 20 62 79 20 48 4c 2d 52 45 47 ns.being.cut.in.halves.by.HL-REG
a900 49 4f 4e 27 73 0a 62 6f 75 6e 64 61 72 69 65 73 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 ION's.boundaries...Note.that.the
a920 20 6d 61 69 6e 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 6f 74 74 6c 65 6e 65 63 6b 20 77 69 74 .main.performance.bottleneck.wit
a940 68 20 71 75 65 72 79 69 6e 67 20 74 68 65 20 77 68 6f 6c 65 20 62 75 66 66 65 72 20 69 73 20 69 h.querying.the.whole.buffer.is.i
a960 6e 0a 61 63 63 65 73 73 69 6e 67 20 6e 6f 64 65 73 27 20 74 65 78 74 73 2c 20 77 68 69 63 68 20 n.accessing.nodes'.texts,.which.
a980 69 6e 76 6f 6c 76 65 73 20 61 6c 6c 6f 63 61 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 79 20 73 74 involves.allocating.temporary.st
a9a0 72 69 6e 67 73 2c 20 63 6f 70 79 69 6e 67 0a 74 68 65 6d 20 74 6f 20 74 68 65 20 64 79 6e 61 6d rings,.copying.them.to.the.dynam
a9c0 69 63 20 6d 6f 64 75 6c 65 73 2c 20 74 68 65 6e 20 67 61 72 62 61 67 65 2d 63 6f 6c 6c 65 63 74 ic.modules,.then.garbage-collect
a9e0 69 6e 67 20 74 68 65 6d 2e 20 57 68 65 6e 20 64 79 6e 61 6d 69 63 20 6d 6f 64 75 6c 65 73 0a 68 ing.them..When.dynamic.modules.h
aa00 61 76 65 20 64 69 72 65 63 74 20 61 63 63 65 73 73 20 74 6f 20 62 75 66 66 65 72 20 74 65 78 74 ave.direct.access.to.buffer.text
aa20 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 62 65 63 6f 6d 65 20 6f 62 73 6f 6c ,.this.function.may.become.obsol
aa40 65 74 65 2e 0a 0a 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 72 65 ete...See.https://github.com/tre
aa60 65 2d 73 69 74 74 65 72 2f 74 72 65 65 2d 73 69 74 74 65 72 2f 69 73 73 75 65 73 2f 35 39 38 2e e-sitter/tree-sitter/issues/598.
aa80 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 72 6f 6f 74 2d 6e 6f 64 65 20 28 74 73 63 "...(pcase-let*.((root-node.(tsc
aaa0 2d 72 6f 6f 74 2d 6e 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 -root-node.tree-sitter-tree))...
aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 68 6c 2d .............(`(,beg...,end).hl-
aae0 72 65 67 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 69 67 2d 73 69 7a region)................(orig-siz
ab00 65 20 28 2d 20 65 6e 64 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e e.(-.end.beg))................(n
ab20 6f 64 65 20 28 74 73 63 2d 67 65 74 2d 64 65 73 63 65 6e 64 61 6e 74 2d 66 6f 72 2d 70 6f 73 69 ode.(tsc-get-descendant-for-posi
ab40 74 69 6f 6e 2d 72 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion-range......................
ab60 20 72 6f 6f 74 2d 6e 6f 64 65 20 62 65 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .root-node.beg.end))............
ab80 20 20 20 20 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 74 73 63 2d 6e 6f 64 65 2d 70 6f ....(`(,beg...,end).(tsc-node-po
aba0 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 sition-range.node)).............
abc0 20 20 20 28 73 69 7a 65 20 28 2d 20 65 6e 64 20 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 ...(size.(-.end.beg))...........
abe0 20 20 20 20 20 28 64 65 6c 74 61 20 28 2d 20 73 69 7a 65 20 6f 72 69 67 2d 73 69 7a 65 29 29 0a .....(delta.(-.size.orig-size)).
ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 76 65 6c 20 30 29 29 0a 20 20 20 20 28 77 ...............(level.0)).....(w
ac20 68 65 6e 20 28 3c 20 64 65 6c 74 61 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 hen.(<.delta.tree-sitter-hl--ext
ac40 65 6e 64 2d 72 65 67 69 6f 6e 2d 6c 69 6d 69 74 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 end-region-limit).......(setcar.
ac60 68 6c 2d 72 65 67 69 6f 6e 20 62 65 67 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 20 68 6c 2d hl-region.beg).......(setcdr.hl-
ac80 72 65 67 69 6f 6e 20 65 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 71 75 65 72 79 2d region.end).......(setcar.query-
aca0 72 65 67 69 6f 6e 20 62 65 67 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 20 71 75 65 72 79 2d region.beg).......(setcdr.query-
acc0 72 65 67 69 6f 6e 20 65 6e 64 29 29 0a 20 20 20 20 3b 3b 20 52 65 70 65 61 74 65 64 6c 79 20 65 region.end)).....;;.Repeatedly.e
ace0 78 74 65 6e 64 20 74 68 65 20 72 65 67 69 6f 6e 2c 20 77 69 74 68 69 6e 20 74 68 65 20 6c 69 6d xtend.the.region,.within.the.lim
ad00 69 74 2e 20 54 4f 44 4f 3a 20 57 68 61 74 20 69 66 20 74 68 65 20 72 65 67 69 6f 6e 0a 20 20 20 it..TODO:.What.if.the.region....
ad20 20 3b 3b 20 6f 66 20 74 68 65 20 6d 69 6e 69 6d 61 6c 20 65 6e 63 6c 6f 73 69 6e 67 20 6e 6f 64 .;;.of.the.minimal.enclosing.nod
ad40 65 20 69 73 20 61 6c 72 65 61 64 79 20 74 6f 6f 20 6c 61 72 67 65 3f 0a 20 20 20 20 28 77 68 65 e.is.already.too.large?.....(whe
ad60 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 65 6e 61 62 6c 65 2d 71 75 65 72 79 2d 72 65 n.tree-sitter-hl-enable-query-re
ad80 67 69 6f 6e 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 gion-extension.......(while.(and
ada0 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 64 65 6c 74 61 .node...................(<.delta
adc0 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 2d 6c .tree-sitter-hl--extend-region-l
ade0 69 6d 69 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 20 71 75 65 72 79 2d 72 65 67 imit)).........(setcar.query-reg
ae00 69 6f 6e 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 71 75 65 72 79 2d 72 ion.beg).........(setcdr.query-r
ae20 65 67 69 6f 6e 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 57 61 6c 6b 20 75 70 20 74 6f egion.end).........;;.Walk.up.to
ae40 20 74 68 65 20 70 61 72 65 6e 74 20 6e 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 .the.parent.node..........(when.
ae60 28 73 65 74 71 20 6e 6f 64 65 20 28 77 68 65 6e 20 28 3c 3d 20 28 63 6c 2d 69 6e 63 66 20 6c 65 (setq.node.(when.(<=.(cl-incf.le
ae80 76 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vel)............................
aea0 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 65 6e 64 2d 72 ........tree-sitter-hl--extend-r
aec0 65 67 69 6f 6e 2d 6c 65 76 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egion-levels)...................
aee0 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 67 65 74 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 .........(tsc-get-parent.node)))
af00 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 61 6e 67 65 20 28 74 73 63 2d 6e 6f 64 ...........(let.((range.(tsc-nod
af20 65 2d 70 6f 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 e-position-range.node)))........
af40 20 20 20 20 20 28 73 65 74 66 20 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 72 61 6e 67 65 29 .....(setf.`(,beg...,end).range)
af60 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 69 7a 65 20 28 2d 20 65 6e 64 20 62 .............(setq.size.(-.end.b
af80 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 6c 74 61 20 28 2d 20 eg)).............(setq.delta.(-.
afa0 73 69 7a 65 20 6f 72 69 67 2d 73 69 7a 65 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 45 78 74 size.orig-size))))).......;;.Ext
afc0 65 6e 64 20 74 6f 20 77 68 6f 6c 65 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d end.to.whole.lines........(goto-
afe0 63 68 61 72 20 28 63 61 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 char.(car.query-region)).......(
b000 73 65 74 63 61 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e setcar.query-region.(line-beginn
b020 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 20 30 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 ing-position.0)).......(goto-cha
b040 72 20 28 63 64 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 r.(cdr.query-region)).......(set
b060 63 64 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 cdr.query-region.(line-beginning
b080 2d 70 6f 73 69 74 69 6f 6e 20 32 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 -position.2)))))..(defun.tree-si
b0a0 74 74 65 72 2d 68 6c 2d 2d 61 70 70 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 73 tter-hl--append-text-property.(s
b0c0 74 61 72 74 20 65 6e 64 20 70 72 6f 70 20 76 61 6c 75 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 62 tart.end.prop.value.&optional.ob
b0e0 6a 65 63 74 29 0a 20 20 22 41 70 70 65 6e 64 20 56 41 4c 55 45 20 74 6f 20 50 52 4f 50 20 6f 66 ject)..."Append.VALUE.to.PROP.of
b100 20 74 68 65 20 74 65 78 74 20 66 72 6f 6d 20 53 54 41 52 54 20 74 6f 20 45 4e 44 2e 0a 54 68 69 .the.text.from.START.to.END..Thi
b120 73 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 65 6e s.is.similar.to.`font-lock-appen
b140 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 27 2c 20 62 75 74 20 64 65 64 75 70 6c 69 63 61 74 d-text-property',.but.deduplicat
b160 65 73 20 76 61 6c 75 65 73 2e 20 49 74 0a 61 6c 73 6f 20 65 78 70 65 63 74 73 20 56 41 4c 55 45 es.values..It.also.expects.VALUE
b180 20 74 6f 20 62 65 20 61 20 73 69 6e 67 6c 65 20 76 61 6c 75 65 2c 20 6e 6f 74 20 61 20 6c 69 73 .to.be.a.single.value,.not.a.lis
b1a0 74 2e 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 69 66 20 50 52 4f 50 20 77 61 73 0a 70 72 65 t..Additionally,.if.PROP.was.pre
b1c0 76 69 6f 75 73 6c 79 20 6e 69 6c 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 73 65 74 20 74 6f 20 56 viously.nil,.it.will.be.set.to.V
b1e0 41 4c 55 45 2c 20 6e 6f 74 20 28 6c 69 73 74 20 56 41 4c 55 45 29 2e 22 0a 20 20 28 6c 65 74 20 ALUE,.not.(list.VALUE)."...(let.
b200 28 6e 65 78 74 20 70 72 65 76 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 73 74 61 72 74 (next.prev).....(while.(/=.start
b220 20 65 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 20 28 6e 65 78 74 2d 73 69 6e .end).......(setq.next.(next-sin
b240 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 73 74 61 72 74 20 70 72 6f 70 20 6f gle-property-change.start.prop.o
b260 62 6a 65 63 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 76 20 28 67 65 74 bject.end).............prev.(get
b280 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 20 70 72 6f 70 20 6f 62 6a 65 63 74 -text-property.start.prop.object
b2a0 29 29 0a 20 20 20 20 20 20 3b 3b 20 43 61 6e 6f 6e 69 63 61 6c 69 7a 65 20 6f 6c 64 20 66 6f 72 )).......;;.Canonicalize.old.for
b2c0 6d 73 20 6f 66 20 66 61 63 65 20 70 72 6f 70 65 72 74 79 2e 0a 20 20 20 20 20 20 28 61 6e 64 20 ms.of.face.property........(and.
b2e0 28 6d 65 6d 71 20 70 72 6f 70 20 27 28 66 61 63 65 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 (memq.prop.'(face.font-lock-face
b300 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 70 20 70 72 65 76 29 0a 20 20 20 20 20 ))............(listp.prev)......
b320 20 20 20 20 20 20 28 6f 72 20 28 6b 65 79 77 6f 72 64 70 20 28 63 61 72 20 70 72 65 76 29 29 0a ......(or.(keywordp.(car.prev)).
b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 61 72 20 70 72 65 76 29 20 ...............(memq.(car.prev).
b360 27 28 66 6f 72 65 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 20 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f '(foreground-color.background-co
b380 6c 6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 20 28 6c 69 lor)))............(setq.prev.(li
b3a0 73 74 20 70 72 65 76 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 69 73 74 70 20 st.prev))).......(unless.(listp.
b3c0 70 72 65 76 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 20 28 6c 69 73 74 20 70 prev).........(setq.prev.(list.p
b3e0 72 65 76 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 76 61 6c 75 65 rev))).......(unless.(memq.value
b400 20 70 72 65 76 29 0a 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 .prev).........(put-text-propert
b420 79 20 73 74 61 72 74 20 6e 65 78 74 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.start.next.prop...............
b440 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 64 75 63 65 20 47 43 20 70 72 65 73 73 75 .............;;.Reduce.GC.pressu
b460 72 65 20 62 79 20 6e 6f 74 20 6d 61 6b 69 6e 67 20 61 20 6c 69 73 74 20 69 66 20 69 74 27 73 0a re.by.not.making.a.list.if.it's.
b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 ...........................;;.ju
b4a0 73 74 20 61 20 73 69 6e 67 6c 65 20 66 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.a.single.face................
b4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 65 76 0a 20 20 20 20 20 20 20 20 20 20 .............(if.prev...........
b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 70 72 65 .....................(append.pre
b500 76 20 28 6c 69 73 74 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 v.(list.value)).................
b520 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .............value).............
b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 28 73 ...............object)).......(s
b560 65 74 71 20 73 74 61 72 74 20 6e 65 78 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d etq.start.next))))..(defun.tree-
b580 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 70 74 75 72 65 20 28 63 61 sitter-hl--highlight-capture.(ca
b5a0 70 74 75 72 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 67 69 76 65 6e 20 43 41 pture)..."Highlight.the.given.CA
b5c0 50 54 55 52 45 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 66 61 63 65 20 2e PTURE."...(pcase-let.((`(,face..
b5e0 20 28 2c 62 65 67 2d 62 79 74 65 20 2e 20 2c 65 6e 64 2d 62 79 74 65 29 29 20 63 61 70 74 75 72 .(,beg-byte...,end-byte)).captur
b600 65 29 29 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 49 66 20 69 74 27 73 20 61 20 66 75 6e 63 74 e)).....;;.TODO:.If.it's.a.funct
b620 69 6f 6e 2c 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 28 42 45 47 20 45 4e 44 29 2e 0a 20 20 20 ion,.call.it.with.(BEG.END).....
b640 20 28 77 68 65 6e 20 28 66 61 63 65 70 20 66 61 63 65 29 0a 20 20 20 20 20 20 28 74 72 65 65 2d .(when.(facep.face).......(tree-
b660 73 69 74 74 65 72 2d 68 6c 2d 2d 61 70 70 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a sitter-hl--append-text-property.
b680 20 20 20 20 20 20 20 28 62 79 74 65 2d 74 6f 2d 70 6f 73 69 74 69 6f 6e 20 62 65 67 2d 62 79 74 .......(byte-to-position.beg-byt
b6a0 65 29 0a 20 20 20 20 20 20 20 28 62 79 74 65 2d 74 6f 2d 70 6f 73 69 74 69 6f 6e 20 65 6e 64 2d e)........(byte-to-position.end-
b6c0 62 79 74 65 29 20 27 66 61 63 65 20 66 61 63 65 29 29 29 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 byte).'face.face))))..;;;.TODO:.
b6e0 48 61 6e 64 6c 65 20 65 6d 62 65 64 64 65 64 20 44 53 4c 73 20 28 69 6e 6a 65 63 74 69 6f 6e 73 Handle.embedded.DSLs.(injections
b700 29 2e 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 )..(defun.tree-sitter-hl--highli
b720 67 68 74 2d 72 65 67 69 6f 6e 20 28 62 65 67 20 65 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 6f ght-region.(beg.end.&optional.lo
b740 75 64 6c 79 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 72 65 67 69 6f 6e 20 28 42 udly)..."Highlight.the.region.(B
b760 45 47 20 2e 20 45 4e 44 29 2e 0a 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 EG...END)..This.is.intended.to.b
b780 65 20 75 73 65 64 20 61 73 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 6f 76 65 72 72 69 64 e.used.as.a.buffer-local.overrid
b7a0 65 20 6f 66 0a 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 72 65 67 69 6f 6e 2d 66 e.of.`font-lock-fontify-region-f
b7c0 75 6e 63 74 69 6f 6e 27 2e 0a 0a 49 66 20 4c 4f 55 44 4c 59 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c unction'...If.LOUDLY.is.non-nil,
b7e0 20 70 72 69 6e 74 20 64 65 62 75 67 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 28 74 73 63 2d 2d .print.debug.messages."...(tsc--
b800 73 61 76 65 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d save-context.....(let.((inhibit-
b820 70 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 29 0a 20 20 20 20 20 20 3b 3b 20 point-motion-hooks.t)).......;;.
b840 45 78 74 65 6e 64 20 74 68 65 20 72 65 67 69 6f 6e 20 74 6f 20 62 65 20 68 69 67 68 6c 69 67 68 Extend.the.region.to.be.highligh
b860 74 65 64 2c 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 20 6e 6f 74 20 74 6f 6f 20 77 61 73 74 65 ted,.so.that.it.is.not.too.waste
b880 66 75 6c 6c 79 0a 20 20 20 20 20 20 3b 3b 20 73 6d 61 6c 6c 2e 20 54 68 65 6e 20 65 78 74 65 6e fully.......;;.small..Then.exten
b8a0 64 20 69 74 20 61 67 61 69 6e 2c 20 62 61 73 65 64 20 6f 6e 20 73 6f 6d 65 20 68 65 75 72 69 73 d.it.again,.based.on.some.heuris
b8c0 74 69 63 2c 20 66 6f 72 20 71 75 65 72 79 69 6e 67 2c 20 74 6f 0a 20 20 20 20 20 20 3b 3b 20 61 tic,.for.querying,.to.......;;.a
b8e0 76 6f 69 64 20 63 65 72 74 61 69 6e 20 70 61 74 68 6f 6c 6f 67 69 63 61 6c 20 63 61 73 65 73 2e void.certain.pathological.cases.
b900 20 54 68 69 73 20 69 73 20 70 61 72 74 69 61 6c 6c 79 20 61 6e 61 6c 6f 67 6f 75 73 20 74 6f 20 .This.is.partially.analogous.to.
b920 74 68 65 0a 20 20 20 20 20 20 3b 3b 20 65 78 74 65 6e 73 69 6f 6e 20 64 6f 6e 65 20 62 79 20 60 the.......;;.extension.done.by.`
b940 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 2d 66 6f 6e 74 69 66 79 2d 72 65 67 69 6f 6e font-lock-default-fontify-region
b960 27 2e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 6c 2d 72 65 67 69 6f 6e 20 60 28 2c 62 65 67 '........(let.((hl-region.`(,beg
b980 20 2e 20 2c 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 65 72 79 2d 72 65 67 ...,end)).............(query-reg
b9a0 69 6f 6e 20 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 72 ion.`(,beg...,end))).........(tr
b9c0 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 73 20 68 6c 2d ee-sitter-hl--extend-regions.hl-
b9e0 72 65 67 69 6f 6e 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 region.query-region).........(se
ba00 74 66 20 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 68 6c 2d 72 65 67 69 6f 6e 29 0a 20 20 20 tf.`(,beg...,end).hl-region)....
ba20 20 20 20 20 20 28 74 73 63 2d 2d 71 75 65 72 79 2d 63 75 72 73 6f 72 2d 73 65 74 2d 62 79 74 65 .....(tsc--query-cursor-set-byte
ba40 2d 72 61 6e 67 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 2d 63 75 72 -range.tree-sitter-hl--query-cur
ba60 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sor.............................
ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 28 63 61 .............(position-bytes.(ca
baa0 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.query-region))................
bac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 69 74 ..........................(posit
bae0 69 6f 6e 2d 62 79 74 65 73 20 28 63 64 72 20 71 75 65 72 79 2d 72 65 67 69 6f 6e 29 29 29 29 0a ion-bytes.(cdr.query-region)))).
bb00 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 2d 6e 6f 64 65 20 28 74 73 63 2d 72 6f 6f ......(let*.((root-node.(tsc-roo
bb20 74 2d 6e 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 20 20 20 20 t-node.tree-sitter-tree)).......
bb40 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 73 20 20 28 74 73 63 2d 2d 71 75 65 72 79 2d 63 75 .......(captures..(tsc--query-cu
bb60 72 73 6f 72 2d 63 61 70 74 75 72 65 73 2d 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsor-captures-1.................
bb80 20 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 2d 63 .........tree-sitter-hl--query-c
bba0 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 ursor..........................t
bbc0 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 ree-sitter-hl--query............
bbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 ..............root-node.........
bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 73 63 2d 2d 62 75 66 66 65 72 2d 73 .................#'tsc--buffer-s
bc20 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 29 29 29 0a 20 20 20 20 20 20 ubstring-no-properties))).......
bc40 20 20 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 71 75 69 74 74 69 6e 67 2e 0a 20 20 20 20 ..;;.TODO:.Handle.quitting......
bc60 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 ....(with-silent-modifications..
bc80 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 75 6e 66 6f 6e 74 69 66 79 2d 72 65 .........(font-lock-unfontify-re
bca0 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a gion.beg.end)...........;;.TODO:
bcc0 20 43 6f 6e 73 69 64 65 72 20 67 69 76 69 6e 67 20 63 65 72 74 61 69 6e 20 63 6f 6d 62 69 6e 61 .Consider.giving.certain.combina
bce0 74 69 6f 6e 73 20 6f 66 20 68 69 67 68 6c 69 67 68 74 20 6e 61 6d 65 73 20 74 68 65 69 72 0a 20 tions.of.highlight.names.their..
bd00 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 77 6e 20 66 61 63 65 73 2e 20 46 6f 72 20 65 78 61 6d 70 .........;;.own.faces..For.examp
bd20 6c 65 2c 20 69 74 20 6d 69 67 68 74 20 62 65 20 64 65 73 69 72 61 62 6c 65 20 66 6f 72 20 66 6f le,.it.might.be.desirable.for.fo
bd40 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 6e 6f ntification.of...........;;.a.no
bd60 64 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 62 6f 74 68 20 22 63 6f 6e 73 74 72 75 63 74 6f de.that.matches.both."constructo
bd80 72 22 20 61 6e 64 20 22 76 61 72 69 61 62 6c 65 22 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 20 r".and."variable".to.be.........
bda0 20 20 3b 3b 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 75 6e 69 6f 6e 20 6f 66 ..;;.different.from.the.union.of
bdc0 20 22 63 6f 6e 73 74 72 75 63 74 6f 72 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 22 20 61 6e 64 ."constructor.fontification".and
bde0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 22 76 61 72 69 61 62 6c 65 20 66 6f 6e 74 69 66 69 63 ...........;;."variable.fontific
be00 61 74 69 6f 6e 22 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 74 72 65 65 2d 73 ation"............(mapc.#'tree-s
be20 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 70 74 75 72 65 20 63 61 70 74 itter-hl--highlight-capture.capt
be40 75 72 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 73 68 6f 75 6c 64 20 70 ures)...........;;.This.should.p
be60 72 69 6d 61 72 69 6c 79 20 62 65 20 66 6f 72 20 6b 65 79 77 6f 72 64 73 20 61 64 64 65 64 20 74 rimarily.be.for.keywords.added.t
be80 68 72 6f 75 67 68 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 hrough...........;;.`font-lock-a
bea0 64 64 2d 6b 65 79 77 6f 72 64 73 27 20 28 6d 69 6e 6f 72 20 6d 6f 64 65 73 20 61 6e 64 20 65 6e dd-keywords'.(minor.modes.and.en
bec0 64 20 75 73 65 72 73 29 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 74 d.users)............(when.(and.t
bee0 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 75 73 65 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 ree-sitter-hl-use-font-lock-keyw
bf00 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 6c ords......................font-l
bf20 6f 63 6b 2d 73 65 74 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 ock-set-defaults).............(f
bf40 6f 6e 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 6b 65 79 77 6f 72 64 73 2d 72 65 67 69 6f 6e ont-lock-fontify-keywords-region
bf60 20 62 65 67 20 65 6e 64 20 6c 6f 75 64 6c 79 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 57 65 .beg.end.loudly))).........;;.We
bf80 20 6d 61 79 20 68 61 76 65 20 68 69 67 68 6c 69 67 68 74 65 64 20 6d 6f 72 65 2c 20 62 75 74 20 .may.have.highlighted.more,.but.
bfa0 61 72 65 20 6f 6e 6c 79 20 72 65 61 73 6f 6e 61 62 6c 79 20 73 75 72 65 20 61 62 6f 75 74 0a 20 are.only.reasonably.sure.about..
bfc0 20 20 20 20 20 20 20 3b 3b 20 48 4c 2d 52 45 47 49 4f 4e 2e 0a 20 20 20 20 20 20 20 20 60 28 6a .......;;.HL-REGION..........`(j
bfe0 69 74 2d 6c 6f 63 6b 2d 62 6f 75 6e 64 73 20 2c 62 65 67 20 2e 20 2c 65 6e 64 29 29 29 29 29 0a it-lock-bounds.,beg...,end))))).
c000 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 .(defun.tree-sitter-hl--highligh
c020 74 2d 72 65 67 69 6f 6e 2d 77 69 74 68 2d 66 61 6c 6c 62 61 63 6b 20 28 6f 6c 64 2d 66 6f 6e 74 t-region-with-fallback.(old-font
c040 69 66 79 2d 66 6e 20 62 65 67 20 65 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 6f 75 64 6c 79 29 ify-fn.beg.end.&optional.loudly)
c060 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 72 65 67 69 6f 6e 20 28 42 45 47 20 2e 20 ..."Highlight.the.region.(BEG...
c080 45 4e 44 29 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 END)...This.is.a.wrapper.around.
c0a0 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f `tree-sitter-hl--highlight-regio
c0c0 6e 27 20 74 68 61 74 20 66 61 6c 6c 73 20 62 61 63 6b 20 74 6f 0a 4f 4c 44 2d 46 4f 4e 54 49 46 n'.that.falls.back.to.OLD-FONTIF
c0e0 59 2d 46 4e 20 77 68 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 64 6f 65 Y-FN.when.the.current.buffer.doe
c100 73 6e 27 74 20 68 61 76 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 6d 6f 64 65 27 0a sn't.have.`tree-sitter-hl-mode'.
c120 65 6e 61 62 6c 65 64 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 69 73 20 60 6a 75 70 79 74 65 72 2d enabled..An.example.is.`jupyter-
c140 72 65 70 6c 2d 6d 6f 64 65 27 2c 20 77 68 69 63 68 20 63 6f 70 69 65 73 20 61 6e 64 20 75 73 65 repl-mode',.which.copies.and.use
c160 73 20 6f 74 68 65 72 20 6d 61 6a 6f 72 0a 6d 6f 64 65 73 27 20 66 6f 6e 74 69 66 69 63 61 74 69 s.other.major.modes'.fontificati
c180 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 69 74 73 20 69 6e on.functions.to.highlight.its.in
c1a0 70 75 74 20 63 65 6c 6c 73 2e 20 53 65 65 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f put.cells..See.https://github.co
c1c0 6d 2f 65 6d 61 63 73 2d 74 72 65 65 2d 73 69 74 74 65 72 2f 65 6c 69 73 70 2d 74 72 65 65 2d 73 m/emacs-tree-sitter/elisp-tree-s
c1e0 69 74 74 65 72 2f 69 73 73 75 65 73 2f 37 38 23 69 73 73 75 65 63 6f 6d 6d 65 6e 74 2d 31 30 30 itter/issues/78#issuecomment-100
c200 35 39 38 37 38 31 37 2e 22 0a 20 20 28 69 66 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 5987817."...(if.tree-sitter-hl--
c220 71 75 65 72 79 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 query.......(tree-sitter-hl--hig
c240 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 20 6c 6f 75 64 6c 79 29 0a 20 20 hlight-region.beg.end.loudly)...
c260 20 20 28 66 75 6e 63 61 6c 6c 20 6f 6c 64 2d 66 6f 6e 74 69 66 79 2d 66 6e 20 62 65 67 20 65 6e ..(funcall.old-fontify-fn.beg.en
c280 64 20 6c 6f 75 64 6c 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d d.loudly)))..(defun.tree-sitter-
c2a0 68 6c 2d 2d 69 6e 76 61 6c 69 64 61 74 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 6c 64 2d 74 72 hl--invalidate.(&optional.old-tr
c2c0 65 65 29 0a 20 20 22 4d 61 72 6b 20 72 65 67 69 6f 6e 73 20 6f 66 20 74 65 78 74 20 74 6f 20 62 ee)..."Mark.regions.of.text.to.b
c2e0 65 20 72 65 68 69 67 68 6c 69 67 68 74 65 64 20 61 66 74 65 72 20 61 20 74 65 78 74 20 63 68 61 e.rehighlighted.after.a.text.cha
c300 6e 67 65 2e 0a 49 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 61 nge..Installed.on.`tree-sitter-a
c320 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 0a 4f 4c 44 2d 54 52 45 fter-change-functions'...OLD-TRE
c340 45 20 69 73 20 74 68 65 20 74 72 65 65 20 62 65 66 6f 72 65 20 74 68 65 20 65 64 69 74 2e 22 0a E.is.the.tree.before.the.edit.".
c360 20 20 28 69 66 20 6f 6c 64 2d 74 72 65 65 0a 20 20 20 20 20 20 3b 3b 20 49 6e 63 72 65 6d 65 6e ..(if.old-tree.......;;.Incremen
c380 74 61 6c 20 70 61 72 73 65 2e 0a 20 20 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 72 61 6e tal.parse........(seq-doseq.(ran
c3a0 67 65 20 28 74 73 63 2d 63 68 61 6e 67 65 64 2d 72 61 6e 67 65 73 20 6f 6c 64 2d 74 72 65 65 20 ge.(tsc-changed-ranges.old-tree.
c3c0 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f tree-sitter-tree)).........;;.TO
c3e0 44 4f 3a 20 48 6f 77 20 61 62 6f 75 74 20 69 6e 76 61 6c 69 64 61 74 69 6e 67 20 61 20 73 69 6e DO:.How.about.invalidating.a.sin
c400 67 6c 65 20 6c 61 72 67 65 20 72 61 6e 67 65 3f 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d gle.large.range?.........(pcase-
c420 6c 65 74 2a 20 28 28 60 5b 2c 62 65 67 2d 62 79 74 65 20 2c 65 6e 64 2d 62 79 74 65 5d 20 72 61 let*.((`[,beg-byte.,end-byte].ra
c440 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 nge)......................(beg.(
c460 62 79 74 65 2d 74 6f 2d 70 6f 73 69 74 69 6f 6e 20 62 65 67 2d 62 79 74 65 29 29 0a 20 20 20 20 byte-to-position.beg-byte)).....
c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 62 79 74 65 2d 74 6f 2d 70 .................(end.(byte-to-p
c4a0 6f 73 69 74 69 6f 6e 20 65 6e 64 2d 62 79 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b osition.end-byte)))...........;;
c4c0 20 54 4f 44 4f 3a 20 48 6f 77 20 61 62 6f 75 74 20 63 61 6c 6c 69 6e 67 20 60 6a 69 74 2d 6c 6f .TODO:.How.about.calling.`jit-lo
c4e0 63 6b 2d 72 65 66 6f 6e 74 69 66 79 27 20 64 69 72 65 63 74 6c 79 3f 0a 20 20 20 20 20 20 20 20 ck-refontify'.directly?.........
c500 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 ..(font-lock-flush.beg.end)))...
c520 20 20 3b 3b 20 46 69 72 73 74 20 70 61 72 73 65 2e 0a 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b ..;;.First.parse......(font-lock
c540 2d 66 6c 75 73 68 29 29 29 0a 0a 3b 3b 3b 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -flush)))..;;;.-----------------
c560 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
c580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 3b 3b 3b 20 ---------------------------.;;;.
c5a0 53 65 74 75 70 20 61 6e 64 20 74 65 61 72 64 6f 77 6e 2e 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 Setup.and.teardown...(defvar-loc
c5c0 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 al.tree-sitter-hl--font-lock-key
c5e0 77 6f 72 64 73 20 6e 69 6c 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 words.nil)..(defun.tree-sitter-h
c600 6c 2d 2d 6d 69 6e 69 6d 69 7a 65 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 20 28 l--minimize-font-lock-keywords.(
c620 29 0a 20 20 22 52 65 6d 6f 76 65 20 6b 65 79 77 6f 72 64 73 20 73 65 74 20 62 79 20 60 66 6f 6e )..."Remove.keywords.set.by.`fon
c640 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 27 20 66 72 6f 6d 20 60 66 6f 6e 74 2d 6c 6f 63 6b t-lock-defaults'.from.`font-lock
c660 2d 6b 65 79 77 6f 72 64 73 27 2e 22 0a 20 20 28 77 68 65 6e 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 -keywords'."...(when.font-lock-s
c680 65 74 2d 64 65 66 61 75 6c 74 73 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 et-defaults.....(unless.tree-sit
c6a0 74 65 72 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 ter-hl--font-lock-keywords......
c6c0 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b .(setq.tree-sitter-hl--font-lock
c6e0 2d 6b 65 79 77 6f 72 64 73 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 29 0a 20 20 -keywords.font-lock-keywords)...
c700 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 75 73 65 ....(when.(eq.tree-sitter-hl-use
c720 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 20 3a 65 78 63 65 70 74 2d 66 6f 6e 74 -font-lock-keywords.:except-font
c740 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 58 58 58 3a 20 -lock-defaults).........;;.XXX:.
c760 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 74 68 69 73 20 63 6f 76 65 72 73 20 61 6c 6c 20 74 68 Check.whether.this.covers.all.th
c780 65 20 65 64 67 65 20 63 61 73 65 73 20 6f 66 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 6f 6e 0a e.edge.cases.of.the.interaction.
c7a0 20 20 20 20 20 20 20 20 3b 3b 20 62 65 74 77 65 65 6e 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 76 ........;;.between.`font-lock-ev
c7c0 61 6c 2d 6b 65 79 77 6f 72 64 73 27 20 61 6e 64 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 72 65 6d 6f al-keywords'.and.`font-lock-remo
c7e0 76 65 2d 6b 65 79 77 6f 72 64 73 27 2e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6b 65 ve-keywords'..........(let*.((ke
c800 79 77 6f 72 64 73 2d 73 70 65 63 20 28 63 61 72 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 ywords-spec.(car.font-lock-defau
c820 6c 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 73 70 65 63 lts))................;;.The.spec
c840 20 63 61 6e 20 62 65 20 61 20 6c 69 73 74 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f .can.be.a.list,.corresponding.to
c860 20 6d 75 6c 74 69 70 6c 65 20 6c 65 76 65 6c 73 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 .multiple.levels.of.............
c880 20 20 20 3b 3b 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 2e 20 57 65 20 77 61 6e 74 20 74 6f 20 ...;;.fontification..We.want.to.
c8a0 64 69 73 61 62 6c 65 20 61 6c 6c 20 6f 66 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 disable.all.of.them.............
c8c0 20 20 20 20 28 6b 65 79 77 6f 72 64 73 2d 6c 69 73 74 20 28 69 66 20 28 61 6e 64 20 28 6c 69 73 ....(keywords-list.(if.(and.(lis
c8e0 74 70 20 6b 65 79 77 6f 72 64 73 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tp.keywords-spec)...............
c900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c .........................(symbol
c920 70 20 28 63 61 72 20 6b 65 79 77 6f 72 64 73 2d 73 70 65 63 29 29 29 0a 20 20 20 20 20 20 20 20 p.(car.keywords-spec))).........
c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 77 6f 72 ..........................keywor
c960 64 73 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ds-spec.........................
c980 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6b 65 79 77 6f 72 64 73 2d 73 70 65 63 29 29 29 29 0a ........(list.keywords-spec)))).
c9a0 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 77 6f 72 64 73 20 6b 65 79 77 ..........(dolist.(keywords.keyw
c9c0 6f 72 64 73 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 ords-list).............(font-loc
c9e0 6b 2d 72 65 6d 6f 76 65 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e k-remove-keywords..............n
ca00 69 6c 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 76 61 6c 2d 6b 65 79 77 6f 72 64 73 20 6b 65 79 77 il.(font-lock-eval-keywords.keyw
ca20 6f 72 64 73 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 ords))))))))..(defun.tree-sitter
ca40 2d 68 6c 2d 2d 72 65 73 74 6f 72 65 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 20 -hl--restore-font-lock-keywords.
ca60 28 29 0a 20 20 22 55 6e 64 6f 20 74 68 65 20 68 61 63 6b 20 64 6f 6e 65 20 62 79 20 60 74 72 65 ()..."Undo.the.hack.done.by.`tre
ca80 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 6d 69 6e 69 6d 69 7a 65 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d e-sitter-hl--minimize-font-lock-
caa0 6b 65 79 77 6f 72 64 73 27 2e 22 0a 20 20 28 77 68 65 6e 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 65 keywords'."...(when.font-lock-se
cac0 74 2d 64 65 66 61 75 6c 74 73 0a 20 20 20 20 28 77 68 65 6e 20 74 72 65 65 2d 73 69 74 74 65 72 t-defaults.....(when.tree-sitter
cae0 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 20 28 73 -hl--font-lock-keywords.......(s
cb00 65 74 71 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 20 74 72 65 65 2d 73 69 74 74 etq.font-lock-keywords.tree-sitt
cb20 65 72 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 20 20 20 20 er-hl--font-lock-keywords.......
cb40 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d ......tree-sitter-hl--font-lock-
cb60 6b 65 79 77 6f 72 64 73 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 keywords.nil))))..(defun.tree-si
cb80 74 74 65 72 2d 68 6c 2d 2d 73 65 74 75 70 20 28 29 0a 20 20 22 53 65 74 20 75 70 20 60 74 72 65 tter-hl--setup.()..."Set.up.`tre
cba0 65 2d 73 69 74 74 65 72 2d 68 6c 27 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 e-sitter-hl'.in.the.current.buff
cbc0 65 72 2e 0a 54 68 69 73 20 61 73 73 75 6d 65 73 20 62 6f 74 68 20 60 74 72 65 65 2d 73 69 74 74 er..This.assumes.both.`tree-sitt
cbe0 65 72 2d 6d 6f 64 65 27 20 61 6e 64 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 20 77 65 er-mode'.and.`font-lock-mode'.we
cc00 72 65 20 61 6c 72 65 61 64 79 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 re.already.enabled."...;;.TODO:.
cc20 49 66 20 74 68 65 72 65 27 73 20 61 6e 20 65 72 72 6f 72 2c 20 64 69 73 61 62 6c 65 20 60 74 72 If.there's.an.error,.disable.`tr
cc40 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 78 74 72 61 2d 70 61 74 74 65 72 6e 73 2d 6c 69 73 ee-sitter-hl--extra-patterns-lis
cc60 74 27 0a 20 20 3b 3b 20 61 6e 64 20 72 65 74 72 79 2e 0a 20 20 28 77 68 65 6e 20 28 74 72 65 65 t'...;;.and.retry....(when.(tree
cc80 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 65 6e 73 75 72 65 2d 71 75 65 72 79 29 0a 20 20 20 20 28 75 -sitter-hl--ensure-query).....(u
cca0 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 2d 63 75 72 73 nless.tree-sitter-hl--query-curs
ccc0 6f 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 or.......(setq.tree-sitter-hl--q
cce0 75 65 72 79 2d 63 75 72 73 6f 72 20 28 74 73 63 2d 6d 61 6b 65 2d 71 75 65 72 79 2d 63 75 72 73 uery-cursor.(tsc-make-query-curs
cd00 6f 72 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 6e 76 61 6c 69 64 61 74 65 20 74 68 65 20 62 75 66 or)).......;;.Invalidate.the.buf
cd20 66 65 72 2c 20 6f 6e 6c 79 20 69 66 20 77 65 20 77 65 72 65 20 61 63 74 75 61 6c 6c 79 20 64 69 fer,.only.if.we.were.actually.di
cd40 73 61 62 6c 65 64 20 70 72 65 76 69 6f 75 73 6c 79 2e 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 sabled.previously........(tree-s
cd60 69 74 74 65 72 2d 68 6c 2d 2d 69 6e 76 61 6c 69 64 61 74 65 29 29 0a 20 20 20 20 3b 3b 20 54 4f itter-hl--invalidate)).....;;.TO
cd80 44 4f 3a 20 4f 76 65 72 72 69 64 65 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 78 74 65 6e 64 2d 61 DO:.Override.`font-lock-extend-a
cda0 66 74 65 72 2d 63 68 61 6e 67 65 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 6f 72 fter-change-region-function',.or
cdc0 20 68 6f 6f 6b 0a 20 20 20 20 3b 3b 20 69 6e 74 6f 20 60 6a 69 74 2d 6c 6f 63 6b 2d 61 66 74 65 .hook.....;;.into.`jit-lock-afte
cde0 72 2d 63 68 61 6e 67 65 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 r-change-extend-region-functions
ce00 27 20 64 69 72 65 63 74 6c 79 2e 20 46 6f 72 20 74 68 61 74 20 74 6f 0a 20 20 20 20 3b 3b 20 77 '.directly..For.that.to.....;;.w
ce20 6f 72 6b 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 60 74 72 65 65 2d ork,.we.need.to.make.sure.`tree-
ce40 73 69 74 74 65 72 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 27 20 72 75 6e 73 20 62 65 66 6f 72 sitter--after-change'.runs.befor
ce60 65 0a 20 20 20 20 3b 3b 20 60 6a 69 74 2d 6c 6f 63 6b 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 27 e.....;;.`jit-lock-after-change'
ce80 2e 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 ......(add-hook.'tree-sitter-aft
cea0 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 er-change-functions.............
cec0 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 69 6e 76 61 6c 69 64 61 74 65 0a 20 ..#'tree-sitter-hl--invalidate..
cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 0a 20 20 20 20 3b 3b 20 .............nil.:local).....;;.
cf00 54 4f 44 4f 3a 20 46 69 67 75 72 65 20 6f 75 74 20 68 6f 77 20 74 6f 20 70 72 6f 70 65 72 6c 79 TODO:.Figure.out.how.to.properly
cf20 20 69 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 60 6a 69 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 20 .integrate.with.`jit-lock-mode'.
cf40 64 69 72 65 63 74 6c 79 2c 0a 20 20 20 20 3b 3b 20 77 69 74 68 6f 75 74 20 72 65 6c 79 69 6e 67 directly,.....;;.without.relying
cf60 20 6f 6e 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 2e 20 41 6d 6f 6e 67 20 6f 74 68 65 .on.`font-lock-mode'..Among.othe
cf80 72 20 74 68 69 6e 67 73 2c 20 69 74 20 77 6f 75 6c 64 20 65 6e 61 62 6c 65 0a 20 20 20 20 3b 3b r.things,.it.would.enable.....;;
cfa0 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 77 69 74 68 6f 75 74 20 73 65 74 74 69 6e 67 20 60 66 .highlighting.without.setting.`f
cfc0 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 27 2e 20 41 74 20 74 68 65 20 6d 6f 6d 65 6e ont-lock-defaults'..At.the.momen
cfe0 74 2c 0a 20 20 20 20 3b 3b 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 20 73 6f 6d 65 68 t,.....;;.`font-lock-mode'.someh
d000 6f 77 20 68 65 6c 70 73 20 77 69 74 68 20 6d 61 6b 69 6e 67 20 73 75 72 65 20 74 68 61 74 20 66 ow.helps.with.making.sure.that.f
d020 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 69 73 0a 20 20 20 20 3b 3b 20 75 70 64 61 74 65 64 20 69 ontification.is.....;;.updated.i
d040 6e 2d 74 69 6d 65 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 65 76 65 6e 74 75 61 6c 6c 79 2e 0a 20 n-time,.instead.of.eventually...
d060 20 20 20 28 61 64 64 2d 66 75 6e 63 74 69 6f 6e 20 3a 61 72 6f 75 6e 64 20 28 6c 6f 63 61 6c 20 ...(add-function.:around.(local.
d080 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 'font-lock-fontify-region-functi
d0a0 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 on)...................#'tree-sit
d0c0 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 2d 77 69 74 68 2d 66 61 ter-hl--highlight-region-with-fa
d0e0 6c 6c 62 61 63 6b 29 0a 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 6d 69 6e llback).....(tree-sitter-hl--min
d100 69 6d 69 7a 65 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 29 0a 20 20 20 20 3b 3b imize-font-lock-keywords).....;;
d120 20 58 58 58 3a 20 57 65 20 75 73 65 64 20 74 6f 20 68 61 76 65 20 61 20 68 61 63 6b 20 74 68 61 .XXX:.We.used.to.have.a.hack.tha
d140 74 20 63 61 6c 6c 73 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 74 75 72 6e 2d 6f 6e 2d 74 68 69 6e 67 2d t.calls`font-lock-turn-on-thing-
d160 6c 6f 63 6b 27 2c 0a 20 20 20 20 3b 3b 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 74 75 72 6e 69 lock',.....;;.which.allows.turni
d180 6e 67 20 6f 6e 20 74 72 65 65 2d 62 61 73 65 64 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 ng.on.tree-based.syntax.highligh
d1a0 74 69 6e 67 20 62 79 20 74 65 6d 70 6f 72 61 72 69 6c 79 0a 20 20 20 20 3b 3b 20 62 69 6e 64 69 ting.by.temporarily.....;;.bindi
d1c0 6e 67 20 60 6d 61 6a 6f 72 2d 6d 6f 64 65 27 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 73 75 63 ng.`major-mode',.even.though.suc
d1e0 68 20 61 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 6d 61 79 20 6e 6f 74 20 62 65 20 69 6e 73 74 61 6c h.a.major.mode.may.not.be.instal
d200 6c 65 64 2c 0a 20 20 20 20 3b 3b 20 6f 72 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 46 led,.....;;.or.does.not.exist..F
d220 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 20 20 20 20 28 6c or.example:.....;;.....;;.....(l
d240 65 74 20 28 28 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 67 6f 2d 6d 6f 64 65 29 29 20 28 74 72 65 65 et.((major-mode.'go-mode)).(tree
d260 2d 73 69 74 74 65 72 2d 68 6c 2d 6d 6f 64 65 29 29 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 -sitter-hl-mode)).....;;.....;;.
d280 48 6f 77 65 76 65 72 2c 20 69 66 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 20 69 73 20 However,.if.`font-lock-mode'.is.
d2a0 73 75 62 73 65 71 75 65 6e 74 6c 79 20 64 69 73 61 62 6c 65 64 2c 20 62 65 63 61 75 73 65 0a 20 subsequently.disabled,.because..
d2c0 20 20 20 3b 3b 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 74 75 72 6e 2d 6f 66 66 2d 74 68 69 6e 67 2d ...;;.`font-lock-turn-off-thing-
d2e0 6c 6f 63 6b 27 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 70 65 72 6c 79 20 63 6c 65 61 6e 20 75 70 lock'.does.not.properly.clean.up
d300 20 74 68 65 20 6c 6f 63 61 6c 0a 20 20 20 20 3b 3b 20 76 61 6c 75 65 20 6f 66 20 60 66 6f 6e 74 .the.local.....;;.value.of.`font
d320 2d 6c 6f 63 6b 2d 65 6e 73 75 72 65 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 63 61 6c 6c 69 6e 67 20 -lock-ensure-function',.calling.
d340 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 6e 73 75 72 65 27 20 77 69 6c 6c 0a 20 20 20 20 3b 3b 20 73 `font-lock-ensure'.will.....;;.s
d360 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 69 ignal.an.error..For.example,.thi
d380 73 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 6f 72 67 2d 6d 6f 64 65 27 73 20 63 6f 64 65 20 62 s.happens.when.org-mode's.code.b
d3a0 6c 6f 63 6b 73 0a 20 20 20 20 3b 3b 20 61 72 65 20 68 69 67 68 6c 69 67 68 74 65 64 29 2e 20 54 locks.....;;.are.highlighted)..T
d3c0 68 65 72 65 66 6f 72 65 2c 20 77 65 20 64 69 73 61 62 6c 65 64 20 74 68 61 74 20 68 61 63 6b 2e herefore,.we.disabled.that.hack.
d3e0 20 53 65 65 0a 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 65 .See.....;;.https://github.com/e
d400 6d 61 63 73 2d 74 72 65 65 2d 73 69 74 74 65 72 2f 65 6c 69 73 70 2d 74 72 65 65 2d 73 69 74 74 macs-tree-sitter/elisp-tree-sitt
d420 65 72 2f 69 73 73 75 65 73 2f 37 34 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 er/issues/74.....))..(defun.tree
d440 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 74 65 61 72 64 6f 77 6e 20 28 29 0a 20 20 22 54 65 61 72 20 -sitter-hl--teardown.()..."Tear.
d460 64 6f 77 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 27 20 69 6e 20 74 68 65 20 63 75 72 down.`tree-sitter-hl'.in.the.cur
d480 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 72 65 6d 6f 76 65 2d 66 75 6e 63 74 69 6f 6e rent.buffer."...(remove-function
d4a0 20 28 6c 6f 63 61 6c 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 72 65 67 69 6f .(local.'font-lock-fontify-regio
d4c0 6e 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 n-function)....................#
d4e0 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 'tree-sitter-hl--highlight-regio
d500 6e 2d 77 69 74 68 2d 66 61 6c 6c 62 61 63 6b 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 n-with-fallback)...(remove-hook.
d520 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 'tree-sitter-after-change-functi
d540 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 ons................#'tree-sitter
d560 2d 68 6c 2d 2d 69 6e 76 61 6c 69 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a -hl--invalidate................:
d580 6c 6f 63 61 6c 29 0a 20 20 28 77 68 65 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 local)...(when.tree-sitter-hl--q
d5a0 75 65 72 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 uery-cursor.....(setq.tree-sitte
d5c0 72 2d 68 6c 2d 2d 71 75 65 72 79 2d 63 75 72 73 6f 72 20 6e 69 6c 29 0a 20 20 20 20 3b 3b 20 49 r-hl--query-cursor.nil).....;;.I
d5e0 6e 76 61 6c 69 64 61 74 65 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 6e 6c 79 20 69 66 20 77 65 nvalidate.the.buffer,.only.if.we
d600 20 77 65 72 65 20 61 63 74 75 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 70 72 65 76 69 6f 75 73 6c .were.actually.enabled.previousl
d620 79 2e 0a 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 29 29 0a 20 20 28 77 68 65 y......(font-lock-flush))...(whe
d640 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 0a 20 20 20 20 28 73 65 74 n.tree-sitter-hl--query.....(set
d660 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 71 75 65 72 79 20 6e 69 6c 29 0a 20 20 20 q.tree-sitter-hl--query.nil)....
d680 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 2d 72 65 73 74 6f 72 65 2d 66 6f 6e 74 2d 6c .(tree-sitter-hl--restore-font-l
d6a0 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a ock-keywords)))..;;;###autoload.
d6c0 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 (define-minor-mode.tree-sitter-h
d6e0 6c 2d 6d 6f 64 65 0a 20 20 22 54 6f 67 67 6c 65 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67 68 l-mode..."Toggle.syntax.highligh
d700 74 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 54 72 65 65 2d 73 69 74 74 65 72 27 73 20 73 79 6e 74 ting.based.on.Tree-sitter's.synt
d720 61 78 20 74 72 65 65 2e 0a 49 66 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2d 64 65 66 61 ax.tree..If.`tree-sitter-hl-defa
d740 75 6c 74 2d 70 61 74 74 65 72 6e 73 27 20 69 73 20 6e 69 6c 2c 20 74 75 72 6e 69 6e 67 20 6f 6e ult-patterns'.is.nil,.turning.on
d760 20 74 68 69 73 20 6d 6f 64 65 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 2c 0a 61 6e 64 20 64 6f 65 .this.mode.does.nothing,.and.doe
d780 73 20 6e 6f 74 20 69 6e 74 65 72 66 65 72 65 20 77 69 74 68 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d s.not.interfere.with.`font-lock-
d7a0 6d 6f 64 65 27 2e 0a 0a 45 6e 61 62 6c 69 6e 67 20 74 68 69 73 20 61 75 74 6f 6d 61 74 69 63 61 mode'...Enabling.this.automatica
d7c0 6c 6c 79 20 65 6e 61 62 6c 65 73 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 lly.enables.`tree-sitter-mode'.i
d7e0 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 54 6f 20 65 6e 61 62 6c 65 20 74 68 69 73 20 61 75 n.the.buffer...To.enable.this.au
d800 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 65 76 65 72 20 60 74 72 65 65 2d 73 69 74 74 65 tomatically.whenever.`tree-sitte
d820 72 2d 6d 6f 64 65 27 20 69 73 20 65 6e 61 62 6c 65 64 3a 0a 0a 20 28 61 64 64 2d 68 6f 6f 6b 20 r-mode'.is.enabled:...(add-hook.
d840 27 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 6f 6e 2d 68 6f 6f 6b 20 23 27 74 72 65 'tree-sitter-after-on-hook.#'tre
d860 65 2d 73 69 74 74 65 72 2d 68 6c 2d 6d 6f 64 65 29 22 0a 20 20 3a 69 6e 69 74 2d 76 61 6c 75 65 e-sitter-hl-mode)"...:init-value
d880 20 6e 69 6c 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 0a 20 20 28 74 72 .nil...:group.'tree-sitter...(tr
d8a0 65 65 2d 73 69 74 74 65 72 2d 2d 68 61 6e 64 6c 65 2d 64 65 70 65 6e 64 65 6e 74 20 74 72 65 65 ee-sitter--handle-dependent.tree
d8c0 2d 73 69 74 74 65 72 2d 68 6c 2d 6d 6f 64 65 0a 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 -sitter-hl-mode.....#'tree-sitte
d8e0 72 2d 68 6c 2d 2d 73 65 74 75 70 0a 20 20 20 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c r-hl--setup.....#'tree-sitter-hl
d900 2d 2d 74 65 61 72 64 6f 77 6e 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 --teardown))..(provide.'tree-sit
d920 74 65 72 2d 68 6c 29 0a 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 68 6c 2e 65 6c 20 65 6e ter-hl).;;;.tree-sitter-hl.el.en
d940 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ds.here.........................
d960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da00 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
da20 69 74 74 65 72 2d 71 75 65 72 79 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-query.el..................
da40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
da60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
da80 30 30 31 32 30 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 30 32 00 20 30 00 00 00 0012043.00000000000.017202..0...
daa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
db00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
db20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
db40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
db60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
db80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dc00 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2e 65 6c 20 2d 2d 2d 20 54 6f 6f ;;;.tree-sitter-query.el.---.Too
dc20 6c 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 71 75 65 72 69 65 73 20 6c 69 76 65 20 2d 2a 2d 20 ls.for.running.queries.live.-*-.
dc40 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d lexical-binding:.t;.coding:.utf-
dc60 38 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 20 20 54 75 8.-*-..;;.Copyright.(C).2020..Tu
dc80 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 ...n-Anh.Nguy...n.;;.;;.Author:.
dca0 4a 6f 72 67 65 20 4a 61 76 69 65 72 20 41 72 61 79 61 20 4e 61 76 61 72 72 6f 20 3c 6a 6f 72 67 Jorge.Javier.Araya.Navarro.<jorg
dcc0 65 6a 61 76 69 65 72 61 6e 40 79 61 68 6f 6f 2e 63 6f 6d 2e 6d 78 3e 0a 3b 3b 20 53 50 44 58 2d ejavieran@yahoo.com.mx>.;;.SPDX-
dce0 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 4d 49 54 0a 0a 3b 3b 3b 20 43 6f 6d License-Identifier:.MIT..;;;.Com
dd00 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 mentary:..;;.This.file.contains.
dd20 6f 74 68 65 72 20 64 65 62 75 67 20 75 74 69 6c 69 74 69 65 73 20 66 6f 72 20 62 75 69 6c 64 69 other.debug.utilities.for.buildi
dd40 6e 67 20 71 75 65 72 69 65 73 20 61 6e 64 20 73 65 65 20 72 65 73 75 6c 74 73 0a 3b 3b 20 69 6e ng.queries.and.see.results.;;.in
dd60 20 61 20 74 61 72 67 65 74 20 62 75 66 66 65 72 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 .a.target.buffer...;;;.Code:..(r
dd80 65 71 75 69 72 65 20 27 73 63 68 65 6d 65 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 65 65 2d 73 equire.'scheme).(require.'tree-s
dda0 69 74 74 65 72 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 itter)..(defgroup.tree-sitter-qu
ddc0 65 72 79 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d 73 69 74 74 65 72 20 70 6c 61 79 67 72 6f 75 6e ery.nil..."Tree-sitter.playgroun
dde0 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 64 65 66 d."...:group.'tree-sitter)..(def
de00 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 ine-derived-mode.tree-sitter-que
de20 72 79 2d 6d 6f 64 65 20 70 72 6f 67 2d 6d 6f 64 65 20 22 74 73 63 2d 71 75 65 72 79 2d 62 75 69 ry-mode.prog-mode."tsc-query-bui
de40 6c 64 65 72 22 0a 20 20 22 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 lder"..."Major.mode.for.building
de60 20 74 72 65 65 2d 73 69 74 74 65 72 20 71 75 65 72 69 65 73 20 61 6e 64 20 74 65 73 74 69 6e 67 .tree-sitter.queries.and.testing
de80 20 74 68 65 6d 20 6c 69 76 65 2e 22 0a 20 20 3a 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 63 68 .them.live."...:syntax-table.sch
dea0 65 6d 65 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a 20 20 3a 61 62 62 72 65 76 2d eme-mode-syntax-table...:abbrev-
dec0 74 61 62 6c 65 20 73 63 68 65 6d 65 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 62 6c 65 29 0a table.scheme-mode-abbrev-table).
dee0 0a 28 64 65 66 63 6f 6e 73 74 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 62 75 69 .(defconst.tree-sitter-query-bui
df00 6c 64 65 72 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 74 72 65 65 2d 73 69 74 74 65 72 2d 71 lder-buffer-name."*tree-sitter-q
df20 75 65 72 79 2d 62 75 69 6c 64 65 72 2a 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 uery-builder*"..."Name.of.the.bu
df40 69 6c 64 65 72 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 74 72 65 65 2d 73 69 ilder.buffer.")..(defvar.tree-si
df60 74 74 65 72 2d 71 75 65 72 79 2d 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 tter-query--target-buffer.nil...
df80 22 54 61 72 67 65 74 20 62 75 66 66 65 72 20 74 6f 20 72 75 6e 20 74 68 65 20 71 75 65 72 69 65 "Target.buffer.to.run.the.querie
dfa0 73 20 61 67 61 69 6e 73 74 2e 22 29 0a 0a 28 64 65 66 66 61 63 65 20 74 72 65 65 2d 73 69 74 74 s.against.")..(defface.tree-sitt
dfc0 65 72 2d 71 75 65 72 79 2d 6d 61 74 63 68 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e er-query-match...'((t.:foregroun
dfe0 64 20 22 23 30 30 30 22 0a 20 20 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 30 30 d."#000"........:background."#00
e000 62 66 66 66 22 0a 20 20 20 20 20 20 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 46 bfff"........:weight.bold))..."F
e020 61 63 65 20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 20 63 61 70 74 75 72 65 73 20 69 6e 20 6d 61 ace.for.highlight.captures.in.ma
e040 74 63 68 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 tches."...:group.'tree-sitter-qu
e060 65 72 79 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 65 63 68 6f 20 28 ery)..(defun.tree-sitter--echo.(
e080 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 44 69 73 70 6c 61 79 20 61 20 74 72 61 6e 73 69 65 &rest.args)..."Display.a.transie
e0a0 6e 74 20 6d 65 73 73 61 67 65 2c 20 77 69 74 68 6f 75 74 20 6c 6f 67 67 69 6e 67 20 69 74 20 69 nt.message,.without.logging.it.i
e0c0 6e 20 74 68 65 20 60 2a 4d 65 73 73 61 67 65 73 2a 27 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c n.the.`*Messages*'.buffer."...(l
e0e0 65 74 20 28 6d 65 73 73 61 67 65 2d 6c 6f 67 2d 6d 61 78 29 0a 20 20 20 20 28 61 70 70 6c 79 20 et.(message-log-max).....(apply.
e100 23 27 6d 65 73 73 61 67 65 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 #'message.args)))..(defun.tree-s
e120 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 70 74 75 72 65 20 28 itter-query--highlight-capture.(
e140 63 61 70 74 75 72 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 43 41 50 54 55 52 45 20 69 6e capture)..."Highlight.CAPTURE.in
e160 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c .the.current.buffer."...(pcase-l
e180 65 74 2a 20 28 28 60 28 2c 63 61 70 74 75 72 65 2d 73 79 6d 62 6f 6c 20 2e 20 2c 63 61 70 74 75 et*.((`(,capture-symbol...,captu
e1a0 72 65 64 2d 6e 6f 64 65 29 20 63 61 70 74 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 red-node).capture)..............
e1c0 20 20 28 60 28 2c 6e 6f 64 65 2d 73 74 61 72 74 20 2e 20 2c 6e 6f 64 65 2d 65 6e 64 29 20 28 74 ..(`(,node-start...,node-end).(t
e1e0 73 63 2d 6e 6f 64 65 2d 70 6f 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 63 61 70 74 75 72 65 64 2d sc-node-position-range.captured-
e200 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 20 28 node))................(overlay.(
e220 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 6e 6f 64 65 2d 73 74 61 72 74 20 6e 6f 64 65 2d 65 6e 64 make-overlay.node-start.node-end
e240 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 2d 6e 61 6d 65 20 ))................(capture-name.
e260 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 61 70 74 75 72 65 2d 73 79 6d 62 6f 6c 29 29 29 0a 20 (symbol-name.capture-symbol)))..
e280 20 20 20 3b 3b 20 45 6e 73 75 72 65 20 74 68 65 20 6f 76 65 72 6c 61 79 20 69 73 20 64 65 6c 65 ...;;.Ensure.the.overlay.is.dele
e2a0 74 65 64 20 77 68 65 6e 20 69 74 20 62 65 63 6f 6d 65 73 20 65 6d 70 74 79 2e 0a 20 20 20 20 28 ted.when.it.becomes.empty......(
e2c0 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 65 76 61 70 6f 72 61 74 65 20 74 overlay-put.overlay.'evaporate.t
e2e0 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 66 61 63 65 ).....(overlay-put.overlay.'face
e300 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 6d 61 74 63 68 29 0a 20 20 20 20 3b .'tree-sitter-query-match).....;
e320 3b 20 55 73 65 20 74 68 65 20 63 61 70 74 75 72 65 27 73 20 6e 61 6d 65 20 61 73 20 74 68 65 20 ;.Use.the.capture's.name.as.the.
e340 6d 6f 75 73 65 6f 76 65 72 20 74 6f 6f 6c 74 69 70 2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 mouseover.tooltip......(unless.(
e360 73 74 72 69 6e 67 3d 20 63 61 70 74 75 72 65 2d 6e 61 6d 65 20 22 22 29 0a 20 20 20 20 20 20 28 string=.capture-name."").......(
e380 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 68 65 6c 70 2d 65 63 68 6f 20 63 overlay-put.overlay.'help-echo.c
e3a0 61 70 74 75 72 65 2d 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 apture-name))))..(defun.tree-sit
e3c0 74 65 72 2d 71 75 65 72 79 2d 2d 65 76 61 6c 2d 71 75 65 72 79 20 28 70 61 74 74 65 72 6e 73 29 ter-query--eval-query.(patterns)
e3e0 0a 20 20 22 45 76 61 6c 75 61 74 65 20 71 75 65 72 79 20 50 41 54 54 45 52 4e 53 20 61 67 61 69 ..."Evaluate.query.PATTERNS.agai
e400 6e 73 74 20 74 68 65 20 74 61 72 67 65 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 69 74 68 2d nst.the.target.buffer."...(with-
e420 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 current-buffer.tree-sitter-query
e440 2d 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 0a 20 20 20 20 28 74 73 63 2d 2d 77 69 74 68 6f 75 --target-buffer.....(tsc--withou
e460 74 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 6f 76 65 72 t-restriction.......(remove-over
e480 6c 61 79 73 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 0a 20 20 20 20 20 20 20 20 20 lays).......(when-let*..........
e4a0 20 28 28 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d .((query.............(condition-
e4c0 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 6d 61 case.err.................(tsc-ma
e4e0 6b 65 2d 71 75 65 72 79 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 20 70 61 ke-query.tree-sitter-language.pa
e500 74 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 74 73 63 2d 71 75 65 72 tterns)...............((tsc-quer
e520 79 2d 69 6e 76 61 6c 69 64 2d 6e 6f 64 65 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 y-invalid-node-type.............
e540 20 20 20 20 74 73 63 2d 71 75 65 72 79 2d 69 6e 76 61 6c 69 64 2d 66 69 65 6c 64 0a 20 20 20 20 ....tsc-query-invalid-field.....
e560 20 20 20 20 20 20 20 20 20 20 20 20 74 73 63 2d 71 75 65 72 79 2d 69 6e 76 61 6c 69 64 2d 63 61 ............tsc-query-invalid-ca
e580 70 74 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 pture)................(tree-sitt
e5a0 65 72 2d 2d 65 63 68 6f 20 22 25 73 3a 20 25 73 22 20 28 67 65 74 20 28 63 61 72 20 65 72 72 29 er--echo."%s:.%s".(get.(car.err)
e5c0 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 29 20 28 63 61 64 72 20 65 72 72 29 29 0a 20 20 20 .'error-message).(cadr.err))....
e5e0 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ............nil)...............(
e600 74 73 63 2d 71 75 65 72 79 2d 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tsc-query-invalid...............
e620 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 65 63 68 6f 20 22 25 73 22 20 28 67 65 74 20 28 63 .(tree-sitter--echo."%s".(get.(c
e640 61 72 20 65 72 72 29 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 ar.err).'error-message))........
e660 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 6f 6f 74 2d ........nil)))............(root-
e680 6e 6f 64 65 20 28 74 73 63 2d 72 6f 6f 74 2d 6e 6f 64 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d node.(tsc-root-node.tree-sitter-
e6a0 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 73 20 28 74 73 63 tree))............(captures.(tsc
e6c0 2d 71 75 65 72 79 2d 63 61 70 74 75 72 65 73 20 71 75 65 72 79 20 72 6f 6f 74 2d 6e 6f 64 65 20 -query-captures.query.root-node.
e6e0 23 27 74 73 63 2d 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 #'tsc--buffer-substring-no-prope
e700 72 74 69 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 rties))).........(if.(=.(length.
e720 63 61 70 74 75 72 65 73 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 captures).0).............(tree-s
e740 69 74 74 65 72 2d 2d 65 63 68 6f 20 22 4e 6f 20 63 61 70 74 75 72 65 73 20 66 6f 75 6e 64 22 29 itter--echo."No.captures.found")
e760 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 ...........(mapc.#'tree-sitter-q
e780 75 65 72 79 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 70 74 75 72 65 20 63 61 70 74 75 72 65 73 uery--highlight-capture.captures
e7a0 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 ))))))..(defun.tree-sitter-query
e7c0 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 28 26 72 65 73 74 20 5f 61 72 67 73 29 0a 20 20 22 --after-change.(&rest._args)..."
e7e0 52 75 6e 20 71 75 65 72 79 20 70 61 74 74 65 72 6e 73 20 61 67 61 69 6e 73 74 20 74 68 65 20 74 Run.query.patterns.against.the.t
e800 61 72 67 65 74 20 62 75 66 66 65 72 20 61 6e 64 20 75 70 64 61 74 65 20 68 69 67 68 6c 69 67 68 arget.buffer.and.update.highligh
e820 74 65 64 20 74 65 78 74 73 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 ted.texts."...(with-current-buff
e840 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 er.(get-buffer.tree-sitter-query
e860 2d 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6c 65 74 20 28 -builder-buffer-name).....(let.(
e880 28 70 61 74 74 65 72 6e 73 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 (patterns.(buffer-string))).....
e8a0 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 45 72 72 6f 72 3a 20 25 ..(with-demoted-errors."Error:.%
e8c0 53 22 0a 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 65 S".........(tree-sitter-query--e
e8e0 76 61 6c 2d 71 75 65 72 79 20 70 61 74 74 65 72 6e 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 val-query.patterns)))))..(defun.
e900 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 63 6c 65 61 6e 2d 74 61 72 67 65 74 2d tree-sitter-query--clean-target-
e920 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 6f 76 65 72 6c 61 79 73 buffer.()..."Remove.all.overlays
e940 20 66 72 6f 6d 20 74 68 65 20 74 61 72 67 65 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 69 74 .from.the.target.buffer."...(wit
e960 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 h-current-buffer.tree-sitter-que
e980 72 79 2d 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 6f 76 ry--target-buffer.....(remove-ov
e9a0 65 72 6c 61 79 73 29 29 0a 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 erlays))...(setq.tree-sitter-que
e9c0 72 79 2d 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 0a 0a 3b 3b 3b 23 23 23 61 ry--target-buffer.nil))..;;;###a
e9e0 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 utoload.(defun.tree-sitter-query
ea00 2d 62 75 69 6c 64 65 72 20 28 29 0a 20 20 22 50 72 6f 76 69 64 65 20 6d 65 61 6e 73 20 66 6f 72 -builder.()..."Provide.means.for
ea20 20 64 65 76 65 6c 6f 70 65 72 73 20 74 6f 20 77 72 69 74 65 20 61 6e 64 20 74 65 73 74 20 74 72 .developers.to.write.and.test.tr
ea40 65 65 2d 73 69 74 74 65 72 20 71 75 65 72 69 65 73 2e 0a 0a 54 68 65 20 62 75 66 66 65 72 20 6f ee-sitter.queries...The.buffer.o
ea60 6e 20 66 6f 63 75 73 20 77 68 65 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 63 61 6c 6c n.focus.when.the.command.is.call
ea80 65 64 20 69 73 20 73 65 74 20 61 73 20 74 68 65 20 74 61 72 67 65 74 20 62 75 66 66 65 72 2e 22 ed.is.set.as.the.target.buffer."
eaa0 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 61 72 67 65 ...(interactive)...(let*.((targe
eac0 74 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 t-buffer.(current-buffer))......
eae0 20 20 20 20 28 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d ....(builder-buffer.(get-buffer-
eb00 63 72 65 61 74 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 62 75 69 6c 64 65 72 create.tree-sitter-query-builder
eb20 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 69 6c 64 65 72 -buffer-name))..........(builder
eb40 2d 77 69 6e 64 6f 77 2d 69 73 2d 76 69 73 69 62 6c 65 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 -window-is-visible.(get-buffer-w
eb60 69 6e 64 6f 77 20 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 indow.builder-buffer))).....(whe
eb80 6e 20 28 65 71 20 74 61 72 67 65 74 2d 62 75 66 66 65 72 20 62 75 69 6c 64 65 72 2d 62 75 66 66 n.(eq.target-buffer.builder-buff
eba0 65 72 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 62 75 66 66 er).......(user-error."This.buff
ebc0 65 72 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 20 61 73 20 74 61 72 67 65 74 20 62 75 66 66 65 er.cannot.be.use.as.target.buffe
ebe0 72 22 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 61 r")).....(with-current-buffer.ta
ec00 72 67 65 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 rget-buffer.......(unless.tree-s
ec20 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d itter-mode.........(tree-sitter-
ec40 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 54 68 65 20 71 75 65 72 79 20 mode)).......;;.TODO:.The.query.
ec60 73 68 6f 75 6c 64 20 62 65 20 72 75 6e 20 61 67 61 69 6e 73 74 20 74 68 65 20 63 68 61 6e 67 65 should.be.run.against.the.change
ec80 64 20 72 61 6e 67 65 20 6f 6e 6c 79 2e 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 74 d.range.only........(add-hook.'t
eca0 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e ree-sitter-after-change-function
ecc0 73 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 61 66 74 65 72 2d 63 68 61 s.#'tree-sitter-query--after-cha
ece0 6e 67 65 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 nge.nil.:local).......(setq.tree
ed00 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 20 74 61 72 -sitter-query--target-buffer.tar
ed20 67 65 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 62 75 69 6c 64 65 72 get-buffer)).....(unless.builder
ed40 2d 77 69 6e 64 6f 77 2d 69 73 2d 76 69 73 69 62 6c 65 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 -window-is-visible.......(unless
ed60 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 69 6e 2d 73 69 64 65 2d 77 69 6e 64 6f 77 0a .(display-buffer-in-side-window.
ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 0a 20 20 ...............builder-buffer...
eda0 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 73 69 64 65 20 2e 20 62 6f 74 74 6f 6d 29 0a 20 .............'((side...bottom)..
edc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 2e ................(window-height..
ede0 20 31 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 .10))).........(user-error."Not.
ee00 65 6e 6f 75 67 68 20 73 70 61 63 65 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 71 75 65 72 79 enough.space.available.for.query
ee20 20 62 75 69 6c 64 65 72 20 77 69 6e 64 6f 77 22 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 .builder.window"))).....(with-cu
ee40 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 0a 20 20 20 20 rrent-buffer.builder-buffer.....
ee60 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 ..(erase-buffer).......(tree-sit
ee80 74 65 72 2d 71 75 65 72 79 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 ter-query-mode).......(add-hook.
eea0 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 74 72 65 65 2d 73 'after-change-functions.#'tree-s
eec0 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 6e 69 6c 20 3a 6c itter-query--after-change.nil.:l
eee0 6f 63 61 6c 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 62 75 66 66 ocal).......(add-hook.'kill-buff
ef00 65 72 2d 68 6f 6f 6b 20 23 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 63 6c 65 er-hook.#'tree-sitter-query--cle
ef20 61 6e 2d 74 61 72 67 65 74 2d 62 75 66 66 65 72 20 6e 69 6c 20 3a 6c 6f 63 61 6c 29 29 0a 20 20 an-target-buffer.nil.:local))...
ef40 20 20 28 73 65 74 66 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2d 2d 74 61 72 67 65 ..(setf.tree-sitter-query--targe
ef60 74 2d 62 75 66 66 65 72 20 74 61 72 67 65 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 3b 3b 20 53 t-buffer.target-buffer).....;;.S
ef80 77 69 74 63 68 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 62 75 69 6c 64 65 72 witch.focus.to.the.query.builder
efa0 20 77 69 6e 64 6f 77 2e 0a 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 28 67 65 74 .window......(select-window.(get
efc0 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 62 75 69 6c 64 65 72 2d 62 75 66 66 65 72 29 29 29 -buffer-window.builder-buffer)))
efe0 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 29 0a )..(provide.'tree-sitter-query).
f000 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 71 75 65 72 79 2e 65 6c 20 65 6e 64 73 20 68 65 ;;;.tree-sitter-query.el.ends.he
f020 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
f040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f200 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
f220 69 74 74 65 72 2d 65 78 74 72 61 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-extras.el.................
f240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
f280 30 30 30 36 34 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 33 34 35 00 20 30 00 00 00 0006411.00000000000.017345..0...
f2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
f320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
f340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f400 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 65 78 74 72 61 73 2e 65 6c 20 2d 2d 2d 20 45 78 ;;;.tree-sitter-extras.el.---.Ex
f420 74 72 61 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 20 6f 66 20 74 72 65 65 2d 73 69 74 74 tra.functionalities.of.tree-sitt
f440 65 72 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e er.-*-.lexical-binding:.t;.codin
f460 67 3a 20 75 74 66 2d 38 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 g:.utf-8.-*-..;;.Copyright.(C).2
f480 30 32 30 20 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 020..Tu...n-Anh.Nguy...n.;;.;;.A
f4a0 75 74 68 6f 72 3a 20 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c uthor:.Tu...n-Anh.Nguy...n.<ubol
f4c0 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 onton@gmail.com>.;;.SPDX-License
f4e0 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 4d 49 54 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 -Identifier:.MIT..;;;.Commentary
f500 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 65 78 74 72 61 20 66 :..;;.This.file.contains.extra.f
f520 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 20 62 75 69 6c 74 20 6f 6e 20 74 6f 70 20 6f 66 20 60 unctionalities.built.on.top.of.`
f540 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 2e 0a 3b 3b 20 54 68 65 79 20 61 72 65 20 63 tree-sitter-mode'..;;.They.are.c
f560 6f 6e 73 69 64 65 72 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 2c 20 61 6e 64 20 73 75 62 6a onsidered.experimental,.and.subj
f580 65 63 74 65 64 20 74 6f 20 66 72 65 71 75 65 6e 74 20 63 68 61 6e 67 65 73 2e 0a 0a 3b 3b 3b 20 ected.to.frequent.changes...;;;.
f5a0 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 29 0a 0a 28 Code:..(require.'tree-sitter)..(
f5c0 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 eval-when-compile...(require.'su
f5e0 62 72 2d 78 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 69 78 65 6c 2d br-x))..(declare-function.pixel-
f600 70 6f 73 6e 2d 79 2d 61 74 2d 70 6f 69 6e 74 20 22 65 78 74 3a 70 69 78 65 6c 2d 73 63 72 6f 6c posn-y-at-point."ext:pixel-scrol
f620 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 69 78 65 6c 2d 73 63 72 6f l").(declare-function.pixel-scro
f640 6c 6c 2d 70 69 78 65 6c 2d 75 70 20 22 65 78 74 3a 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 22 29 0a ll-pixel-up."ext:pixel-scroll").
f660 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 2d 70 (declare-function.pixel-scroll-p
f680 69 78 65 6c 2d 64 6f 77 6e 20 22 65 78 74 3a 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 22 29 0a 0a 28 ixel-down."ext:pixel-scroll")..(
f6a0 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 78 63 75 72 defcustom.tree-sitter-save-excur
f6c0 73 69 6f 6e 2d 74 72 79 2d 68 61 72 64 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 60 74 72 sion-try-hard.nil..."Whether.`tr
f6e0 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 27 20 73 68 6f 75 6c 64 ee-sitter-save-excursion'.should
f700 20 74 72 79 20 61 73 20 68 61 72 64 20 61 73 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 3a 74 79 .try.as.hard.as.possible."...:ty
f720 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 pe.'boolean...:group.'tree-sitte
f740 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d r)..(defcustom.tree-sitter-save-
f760 65 78 63 75 72 73 69 6f 6e 2d 70 69 78 65 6c 77 69 73 65 0a 20 20 28 6e 6f 74 20 28 6e 75 6c 6c excursion-pixelwise...(not.(null
f780 20 28 72 65 71 75 69 72 65 20 27 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 20 6e 69 6c 20 3a 6e 6f 65 .(require.'pixel-scroll.nil.:noe
f7a0 72 72 6f 72 29 29 29 0a 20 20 22 57 68 65 74 68 65 72 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d rror)))..."Whether.`tree-sitter-
f7c0 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 27 20 73 68 6f 75 6c 64 20 72 65 73 74 6f 72 65 20 74 save-excursion'.should.restore.t
f7e0 68 65 20 6c 6f 63 61 74 69 6f 6e 20 70 69 78 65 6c 77 69 73 65 2e 22 0a 20 20 3a 74 79 70 65 20 he.location.pixelwise."...:type.
f800 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 65 72 0a 20 'boolean...:group.'tree-sitter..
f820 20 3a 73 65 74 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 20 .:set.(lambda.(symbol.value)....
f840 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 76 61 6c 75 65 20 28 6e 75 6c 6c 20 28 72 65 ......(when.(and.value.(null.(re
f860 71 75 69 72 65 20 27 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 20 6e 69 6c 20 3a 6e 6f 65 72 72 6f 72 quire.'pixel-scroll.nil.:noerror
f880 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 50 69 78 65 )))............(user-error."Pixe
f8a0 6c 77 69 73 65 20 6c 6f 63 61 74 69 6f 6e 20 72 65 73 74 6f 72 61 74 69 6f 6e 20 72 65 71 75 69 lwise.location.restoration.requi
f8c0 72 65 73 20 60 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 27 3b 20 79 6f 75 20 6d 61 79 20 6e 65 65 64 res.`pixel-scroll';.you.may.need
f8e0 20 74 6f 20 75 70 67 72 61 64 65 20 45 6d 61 63 73 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 .to.upgrade.Emacs"))..........(s
f900 65 74 2d 64 65 66 61 75 6c 74 20 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 et-default.symbol.value)))..(def
f920 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 72 65 63 65 6e 74 65 72 20 28 73 63 72 65 65 6e un.tree-sitter--recenter.(screen
f940 2d 6c 69 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 69 78 65 6c 2d 70 6f 73 6e 2d 79 29 0a 20 20 -line.&optional.pixel-posn-y)...
f960 22 43 65 6e 74 65 72 20 70 6f 69 6e 74 20 6f 6e 20 53 43 52 45 45 4e 2d 4c 49 4e 45 2c 20 74 68 "Center.point.on.SCREEN-LINE,.th
f980 65 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 63 72 6f 6c 6c 20 74 6f 20 50 49 58 45 4c 2d 50 4f en.optionally.scroll.to.PIXEL-PO
f9a0 53 4e 2d 59 2e 22 0a 20 20 28 72 65 63 65 6e 74 65 72 20 73 63 72 65 65 6e 2d 6c 69 6e 65 29 0a SN-Y."...(recenter.screen-line).
f9c0 20 20 28 77 68 65 6e 20 70 69 78 65 6c 2d 70 6f 73 6e 2d 79 0a 20 20 20 20 28 6c 65 74 20 28 28 ..(when.pixel-posn-y.....(let.((
f9e0 64 79 20 28 2d 20 28 70 69 78 65 6c 2d 70 6f 73 6e 2d 79 2d 61 74 2d 70 6f 69 6e 74 29 20 70 69 dy.(-.(pixel-posn-y-at-point).pi
fa00 78 65 6c 2d 70 6f 73 6e 2d 79 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 20 64 79 20 30 29 xel-posn-y))).......(if.(>.dy.0)
fa20 0a 20 20 20 20 20 20 20 20 20 20 28 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 2d 70 69 78 65 6c 2d 64 ...........(pixel-scroll-pixel-d
fa40 6f 77 6e 20 64 79 29 0a 20 20 20 20 20 20 20 20 28 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 2d 70 69 own.dy).........(pixel-scroll-pi
fa60 78 65 6c 2d 75 70 20 28 2d 20 64 79 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f xel-up.(-.dy))))))..;;;###autolo
fa80 61 64 0a 28 64 65 66 6d 61 63 72 6f 20 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 78 ad.(defmacro.tree-sitter-save-ex
faa0 63 75 72 73 69 6f 6e 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 53 61 76 65 20 74 68 65 cursion.(&rest.body)..."Save.the
fac0 20 63 75 72 72 65 6e 74 20 6c 6f 63 61 74 69 6f 6e 20 77 69 74 68 69 6e 20 74 68 65 20 73 79 6e .current.location.within.the.syn
fae0 74 61 78 20 74 72 65 65 3b 20 65 78 65 63 75 74 65 20 42 4f 44 59 3b 20 72 65 73 74 6f 72 65 20 tax.tree;.execute.BODY;.restore.
fb00 69 74 2e 0a 0a 49 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 6f 63 61 74 69 6f 6e 20 63 61 it...If.the.original.location.ca
fb20 6e 6e 6f 74 20 62 65 20 72 65 73 74 6f 72 65 64 20 64 75 65 20 74 6f 20 74 68 65 20 73 79 6e 74 nnot.be.restored.due.to.the.synt
fb40 61 78 20 74 72 65 65 20 63 68 61 6e 67 69 6e 67 20 74 6f 6f 0a 6d 75 63 68 2c 20 74 68 69 73 20 ax.tree.changing.too.much,.this.
fb60 6d 61 63 72 6f 20 62 65 68 61 76 65 73 20 6c 69 6b 65 20 60 73 61 76 65 2d 65 78 63 75 72 73 69 macro.behaves.like.`save-excursi
fb80 6f 6e 27 2c 20 75 6e 6c 65 73 73 0a 60 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 78 on',.unless.`tree-sitter-save-ex
fba0 63 75 72 73 69 6f 6e 2d 74 72 79 2d 68 61 72 64 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e cursion-try-hard'.is.non-nil,.in
fbc0 20 77 68 69 63 68 20 63 61 73 65 20 69 74 20 74 72 69 65 73 20 74 6f 20 67 65 74 0a 61 73 20 63 .which.case.it.tries.to.get.as.c
fbe0 6c 6f 73 65 20 61 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c lose.as.possible.to.the.original
fc00 20 6c 6f 63 61 74 69 6f 6e 2e 0a 0a 41 66 74 65 72 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 69 .location...After.the.location.i
fc20 73 20 72 65 73 74 6f 72 65 64 2c 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 69 73 20 73 s.restored,.the.buffer.text.is.s
fc40 63 72 6f 6c 6c 65 64 20 73 6f 20 74 68 61 74 20 70 6f 69 6e 74 20 73 74 61 79 73 0a 61 74 20 72 crolled.so.that.point.stays.at.r
fc60 6f 75 67 68 6c 79 20 74 68 65 20 73 61 6d 65 20 76 65 72 74 69 63 61 6c 20 73 63 72 65 65 6e 20 oughly.the.same.vertical.screen.
fc80 70 6f 73 69 74 69 6f 6e 2e 20 49 66 20 60 70 69 78 65 6c 2d 73 63 72 6f 6c 6c 27 20 69 73 20 61 position..If.`pixel-scroll'.is.a
fca0 76 61 69 6c 61 62 6c 65 20 61 6e 64 0a 60 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 vailable.and.`tree-sitter-save-e
fcc0 78 63 75 72 73 69 6f 6e 2d 70 69 78 65 6c 77 69 73 65 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 xcursion-pixelwise'.is.non-nil,.
fce0 70 69 78 65 6c 77 69 73 65 20 73 63 72 6f 6c 6c 69 6e 67 20 69 73 20 75 73 65 64 0a 69 6e 73 74 pixelwise.scrolling.is.used.inst
fd00 65 61 64 2c 20 74 6f 20 6d 61 6b 65 20 74 68 69 73 20 72 65 73 74 6f 72 61 74 69 6f 6e 20 65 78 ead,.to.make.this.restoration.ex
fd20 61 63 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 30 29 29 0a 20 20 60 act."...(declare.(indent.0))...`
fd40 28 6c 65 74 2a 20 28 28 70 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 6c (let*.((p.(point))...........(ol
fd60 64 2d 6e 6f 64 65 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 29 d-node.(tree-sitter-node-at-pos)
fd80 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 65 70 73 20 28 74 73 63 2d 2d 6e 6f 64 65 2d 73 74 )...........(steps.(tsc--node-st
fda0 65 70 73 20 6f 6c 64 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 74 61 20 eps.old-node))...........(delta.
fdc0 28 2d 20 70 20 28 74 73 63 2d 6e 6f 64 65 2d 73 74 61 72 74 2d 70 6f 73 69 74 69 6f 6e 20 6f 6c (-.p.(tsc-node-start-position.ol
fde0 64 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 63 72 65 65 6e 2d 6c 69 6e 65 d-node)))...........(screen-line
fe00 20 28 2d 20 28 63 6f 75 6e 74 2d 73 63 72 65 65 6e 2d 6c 69 6e 65 73 20 28 77 69 6e 64 6f 77 2d .(-.(count-screen-lines.(window-
fe20 73 74 61 72 74 29 20 70 29 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 69 78 65 6c 2d 70 start).p).1))...........(pixel-p
fe40 6f 73 6e 2d 79 20 2c 28 69 66 20 74 72 65 65 2d 73 69 74 74 65 72 2d 73 61 76 65 2d 65 78 63 75 osn-y.,(if.tree-sitter-save-excu
fe60 72 73 69 6f 6e 2d 70 69 78 65 6c 77 69 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rsion-pixelwise.................
fe80 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 70 69 78 65 6c 2d 70 6f 73 6e 2d 79 2d 61 74 2d 70 .............'(pixel-posn-y-at-p
fea0 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oint)...........................
fec0 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 .nil)))......(unwind-protect....
fee0 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 2c 40 62 6f 64 79 29 0a 20 20 ......(save-excursion.,@body)...
ff00 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 .....(condition-case.err........
ff20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 6e 6f 64 65 20 28 74 73 63 2d 2d 6e 6f 64 65 2d ....(when-let.((node.(tsc--node-
ff40 66 72 6f 6d 2d 73 74 65 70 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 20 73 74 65 70 from-steps.tree-sitter-tree.step
ff60 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 s)))..............(goto-char.(+.
ff80 64 65 6c 74 61 20 28 74 73 63 2d 6e 6f 64 65 2d 73 74 61 72 74 2d 70 6f 73 69 74 69 6f 6e 20 6e delta.(tsc-node-start-position.n
ffa0 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 ode)))..............(tree-sitter
ffc0 2d 2d 72 65 63 65 6e 74 65 72 20 73 63 72 65 65 6e 2d 6c 69 6e 65 20 70 69 78 65 6c 2d 70 6f 73 --recenter.screen-line.pixel-pos
ffe0 6e 2d 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 2d 69 6e 76 61 6c 69 64 2d 6e 6f 64 n-y))..........(tsc--invalid-nod
10000 65 2d 73 74 65 70 0a 20 20 20 20 20 20 20 20 20 20 2c 40 28 77 68 65 6e 20 74 72 65 65 2d 73 69 e-step...........,@(when.tree-si
10020 74 74 65 72 2d 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 2d 74 72 79 2d 68 61 72 64 0a 20 20 20 tter-save-excursion-try-hard....
10040 20 20 20 20 20 20 20 20 20 20 20 27 28 28 67 6f 74 6f 2d 63 68 61 72 20 28 74 73 63 2d 6e 6f 64 ...........'((goto-char.(tsc-nod
10060 65 2d 73 74 61 72 74 2d 70 6f 73 69 74 69 6f 6e 20 28 63 61 64 72 20 65 72 72 29 29 29 0a 20 20 e-start-position.(cadr.err)))...
10080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 72 65 63 65 ..............(tree-sitter--rece
100a0 6e 74 65 72 20 73 63 72 65 65 6e 2d 6c 69 6e 65 20 70 69 78 65 6c 2d 70 6f 73 6e 2d 79 29 29 29 nter.screen-line.pixel-posn-y)))
100c0 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 65 78 74 )))))..(provide.'tree-sitter-ext
100e0 72 61 73 29 0a 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 65 78 74 72 61 73 2e 65 6c 20 65 ras).;;;.tree-sitter-extras.el.e
10100 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
10120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
101a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
101c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
101e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10200 74 72 65 65 2d 73 69 74 74 65 72 2d 32 30 32 32 30 32 31 32 2e 31 36 33 32 2f 74 72 65 65 2d 73 tree-sitter-20220212.1632/tree-s
10220 69 74 74 65 72 2d 63 6c 69 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 itter-cli.el....................
10240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
10280 30 30 30 32 31 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 30 37 00 20 30 00 00 00 0002164.00000000000.016607..0...
102a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
102c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
102e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
10320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
10340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
103a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
103c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
103e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10400 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2d 63 6c 69 2e 65 6c 20 2d 2d 2d 20 55 74 69 6c 69 ;;;.tree-sitter-cli.el.---.Utili
10420 74 69 65 73 20 66 6f 72 20 74 72 65 65 2d 73 69 74 74 65 72 20 43 4c 49 20 2d 2a 2d 20 6c 65 78 ties.for.tree-sitter.CLI.-*-.lex
10440 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 20 2d ical-binding:.t;.coding:.utf-8.-
10460 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 32 30 20 54 75 e1 ba a5 6e *-..;;.Copyright.(C).2020.Tu...n
10480 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 54 75 e1 ba -Anh.Nguy...n.;;.;;.Author:.Tu..
104a0 a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 20 3c 75 62 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 6c .n-Anh.Nguy...n.<ubolonton@gmail
104c0 2e 63 6f 6d 3e 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 .com>.;;.SPDX-License-Identifier
104e0 3a 20 4d 49 54 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 :.MIT..;;;.Commentary:..;;.This.
10500 66 69 6c 65 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 77 6f 72 6b 20 file.contains.functions.to.work.
10520 77 69 74 68 20 74 68 65 20 74 72 65 65 2d 73 69 74 74 65 72 20 43 4c 49 2e 20 49 74 20 6d 75 73 with.the.tree-sitter.CLI..It.mus
10540 74 20 6e 6f 74 0a 3b 3b 20 64 65 70 65 6e 64 20 28 64 69 72 65 63 74 6c 79 20 6f 6e 20 69 6e 64 t.not.;;.depend.(directly.on.ind
10560 69 72 65 63 74 6c 79 29 20 6f 6e 20 60 74 73 63 2d 64 79 6e 27 2e 20 49 74 20 73 68 6f 75 6c 64 irectly).on.`tsc-dyn'..It.should
10580 6e 27 74 20 64 65 70 65 6e 64 20 6f 6e 0a 3b 3b 20 60 74 72 65 65 2d 73 69 74 74 65 72 27 2e 0a n't.depend.on.;;.`tree-sitter'..
105a0 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 .;;;.Code:..(eval-when-compile..
105c0 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 .(require.'subr-x))..(defun.tree
105e0 2d 73 69 74 74 65 72 2d 63 6c 69 2d 64 69 72 65 63 74 6f 72 79 20 28 29 0a 20 20 22 52 65 74 75 -sitter-cli-directory.()..."Retu
10600 72 6e 20 74 72 65 65 2d 73 69 74 74 65 72 20 43 4c 49 27 73 20 64 69 72 65 63 74 6f 72 79 2c 20 rn.tree-sitter.CLI's.directory,.
10620 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 65 6e 64 69 6e 67 20 73 65 70 61 72 61 74 6f 72 2e 0a including.the.ending.separator..
10640 54 68 69 73 20 69 73 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 This.is.the.directory.where.the.
10660 43 4c 49 20 74 6f 6f 6c 20 6b 65 65 70 73 20 63 6f 6d 70 69 6c 65 64 20 6c 61 6e 67 20 64 65 66 CLI.tool.keeps.compiled.lang.def
10680 69 6e 69 74 69 6f 6e 73 2c 20 61 6d 6f 6e 67 0a 6f 74 68 65 72 20 64 61 74 61 2e 22 0a 20 20 28 initions,.among.other.data."...(
106a0 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 28 65 78 70 61 6e file-name-as-directory....(expan
106c0 64 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 d-file-name.....;;.https://githu
106e0 62 2e 63 6f 6d 2f 74 72 65 65 2d 73 69 74 74 65 72 2f 74 72 65 65 2d 73 69 74 74 65 72 2f 62 6c b.com/tree-sitter/tree-sitter/bl
10700 6f 62 2f 31 62 61 64 36 64 63 2f 63 6c 69 2f 73 72 63 2f 63 6f 6e 66 69 67 2e 72 73 23 4c 32 30 ob/1bad6dc/cli/src/config.rs#L20
10720 0a 20 20 20 20 28 69 66 2d 6c 65 74 20 28 28 64 69 72 20 28 67 65 74 65 6e 76 20 22 54 52 45 45 .....(if-let.((dir.(getenv."TREE
10740 5f 53 49 54 54 45 52 5f 44 49 52 22 29 29 29 0a 20 20 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 _SITTER_DIR"))).........dir.....
10760 20 20 22 7e 2f 2e 74 72 65 65 2d 73 69 74 74 65 72 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 .."~/.tree-sitter"))))..(defun.t
10780 72 65 65 2d 73 69 74 74 65 72 2d 63 6c 69 2d 62 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 28 29 0a ree-sitter-cli-bin-directory.().
107a0 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 75 73 65 64 20 62 79 20 .."Return.the.directory.used.by.
107c0 74 72 65 65 2d 73 69 74 74 65 72 20 43 4c 49 20 74 6f 20 73 74 6f 72 65 20 63 6f 6d 70 69 6c 65 tree-sitter.CLI.to.store.compile
107e0 64 20 67 72 61 6d 6d 61 72 73 2e 22 0a 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 d.grammars."...(file-name-as-dir
10800 65 63 74 6f 72 79 0a 20 20 20 28 63 6f 6e 63 61 74 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 63 ectory....(concat.(tree-sitter-c
10820 6c 69 2d 64 69 72 65 63 74 6f 72 79 29 20 22 62 69 6e 22 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 li-directory)."bin")))..(provide
10840 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 63 6c 69 29 0a 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 .'tree-sitter-cli).;;;.tree-sitt
10860 65 72 2d 63 6c 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 er-cli.el.ends.here.............
10880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
108a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
108c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
108e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
109e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
110a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
110c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
110e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
111a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
111c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
111e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
112a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
112c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
112e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
114a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
114c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
114e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
115a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
115c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
115e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
116a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
116c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
116e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................