summaryrefslogtreecommitdiff
path: root/.localrepo/tree-sitter-20220212.1632.tar
blob: 016844e8d1c39639b58aa032e993f112e803e5e8 (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 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....................
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 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...
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 2d 63 6c 69 2e 65 6c 20 2d 2d 2d 20 55 74 69 6c 69 ;;;.tree-sitter-cli.el.---.Utili
0420 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
0440 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.-
0460 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
0480 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..
04a0 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
04c0 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
04e0 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.
0500 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.
0520 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
0540 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
0560 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
0580 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'..
05a0 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..
05c0 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
05e0 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
0600 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,.
0620 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..
0640 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.
0660 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
0680 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."...(
06a0 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
06c0 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
06e0 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
0700 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
0720 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
0740 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.....
0760 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
0780 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.().
07a0 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.
07c0 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
07e0 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
0800 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
0820 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
0840 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
0860 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.............
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 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
0a20 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..................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 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
0a80 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...
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 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...................
0b20 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...................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 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
0c20 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
0c40 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.-
0c60 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...
0c80 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.
0ca0 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
0cc0 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
0ce0 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
0d00 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
0d20 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
0d40 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
0d60 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
0d80 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
0da0 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
0dc0 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
0de0 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
0e00 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
0e20 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.
0e40 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.
0e60 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.
0e80 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.
0ea0 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
0ec0 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
0ee0 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
0f00 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
0f20 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.
0f40 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
0f60 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
0f80 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
0fa0 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
0fc0 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
0fe0 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
1000 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
1020 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
1040 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
1060 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.
1080 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
10a0 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
10c0 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
10e0 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-
1100 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
1120 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
1140 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
1160 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
1180 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--
11a0 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
11c0 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
11e0 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.....
1200 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.
1220 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
1240 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
1260 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..
1280 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 ...............................(
12a0 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))).
12c0 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-
12e0 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
1300 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
1320 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
1340 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)
1360 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.
1380 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.
13a0 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
13c0 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
13e0 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
1400 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
1420 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-
1440 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
1460 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
1480 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
14a0 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
14c0 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
14e0 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))).......(
1500 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
1520 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-
1540 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
1560 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
1580 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....................
15a0 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............
15c0 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
15e0 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
1600 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
1620 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.
1640 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
1660 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
1680 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
16a0 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
16c0 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
16e0 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
1700 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
1720 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
1740 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
1760 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
1780 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...........
17a0 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.......
17c0 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).....
17e0 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.((`[,
1800 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
1820 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)).............
1840 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
1860 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......................
1880 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
18a0 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
18c0 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.:
18e0 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
1900 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.(
1920 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........
1940 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.
1960 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
1980 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])).................
19a0 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
19c0 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
19e0 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
1a00 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....
1a20 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.
1a40 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))))...
1a60 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.([
1a80 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
1aa0 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)..................(
1ac0 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.
1ae0 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
1b00 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))))))))
1b20 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
1b40 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
1b60 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."...(
1b80 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
1ba0 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.
1bc0 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..
1be0 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
1c00 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
1c20 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
1c40 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
1c60 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
1c80 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
1ca0 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
1cc0 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
1ce0 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-
1d00 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
1d20 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.#
1d40 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
1d60 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
1d80 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--
1da0 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-
1dc0 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
1de0 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
1e00 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
1e20 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
1e40 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
1e60 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
1e80 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
1ea0 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
1ec0 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
1ee0 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
1f00 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
1f20 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
1f40 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.
1f60 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
1f80 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
1fa0 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
1fc0 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
1fe0 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
2000 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
2020 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
2040 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-
2060 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
2080 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
20a0 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-
20c0 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
20e0 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
2100 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
2120 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
2140 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
2160 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
2180 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
21a0 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').
21c0 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
21e0 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
2200 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.
2220 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
2240 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
2260 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
2280 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
22a0 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
22c0 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
22e0 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*.(
2300 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
2320 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
2340 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
2360 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))).....(
2380 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.......(
23a0 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-
23c0 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
23e0 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)..
2400 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
2420 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
2440 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:
2460 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
2480 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...
24a0 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).;;;
24c0 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.
24e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2600 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
2620 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.................
2640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2660 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
2680 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...
26a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2700 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...................
2720 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...................
2740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2800 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
2820 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
2840 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
2860 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
2880 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
28a0 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
28c0 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
28e0 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
2900 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
2920 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.`
2940 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
2960 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
2980 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...;;;.
29a0 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)..(
29c0 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
29e0 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-
2a00 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
2a20 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
2a40 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").
2a60 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
2a80 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")..(
2aa0 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
2ac0 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
2ae0 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
2b00 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
2b20 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
2b40 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-
2b60 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
2b80 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
2ba0 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-
2bc0 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
2be0 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.
2c00 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..
2c20 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)....
2c40 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
2c60 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
2c80 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
2ca0 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
2cc0 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
2ce0 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
2d00 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
2d20 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
2d40 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)...
2d60 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
2d80 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
2da0 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).
2dc0 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.((
2de0 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
2e00 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)
2e20 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
2e40 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
2e60 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
2e80 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
2ea0 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
2ec0 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
2ee0 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.
2f00 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
2f20 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
2f40 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.
2f60 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
2f80 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
2fa0 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
2fc0 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
2fe0 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
3000 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
3020 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
3040 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
3060 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.
3080 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
30a0 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
30c0 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,.
30e0 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
3100 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
3120 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))...`
3140 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
3160 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)
3180 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
31a0 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.
31c0 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
31e0 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
3200 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-
3220 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
3240 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
3260 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.................
3280 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
32a0 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)...........................
32c0 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....
32e0 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)...
3300 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........
3320 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-
3340 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
3360 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.(+.
3380 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
33a0 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
33c0 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
33e0 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
3400 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
3420 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....
3440 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
3460 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)))...
3480 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
34a0 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)))
34c0 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
34e0 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
3500 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........................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 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
3620 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.....................
3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3660 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
3680 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...
36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 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...................
3720 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...................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
3820 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
3840 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
3860 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
3880 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
38a0 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
38c0 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
38e0 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
3900 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
3920 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
3940 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
3960 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'...;
3980 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)
39a0 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.
39c0 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))..;;;.-----------------
39e0 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 --------------------------------
3a00 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 ---------------------------.;;;.
3a20 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
3a40 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
3a60 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
3a80 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
3aa0 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.'
3ac0 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
3ae0 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
3b00 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
3b20 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)..;;;.---------------
3b40 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
3b60 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
3b80 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
3ba0 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))
3bc0 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
3be0 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."..
3c00 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)..
3c20 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
3c40 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
3c60 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
3c80 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
3ca0 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
3cc0 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
3ce0 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
3d00 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
3d20 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
3d40 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-
3d60 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
3d80 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
3da0 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
3dc0 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
3de0 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
3e00 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
3e20 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-
3e40 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
3e60 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
3e80 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
3ea0 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)
3ec0 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
3ee0 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
3f00 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
3f20 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
3f40 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
3f60 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
3f80 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
3fa0 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
3fc0 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.:
3fe0 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
4000 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
4020 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
4040 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
4060 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
4080 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
40a0 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
40c0 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-
40e0 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...'
4100 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.
4120 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")..;;;.------------------
4140 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...(
4160 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
4180 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
41a0 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."
41c0 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)
41e0 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
4200 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
4220 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
4240 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."
4260 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)
4280 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
42a0 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
42c0 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))...
42e0 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
4300 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
4320 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
4340 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
4360 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
4380 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-
43a0 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-
43c0 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
43e0 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
4400 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
4420 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
4440 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
4460 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?
4480 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
44a0 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.
44c0 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
44e0 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.'
4500 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)..;;;.-----
4520 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 -------------------------------.
4540 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...;;;.
4560 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
4580 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...
45a0 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
45c0 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
45e0 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
4600 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
4620 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
4640 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
4660 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
4680 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)
46a0 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
46c0 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
46e0 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
4700 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.
4720 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)
4740 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.
4760 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
4780 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:
47a0 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
47c0 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)).
47e0 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
4800 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
4820 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
4840 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
4860 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
4880 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
48a0 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
48c0 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.
48e0 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-
4900 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-
4920 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
4940 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
4960 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)
4980 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
49a0 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.'
49c0 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)..;;;.-----
49e0 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 -------------------------------.
4a00 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
4a20 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
4a40 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.
4a60 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
4a80 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
4aa0 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
4ac0 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.:
4ae0 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))..."
4b00 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.'
4b20 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.
4b40 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...'((
4b60 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
4b80 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."..
4ba0 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)..
4bc0 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
4be0 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
4c00 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
4c20 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.
4c40 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
4c60 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
4c80 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
4ca0 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
4cc0 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.
4ce0 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
4d00 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
4d20 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
4d40 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
4d60 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))
4d80 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
4da0 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.
4dc0 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)..;;;.----
4de0 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 --------------------------------
4e00 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
4e20 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..
4e40 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
4e60 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
4e80 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
4ea0 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
4ec0 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
4ee0 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)).
4f00 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
4f20 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
4f40 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...'(
4f60 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
4f80 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
4fa0 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
4fc0 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
4fe0 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
5000 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
5020 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
5040 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
5060 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
5080 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
50a0 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
50c0 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
50e0 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
5100 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
5120 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
5140 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.
5160 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
5180 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 )..;;;.-------------------------
51a0 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
51c0 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.
51e0 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.
5200 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)).
5220 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
5240 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
5260 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
5280 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
52a0 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
52c0 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
52e0 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
5300 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
5320 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
5340 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
5360 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."
5380 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)
53a0 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
53c0 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.
53e0 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
5400 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
5420 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-
5440 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)..;;;.-----------------
5460 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.
5480 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
54a0 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
54c0 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
54e0 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
5500 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
5520 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
5540 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
5560 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
5580 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."..
55a0 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)..
55c0 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 ;;;.----------------------------
55e0 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 --------------------------------
5600 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.
5620 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
5640 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
5660 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
5680 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
56a0 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
56c0 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
56e0 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
5700 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
5720 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
5740 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
5760 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
5780 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
57a0 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
57c0 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
57e0 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
5800 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).......
5820 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)
5840 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
5860 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
5880 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
58a0 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
58c0 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
58e0 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
5900 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
5920 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
5940 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
5960 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
5980 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
59a0 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
59c0 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
59e0 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
5a00 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
5a20 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)................
5a40 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
5a60 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
5a80 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
5aa0 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-
5ac0 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
5ae0 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
5b00 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
5b20 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
5b40 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
5b60 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
5b80 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-
5ba0 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
5bc0 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
5be0 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
5c00 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
5c20 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
5c40 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
5c60 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
5c80 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-
5ca0 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
5cc0 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,
5ce0 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.
5d00 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.
5d20 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
5d40 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
5d60 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
5d80 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
5da0 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
5dc0 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
5de0 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,.
5e00 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
5e20 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.(
5e40 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
5e60 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
5e80 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
5ea0 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
5ec0 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
5ee0 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..
5f00 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......
5f20 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....
5f40 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
5f60 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..................
5f80 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
5fa0 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..............
5fc0 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
5fe0 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
6000 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)...........................
6020 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-
6040 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)................
6060 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
6080 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))........
60a0 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")..........
60c0 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-
60e0 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
6100 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
6120 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
6140 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
6160 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."..
6180 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
61a0 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
61c0 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.
61e0 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
6200 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.
6220 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
6240 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
6260 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
6280 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
62a0 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
62c0 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
62e0 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
6300 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.
6320 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
6340 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
6360 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
6380 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
63a0 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
63c0 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
63e0 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-
6400 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
6420 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))...(
6440 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
6460 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.
6480 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-
64a0 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.
64c0 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-
64e0 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
6500 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
6520 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
6540 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
6560 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
6580 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.".
65a0 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.
65c0 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
65e0 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
6600 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))...
6620 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
6640 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)..........
6660 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
6680 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
66a0 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
66c0 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
66e0 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....
6700 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)
6720 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)))...
6740 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.
6760 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
6780 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'
67a0 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
67c0 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
67e0 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'
6800 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.
6820 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
6840 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
6860 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
6880 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
68a0 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,.
68c0 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...........
68e0 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
6900 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
6920 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
6940 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
6960 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....
6980 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
69a0 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
69c0 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))))))..
69e0 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
6a00 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
6a20 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
6a40 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
6a60 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
6a80 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
6aa0 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
6ac0 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
6ae0 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.
6b00 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.....
6b20 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
6b40 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
6b60 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
6b80 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....
6ba0 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
6bc0 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
6be0 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
6c00 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
6c20 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
6c40 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
6c60 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.
6c80 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
6ca0 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))))))..;;;.-----------------
6cc0 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 --------------------------------
6ce0 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 ---------------------------.;;;.
6d00 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
6d20 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
6d40 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
6d60 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
6d80 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
6da0 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
6dc0 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
6de0 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
6e00 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
6e20 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
6e40 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
6e60 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
6e80 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.").
6ea0 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
6ec0 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
6ee0 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
6f00 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
6f20 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.
6f40 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
6f60 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
6f80 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
6fa0 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
6fc0 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
6fe0 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
7000 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-
7020 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
7040 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.
7060 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
7080 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
70a0 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
70c0 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
70e0 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
7100 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
7120 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
7140 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
7160 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-
7180 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
71a0 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
71c0 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
71e0 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
7200 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
7220 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
7240 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
7260 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.
7280 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
72a0 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
72c0 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
72e0 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
7300 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
7320 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
7340 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
7360 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.
7380 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
73a0 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
73c0 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
73e0 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
7400 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
7420 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
7440 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
7460 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.
7480 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
74a0 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))...
74c0 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-
74e0 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
7500 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
7520 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
7540 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......................
7560 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))............
7580 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
75a0 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)).............
75c0 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))...........
75e0 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)).
7600 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
7620 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
7640 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.
7660 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-
7680 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-
76a0 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-
76c0 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
76e0 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
7700 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....
7720 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
7740 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
7760 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
7780 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
77a0 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
77c0 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
77e0 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
7800 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
7820 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
7840 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.
7860 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
7880 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)............................
78a0 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
78c0 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)...................
78e0 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)))
7900 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
7920 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)))........
7940 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)
7960 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
7980 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.(-.
79a0 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
79c0 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-
79e0 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)).......(
7a00 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
7a20 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
7a40 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
7a60 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
7a80 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
7aa0 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
7ac0 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
7ae0 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
7b00 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
7b20 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
7b40 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
7b60 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
7b80 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
7ba0 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
7bc0 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
7be0 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.
7c00 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
7c20 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
7c40 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
7c60 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
7c80 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
7ca0 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
7cc0 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.
7ce0 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
7d00 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)......
7d20 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)).
7d40 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).
7d60 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
7d80 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
7da0 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.
7dc0 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
7de0 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
7e00 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
7e20 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...............
7e40 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
7e60 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.
7e80 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
7ea0 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................
7ec0 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...........
7ee0 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
7f00 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)).................
7f20 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).............
7f40 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
7f60 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-
7f80 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
7fa0 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
7fc0 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..
7fe0 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
8000 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
8020 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).....
8040 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-
8060 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.
8080 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
80a0 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-
80c0 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:.
80e0 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
8100 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
8120 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
8140 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
8160 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
8180 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
81a0 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
81c0 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,
81e0 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--
8200 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-
8220 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)).......;;.
8240 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
8260 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
8280 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
82a0 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
82c0 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
82e0 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.
8300 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.
8320 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.`
8340 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
8360 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
8380 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
83a0 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
83c0 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-
83e0 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
8400 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)....
8420 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
8440 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
8460 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.............................
8480 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
84a0 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))................
84c0 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
84e0 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)))).
8500 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
8520 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)).......
8540 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
8560 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.................
8580 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
85a0 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
85c0 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............
85e0 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.........
8600 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
8620 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))).......
8640 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......
8660 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..
8680 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
86a0 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:
86c0 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
86e0 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..
8700 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
8720 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
8740 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
8760 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
8780 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.........
87a0 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
87c0 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
87e0 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
8800 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
8820 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
8840 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
8860 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
8880 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
88a0 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
88c0 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
88e0 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
8900 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
8920 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
8940 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
8960 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
8980 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.
89a0 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..
89c0 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
89e0 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))))).
8a00 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
8a20 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
8a40 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)
8a60 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...
8a80 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.
8aa0 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
8ac0 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
8ae0 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
8b00 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'.
8b20 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-
8b40 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
8b60 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
8b80 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
8ba0 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
8bc0 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
8be0 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
8c00 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--
8c20 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
8c40 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)...
8c60 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
8c80 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-
8ca0 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
8cc0 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
8ce0 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
8d00 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
8d20 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
8d40 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.".
8d60 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
8d80 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
8da0 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.
8dc0 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
8de0 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
8e00 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-
8e20 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
8e40 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.(
8e60 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)).....
8e80 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
8ea0 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)))...........;;
8ec0 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
8ee0 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?.........
8f00 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)))...
8f20 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
8f40 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)))..;;;.-----------------
8f60 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 --------------------------------
8f80 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 ---------------------------.;;;.
8fa0 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
8fc0 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
8fe0 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
9000 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.(
9020 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
9040 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
9060 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
9080 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
90a0 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......
90c0 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
90e0 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)...
9100 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
9120 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
9140 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:.
9160 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
9180 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.
91a0 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
91c0 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
91e0 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
9200 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
9220 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
9240 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
9260 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.............
9280 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.
92a0 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.............
92c0 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
92e0 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)...............
9300 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
9320 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))).........
9340 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
9360 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.........................
9380 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)))).
93a0 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
93c0 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
93e0 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
9400 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
9420 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
9440 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.
9460 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
9480 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-
94a0 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
94c0 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
94e0 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
9500 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
9520 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.......
9540 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-
9560 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
9580 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
95a0 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
95c0 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
95e0 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
9600 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:.
9620 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
9640 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
9660 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
9680 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
96a0 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
96c0 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
96e0 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
9700 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
9720 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
9740 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
9760 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
9780 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
97a0 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
97c0 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
97e0 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
9800 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
9820 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-
9840 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
9860 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'
9880 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
98a0 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.............
98c0 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..
98e0 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).....;;.
9900 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
9920 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'.
9940 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
9960 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
9980 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.....;;
99a0 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
99c0 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
99e0 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
9a00 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
9a20 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
9a40 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...
9a60 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.
9a80 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
9aa0 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
9ac0 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
9ae0 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
9b00 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).....;;
9b20 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
9b40 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-
9b60 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
9b80 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
9ba0 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
9bc0 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
9be0 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
9c00 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
9c20 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
9c40 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
9c60 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)).....;;.....;;.
9c80 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.
9ca0 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..
9cc0 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-
9ce0 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
9d00 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
9d20 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.
9d40 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
9d60 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
9d80 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
9da0 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
9dc0 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.
9de0 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
9e00 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
9e20 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
9e40 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.
9e60 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
9e80 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
9ea0 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
9ec0 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)....................#
9ee0 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
9f00 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.
9f20 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
9f40 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
9f60 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................:
9f80 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
9fa0 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
9fc0 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
9fe0 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
a000 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
a020 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
a040 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
a060 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)....
a080 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
a0a0 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.
a0c0 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
a0e0 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
a100 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
a120 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
a140 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
a160 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
a180 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-
a1a0 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
a1c0 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
a1e0 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
a200 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
a220 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.
a240 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
a260 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
a280 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
a2a0 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
a2c0 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
a2e0 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
a300 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
a320 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
a340 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.........................
a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a400 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
a420 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...................
a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a460 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
a480 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...
a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a500 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...................
a520 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...................
a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a600 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
a620 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.-*-
a640 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
a660 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
a680 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:
a6a0 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@
a6c0 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
a6e0 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:..;;.
a700 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
a720 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
a740 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
a760 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.'
a780 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
a7a0 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)..
a7c0 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
a7e0 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
a800 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
a820 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.
a840 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
a860 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
a880 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
a8a0 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.
a8c0 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
a8e0 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
a900 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
a920 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.....
a940 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
a960 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.
a980 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
a9a0 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
a9c0 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.
a9e0 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
aa00 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)
aa20 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
aa40 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
aa60 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
aa80 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
aaa0 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
aac0 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
aae0 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
ab00 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
ab20 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.
ab40 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.
ab60 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
ab80 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
aba0 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
abc0 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
abe0 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
ac00 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
ac20 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
ac40 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
ac60 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
ac80 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
aca0 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
acc0 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
ace0 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
ad00 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*.(
ad20 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
ad40 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
ad60 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
ad80 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
ada0 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
adc0 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
ade0 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........................
ae00 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_%
ae20 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"..............................
ae40 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)))....
ae60 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
ae80 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.
aea0 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.....................;;.
aec0 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....
aee0 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)...
af00 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
af20 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
af40 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..................
af60 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.....
af80 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..
afa0 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.(
afc0 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)
afe0 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
b000 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
b020 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-
b040 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)...........................
b060 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.....
b080 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 ................................
b0a0 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...
b0c0 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 ................................
b0e0 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
b100 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))...........................
b120 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
b140 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
b160 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
b180 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
b1a0 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.((
b1c0 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
b1e0 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
b200 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
b220 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)
b240 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)))..;;
b260 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-
b280 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
b2a0 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
b2c0 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
b2e0 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-
b300 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.
b320 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
b340 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
b360 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
b380 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
b3a0 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
b3c0 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
b3e0 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
b400 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'
b420 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
b440 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.
b460 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
b480 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
b4a0 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
b4c0 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
b4e0 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.
b500 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
b520 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
b540 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
b560 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...........................
b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b600 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
b620 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....................
b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b660 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
b680 30 30 30 30 37 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 32 37 00 20 30 00 00 00 0000766.00000000000.016627..0...
b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b700 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...................
b720 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...................
b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b800 3b 3b 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 3b 20 6c 65 78 69 63 ;;.-*-.no-byte-compile:.t;.lexic
b820 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 6e 69 6c 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b al-binding:.nil.-*-.(define-pack
b840 61 67 65 20 22 74 72 65 65 2d 73 69 74 74 65 72 22 20 22 32 30 32 32 30 32 31 32 2e 31 36 33 32 age."tree-sitter"."20220212.1632
b860 22 0a 20 20 22 49 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 73 69 6e 67 20 73 79 73 74 65 6d 2e "..."Incremental.parsing.system.
b880 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 0a 20 20 20 20 28 74 73 63 20 20 20 "...'((emacs."25.1").....(tsc...
b8a0 22 30 2e 31 38 2e 30 22 29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 "0.18.0"))...:url."https://githu
b8c0 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 73 70 2d 74 72 b.com/emacs-tree-sitter/elisp-tr
b8e0 65 65 2d 73 69 74 74 65 72 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 39 30 39 37 31 37 63 36 38 35 ee-sitter"...:commit."909717c685
b900 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 39 33 36 31 63 22 0a ff5a2327fa2ca8fb8a25216129361c".
b920 20 20 3a 72 65 76 64 65 73 63 20 22 39 30 39 37 31 37 63 36 38 35 66 66 22 0a 20 20 3a 6b 65 79 ..:revdesc."909717c685ff"...:key
b940 77 6f 72 64 73 20 27 28 22 6c 61 6e 67 75 61 67 65 73 22 20 22 74 6f 6f 6c 73 22 20 22 70 61 72 words.'("languages"."tools"."par
b960 73 65 72 73 22 20 22 74 72 65 65 2d 73 69 74 74 65 72 22 29 0a 20 20 3a 61 75 74 68 6f 72 73 20 sers"."tree-sitter")...:authors.
b980 27 28 28 22 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 22 20 2e 20 22 75 62 6f 6c '(("Tu...n-Anh.Nguy...n"..."ubol
b9a0 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 onton@gmail.com"))...:maintainer
b9c0 73 20 27 28 28 22 54 75 e1 ba a5 6e 2d 41 6e 68 20 4e 67 75 79 e1 bb 85 6e 22 20 2e 20 22 75 62 s.'(("Tu...n-Anh.Nguy...n"..."ub
b9e0 6f 6c 6f 6e 74 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 olonton@gmail.com")))...........
ba00 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
ba20 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..................
ba40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ba60 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
ba80 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...
baa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb00 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...................
bb20 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...................
bb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bc00 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
bc20 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.-*-.
bc40 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-
bc60 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
bc80 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:.
bca0 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
bcc0 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-
bce0 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
bd00 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.
bd20 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
bd40 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
bd60 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
bd80 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
bda0 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
bdc0 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
bde0 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
be00 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
be20 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
be40 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
be60 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
be80 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
bea0 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-
bec0 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).
bee0 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
bf00 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
bf20 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
bf40 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
bf60 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...
bf80 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
bfa0 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
bfc0 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
bfe0 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
c000 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
c020 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
c040 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
c060 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.(
c080 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
c0a0 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
c0c0 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
c0e0 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.
c100 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
c120 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.(
c140 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
c160 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
c180 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
c1a0 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)..............
c1c0 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
c1e0 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-
c200 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.(
c220 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
c240 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.
c260 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)))..
c280 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
c2a0 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......(
c2c0 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
c2e0 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
c300 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).....;
c320 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.
c340 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.(
c360 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."").......(
c380 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
c3a0 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
c3c0 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)
c3e0 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
c400 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-
c420 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
c440 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
c460 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
c480 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*..........
c4a0 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-
c4c0 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
c4e0 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
c500 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
c520 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.............
c540 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.....
c560 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
c580 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
c5a0 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)
c5c0 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))....
c5e0 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)...............(
c600 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...............
c620 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
c640 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))........
c660 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-
c680 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-
c6a0 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
c6c0 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.
c6e0 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
c700 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.
c720 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
c740 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")
c760 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
c780 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
c7a0 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
c7c0 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)..."
c7e0 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
c800 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
c820 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
c840 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
c860 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.(
c880 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))).....
c8a0 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:.%
c8c0 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
c8e0 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.
c900 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-
c920 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
c940 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
c960 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
c980 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
c9a0 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
c9c0 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
c9e0 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
ca00 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
ca20 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
ca40 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
ca60 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
ca80 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."
caa0 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
cac0 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))......
cae0 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-
cb00 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
cb20 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
cb40 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
cb60 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
cb80 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
cba0 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
cbc0 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
cbe0 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
cc00 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
cc20 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-
cc40 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.
cc60 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
cc80 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
cca0 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
ccc0 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
cce0 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
cd00 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
cd20 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
cd40 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
cd60 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.
cd80 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...
cda0 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)..
cdc0 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..
cde0 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.
ce00 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
ce20 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
ce40 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.....
ce60 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
ce80 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.
cea0 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
cec0 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
cee0 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
cf00 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
cf20 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))...
cf40 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
cf60 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
cf80 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
cfa0 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
cfc0 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)))
cfe0 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).
d000 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
d020 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..............................
d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d200 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
d220 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........................
d240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d260 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
d280 30 30 33 31 37 34 35 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 0031745.00000000000.016051..0...
d2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d300 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...................
d320 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...................
d340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d400 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
d420 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
d440 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.-*-..;;.
d460 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
d480 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
d4a0 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>.
d4c0 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
d4e0 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
d500 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
d520 65 72 2f 65 6c 69 73 70 2d 74 72 65 65 2d 73 69 74 74 65 72 0a 3b 3b 20 50 61 63 6b 61 67 65 2d er/elisp-tree-sitter.;;.Package-
d540 56 65 72 73 69 6f 6e 3a 20 32 30 32 32 30 32 31 32 2e 31 36 33 32 0a 3b 3b 20 50 61 63 6b 61 67 Version:.20220212.1632.;;.Packag
d560 65 2d 52 65 76 69 73 69 6f 6e 3a 20 39 30 39 37 31 37 63 36 38 35 66 66 0a 3b 3b 20 50 61 63 6b e-Revision:.909717c685ff.;;.Pack
d580 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 20 28 74 age-Requires:.((emacs."25.1").(t
d5a0 73 63 20 22 30 2e 31 38 2e 30 22 29 29 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 sc."0.18.0")).;;.SPDX-License-Id
d5c0 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 3a 0a 0a entifier:.MIT..;;;.Commentary:..
d5e0 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 62 61 73 65 20 66 72 61 6d 65 77 6f 72 6b 20 6f 66 ;;.This.is.the.base.framework.of
d600 20 74 68 65 20 45 6d 61 63 73 20 62 69 6e 64 69 6e 67 20 66 6f 72 20 54 72 65 65 2d 73 69 74 74 .the.Emacs.binding.for.Tree-sitt
d620 65 72 2c 20 61 6e 0a 3b 3b 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 73 69 6e 67 20 73 79 er,.an.;;.incremental.parsing.sy
d640 73 74 65 6d 2e 20 49 74 20 69 6e 63 6c 75 64 65 73 20 61 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 74 stem..It.includes.a.minor.mode.t
d660 68 61 74 20 70 72 6f 76 69 64 65 73 20 61 0a 3b 3b 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 73 hat.provides.a.;;.buffer-local.s
d680 79 6e 74 61 78 20 74 72 65 65 20 74 68 61 74 20 69 73 20 75 70 64 61 74 65 64 20 6f 6e 20 65 76 yntax.tree.that.is.updated.on.ev
d6a0 65 72 79 20 74 65 78 74 20 63 68 61 6e 67 65 2e 20 54 68 69 73 20 6d 69 6e 6f 72 0a 3b 3b 20 6d ery.text.change..This.minor.;;.m
d6c0 6f 64 65 20 69 73 20 74 68 65 20 62 61 73 65 20 66 6f 72 20 6f 74 68 65 72 20 6c 69 62 72 61 72 ode.is.the.base.for.other.librar
d6e0 69 65 73 20 74 6f 20 62 75 69 6c 64 20 6f 6e 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 69 73 20 74 ies.to.build.on..An.example.is.t
d700 68 65 20 69 6e 63 6c 75 64 65 64 0a 3b 3b 20 63 6f 64 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 he.included.;;.code-highlighting
d720 20 6d 69 6e 6f 72 20 6d 6f 64 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 .minor.mode...;;;.Code:..(requir
d740 65 20 27 74 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 6c 6f e.'tsc).(require.'tree-sitter-lo
d760 61 64 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 74 72 65 65 2d 73 69 74 74 65 72 20 6e 69 6c 0a 20 ad)..(defgroup.tree-sitter.nil..
d780 20 22 49 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 73 69 6e 67 20 73 79 73 74 65 6d 2e 22 0a 20 ."Incremental.parsing.system."..
d7a0 20 3a 67 72 6f 75 70 20 27 6c 61 6e 67 75 61 67 65 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 .:group.'languages)..(defcustom.
d7c0 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 6f tree-sitter-after-change-functio
d7e0 6e 73 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c 20 65 61 63 68 ns.nil..."Functions.to.call.each
d800 20 74 69 6d 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 27 20 69 73 20 75 70 64 61 .time.`tree-sitter-tree'.is.upda
d820 74 65 64 2e 0a 45 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 ted..Each.function.will.be.calle
d840 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e 74 3a 20 74 68 65 20 4f 4c d.with.a.single.argument:.the.OL
d860 44 2d 54 52 45 45 2e 20 54 68 69 73 20 61 72 67 75 6d 65 6e 74 0a 77 69 6c 6c 20 62 65 20 6e 69 D-TREE..This.argument.will.be.ni
d880 6c 20 77 68 65 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 70 61 72 73 65 64 20 66 6f 72 20 l.when.the.buffer.is.parsed.for.
d8a0 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 2e 0a 0a 46 6f 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 the.first.time...For.initializat
d8c0 69 6f 6e 20 6c 6f 67 69 63 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 72 75 6e 20 6f 6e 6c ion.logic.that.should.be.run.onl
d8e0 79 20 6f 6e 63 65 2c 20 75 73 65 0a 60 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d 66 y.once,.use.`tree-sitter-after-f
d900 69 72 73 74 2d 70 61 72 73 65 2d 68 6f 6f 6b 27 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 3a 74 79 irst-parse-hook'.instead."...:ty
d920 70 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 pe.'hook...:group.'tree-sitter).
d940 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 2d 66 69 .(defcustom.tree-sitter-after-fi
d960 72 73 74 2d 70 61 72 73 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 rst-parse-hook.nil..."Functions.
d980 74 6f 20 63 61 6c 6c 20 61 66 74 65 72 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 70 61 72 73 to.call.after.the.buffer.is.pars
d9a0 65 64 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 2e 0a 54 68 69 73 20 68 6f 6f 6b ed.for.the.first.time..This.hook
d9c0 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 66 6f 72 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 .should.be.used.for.initializati
d9e0 6f 6e 20 6c 6f 67 69 63 20 74 68 61 74 20 72 65 71 75 69 72 65 73 20 69 6e 73 70 65 63 74 69 6e on.logic.that.requires.inspectin
da00 67 20 74 68 65 0a 73 79 6e 74 61 78 20 74 72 65 65 2e 20 49 74 20 69 73 20 72 75 6e 20 61 66 74 g.the.syntax.tree..It.is.run.aft
da20 65 72 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 27 2e 22 0a 20 20 3a er.`tree-sitter-mode-hook'."...:
da40 74 79 70 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 type.'hook...:group.'tree-sitter
da60 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 2d )..(defcustom.tree-sitter-after-
da80 6f 6e 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 61 6c 6c on-hook.nil..."Functions.to.call
daa0 20 61 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 .after.enabling.`tree-sitter-mod
dac0 65 27 2e 0a 55 73 65 20 74 68 69 73 20 74 6f 20 65 6e 61 62 6c 65 20 6f 74 68 65 72 20 6d 69 6e e'..Use.this.to.enable.other.min
dae0 6f 72 20 6d 6f 64 65 73 20 74 68 61 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 73 79 6e or.modes.that.depends.on.the.syn
db00 74 61 78 20 74 72 65 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 tax.tree."...:type.'hook...:grou
db20 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 65 p.'tree-sitter)..(defcustom.tree
db40 2d 73 69 74 74 65 72 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 6c 61 6e 67 75 61 67 65 2d 61 6c 69 73 -sitter-major-mode-language-alis
db60 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 74 68 61 74 20 6d 61 70 73 20 6d 61 6a 6f 72 20 6d t.nil..."Alist.that.maps.major.m
db80 6f 64 65 73 20 74 6f 20 74 72 65 65 2d 73 69 74 74 65 72 20 6c 61 6e 67 75 61 67 65 20 6e 61 6d odes.to.tree-sitter.language.nam
dba0 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 0a 20 20 3a 74 79 es."...:group.'tree-sitter...:ty
dbc0 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 20 73 79 6d 62 6f 6c 0a 20 20 20 20 pe.'(alist.:key-type.symbol.....
dbe0 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 79 6d 62 6f 6c 29 29 ............:value-type.symbol))
dc00 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 65 72 2d 74 72 65 65 ..(defvar-local.tree-sitter-tree
dc20 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d 73 69 74 74 65 72 20 73 79 6e 74 61 78 20 74 72 65 65 2e .nil..."Tree-sitter.syntax.tree.
dc40 22 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 65 72 2d 70 61 ")..(defvar-local.tree-sitter-pa
dc60 72 73 65 72 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d 73 69 74 74 65 72 20 70 61 72 73 65 72 2e 22 rser.nil..."Tree-sitter.parser."
dc80 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 65 72 2d 6c 61 6e )..(defvar-local.tree-sitter-lan
dca0 67 75 61 67 65 20 6e 69 6c 0a 20 20 22 54 72 65 65 2d 73 69 74 74 65 72 20 6c 61 6e 67 75 61 67 guage.nil..."Tree-sitter.languag
dcc0 65 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 69 74 74 65 72 2d e.")..(defvar-local.tree-sitter-
dce0 2d 74 65 78 74 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 76 61 -text-before-change.nil)..(defva
dd00 72 2d 6c 6f 63 61 6c 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 67 2d 62 65 66 6f 72 65 2d r-local.tree-sitter--beg-before-
dd20 63 68 61 6e 67 65 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 change.nil)..(defun.tree-sitter-
dd40 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 28 62 65 67 20 6f 6c 64 2d 65 6e 64 29 0a 20 20 22 -before-change.(beg.old-end)..."
dd60 55 70 64 61 74 65 20 72 65 6c 65 76 61 6e 74 20 65 64 69 74 69 6e 67 20 73 74 61 74 65 73 2e 20 Update.relevant.editing.states..
dd80 49 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 60 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 Installed.on.`before-change-func
dda0 74 69 6f 6e 73 27 2e 0a 42 45 47 20 61 6e 64 20 4f 4c 44 2d 45 4e 44 20 61 72 65 20 74 68 65 20 tions'..BEG.and.OLD-END.are.the.
ddc0 62 65 67 69 6e 20 61 6e 64 20 65 6e 64 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 74 begin.and.end.positions.of.the.t
dde0 65 78 74 20 74 6f 20 62 65 20 63 68 61 6e 67 65 64 2e 22 0a 20 20 28 73 65 74 71 20 74 72 65 65 ext.to.be.changed."...(setq.tree
de00 2d 73 69 74 74 65 72 2d 2d 62 65 67 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 20 62 65 67 29 0a -sitter--beg-before-change.beg).
de20 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.....
de40 3b 3b 20 54 4f 44 4f 3a 20 46 61 6c 6c 62 61 63 6b 20 74 6f 20 61 20 66 75 6c 6c 20 70 61 72 73 ;;.TODO:.Fallback.to.a.full.pars
de60 65 20 69 66 20 74 68 69 73 20 72 65 67 69 6f 6e 20 69 73 20 74 6f 6f 20 62 69 67 2e 0a 20 20 20 e.if.this.region.is.too.big.....
de80 20 28 73 65 74 71 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 .(setq.tree-sitter--text-before-
dea0 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 6f 6c 64 2d 65 6e change...........(when.(>.old-en
dec0 64 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 d.beg).............(buffer-subst
dee0 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 6f 6c 64 2d 65 6e 64 29 29 ring-no-properties.beg.old-end))
df00 29 29 29 0a 0a 3b 3b 3b 20 54 4f 44 4f 3a 20 48 6f 77 20 64 6f 20 77 65 20 62 61 74 63 68 20 2a )))..;;;.TODO:.How.do.we.batch.*
df20 61 66 74 65 72 2a 20 68 6f 6f 6b 73 20 74 6f 20 72 65 2d 70 61 72 73 65 20 6f 6e 6c 79 20 6f 6e after*.hooks.to.re-parse.only.on
df40 63 65 3f 20 4d 61 79 62 65 20 75 73 69 6e 67 0a 3b 3b 3b 20 60 72 75 6e 2d 77 69 74 68 2d 69 64 ce?.Maybe.using.;;;.`run-with-id
df60 6c 65 2d 74 69 6d 65 72 27 20 77 69 74 68 20 30 2d 73 65 63 6f 6e 64 20 74 69 6d 65 6f 75 74 3f le-timer'.with.0-second.timeout?
df80 0a 3b 3b 3b 0a 3b 3b 3b 20 58 58 58 3a 20 46 69 67 75 72 65 20 6f 75 74 20 68 6f 77 20 74 6f 20 .;;;.;;;.XXX:.Figure.out.how.to.
dfa0 64 65 74 65 63 74 20 77 68 65 74 68 65 72 20 69 74 20 77 61 73 20 61 20 74 65 78 74 2d 70 72 6f detect.whether.it.was.a.text-pro
dfc0 70 65 72 74 79 2d 6f 6e 6c 79 20 63 68 61 6e 67 65 2e 0a 3b 3b 3b 20 54 68 65 72 65 27 73 20 6e perty-only.change..;;;.There's.n
dfe0 6f 20 70 6f 69 6e 74 20 69 6e 20 72 65 70 61 72 73 69 6e 67 20 69 6e 20 74 68 65 73 65 20 73 69 o.point.in.reparsing.in.these.si
e000 74 75 61 74 69 6f 6e 73 2e 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 61 66 tuations..(defun.tree-sitter--af
e020 74 65 72 2d 63 68 61 6e 67 65 20 28 62 65 67 20 6e 65 77 2d 65 6e 64 20 6f 6c 64 2d 6c 65 6e 29 ter-change.(beg.new-end.old-len)
e040 0a 20 20 22 55 70 64 61 74 65 20 72 65 6c 65 76 61 6e 74 20 65 64 69 74 69 6e 67 20 73 74 61 74 ..."Update.relevant.editing.stat
e060 65 73 20 61 6e 64 20 72 65 70 61 72 73 65 20 74 68 65 20 62 75 66 66 65 72 20 28 69 6e 63 72 65 es.and.reparse.the.buffer.(incre
e080 6d 65 6e 74 61 6c 6c 79 29 2e 0a 49 6e 73 74 61 6c 6c 65 64 20 6f 6e 20 60 61 66 74 65 72 2d 63 mentally)..Installed.on.`after-c
e0a0 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 0a 42 45 47 20 69 73 20 74 68 65 20 62 65 hange-functions'...BEG.is.the.be
e0c0 67 69 6e 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 2e 0a 4e 45 57 2d gin.position.of.the.change..NEW-
e0e0 45 4e 44 20 69 73 20 74 68 65 20 65 6e 64 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 END.is.the.end.position.of.the.c
e100 68 61 6e 67 65 64 20 74 65 78 74 2e 0a 4f 4c 44 2d 4c 45 4e 20 69 73 20 74 68 65 20 63 68 61 72 hanged.text..OLD-LEN.is.the.char
e120 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6f 6c 64 20 74 65 78 74 2e 22 0a 20 20 28 77 68 65 .length.of.the.old.text."...(whe
e140 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 28 6c 65 74 20 28 28 62 65 n.tree-sitter-tree.....(let.((be
e160 67 3a 62 79 74 65 20 28 70 6f 73 69 74 69 6f 6e 2d 62 79 74 65 73 20 62 65 67 29 29 0a 20 20 20 g:byte.(position-bytes.beg))....
e180 20 20 20 20 20 20 20 28 6e 65 77 2d 65 6e 64 3a 62 79 74 65 20 28 70 6f 73 69 74 69 6f 6e 2d 62 .......(new-end:byte.(position-b
e1a0 79 74 65 73 20 6e 65 77 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 6f 6c 64 2d 65 6e 64 ytes.new-end))...........old-end
e1c0 3a 62 79 74 65 0a 20 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 :byte...........beg:point.old-en
e1e0 64 3a 70 6f 69 6e 74 20 6e 65 77 2d 65 6e 64 3a 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 74 73 d:point.new-end:point).......(ts
e200 63 2d 2d 73 61 76 65 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 c--save-context.........(setq.be
e220 67 3a 70 6f 69 6e 74 20 28 74 73 63 2d 2d 70 6f 69 6e 74 2d 66 72 6f 6d 2d 70 6f 73 69 74 69 6f g:point.(tsc--point-from-positio
e240 6e 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 2d 65 6e 64 3a 70 6f 69 n.beg)...............new-end:poi
e260 6e 74 20 28 74 73 63 2d 2d 70 6f 69 6e 74 2d 66 72 6f 6d 2d 70 6f 73 69 74 69 6f 6e 20 6e 65 77 nt.(tsc--point-from-position.new
e280 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 43 6f 6d 70 75 74 65 20 74 68 65 20 6f 6c 64 -end))).......;;.Compute.the.old
e2a0 20 74 65 78 74 27 73 20 65 6e 64 20 62 79 74 65 20 70 6f 73 69 74 69 6f 6e 2c 20 6c 69 6e 65 20 .text's.end.byte.position,.line.
e2c0 6e 75 6d 62 65 72 2c 20 62 79 74 65 20 63 6f 6c 75 6d 6e 2e 0a 20 20 20 20 20 20 3b 3b 0a 20 20 number,.byte.column........;;...
e2e0 20 20 20 20 3b 3b 20 54 72 65 65 2d 73 69 74 74 65 72 20 77 6f 72 6b 73 20 77 69 74 68 20 62 79 ....;;.Tree-sitter.works.with.by
e300 74 65 20 70 6f 73 69 74 69 6f 6e 73 2c 20 6c 69 6e 65 20 6e 75 6d 62 65 72 73 2c 20 62 79 74 65 te.positions,.line.numbers,.byte
e320 20 63 6f 6c 75 6d 6e 73 2e 0a 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 70 72 69 6d 61 72 69 .columns........;;.Emacs.primari
e340 6c 79 20 77 6f 72 6b 73 20 77 69 74 68 20 63 68 61 72 61 63 74 65 72 20 70 6f 73 69 74 69 6f 6e ly.works.with.character.position
e360 73 2e 20 43 6f 6e 76 65 72 74 69 6e 67 20 74 68 65 20 6c 61 74 74 65 72 0a 20 20 20 20 20 20 3b s..Converting.the.latter.......;
e380 3b 20 74 6f 20 74 68 65 20 66 6f 72 6d 65 72 2c 20 66 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 ;.to.the.former,.for.the.end.of.
e3a0 74 68 65 20 6f 6c 64 20 74 65 78 74 2c 20 72 65 71 75 69 72 65 73 20 6c 6f 6f 6b 69 6e 67 20 61 the.old.text,.requires.looking.a
e3c0 74 20 74 68 65 0a 20 20 20 20 20 20 3b 3b 20 61 63 74 75 61 6c 20 6f 6c 64 20 74 65 78 74 27 73 t.the.......;;.actual.old.text's
e3e0 20 63 6f 6e 74 65 6e 74 2e 20 54 72 65 65 2d 73 69 74 74 65 72 20 69 74 73 65 6c 66 20 63 61 6e .content..Tree-sitter.itself.can
e400 6e 6f 74 20 64 6f 20 74 68 61 74 2c 20 62 65 63 61 75 73 65 0a 20 20 20 20 20 20 3b 3b 20 69 74 not.do.that,.because.......;;.it
e420 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 6b 65 65 70 20 74 72 61 63 6b 20 6f 66 20 6f 6e .is.designed.to.keep.track.of.on
e440 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 73 2c 20 6e 6f 74 20 61 20 6d 69 72 72 6f 72 20 6f 66 20 ly.the.numbers,.not.a.mirror.of.
e460 74 68 65 0a 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 27 73 20 74 65 78 74 2e 20 57 69 74 68 the.......;;.buffer's.text..With
e480 6f 75 74 20 72 65 2d 64 65 73 69 67 6e 69 6e 67 20 45 6d 61 63 73 27 73 20 63 68 61 6e 67 65 20 out.re-designing.Emacs's.change.
e4a0 74 72 61 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 2c 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 tracking.mechanism,.......;;.we.
e4c0 73 74 6f 72 65 20 74 68 65 20 6f 6c 64 20 74 65 78 74 20 74 68 72 6f 75 67 68 20 60 74 72 65 65 store.the.old.text.through.`tree
e4e0 2d 73 69 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 27 2c 20 61 6e 64 20 69 6e 73 -sitter--before-change',.and.ins
e500 70 65 63 74 0a 20 20 20 20 20 20 3b 3b 20 69 74 20 68 65 72 65 2e 20 54 4f 44 4f 20 58 58 58 20 pect.......;;.it.here..TODO.XXX.
e520 46 49 58 3a 20 49 6d 70 72 6f 76 65 20 63 68 61 6e 67 65 20 74 72 61 63 6b 69 6e 67 20 69 6e 20 FIX:.Improve.change.tracking.in.
e540 45 6d 61 63 73 2e 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20 6f 6c 64 2d 6c 65 6e 20 30 29 0a 20 Emacs........(if.(=.old-len.0)..
e560 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 20 62 65 67 3a .........(setq.old-end:byte.beg:
e580 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6c 64 2d 65 6e 64 3a 70 6f 69 byte.................old-end:poi
e5a0 6e 74 20 62 65 67 3a 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 6c 64 nt.beg:point).........(let.((old
e5c0 2d 74 65 78 74 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 -text.tree-sitter--text-before-c
e5e0 68 61 6e 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6c 2d 62 65 67 20 28 31 hange)...............(rel-beg.(1
e600 2b 20 28 2d 20 62 65 67 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 67 2d 62 65 66 6f 72 65 +.(-.beg.tree-sitter--beg-before
e620 2d 63 68 61 6e 67 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 3a 20 44 6f -change))))...........;;.FIX:.Do
e640 6e 27 74 20 61 73 73 75 6d 65 20 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 27 73 20 62 65 67 20 61 n't.assume.before-change's.beg.a
e660 6e 64 20 61 66 74 65 72 2d 63 68 61 6e 67 65 27 73 20 62 65 67 20 61 72 65 0a 20 20 20 20 20 20 nd.after-change's.beg.are.......
e680 20 20 20 20 3b 3b 20 74 68 65 20 73 61 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 ....;;.the.same............(with
e6a0 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 -temp-buffer.............(insert
e6c0 20 6f 6c 64 2d 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 .old-text).............(pcase-le
e6e0 74 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 72 65 6c 2d 6f 6c 64 2d 65 6e 64 t*.................((rel-old-end
e700 20 28 2b 20 72 65 6c 2d 62 65 67 20 6f 6c 64 2d 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(+.rel-beg.old-len))...........
e720 20 20 20 20 20 20 20 28 6f 6c 64 2d 6c 65 6e 3a 62 79 74 65 20 28 2d 20 28 70 6f 73 69 74 69 6f .......(old-len:byte.(-.(positio
e740 6e 2d 62 79 74 65 73 20 72 65 6c 2d 6f 6c 64 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 n-bytes.rel-old-end)............
e760 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 69 6f 6e .......................(position
e780 2d 62 79 74 65 73 20 72 65 6c 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -bytes.rel-beg)))...............
e7a0 20 20 20 28 60 28 2c 62 65 67 3a 6c 69 6e 75 6d 20 2e 20 2c 62 65 67 3a 62 79 74 65 63 6f 6c 29 ...(`(,beg:linum...,beg:bytecol)
e7c0 20 62 65 67 3a 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 .beg:point)..................(re
e7e0 6c 2d 62 65 67 3a 6c 69 6e 75 6d 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 l-beg:linum.(line-number-at-pos.
e800 72 65 6c 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 72 rel-beg))..................(`(,r
e820 65 6c 2d 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 2e 20 2c 72 65 6c 2d 6f 6c 64 2d 65 6e 64 3a el-old-end:linum...,rel-old-end:
e840 62 79 74 65 63 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d bytecol)...................(tsc-
e860 2d 70 6f 69 6e 74 2d 66 72 6f 6d 2d 70 6f 73 69 74 69 6f 6e 20 72 65 6c 2d 6f 6c 64 2d 65 6e 64 -point-from-position.rel-old-end
e880 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 64 69 66 66 3a 6c 69 ))..................(old-diff:li
e8a0 6e 75 6d 20 28 2d 20 72 65 6c 2d 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 72 65 6c 2d 62 65 67 num.(-.rel-old-end:linum.rel-beg
e8c0 3a 6c 69 6e 75 6d 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 65 :linum))..................(old-e
e8e0 6e 64 3a 6c 69 6e 75 6d 20 28 2b 20 62 65 67 3a 6c 69 6e 75 6d 20 6f 6c 64 2d 64 69 66 66 3a 6c nd:linum.(+.beg:linum.old-diff:l
e900 69 6e 75 6d 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 65 6e 64 inum))..................(old-end
e920 3a 62 79 74 65 63 6f 6c 20 28 69 66 20 28 3e 20 6f 6c 64 2d 64 69 66 66 3a 6c 69 6e 75 6d 20 30 :bytecol.(if.(>.old-diff:linum.0
e940 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 20 20 )...............................
e960 20 20 20 20 20 20 20 20 72 65 6c 2d 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 63 6f 6c 0a 20 20 20 20 ........rel-old-end:bytecol.....
e980 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 ................................
e9a0 28 2b 20 62 65 67 3a 62 79 74 65 63 6f 6c 20 6f 6c 64 2d 6c 65 6e 3a 62 79 74 65 29 29 29 29 0a (+.beg:bytecol.old-len:byte)))).
e9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 ..............(setq.old-end:byte
e9e0 20 28 2b 20 62 65 67 3a 62 79 74 65 20 6f 6c 64 2d 6c 65 6e 3a 62 79 74 65 29 0a 20 20 20 20 20 .(+.beg:byte.old-len:byte)......
ea00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 6c 64 2d 65 6e 64 3a 70 6f 69 6e 74 20 60 28 2c ...............old-end:point.`(,
ea20 6f 6c 64 2d 65 6e 64 3a 6c 69 6e 75 6d 20 2e 20 2c 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 63 6f 6c old-end:linum...,old-end:bytecol
ea40 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 74 73 63 2d 65 64 69 74 2d 74 72 65 65 20 74 72 65 65 )))))).......(tsc-edit-tree.tree
ea60 2d 73 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -sitter-tree....................
ea80 20 20 62 65 67 3a 62 79 74 65 20 6f 6c 64 2d 65 6e 64 3a 62 79 74 65 20 6e 65 77 2d 65 6e 64 3a ..beg:byte.old-end:byte.new-end:
eaa0 62 79 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 3a 70 6f byte......................beg:po
eac0 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 6f 69 6e 74 29 int.old-end:point.new-end:point)
eae0 0a 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 64 6f 2d 70 61 72 73 65 29 29 29 .......(tree-sitter--do-parse)))
eb00 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 64 6f 2d 70 61 72 73 65 20 )..(defun.tree-sitter--do-parse.
eb20 28 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 ()..."Parse.the.current.buffer.a
eb40 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 73 79 6e 74 61 78 20 74 72 65 65 2e 22 0a 20 20 28 6c nd.update.the.syntax.tree."...(l
eb60 65 74 20 28 28 6f 6c 64 2d 74 72 65 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 29 29 et.((old-tree.tree-sitter-tree))
eb80 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 .....(setq.tree-sitter-tree.....
eba0 20 20 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 6d 61 63 ......;;.https://github.com/emac
ebc0 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 65 72 2f s-tree-sitter/elisp-tree-sitter/
ebe0 69 73 73 75 65 73 2f 33 0a 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 2d 77 69 74 68 6f 75 74 issues/3...........(tsc--without
ec00 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 73 63 2d 70 61 -restriction.............(tsc-pa
ec20 72 73 65 2d 63 68 75 6e 6b 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 20 23 27 rse-chunks.tree-sitter-parser.#'
ec40 74 73 63 2d 2d 62 75 66 66 65 72 2d 69 6e 70 75 74 20 6f 6c 64 2d 74 72 65 65 29 29 29 0a 20 20 tsc--buffer-input.old-tree)))...
ec60 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 74 72 65 65 2d 73 69 74 74 ..(run-hook-with-args.'tree-sitt
ec80 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 6f 6c 64 2d 74 72 er-after-change-functions.old-tr
eca0 65 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 73 65 74 75 70 ee)))..(defun.tree-sitter--setup
ecc0 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 27 20 69 6e 20 74 .()..."Enable.`tree-sitter'.in.t
ece0 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 72 he.current.buffer."...(unless.tr
ed00 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 0a 20 20 20 20 3b 3b 20 44 65 74 65 72 6d ee-sitter-language.....;;.Determ
ed20 69 6e 65 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 73 79 6d 62 6f 6c 20 62 61 73 65 64 20 6f 6e ine.the.language.symbol.based.on
ed40 20 60 6d 61 6a 6f 72 2d 6d 6f 64 65 27 20 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 6c 61 6e 67 2d .`major-mode'.......(let.((lang-
ed60 73 79 6d 62 6f 6c 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 74 72 65 symbol.(alist-get.major-mode.tre
ed80 65 2d 73 69 74 74 65 72 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 6c 61 6e 67 75 61 67 65 2d 61 6c 69 e-sitter-major-mode-language-ali
eda0 73 74 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 61 6e 67 2d 73 79 6d 62 6f 6c 0a st))).......(unless.lang-symbol.
edc0 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6c 61 6e 67 75 61 67 65 20 72 65 67 69 ........(error."No.language.regi
ede0 73 74 65 72 65 64 20 66 6f 72 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 60 25 73 27 22 20 6d 61 6a 6f stered.for.major.mode.`%s'".majo
ee00 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 r-mode)).......(setq.tree-sitter
ee20 2d 6c 61 6e 67 75 61 67 65 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 72 65 71 75 69 72 65 20 6c -language.(tree-sitter-require.l
ee40 61 6e 67 2d 73 79 6d 62 6f 6c 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 ang-symbol))))...(unless.tree-si
ee60 74 74 65 72 2d 70 61 72 73 65 72 0a 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 tter-parser.....(setq.tree-sitte
ee80 72 2d 70 61 72 73 65 72 20 28 74 73 63 2d 6d 61 6b 65 2d 70 61 72 73 65 72 29 29 0a 20 20 20 20 r-parser.(tsc-make-parser)).....
eea0 28 74 73 63 2d 73 65 74 2d 6c 61 6e 67 75 61 67 65 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 (tsc-set-language.tree-sitter-pa
eec0 72 73 65 72 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c 61 6e 67 75 61 67 65 29 29 0a 20 20 28 61 rser.tree-sitter-language))...(a
eee0 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 dd-hook.'before-change-functions
ef00 20 23 27 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 3a 61 .#'tree-sitter--before-change.:a
ef20 70 70 65 6e 64 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 ppend.:local)...(add-hook.'after
ef40 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 2d -change-functions.#'tree-sitter-
ef60 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 3a 61 70 70 65 6e 64 20 3a 6c 6f 63 61 6c 29 29 0a 0a -after-change.:append.:local))..
ef80 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 74 65 61 72 64 6f 77 6e 20 28 29 0a (defun.tree-sitter--teardown.().
efa0 20 20 22 44 69 73 61 62 6c 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 27 20 69 6e 20 74 68 65 20 .."Disable.`tree-sitter'.in.the.
efc0 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 20 current.buffer."...(remove-hook.
efe0 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
f000 69 74 74 65 72 2d 2d 61 66 74 65 72 2d 63 68 61 6e 67 65 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 72 itter--after-change.:local)...(r
f020 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 emove-hook.'before-change-functi
f040 6f 6e 73 20 23 27 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 ons.#'tree-sitter--before-change
f060 20 3a 6c 6f 63 61 6c 29 0a 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 .:local)...(setq.tree-sitter-tre
f080 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 70 61 72 73 65 72 e.nil.........tree-sitter-parser
f0a0 20 6e 69 6c 0a 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 .nil.........tree-sitter-languag
f0c0 65 20 6e 69 6c 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d e.nil))..(defmacro.tree-sitter--
f0e0 65 72 72 6f 72 2d 70 72 6f 74 65 63 74 20 28 62 6f 64 79 2d 66 6f 72 6d 20 26 72 65 73 74 20 65 error-protect.(body-form.&rest.e
f100 72 72 6f 72 2d 66 6f 72 6d 73 29 0a 20 20 22 45 78 65 63 75 74 65 20 42 4f 44 59 2d 46 4f 52 4d rror-forms)..."Execute.BODY-FORM
f120 20 77 69 74 68 20 45 52 52 4f 52 2d 46 4f 52 4d 53 20 61 73 20 63 6c 65 61 6e 75 70 20 63 6f 64 .with.ERROR-FORMS.as.cleanup.cod
f140 65 20 74 68 61 74 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 6e 20 65 72 72 6f 72 2e 0a 55 6e 6c e.that.is.executed.on.error..Unl
f160 69 6b 65 20 60 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 27 2c 20 45 52 52 4f 52 2d 46 4f 52 4d ike.`unwind-protect',.ERROR-FORM
f180 53 20 69 73 20 6e 6f 74 20 65 78 65 63 75 74 65 64 20 69 66 20 42 4f 44 59 2d 46 4f 52 4d 20 64 S.is.not.executed.if.BODY-FORM.d
f1a0 6f 65 73 20 6e 6f 74 0a 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 2e 22 0a 20 20 28 64 65 63 oes.not.signal.an.error."...(dec
f1c0 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 6c 65 74 20 28 28 65 72 72 20 74 lare.(indent.1))...`(let.((err.t
f1e0 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 20 20 20 20 20 ))......(unwind-protect.........
f200 20 28 70 72 6f 67 31 20 2c 62 6f 64 79 2d 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 .(prog1.,body-form............(s
f220 65 74 71 20 65 72 72 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 0a 20 etq.err.nil))........(when.err..
f240 20 20 20 20 20 20 20 20 2c 40 65 72 72 6f 72 2d 66 6f 72 6d 73 29 29 29 29 0a 0a 3b 3b 3b 23 23 ........,@error-forms))))..;;;##
f260 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 74 72 65 #autoload.(define-minor-mode.tre
f280 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 74 68 61 74 e-sitter-mode..."Minor.mode.that
f2a0 20 6b 65 65 70 73 20 61 6e 20 75 70 2d 74 6f 2d 64 61 74 65 20 73 79 6e 74 61 78 20 74 72 65 65 .keeps.an.up-to-date.syntax.tree
f2c0 20 75 73 69 6e 67 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 70 61 72 73 69 6e 67 2e 22 0a 20 20 3a .using.incremental.parsing."...:
f2e0 69 6e 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 74 72 65 65 init-value.nil...:lighter.".tree
f300 2d 73 69 74 74 65 72 22 0a 20 20 3a 61 66 74 65 72 2d 68 6f 6f 6b 20 28 77 68 65 6e 20 74 72 65 -sitter"...:after-hook.(when.tre
f320 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 e-sitter-mode.................(u
f340 6e 6c 65 73 73 20 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 nless.tree-sitter-tree..........
f360 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 64 6f 2d 70 61 72 73 65 29 .........(tree-sitter--do-parse)
f380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 74 ...................(run-hooks.'t
f3a0 72 65 65 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 ree-sitter-after-first-parse-hoo
f3c0 6b 29 29 29 0a 20 20 28 69 66 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 20 20 k)))...(if.tree-sitter-mode.....
f3e0 20 20 28 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 0a 20 20 ..(tree-sitter--error-protect...
f400 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 ........(progn.............(tree
f420 2d 73 69 74 74 65 72 2d 2d 73 65 74 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 -sitter--setup).............;;.T
f440 4f 44 4f 3a 20 57 68 65 6e 20 74 68 65 20 64 65 70 65 6e 64 65 6e 74 20 6d 6f 64 65 20 72 65 71 ODO:.When.the.dependent.mode.req
f460 75 65 73 74 65 64 20 75 73 2c 20 62 75 74 20 74 68 65 6e 20 66 61 69 6c 65 64 20 74 6f 0a 20 20 uested.us,.but.then.failed.to...
f480 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 75 72 6e 20 69 74 73 65 6c 66 20 6f 6e 2c 20 77 65 20 ..........;;.turn.itself.on,.we.
f4a0 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79 20 74 75 72 6e 20 6f 75 72 73 65 6c 76 65 73 20 6f should.probably.turn.ourselves.o
f4c0 66 66 20 61 73 20 77 65 6c 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 ff.as.well..............(with-de
f4e0 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 74 72 65 65 2d 73 69 74 74 65 72 2d 61 66 74 65 72 2d moted-errors."tree-sitter-after-
f500 6f 6e 2d 68 6f 6f 6b 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d on-hook:.%S"...............(run-
f520 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 6f 6e 2d 68 6f 6f 6b hooks.'tree-sitter-after-on-hook
f540 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f ))).........(setq.tree-sitter-mo
f560 64 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 74 65 de.nil).........(tree-sitter--te
f580 61 72 64 6f 77 6e 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 74 72 65 65 2d 73 69 ardown)).....(run-hooks.'tree-si
f5a0 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 6f 66 66 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 74 72 65 65 tter--before-off-hook).....(tree
f5c0 2d 73 69 74 74 65 72 2d 2d 74 65 61 72 64 6f 77 6e 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f -sitter--teardown)))..;;;###auto
f5e0 6c 6f 61 64 0a 28 64 65 66 75 6e 20 74 75 72 6e 2d 6f 6e 2d 74 72 65 65 2d 73 69 74 74 65 72 2d load.(defun.turn-on-tree-sitter-
f600 6d 6f 64 65 20 28 29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d mode.()..."Turn.on.`tree-sitter-
f620 6d 6f 64 65 27 20 69 6e 20 61 20 62 75 66 66 65 72 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 mode'.in.a.buffer,.if.possible."
f640 0a 20 20 3b 3b 20 46 49 58 3a 20 49 67 6e 6f 72 65 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 65 72 72 ...;;.FIX:.Ignore.only.known.err
f660 6f 72 73 2e 20 4c 6f 67 20 74 68 65 20 72 65 73 74 2c 20 61 74 20 6c 65 61 73 74 2e 0a 20 20 28 ors..Log.the.rest,.at.least....(
f680 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 6d ignore-errors.....(tree-sitter-m
f6a0 6f 64 65 20 31 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 ode.1)))..;;;###autoload.(define
f6c0 2d 67 6c 6f 62 61 6c 69 7a 65 64 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 67 6c 6f 62 61 6c 2d 74 72 -globalized-minor-mode.global-tr
f6e0 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 ee-sitter-mode...tree-sitter-mod
f700 65 20 74 75 72 6e 2d 6f 6e 2d 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 0a 20 20 3a 69 6e e.turn-on-tree-sitter-mode...:in
f720 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 3a 67 72 6f 75 70 20 27 74 72 65 65 2d 73 69 74 74 it-value.nil...:group.'tree-sitt
f740 65 72 29 0a 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c 6c er)..(defun.tree-sitter--funcall
f760 2d 66 6f 72 6d 20 28 66 75 6e 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 65 71 75 69 76 61 -form.(func)..."Return.an.equiva
f780 6c 65 6e 74 20 74 6f 20 28 66 75 6e 63 61 6c 6c 20 46 55 4e 43 29 20 74 68 61 74 20 63 61 6e 20 lent.to.(funcall.FUNC).that.can.
f7a0 62 65 20 75 73 65 64 20 69 6e 20 61 20 6d 61 63 72 6f 2e 0a 49 66 20 46 55 4e 43 20 69 73 20 61 be.used.in.a.macro..If.FUNC.is.a
f7c0 20 71 75 6f 74 65 64 20 73 79 6d 62 6f 6c 2c 20 73 6b 69 70 20 74 68 65 20 60 66 75 6e 63 61 6c .quoted.symbol,.skip.the.`funcal
f7e0 6c 27 20 69 6e 64 69 72 65 63 74 69 6f 6e 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 63 6f 6e l'.indirection."...(if.(and.(con
f800 73 70 20 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 61 72 20 66 sp.func)............(memq.(car.f
f820 75 6e 63 29 20 27 28 71 75 6f 74 65 20 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 unc).'(quote.function)).........
f840 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 64 72 20 66 75 6e 63 29 29 29 0a 20 20 20 20 20 20 ...(symbolp.(cadr.func))).......
f860 60 28 2c 28 63 61 64 72 20 66 75 6e 63 29 29 0a 20 20 20 20 60 28 66 75 6e 63 61 6c 6c 20 2c 66 `(,(cadr.func)).....`(funcall.,f
f880 75 6e 63 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 68 unc)))..(defmacro.tree-sitter--h
f8a0 61 6e 64 6c 65 2d 64 65 70 65 6e 64 65 6e 74 20 28 6d 6f 64 65 20 73 65 74 75 70 2d 66 75 6e 63 andle-dependent.(mode.setup-func
f8c0 74 69 6f 6e 20 74 65 61 72 64 6f 77 6e 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 22 42 75 69 6c 64 tion.teardown-function)..."Build
f8e0 20 74 68 65 20 62 6c 6f 63 6b 20 6f 66 20 63 6f 64 65 20 74 68 61 74 20 68 61 6e 64 6c 65 73 20 .the.block.of.code.that.handles.
f900 65 6e 61 62 6c 69 6e 67 2f 64 69 73 61 62 6c 69 6e 67 20 6f 66 20 61 20 64 65 70 65 6e 64 65 6e enabling/disabling.of.a.dependen
f920 74 20 6d 6f 64 65 2e 0a 55 73 65 20 74 68 69 73 20 61 73 20 74 68 65 20 62 6f 64 79 20 6f 66 20 t.mode..Use.this.as.the.body.of.
f940 74 68 65 20 60 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 62 6c 6f 63 6b 20 74 68 the.`define-minor-mode'.block.th
f960 61 74 20 64 65 66 69 6e 65 73 20 4d 4f 44 45 2e 0a 0a 57 68 65 6e 20 4d 4f 44 45 20 69 73 20 65 at.defines.MODE...When.MODE.is.e
f980 6e 61 62 6c 65 64 2c 20 69 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 6e 61 62 6c 65 73 nabled,.it.automatically.enables
f9a0 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 2e 20 57 68 65 6e 20 4d 4f 44 45 20 69 .`tree-sitter-mode'..When.MODE.i
f9c0 73 0a 64 69 73 61 62 6c 65 64 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 64 69 73 61 62 6c 65 20 s.disabled,.it.does.not.disable.
f9e0 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 2c 20 73 69 6e 63 65 20 74 68 65 20 6c 61 `tree-sitter-mode',.since.the.la
fa00 74 74 65 72 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e 0a 72 65 71 75 65 73 74 65 64 20 62 79 20 tter.may.have.been.requested.by.
fa20 65 6e 64 20 75 73 65 72 2c 20 6f 72 20 6f 74 68 65 72 20 64 65 70 65 6e 64 65 6e 74 20 6d 6f 64 end.user,.or.other.dependent.mod
fa40 65 73 2e 0a 0a 57 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 20 es...When.`tree-sitter-mode'.is.
fa60 64 69 73 61 62 6c 65 64 2c 20 69 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69 73 61 62 disabled,.it.automatically.disab
fa80 6c 65 73 20 4d 4f 44 45 2c 20 77 68 69 63 68 20 77 69 6c 6c 0a 6e 6f 74 20 66 75 6e 63 74 69 6f les.MODE,.which.will.not.functio
faa0 6e 20 63 6f 72 72 65 63 74 6c 79 20 6f 74 68 65 72 77 69 73 65 2e 20 54 68 69 73 20 68 61 70 70 n.correctly.otherwise..This.happ
fac0 65 6e 73 20 62 65 66 6f 72 65 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 63 6c ens.before.`tree-sitter-mode'.cl
fae0 65 61 6e 73 0a 75 70 20 69 74 73 20 6f 77 6e 20 73 74 61 74 65 2e 0a 0a 53 45 54 55 50 2d 46 55 eans.up.its.own.state...SETUP-FU
fb00 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 65 6e NCTION.is.called.when.MODE.is.en
fb20 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 20 62 abled,.after.MODE.variable.has.b
fb40 65 65 6e 20 73 65 74 0a 74 6f 20 74 2c 20 61 6e 64 20 61 66 74 65 72 20 60 74 72 65 65 2d 73 69 een.set.to.t,.and.after.`tree-si
fb60 74 74 65 72 2d 6d 6f 64 65 27 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 65 6e 61 62 tter-mode'.has.already.been.enab
fb80 6c 65 64 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 6d 75 73 74 0a 6e 6f 74 20 61 73 73 75 6d 65 led..However,.it.must.not.assume
fba0 20 74 68 61 74 20 60 74 72 65 65 2d 73 69 74 74 65 72 2d 74 72 65 65 27 20 69 73 20 6e 6f 6e 2d .that.`tree-sitter-tree'.is.non-
fbc0 6e 69 6c 2c 20 73 69 6e 63 65 20 74 68 65 20 66 69 72 73 74 20 70 61 72 73 65 20 6d 61 79 20 6e nil,.since.the.first.parse.may.n
fbe0 6f 74 0a 68 61 70 70 65 6e 20 79 65 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 69 6e 73 74 65 61 64 ot.happen.yet..It.should.instead
fc00 20 73 65 74 20 75 70 20 68 6f 6f 6b 73 20 74 6f 20 68 61 6e 64 6c 65 20 70 61 72 73 65 20 65 76 .set.up.hooks.to.handle.parse.ev
fc20 65 6e 74 73 2e 0a 0a 54 45 41 52 44 4f 57 4e 2d 46 55 4e 43 54 49 4f 4e 20 69 73 20 63 61 6c 6c ents...TEARDOWN-FUNCTION.is.call
fc40 65 64 20 77 68 65 6e 20 4d 4f 44 45 20 69 73 20 64 69 73 61 62 6c 65 64 2c 20 61 66 74 65 72 20 ed.when.MODE.is.disabled,.after.
fc60 4d 4f 44 45 20 76 61 72 69 61 62 6c 65 20 68 61 73 20 62 65 65 6e 0a 73 65 74 20 74 6f 20 6e 69 MODE.variable.has.been.set.to.ni
fc80 6c 2e 20 49 74 20 73 68 6f 75 6c 64 20 63 6c 65 61 6e 20 75 70 20 61 6e 79 20 73 74 61 74 65 20 l..It.should.clean.up.any.state.
fca0 73 65 74 20 75 70 20 62 79 20 4d 4f 44 45 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 73 set.up.by.MODE,.and.should.not.s
fcc0 69 67 6e 61 6c 0a 61 6e 79 20 65 72 72 6f 72 2e 20 49 74 20 69 73 20 61 6c 73 6f 20 63 61 6c 6c ignal.any.error..It.is.also.call
fce0 65 64 20 77 68 65 6e 20 53 45 54 55 50 2d 46 55 4e 43 54 49 4f 4e 20 73 69 67 6e 61 6c 73 20 61 ed.when.SETUP-FUNCTION.signals.a
fd00 6e 20 65 72 72 6f 72 2c 20 74 6f 20 75 6e 64 6f 20 61 6e 79 0a 70 61 72 74 69 61 6c 20 73 65 74 n.error,.to.undo.any.partial.set
fd20 75 70 2e 0a 0a 42 6f 74 68 20 53 45 54 55 50 2d 46 55 4e 43 54 49 4f 4e 20 61 6e 64 20 54 45 41 up...Both.SETUP-FUNCTION.and.TEA
fd40 52 44 4f 57 4e 2d 46 55 4e 43 54 49 4f 4e 20 73 68 6f 75 6c 64 20 62 65 20 69 64 65 6d 70 6f 74 RDOWN-FUNCTION.should.be.idempot
fd60 65 6e 74 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 ent."...(declare.(indent.1))...(
fd80 6c 65 74 20 28 28 73 65 74 75 70 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c let.((setup.(tree-sitter--funcal
fda0 6c 2d 66 6f 72 6d 20 73 65 74 75 70 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 l-form.setup-function)).........
fdc0 28 74 65 61 72 64 6f 77 6e 20 28 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 66 75 6e 63 61 6c 6c 2d (teardown.(tree-sitter--funcall-
fde0 66 6f 72 6d 20 74 65 61 72 64 6f 77 6e 2d 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 60 28 form.teardown-function))).....`(
fe00 69 66 20 2c 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 if.,mode..........(progn........
fe20 20 20 20 20 28 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 0a ....(tree-sitter--error-protect.
fe40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 60 74 72 65 ...............;;.Make.sure.`tre
fe60 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 73 20 65 6e 61 62 6c 65 64 20 62 65 66 6f 72 65 e-sitter-mode'.is.enabled.before
fe80 20 4d 4f 44 45 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 .MODE.................(progn....
fea0 20 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 ..............(unless.tree-sitte
fec0 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 65 65 2d r-mode....................(tree-
fee0 73 69 74 74 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c sitter-mode))..................,
ff00 73 65 74 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 75 70 20 66 61 69 setup)..............;;.Setup.fai
ff20 6c 65 64 2e 20 43 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 2c 20 6c 65 61 76 65 20 6e 6f 20 74 led..Clean.things.up,.leave.no.t
ff40 72 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 6d 6f 64 65 20 6e race...............(setq.,mode.n
ff60 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 74 65 61 72 64 6f 77 6e 29 0a 20 20 20 20 il)..............,teardown).....
ff80 20 20 20 20 20 20 20 3b 3b 20 44 69 73 61 62 6c 65 20 4d 4f 44 45 20 77 68 65 6e 20 60 74 72 65 .......;;.Disable.MODE.when.`tre
ffa0 65 2d 73 69 74 74 65 72 2d 6d 6f 64 65 27 20 69 73 20 64 69 73 61 62 6c 65 64 2e 20 51 75 6f 74 e-sitter-mode'.is.disabled..Quot
ffc0 69 6e 67 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6d 70 6f 72 74 61 6e 74 2c 20 ing.is............;;.important,.
ffe0 62 65 63 61 75 73 65 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 61 20 76 61 72 69 61 62 6c 65 because.we.don't.want.a.variable
10000 2d 63 61 70 74 75 72 69 6e 67 20 63 6c 6f 73 75 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 -capturing.closure.............(
10020 61 64 64 2d 68 6f 6f 6b 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 2d 62 65 66 6f 72 65 2d 6f 66 add-hook.'tree-sitter--before-of
10040 66 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 f-hook......................(wit
10060 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 20 27 28 6c 61 6d 62 64 61 20 28 29 20 28 2c 6d 6f 64 65 h-no-warnings.'(lambda.().(,mode
10080 20 2d 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 .-1)))......................nil.
100a0 3a 6c 6f 63 61 6c 29 29 0a 20 20 20 20 20 20 20 2c 74 65 61 72 64 6f 77 6e 29 29 29 0a 0a 3b 3b :local))........,teardown)))..;;
100c0 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 ;###autoload.(define-obsolete-fu
100e0 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 6e 6f 64 65 2d 61 nction-alias.'tree-sitter-node-a
10100 74 2d 70 6f 69 6e 74 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 t-point.'tree-sitter-node-at-pos
10120 20 22 32 30 32 31 2d 30 38 2d 33 30 22 29 0a 0a 28 64 65 66 69 6e 65 2d 65 72 72 6f 72 20 27 74 ."2021-08-30")..(define-error.'t
10140 72 65 65 2d 73 69 74 74 65 72 2d 69 6e 76 61 6c 69 64 2d 6e 6f 64 65 2d 74 79 70 65 20 22 4e 6f ree-sitter-invalid-node-type."No
10160 20 73 75 63 68 20 6e 6f 64 65 2d 74 79 70 65 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 .such.node-type")..;;;###autoloa
10180 64 0a 28 64 65 66 75 6e 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6e 6f 64 65 2d 61 74 2d 70 6f 73 d.(defun.tree-sitter-node-at-pos
101a0 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 64 65 2d 74 79 70 65 20 70 6f 73 20 69 67 6e 6f 72 65 .(&optional.node-type.pos.ignore
101c0 2d 69 6e 76 61 6c 69 64 2d 74 79 70 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 6d 61 -invalid-type)..."Return.the.sma
101e0 6c 6c 65 73 74 20 73 79 6e 74 61 78 20 6e 6f 64 65 20 6f 66 20 74 79 70 65 20 4e 4f 44 45 2d 54 llest.syntax.node.of.type.NODE-T
10200 59 50 45 20 61 74 20 50 4f 53 2e 0a 4e 4f 44 45 2d 54 59 50 45 20 6d 61 79 20 62 65 20 61 20 73 YPE.at.POS..NODE-TYPE.may.be.a.s
10220 79 6d 62 6f 6c 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 61 20 6e 61 6d 65 64 20 ymbol,.corresponding.to.a.named.
10240 73 79 6e 74 61 78 20 6e 6f 64 65 3b 20 61 20 73 74 72 69 6e 67 2c 0a 63 6f 72 72 65 73 70 6f 6e syntax.node;.a.string,.correspon
10260 64 69 6e 67 20 74 6f 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 6e 6f 64 65 2c 20 6f 72 20 61 20 ding.to.an.anonymous.node,.or.a.
10280 6b 65 79 77 6f 72 64 2c 20 68 6f 6c 64 69 6e 67 20 61 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 keyword,.holding.a.special.value
102a0 2e 20 46 6f 72 0a 74 68 65 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 20 60 3a 6e 61 6d 65 64 27 ..For.the.special.value.`:named'
102c0 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 6e 61 6d 65 64 20 6e 6f 64 65 ,.return.the.smallest.named.node
102e0 20 61 74 20 50 4f 53 2e 20 46 6f 72 20 74 68 65 0a 73 70 65 63 69 61 6c 20 76 61 6c 75 65 20 60 .at.POS..For.the.special.value.`
10300 3a 61 6e 6f 6e 79 6d 6f 75 73 27 2c 20 72 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 :anonymous',.return.the.smallest
10320 20 61 6e 6f 6e 79 6d 6f 75 73 20 6e 6f 64 65 20 61 74 20 50 4f 53 2e 20 49 46 20 50 4f 53 20 69 .anonymous.node.at.POS..IF.POS.i
10340 73 0a 6e 69 6c 2c 20 50 4f 53 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 70 6f 69 6e 74 s.nil,.POS.defaults.to.the.point
10360 2e 20 55 6e 6c 65 73 73 20 49 47 4e 4f 52 45 2d 49 4e 56 41 4c 49 44 2d 54 59 50 45 20 69 73 20 ..Unless.IGNORE-INVALID-TYPE.is.
10380 6e 6f 6e 2d 6e 69 6c 2c 20 73 69 67 6e 61 6c 20 61 6e 0a 65 72 72 6f 72 20 77 68 65 6e 20 61 20 non-nil,.signal.an.error.when.a.
103a0 73 70 65 63 69 66 69 65 64 20 6e 61 6d 65 64 20 4e 4f 44 45 2d 54 59 50 45 20 64 6f 65 73 20 6e specified.named.NODE-TYPE.does.n
103c0 6f 74 20 65 78 69 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 72 61 6d 6d 61 72 2e ot.exist.in.the.current.grammar.
103e0 0a 57 68 65 6e 65 76 65 72 20 4e 4f 44 45 2d 54 59 50 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 .Whenever.NODE-TYPE.is.non-nil.(
10400 6f 74 68 65 72 20 74 68 61 6e 20 60 3a 6e 61 6d 65 64 27 29 2c 20 69 74 20 69 73 20 70 6f 73 73 other.than.`:named'),.it.is.poss
10420 69 62 6c 65 20 66 6f 72 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 ible.for.the.function.to.return.
10440 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 69 67 6e 6f 72 65 2d 69 nil."...(when.(and.(not.ignore-i
10460 6e 76 61 6c 69 64 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 74 nvalid-type)..............node-t
10480 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6b 65 79 77 6f 72 64 70 20 ype..............(not.(keywordp.
104a0 6e 6f 64 65 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3d 20 30 20 28 74 73 63 node-type))).....(when.(=.0.(tsc
104c0 2d 6c 61 6e 67 2d 6e 6f 64 65 2d 74 79 70 65 2d 69 64 20 74 72 65 65 2d 73 69 74 74 65 72 2d 6c -lang-node-type-id.tree-sitter-l
104e0 61 6e 67 75 61 67 65 20 6e 6f 64 65 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 73 69 67 6e 61 anguage.node-type)).......(signa
10500 6c 20 27 74 72 65 65 2d 73 69 74 74 65 72 2d 69 6e 76 61 6c 69 64 2d 6e 6f 64 65 2d 74 79 70 65 l.'tree-sitter-invalid-node-type
10520 20 28 6c 69 73 74 20 6e 6f 64 65 2d 74 79 70 65 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 72 .(list.node-type))))...(let*.((r
10540 6f 6f 74 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 74 oot.(tsc-root-node.tree-sitter-t
10560 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 20 28 6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 ree))..........(p.(or.pos.(point
10580 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 69 66 20 28 65 71 20 6e 6f 64 65 2d )))..........(node.(if.(eq.node-
105a0 74 79 70 65 20 3a 6e 61 6d 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type.:named)....................
105c0 28 74 73 63 2d 67 65 74 2d 6e 61 6d 65 64 2d 64 65 73 63 65 6e 64 61 6e 74 2d 66 6f 72 2d 70 6f (tsc-get-named-descendant-for-po
105e0 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 72 6f 6f 74 20 70 20 70 29 0a 20 20 20 20 20 20 20 20 20 sition-range.root.p.p)..........
10600 20 20 20 20 20 20 20 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 ........(tsc-get-descendant-for-
10620 70 6f 73 69 74 69 6f 6e 2d 72 61 6e 67 65 20 72 6f 6f 74 20 70 20 70 29 29 29 29 0a 20 20 20 20 position-range.root.p.p)))).....
10640 28 70 63 61 73 65 20 6e 6f 64 65 2d 74 79 70 65 0a 20 20 20 20 20 20 28 27 6e 69 6c 20 6e 6f 64 (pcase.node-type.......('nil.nod
10660 65 29 0a 20 20 20 20 20 20 28 3a 6e 61 6d 65 64 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 3a 61 e).......(:named.node).......(:a
10680 6e 6f 6e 79 6d 6f 75 73 20 28 75 6e 6c 65 73 73 20 28 74 73 63 2d 6e 6f 64 65 2d 6e 61 6d 65 64 nonymous.(unless.(tsc-node-named
106a0 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 5f 20 28 6c 65 74 20 28 28 -p.node).node)).......(_.(let.((
106c0 74 68 69 73 20 6e 6f 64 65 29 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 this.node).result)............(w
106e0 68 69 6c 65 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 hile.this..............(if.(equa
10700 6c 20 6e 6f 64 65 2d 74 79 70 65 20 28 74 73 63 2d 6e 6f 64 65 2d 74 79 70 65 20 74 68 69 73 29 l.node-type.(tsc-node-type.this)
10720 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 )..................(setq.result.
10740 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this........................this
10760 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 68 69 73 20 .nil)................(setq.this.
10780 28 74 73 63 2d 67 65 74 2d 70 61 72 65 6e 74 20 74 68 69 73 29 29 29 29 0a 20 20 20 20 20 20 20 (tsc-get-parent.this))))........
107a0 20 20 20 20 72 65 73 75 6c 74 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 74 72 65 65 2d ....result)))))..(provide.'tree-
107c0 73 69 74 74 65 72 29 0a 3b 3b 3b 20 74 72 65 65 2d 73 69 74 74 65 72 2e 65 6c 20 65 6e 64 73 20 sitter).;;;.tree-sitter.el.ends.
107e0 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 00 here............................
10800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 ................................