summaryrefslogtreecommitdiff
path: root/.localrepo/deadgrep-20241210.1630.tar
blob: 50a82e5c2f01323ef2601a1305be7a01c4640f9b (plain)
ofshex dumpascii
0000 64 65 61 64 67 72 65 70 2d 32 30 32 34 31 32 31 30 2e 31 36 33 30 2f 00 00 00 00 00 00 00 00 00 deadgrep-20241210.1630/.........
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 32 35 35 31 00 20 35 00 00 00 0000000.00000000000.012551..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 64 65 61 64 67 72 65 70 2d 32 30 32 34 31 32 31 30 2e 31 36 33 30 2f 64 65 61 64 67 72 65 70 2d deadgrep-20241210.1630/deadgrep-
0220 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 00 00 00 00 00 00 pkg.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 30 37 35 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 32 37 00 20 30 00 00 00 0000750.00000000000.015427..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 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
0420 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
0440 61 67 65 20 22 64 65 61 64 67 72 65 70 22 20 22 32 30 32 34 31 32 31 30 2e 31 36 33 30 22 0a 20 age."deadgrep"."20241210.1630"..
0460 20 22 46 61 73 74 2c 20 66 72 69 65 6e 64 6c 79 20 73 65 61 72 63 68 69 6e 67 20 77 69 74 68 20 ."Fast,.friendly.searching.with.
0480 72 69 70 67 72 65 70 2e 22 0a 20 20 27 28 28 65 6d 61 63 73 20 20 20 22 32 35 2e 31 22 29 0a 20 ripgrep."...'((emacs..."25.1")..
04a0 20 20 20 28 64 61 73 68 20 20 20 20 22 32 2e 31 32 2e 30 22 29 0a 20 20 20 20 28 73 20 20 20 20 ...(dash...."2.12.0").....(s....
04c0 20 20 20 22 31 2e 31 31 2e 30 22 29 0a 20 20 20 20 28 73 70 69 6e 6e 65 72 20 22 31 2e 37 2e 33 ..."1.11.0").....(spinner."1.7.3
04e0 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 62 2e 63 6f 6d 2f 57 "))...:url."https://github.com/W
0500 69 6c 66 72 65 64 2f 64 65 61 64 67 72 65 70 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 62 62 35 35 ilfred/deadgrep"...:commit."bb55
0520 35 37 39 30 63 36 66 34 30 34 35 37 32 64 35 33 37 65 31 65 34 61 64 65 63 38 62 34 66 66 30 35 5790c6f404572d537e1e4adec8b4ff05
0540 31 35 66 35 22 0a 20 20 3a 72 65 76 64 65 73 63 20 22 62 62 35 35 35 37 39 30 63 36 66 34 22 0a 15f5"...:revdesc."bb555790c6f4".
0560 20 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 74 6f 6f 6c 73 22 29 0a 20 20 3a 61 75 74 68 6f 72 ..:keywords.'("tools")...:author
0580 73 20 27 28 28 22 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 s.'(("Wilfred.Hughes"..."me@wilf
05a0 72 65 64 2e 6d 65 2e 75 6b 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 20 27 28 28 22 red.me.uk"))...:maintainers.'(("
05c0 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 22 20 2e 20 22 6d 65 40 77 69 6c 66 72 65 64 2e 6d 65 Wilfred.Hughes"..."me@wilfred.me
05e0 2e 75 6b 22 29 29 29 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 .uk"))).........................
0600 64 65 61 64 67 72 65 70 2d 32 30 32 34 31 32 31 30 2e 31 36 33 30 2f 64 65 61 64 67 72 65 70 2e deadgrep-20241210.1630/deadgrep.
0620 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 00 00 00 00 00 00 el..............................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 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
0680 30 32 30 30 33 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 34 35 00 20 30 00 00 00 0200331.00000000000.014645..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 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...................
0720 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...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 64 65 61 64 67 72 65 70 2e 65 6c 20 2d 2d 2d 20 66 61 73 74 2c 20 66 72 69 65 6e 64 ;;;.deadgrep.el.---.fast,.friend
0820 6c 79 20 73 65 61 72 63 68 69 6e 67 20 77 69 74 68 20 72 69 70 67 72 65 70 20 20 2d 2a 2d 20 6c ly.searching.with.ripgrep..-*-.l
0840 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 exical-binding:.t;.-*-..;;.Copyr
0860 69 67 68 74 20 28 43 29 20 32 30 31 38 2d 32 30 32 34 20 20 57 69 6c 66 72 65 64 20 48 75 67 68 ight.(C).2018-2024..Wilfred.Hugh
0880 65 73 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 20 3c 6d es..;;.Author:.Wilfred.Hughes.<m
08a0 65 40 77 69 6c 66 72 65 64 2e 6d 65 2e 75 6b 3e 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f e@wilfred.me.uk>.;;.URL:.https:/
08c0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 64 65 61 64 67 72 65 70 0a 3b 3b 20 /github.com/Wilfred/deadgrep.;;.
08e0 4b 65 79 77 6f 72 64 73 3a 20 74 6f 6f 6c 73 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 Keywords:.tools.;;.Package-Versi
0900 6f 6e 3a 20 32 30 32 34 31 32 31 30 2e 31 36 33 30 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 on:.20241210.1630.;;.Package-Rev
0920 69 73 69 6f 6e 3a 20 62 62 35 35 35 37 39 30 63 36 66 34 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 ision:.bb555790c6f4.;;.Package-R
0940 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 64 61 73 68 20 22 equires:.((emacs."25.1").(dash."
0960 32 2e 31 32 2e 30 22 29 20 28 73 20 22 31 2e 31 31 2e 30 22 29 20 28 73 70 69 6e 6e 65 72 20 22 2.12.0").(s."1.11.0").(spinner."
0980 31 2e 37 2e 33 22 29 29 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 1.7.3"))..;;.This.program.is.fre
09a0 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 e.software;.you.can.redistribute
09c0 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 .it.and/or.modify.;;.it.under.th
09e0 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 e.terms.of.the.GNU.General.Publi
0a00 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 c.License.as.published.by.;;.the
0a20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 .Free.Software.Foundation,.eithe
0a40 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b r.version.3.of.the.License,.or.;
0a60 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 ;.(at.your.option).any.later.ver
0a80 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 sion...;;.This.program.is.distri
0aa0 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 buted.in.the.hope.that.it.will.b
0ac0 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 e.useful,.;;.but.WITHOUT.ANY.WAR
0ae0 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 RANTY;.without.even.the.implied.
0b00 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f warranty.of.;;.MERCHANTABILITY.o
0b20 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f r.FITNESS.FOR.A.PARTICULAR.PURPO
0b40 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c SE...See.the.;;.GNU.General.Publ
0b60 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b ic.License.for.more.details...;;
0b80 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 .You.should.have.received.a.copy
0ba0 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e .of.the.GNU.General.Public.Licen
0bc0 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 se.;;.along.with.this.program...
0be0 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 If.not,.see.<https://www.gnu.org
0c00 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b /licenses/>...;;;.Commentary:..;
0c20 3b 20 50 65 72 66 6f 72 6d 20 74 65 78 74 20 73 65 61 72 63 68 65 73 20 77 69 74 68 20 74 68 65 ;.Perform.text.searches.with.the
0c40 20 73 70 65 65 64 20 6f 66 20 72 69 70 67 72 65 70 20 61 6e 64 20 74 68 65 20 63 6f 6d 66 6f 72 .speed.of.ripgrep.and.the.comfor
0c60 74 20 6f 66 0a 3b 3b 20 45 6d 61 63 73 2e 20 20 54 68 69 73 20 69 73 20 61 20 62 65 73 70 6f 6b t.of.;;.Emacs...This.is.a.bespok
0c80 65 20 6d 6f 64 65 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 72 65 6c 79 20 6f 6e 0a 3b 3b 20 e.mode.that.does.not.rely.on.;;.
0ca0 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 6d 6f 64 65 2c 20 62 75 74 20 74 72 69 65 73 20 74 6f 20 62 compilation-mode,.but.tries.to.b
0cc0 65 20 61 20 70 65 72 66 65 63 74 20 66 69 74 20 66 6f 72 20 72 69 70 67 72 65 70 2e 0a 0a 3b 3b e.a.perfect.fit.for.ripgrep...;;
0ce0 20 49 6e 73 74 61 6c 6c 20 66 72 6f 6d 20 4d 45 4c 50 41 2c 20 74 68 65 6e 20 60 4d 2d 78 20 64 .Install.from.MELPA,.then.`M-x.d
0d00 65 61 64 67 72 65 70 27 20 77 69 6c 6c 20 64 6f 20 61 20 73 65 61 72 63 68 21 0a 0a 3b 3b 3b 20 eadgrep'.will.do.a.search!..;;;.
0d20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 Code:..(require.'cl-lib).(requir
0d40 65 20 27 73 29 0a 28 72 65 71 75 69 72 65 20 27 64 61 73 68 29 0a 28 72 65 71 75 69 72 65 20 27 e.'s).(require.'dash).(require.'
0d60 73 70 69 6e 6e 65 72 29 0a 28 72 65 71 75 69 72 65 20 27 70 72 6f 6a 65 63 74 29 0a 0a 28 64 65 spinner).(require.'project)..(de
0d80 66 67 72 6f 75 70 20 64 65 61 64 67 72 65 70 20 6e 69 6c 0a 20 20 22 41 20 70 6f 77 65 72 66 75 fgroup.deadgrep.nil..."A.powerfu
0da0 6c 20 74 65 78 74 20 73 65 61 72 63 68 20 55 49 20 75 73 69 6e 67 20 72 69 70 67 72 65 70 2e 22 l.text.search.UI.using.ripgrep."
0dc0 0a 20 20 3a 67 72 6f 75 70 20 27 74 6f 6f 6c 73 0a 20 20 3a 67 72 6f 75 70 20 27 6d 61 74 63 68 ...:group.'tools...:group.'match
0de0 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 72 65 70 2d 65 78 65 63 75 74 ing)..(defcustom.deadgrep-execut
0e00 61 62 6c 65 0a 20 20 22 72 67 22 0a 20 20 22 54 68 65 20 72 67 20 65 78 65 63 75 74 61 62 6c 65 able..."rg"..."The.rg.executable
0e20 20 75 73 65 64 20 62 79 20 64 65 61 64 67 72 65 70 2e 0a 54 68 69 73 20 77 69 6c 6c 20 62 65 20 .used.by.deadgrep..This.will.be.
0e40 6c 6f 6f 6b 65 64 20 75 70 20 6f 6e 20 60 65 78 65 63 2d 70 61 74 68 27 20 69 66 20 69 74 20 69 looked.up.on.`exec-path'.if.it.i
0e60 73 6e 27 74 20 61 6e 20 61 62 73 6f 6c 75 74 65 0a 70 61 74 68 20 74 6f 20 74 68 65 20 62 69 6e sn't.an.absolute.path.to.the.bin
0e80 61 72 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 ary."...:type.'string...:group.'
0ea0 64 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 72 65 70 2d 6d deadgrep)..(defcustom.deadgrep-m
0ec0 61 78 2d 62 75 66 66 65 72 73 0a 20 20 34 0a 20 20 22 54 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 ax-buffers...4..."The.maximum.nu
0ee0 6d 62 65 72 20 6f 66 20 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 73 mber.of.deadgrep.results.buffers
0f00 2e 0a 0a 49 66 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 73 75 6c 74 73 20 62 75 66 66 ...If.the.number.of.results.buff
0f20 65 72 73 20 65 78 63 65 65 64 73 20 74 68 69 73 20 76 61 6c 75 65 2c 20 64 65 61 64 67 72 65 70 ers.exceeds.this.value,.deadgrep
0f40 0a 77 69 6c 6c 20 6b 69 6c 6c 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 73 2e 20 54 68 65 20 .will.kill.results.buffers..The.
0f60 6c 65 61 73 74 20 72 65 63 65 6e 74 6c 79 20 75 73 65 64 20 62 75 66 66 65 72 73 20 61 72 65 0a least.recently.used.buffers.are.
0f80 6b 69 6c 6c 65 64 20 66 69 72 73 74 2e 0a 0a 54 6f 20 64 69 73 61 62 6c 65 20 63 6c 65 61 6e 75 killed.first...To.disable.cleanu
0fa0 70 20 65 6e 74 69 72 65 6c 79 2c 20 73 65 74 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f p.entirely,.set.this.variable.to
0fc0 20 6e 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 .nil."...:type.'(choice.........
0fe0 20 20 28 6e 75 6d 62 65 72 20 3a 74 61 67 20 22 4d 61 78 69 6d 75 6d 20 6f 66 20 62 75 66 66 65 ..(number.:tag."Maximum.of.buffe
1000 72 73 20 61 6c 6c 6f 77 65 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 rs.allowed")...........(const.:t
1020 61 67 20 22 44 69 73 61 62 6c 65 20 63 6c 65 61 6e 75 70 22 20 6e 69 6c 29 29 0a 20 20 3a 67 72 ag."Disable.cleanup".nil))...:gr
1040 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 oup.'deadgrep)..(defcustom.deadg
1060 72 65 70 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 23 27 64 65 rep-project-root-function...#'de
1080 61 64 67 72 65 70 2d 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 22 46 75 6e 63 74 69 6f 6e adgrep--project-root..."Function
10a0 20 63 61 6c 6c 65 64 20 62 79 20 60 64 65 61 64 67 72 65 70 27 20 74 6f 20 77 6f 72 6b 20 6f 75 .called.by.`deadgrep'.to.work.ou
10c0 74 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 0a 74 6f 20 73 65 61 72 63 68 20 66 t.the.root.directory.to.search.f
10e0 72 6f 6d 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 64 65 61 64 67 72 65 70 2d 70 72 6f 6a 65 63 74 rom...See.also.`deadgrep-project
1100 2d 72 6f 6f 74 2d 6f 76 65 72 72 69 64 65 73 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 -root-overrides'."...:type.'func
1120 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 76 61 tion...:group.'deadgrep)..(defva
1140 72 20 64 65 61 64 67 72 65 70 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 6f 76 65 72 72 69 64 65 r.deadgrep-project-root-override
1160 73 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 61 73 73 6f 63 69 61 74 69 6e 67 20 70 72 s.nil..."An.alist.associating.pr
1180 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 69 74 68 20 74 68 65 20 64 65 73 69 72 oject.directories.with.the.desir
11a0 65 64 0a 73 65 61 72 63 68 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 ed.search.directory...This.is.us
11c0 65 66 75 6c 20 66 6f 72 20 6c 61 72 67 65 20 72 65 70 6f 73 20 77 68 65 72 65 20 79 6f 75 20 6f eful.for.large.repos.where.you.o
11e0 6e 6c 79 20 77 61 6e 74 20 74 6f 20 73 65 61 72 63 68 20 61 0a 73 75 62 64 69 72 65 63 74 6f 72 nly.want.to.search.a.subdirector
1200 79 2e 20 49 74 27 73 20 61 6c 73 6f 20 68 61 6e 64 79 20 66 6f 72 20 6e 65 73 74 65 64 20 72 65 y..It's.also.handy.for.nested.re
1220 70 6f 73 20 77 68 65 72 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 0a 73 65 61 72 63 68 20 66 72 6f pos.where.you.want.to.search.fro
1240 6d 20 74 68 65 20 70 61 72 65 6e 74 2e 0a 0a 54 68 69 73 20 61 66 66 65 63 74 73 20 74 68 65 20 m.the.parent...This.affects.the.
1260 62 65 68 61 76 69 6f 75 72 20 6f 66 20 60 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 6a 65 63 74 2d behaviour.of.`deadgrep--project-
1280 72 6f 6f 74 27 2c 20 73 6f 20 74 68 69 73 0a 76 61 72 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 root',.so.this.variable.has.no.e
12a0 66 66 65 63 74 20 69 66 20 79 6f 75 20 63 68 61 6e 67 65 0a 60 64 65 61 64 67 72 65 70 2d 70 72 ffect.if.you.change.`deadgrep-pr
12c0 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 oject-root-function'.")..(defvar
12e0 20 64 65 61 64 67 72 65 70 2d 68 69 73 74 6f 72 79 0a 20 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 .deadgrep-history...nil..."A.lis
1300 74 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 65 61 72 63 68 20 74 65 72 6d 73 2e 22 t.of.the.previous.search.terms."
1320 29 0a 0a 28 64 65 66 76 61 72 20 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 6c 69 6e 65 2d 6c 65 6e )..(defvar.deadgrep-max-line-len
1340 67 74 68 0a 20 20 35 30 30 0a 20 20 22 54 72 75 6e 63 61 74 65 20 6c 69 6e 65 73 20 69 66 20 74 gth...500..."Truncate.lines.if.t
1360 68 65 79 20 61 72 65 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 69 73 2e 0a 0a 45 6d 61 63 73 hey.are.longer.than.this...Emacs
1380 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 63 61 6e 20 62 65 20 72 65 61 6c 6c 79 20 70 6f 6f 72 20 .performance.can.be.really.poor.
13a0 77 69 74 68 20 6c 6f 6e 67 20 6c 69 6e 65 73 2c 20 73 6f 20 74 68 69 73 0a 65 6e 73 75 72 65 73 with.long.lines,.so.this.ensures
13c0 20 74 68 61 74 20 73 65 61 72 63 68 69 6e 67 20 6d 69 6e 69 66 69 65 64 20 66 69 6c 65 73 20 64 .that.searching.minified.files.d
13e0 6f 65 73 20 6e 6f 74 20 73 6c 6f 77 20 64 6f 77 6e 20 6d 6f 76 65 6d 65 6e 74 0a 69 6e 20 72 65 oes.not.slow.down.movement.in.re
1400 73 75 6c 74 73 20 62 75 66 66 65 72 73 2e 0a 0a 49 6e 20 65 78 74 72 65 6d 65 20 63 61 73 65 73 sults.buffers...In.extreme.cases
1420 20 28 31 30 30 4b 69 42 2b 20 73 69 6e 67 6c 65 2d 6c 69 6e 65 20 66 69 6c 65 73 29 2c 20 77 65 .(100KiB+.single-line.files),.we
1440 20 63 61 6e 20 67 65 74 20 61 20 73 74 61 63 6b 0a 6f 76 65 72 66 6c 6f 77 20 6f 6e 20 6f 75 72 .can.get.a.stack.overflow.on.our
1460 20 72 65 67 65 78 70 20 6d 61 74 63 68 65 72 73 20 69 66 20 77 65 20 64 6f 6e 27 74 20 61 70 70 .regexp.matchers.if.we.don't.app
1480 6c 79 20 74 68 69 73 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 72 65 70 2d ly.this.")..(defcustom.deadgrep-
14a0 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 27 73 77 69 74 63 display-buffer-function...'switc
14c0 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 22 46 75 6e 63 h-to-buffer-other-window..."Func
14e0 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 73 68 6f 77 20 74 68 65 20 64 65 61 64 67 72 65 70 20 72 tion.used.to.show.the.deadgrep.r
1500 65 73 75 6c 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 esult.buffer...This.function.is.
1520 63 61 6c 6c 65 64 20 77 69 74 68 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 72 65 called.with.one.argument,.the.re
1540 73 75 6c 74 73 20 62 75 66 66 65 72 20 74 6f 0a 64 69 73 70 6c 61 79 2e 22 0a 20 20 3a 74 79 70 sults.buffer.to.display."...:typ
1560 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a e.'function...:group.'deadgrep).
1580 0a 28 64 65 66 66 61 63 65 20 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 0a 20 20 27 .(defface.deadgrep-meta-face...'
15a0 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 ((t.:inherit.font-lock-comment-f
15c0 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 64 65 61 64 67 72 65 70 20 ace))..."Face.used.for.deadgrep.
15e0 55 49 20 74 65 78 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a 28 UI.text."...:group.'deadgrep)..(
1600 64 65 66 66 61 63 65 20 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 2d 66 61 63 65 0a 20 defface.deadgrep-filename-face..
1620 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 62 6f 6c 64 29 29 0a 20 20 22 46 61 63 65 20 75 73 .'((t.:inherit.bold))..."Face.us
1640 65 64 20 66 6f 72 20 66 69 6c 65 6e 61 6d 65 20 68 65 61 64 69 6e 67 73 20 69 6e 20 72 65 73 75 ed.for.filename.headings.in.resu
1660 6c 74 73 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 lts.buffers."...:group.'deadgrep
1680 29 0a 0a 28 64 65 66 66 61 63 65 20 64 65 61 64 67 72 65 70 2d 73 65 61 72 63 68 2d 74 65 72 6d )..(defface.deadgrep-search-term
16a0 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d -face...'((t.:inherit.font-lock-
16c0 76 61 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 75 73 65 variable-name-face))..."Face.use
16e0 64 20 66 6f 72 20 74 68 65 20 73 65 61 72 63 68 20 74 65 72 6d 20 69 6e 20 72 65 73 75 6c 74 73 d.for.the.search.term.in.results
1700 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a .buffers."...:group.'deadgrep)..
1720 28 64 65 66 66 61 63 65 20 64 65 61 64 67 72 65 70 2d 72 65 67 65 78 70 2d 6d 65 74 61 63 68 61 (defface.deadgrep-regexp-metacha
1740 72 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 0a 20 20 20 20 20 20 20 3b 3b r-face...'((t.:inherit........;;
1760 20 54 4f 44 4f 3a 20 49 27 76 65 20 73 65 65 6e 20 61 20 6d 6f 72 65 20 61 70 70 72 6f 70 72 69 .TODO:.I've.seen.a.more.appropri
1780 61 74 65 20 66 61 63 65 20 69 6e 20 73 6f 6d 65 20 74 68 65 6d 65 73 2c 0a 20 20 20 20 20 20 20 ate.face.in.some.themes,........
17a0 3b 3b 20 66 69 6e 64 20 6f 75 74 20 77 68 61 74 20 74 6f 20 75 73 65 20 69 6e 73 74 65 61 64 20 ;;.find.out.what.to.use.instead.
17c0 68 65 72 65 2e 0a 20 20 20 20 20 20 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d here.........font-lock-constant-
17e0 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 72 65 67 65 78 70 20 6d face))..."Face.used.for.regexp.m
1800 65 74 61 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 73 65 61 72 63 68 20 74 65 72 6d 73 2e 22 0a etacharacters.in.search.terms.".
1820 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 66 61 63 65 20 64 65 ..:group.'deadgrep)..(defface.de
1840 61 64 67 72 65 70 2d 6d 61 74 63 68 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 adgrep-match-face...'((t.:inheri
1860 74 20 6d 61 74 63 68 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 70 t.match))..."Face.used.for.the.p
1880 6f 72 74 69 6f 6e 20 6f 66 20 61 20 6c 69 6e 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 ortion.of.a.line.that.matches.th
18a0 65 20 73 65 61 72 63 68 20 74 65 72 6d 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 e.search.term."...:group.'deadgr
18c0 65 70 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 ep)..(defvar-local.deadgrep--sea
18e0 72 63 68 2d 74 65 72 6d 20 6e 69 6c 29 0a 3b 3b 20 45 6e 73 75 72 65 20 74 68 69 73 20 76 61 72 rch-term.nil).;;.Ensure.this.var
1900 69 61 62 6c 65 20 69 73 20 69 67 6e 6f 72 65 64 20 62 79 20 60 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f iable.is.ignored.by.`kill-all-lo
1920 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 27 20 77 68 65 6e 0a 3b 3b 20 73 77 69 74 63 68 69 6e 67 cal-variables'.when.;;.switching
1940 20 62 65 74 77 65 65 6e 20 60 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 27 20 61 6e 64 20 60 64 65 .between.`deadgrep-mode'.and.`de
1960 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 27 2e 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 adgrep-edit-mode'..(put.'deadgre
1980 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 p--search-term.'permanent-local.
19a0 74 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 t)..(defvar-local.deadgrep--sear
19c0 63 68 2d 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d ch-type.'string).(put.'deadgrep-
19e0 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 -search-type.'permanent-local.t)
1a00 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d .(defvar-local.deadgrep--search-
1a20 63 61 73 65 20 27 73 6d 61 72 74 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 73 65 61 case.'smart).(put.'deadgrep--sea
1a40 72 63 68 2d 63 61 73 65 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 28 64 65 rch-case.'permanent-local.t).(de
1a60 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 fvar-local.deadgrep--file-type.'
1a80 61 6c 6c 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 all).(put.'deadgrep--file-type.'
1aa0 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 permanent-local.t)..(defvar-loca
1ac0 6c 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 20 6e 69 6c 0a 20 l.deadgrep--skip-if-hidden.nil..
1ae0 20 22 57 68 65 74 68 65 72 20 64 65 61 64 67 72 65 70 20 73 68 6f 75 6c 64 20 69 67 6e 6f 72 65 ."Whether.deadgrep.should.ignore
1b00 20 68 69 64 64 65 6e 20 66 69 6c 65 73 20 28 65 2e 67 2e 20 66 69 6c 65 73 20 63 61 6c 6c 65 64 .hidden.files.(e.g..files.called
1b20 20 2e 66 6f 6f 29 2e 22 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 ..foo).").(put.'deadgrep--skip-i
1b40 66 2d 68 69 64 64 65 6e 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 28 64 65 f-hidden.'permanent-local.t).(de
1b60 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 fvar-local.deadgrep--skip-if-vcs
1b80 2d 69 67 6e 6f 72 65 20 27 74 0a 20 20 22 57 68 65 74 68 65 72 20 64 65 61 64 67 72 65 70 20 73 -ignore.'t..."Whether.deadgrep.s
1ba0 68 6f 75 6c 64 20 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 69 66 20 74 68 65 79 27 72 65 20 6c 69 hould.ignore.files.if.they're.li
1bc0 73 74 65 64 20 69 6e 20 2e 67 69 74 69 67 6e 6f 72 65 2e 22 29 0a 28 70 75 74 20 27 64 65 61 64 sted.in..gitignore.").(put.'dead
1be0 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 20 27 70 65 72 6d 61 6e grep--skip-if-vcs-ignore.'perman
1c00 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 ent-local.t)..(defvar-local.dead
1c20 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 73 65 74 2c 20 61 grep--context.nil..."When.set,.a
1c40 6c 73 6f 20 73 68 6f 77 20 63 6f 6e 74 65 78 74 20 6f 66 20 72 65 73 75 6c 74 73 2e 0a 54 68 69 lso.show.context.of.results..Thi
1c60 73 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 69 6e s.is.stored.as.a.cons.cell.of.in
1c80 74 65 67 65 72 73 20 28 6c 69 6e 65 73 2d 62 65 66 6f 72 65 20 2e 20 6c 69 6e 65 73 2d 61 66 74 tegers.(lines-before...lines-aft
1ca0 65 72 29 2e 22 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 20 27 er).").(put.'deadgrep--context.'
1cc0 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c permanent-local.t).(defvar-local
1ce0 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 20 6e 69 6c 0a .deadgrep--initial-filename.nil.
1d00 20 20 22 54 68 65 20 66 69 6c 65 6e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 74 68 .."The.filename.of.the.buffer.th
1d20 61 74 20 64 65 61 64 67 72 65 70 20 77 61 73 20 73 74 61 72 74 65 64 20 66 72 6f 6d 2e 0a 55 73 at.deadgrep.was.started.from..Us
1d40 65 64 20 74 6f 20 6f 66 66 65 72 20 62 65 74 74 65 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 ed.to.offer.better.default.value
1d60 73 20 66 6f 72 20 66 69 6c 65 20 6f 70 74 69 6f 6e 73 2e 22 29 0a 28 70 75 74 20 27 64 65 61 64 s.for.file.options.").(put.'dead
1d80 67 72 65 70 2d 2d 69 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 20 27 70 65 72 6d 61 6e 65 6e grep--initial-filename.'permanen
1da0 74 2d 6c 6f 63 61 6c 20 74 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 t-local.t)..(defvar-local.deadgr
1dc0 65 70 2d 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 66 69 6c 65 ep--current-file.nil..."The.file
1de0 20 77 65 27 72 65 20 63 75 72 72 65 6e 74 6c 79 20 69 6e 73 65 72 74 69 6e 67 20 72 65 73 75 6c .we're.currently.inserting.resul
1e00 74 73 20 66 6f 72 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 ts.for.").(defvar-local.deadgrep
1e20 2d 2d 73 70 69 6e 6e 65 72 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 --spinner.nil).(defvar-local.dea
1e40 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 20 6e 69 6c 0a 20 20 22 57 dgrep--remaining-output.nil..."W
1e60 65 20 63 61 6e 27 74 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 6f 75 72 20 70 72 6f 63 65 e.can't.guarantee.that.our.proce
1e80 73 73 20 66 69 6c 74 65 72 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 72 65 63 65 69 76 65 20 77 68 ss.filter.will.always.receive.wh
1ea0 6f 6c 65 20 6c 69 6e 65 73 2e 0a 57 65 20 73 61 76 65 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 ole.lines..We.save.the.last.line
1ec0 20 68 65 72 65 2c 20 69 6e 20 63 61 73 65 20 77 65 20 6e 65 65 64 20 74 6f 20 61 70 70 65 6e 64 .here,.in.case.we.need.to.append
1ee0 20 6d 6f 72 65 20 74 65 78 74 20 74 6f 20 69 74 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 .more.text.to.it.").(defvar-loca
1f00 6c 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 74 70 6f 6e 65 2d 73 74 61 72 74 20 6e 69 6c 0a 20 l.deadgrep--postpone-start.nil..
1f20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 6f 6e 27 74 20 28 72 65 29 73 74 61 72 74 20 73 65 ."If.non-nil,.don't.(re)start.se
1f40 61 72 63 68 65 73 2e 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 arches.").(defvar-local.deadgrep
1f60 2d 2d 72 75 6e 6e 69 6e 67 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 20 73 --running.nil..."If.non-nil,.a.s
1f80 65 61 72 63 68 20 69 73 20 73 74 69 6c 6c 20 72 75 6e 6e 69 6e 67 2e 22 29 0a 28 64 65 66 76 61 earch.is.still.running.").(defva
1fa0 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c 74 2d 63 6f 75 6e 74 20 6e r-local.deadgrep--result-count.n
1fc0 69 6c 0a 20 20 22 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 61 74 63 68 65 73 20 66 6f 75 6e il..."The.number.of.matches.foun
1fe0 64 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 72 63 68 2e 22 29 0a 0a 28 64 65 d.for.the.current.search.")..(de
2000 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 63 6f 6d 6d 61 fvar-local.deadgrep--debug-comma
2020 6e 64 20 6e 69 6c 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 63 6f nd.nil).(put.'deadgrep--debug-co
2040 6d 6d 61 6e 64 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 0a 28 64 65 66 76 61 mmand.'permanent-local.t).(defva
2060 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 66 69 72 73 74 2d 6f 75 r-local.deadgrep--debug-first-ou
2080 74 70 75 74 20 6e 69 6c 29 0a 28 70 75 74 20 27 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d tput.nil).(put.'deadgrep--debug-
20a0 66 69 72 73 74 2d 6f 75 74 70 75 74 20 27 70 65 72 6d 61 6e 65 6e 74 2d 6c 6f 63 61 6c 20 74 29 first-output.'permanent-local.t)
20c0 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 69 6d 65 6e 75 2d ..(defvar-local.deadgrep--imenu-
20e0 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 74 68 61 74 20 73 74 6f 72 65 73 20 66 alist.nil..."Alist.that.stores.f
2100 69 6c 65 6e 61 6d 65 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 66 6f 72 20 65 61 63 68 20 6d 61 ilename.and.position.for.each.ma
2120 74 63 68 65 64 20 66 69 6c 65 73 2e 0a 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 tched.files..It.is.used.to.creat
2140 65 20 60 69 6d 65 6e 75 27 20 69 6e 64 65 78 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 64 65 e.`imenu'.index.")..(defconst.de
2160 61 64 67 72 65 70 2d 2d 70 6f 73 69 74 69 6f 6e 2d 63 6f 6c 75 6d 6e 2d 77 69 64 74 68 20 35 29 adgrep--position-column-width.5)
2180 0a 0a 28 64 65 66 63 6f 6e 73 74 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6c 6f 72 2d 63 6f 64 65 ..(defconst.deadgrep--color-code
21a0 0a 20 20 28 72 78 20 22 5c 78 31 62 5b 22 20 28 2b 20 64 69 67 69 74 29 20 22 6d 22 29 0a 20 20 ...(rx."\x1b[".(+.digit)."m")...
21c0 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 72 20 61 6e 20 41 4e 53 49 20 "Regular.expression.for.an.ANSI.
21e0 63 6f 6c 6f 72 20 63 6f 64 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 64 65 61 64 67 72 65 70 2d color.code.")..(defvar.deadgrep-
2200 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 2d 61 63 74 69 76 65 20 6e 69 6c 29 0a 0a 28 64 65 66 75 6e -incremental-active.nil)..(defun
2220 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 73 65 72 74 2d 6f 75 74 70 75 74 20 28 6f 75 74 70 75 74 .deadgrep--insert-output.(output
2240 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6e 69 73 68 65 64 29 0a 20 20 22 50 72 6f 70 65 72 74 69 .&optional.finished)..."Properti
2260 7a 65 20 4f 55 54 50 55 54 20 66 72 6f 6d 20 72 69 67 72 65 70 20 61 6e 64 20 77 72 69 74 65 20 ze.OUTPUT.from.rigrep.and.write.
2280 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3b 3b 20 49 66 20 to.the.current.buffer."...;;.If.
22a0 77 65 20 68 61 64 20 61 6e 20 75 6e 66 69 6e 69 73 68 65 64 20 6c 69 6e 65 20 66 72 6f 6d 20 6f we.had.an.unfinished.line.from.o
22c0 75 72 20 6c 61 73 74 20 63 61 6c 6c 2c 20 69 6e 63 6c 75 64 65 20 74 68 61 74 2e 0a 20 20 28 77 ur.last.call,.include.that....(w
22e0 68 65 6e 20 64 65 61 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 0a 20 hen.deadgrep--remaining-output..
2300 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 74 20 28 63 6f 6e 63 61 74 20 64 65 61 64 67 72 65 70 ...(setq.output.(concat.deadgrep
2320 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 20 6f 75 74 70 75 74 29 29 0a 20 20 20 20 --remaining-output.output)).....
2340 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 (setq.deadgrep--remaining-output
2360 20 6e 69 6c 29 29 0a 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e .nil))....(let.((inhibit-read-on
2380 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 28 73 2d 6c 69 6e 65 73 20 6f 75 ly.t).........(lines.(s-lines.ou
23a0 74 70 75 74 29 29 0a 20 20 20 20 20 20 20 20 70 72 65 76 2d 6c 69 6e 65 2d 6e 75 6d 29 0a 20 20 tput)).........prev-line-num)...
23c0 20 20 3b 3b 20 50 72 6f 63 65 73 73 20 66 69 6c 74 65 72 73 20 72 75 6e 20 61 73 79 6e 63 68 72 ..;;.Process.filters.run.asynchr
23e0 6f 6e 6f 75 73 6c 79 2c 20 61 6e 64 20 64 6f 6e 27 74 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 onously,.and.don't.guarantee.tha
2400 74 0a 20 20 20 20 3b 3b 20 4f 55 54 50 55 54 20 65 6e 64 73 20 77 69 74 68 20 61 20 63 6f 6d 70 t.....;;.OUTPUT.ends.with.a.comp
2420 6c 65 74 65 20 6c 69 6e 65 2e 20 53 61 76 65 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 66 6f lete.line..Save.the.last.line.fo
2440 72 0a 20 20 20 20 3b 3b 20 6c 61 74 65 72 20 70 72 6f 63 65 73 73 69 6e 67 2e 0a 20 20 20 20 28 r.....;;.later.processing......(
2460 75 6e 6c 65 73 73 20 66 69 6e 69 73 68 65 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 unless.finished.......(setq.dead
2480 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 20 28 2d 6c 61 73 74 2d 69 74 grep--remaining-output.(-last-it
24a0 65 6d 20 6c 69 6e 65 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6e 65 73 20 28 62 75 em.lines)).......(setq.lines.(bu
24c0 74 6c 61 73 74 20 6c 69 6e 65 73 29 29 29 0a 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 tlast.lines)))......(save-excurs
24e0 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 ion.......(goto-char.(point-max)
2500 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6c 69 6e 65 20 6c 69 6e 65 73 29 0a 20 20 20 ).......(dolist.(line.lines)....
2520 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 62 6c .....(cond..........;;.Ignore.bl
2540 61 6e 6b 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 20 28 28 73 2d 62 6c 61 6e 6b 3f 20 6c ank.lines...........((s-blank?.l
2560 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 69 6e 65 73 20 6f 66 20 6a 75 73 74 20 ine))..........;;.Lines.of.just.
2580 2d 2d 20 61 72 65 20 75 73 65 64 20 61 73 20 61 20 63 6f 6e 74 65 78 74 20 73 65 70 61 72 61 74 --.are.used.as.a.context.separat
25a0 6f 72 20 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 69 6e 67 20 72 69 70 67 or.when..........;;.calling.ripg
25c0 72 65 70 20 77 69 74 68 20 63 6f 6e 74 65 78 74 20 66 6c 61 67 73 2e 0a 20 20 20 20 20 20 20 20 rep.with.context.flags..........
25e0 20 28 28 73 74 72 69 6e 67 3d 20 6c 69 6e 65 20 22 2d 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 .((string=.line."--")...........
2600 28 6c 65 74 20 28 28 73 65 70 61 72 61 74 6f 72 20 22 2d 2d 22 29 29 0a 20 20 20 20 20 20 20 20 (let.((separator."--")).........
2620 20 20 20 20 3b 3b 20 54 72 79 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 73 65 70 61 72 61 74 6f 72 ....;;.Try.to.make.the.separator
2640 20 6c 65 6e 67 74 68 20 6d 61 74 63 68 20 74 68 65 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 .length.match.the.previous......
2660 20 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 20 6e 75 6d 62 65 72 73 2e 0a 20 20 20 20 20 20 20 20 .......;;.line.numbers..........
2680 20 20 20 20 28 77 68 65 6e 20 70 72 65 76 2d 6c 69 6e 65 2d 6e 75 6d 0a 20 20 20 20 20 20 20 20 ....(when.prev-line-num.........
26a0 20 20 20 20 20 20 28 73 65 74 71 20 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 ......(setq.separator...........
26c0 20 20 20 20 20 20 20 20 20 20 28 73 2d 72 65 70 65 61 74 20 28 6c 6f 67 20 70 72 65 76 2d 6c 69 ..........(s-repeat.(log.prev-li
26e0 6e 65 2d 6e 75 6d 20 31 30 29 20 22 2d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ne-num.10)."-"))).............(i
2700 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 nsert..............(propertize.(
2720 63 6f 6e 63 61 74 20 73 65 70 61 72 61 74 6f 72 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 concat.separator."\n")..........
2740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d ................'face.'deadgrep-
2760 6d 65 74 61 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 meta-face.......................
2780 20 20 20 27 64 65 61 64 67 72 65 70 2d 73 65 70 61 72 61 74 6f 72 20 74 29 29 29 29 0a 20 20 20 ...'deadgrep-separator.t))))....
27a0 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 20 61 20 77 61 72 6e 69 6e 67 20 6f 72 ......;;.If.we.have.a.warning.or
27c0 20 64 6f 6e 27 74 20 68 61 76 65 20 61 20 63 6f 6c 6f 72 20 63 6f 64 65 2c 20 72 69 70 67 72 65 .don't.have.a.color.code,.ripgre
27e0 70 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 75 73 74 20 62 65 20 63 6f 6d 70 6c 61 69 6e 69 6e p..........;;.must.be.complainin
2800 67 20 61 62 6f 75 74 20 73 6f 6d 65 74 68 69 6e 67 20 28 65 2e 67 2e 20 7a 65 72 6f 20 6d 61 74 g.about.something.(e.g..zero.mat
2820 63 68 65 73 20 66 6f 72 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 67 6c 6f 62 2c 20 6f 72 20 ches.for..........;;.a.glob,.or.
2840 70 65 72 6d 69 73 73 69 6f 6e 20 64 65 6e 69 65 64 20 6f 6e 20 73 6f 6d 65 20 64 69 72 65 63 74 permission.denied.on.some.direct
2860 6f 72 69 65 73 29 2e 0a 20 20 20 20 20 20 20 20 20 28 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 ories)...........((or...........
2880 20 28 73 2d 73 74 61 72 74 73 2d 77 69 74 68 2d 70 20 22 57 41 52 4e 49 4e 47 3a 20 22 20 6c 69 .(s-starts-with-p."WARNING:.".li
28a0 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 2d 6d 61 74 63 68 65 73 2d 70 ne)............(not.(s-matches-p
28c0 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6c 6f 72 2d 63 6f 64 65 20 6c 69 6e 65 29 29 29 0a 20 20 .deadgrep--color-code.line)))...
28e0 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d ........(when.deadgrep--current-
2900 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d file.............(setq.deadgrep-
2920 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 -current-file.nil).............(
2940 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 insert."\n"))...........(insert.
2960 6c 69 6e 65 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 line."\n\n"))..........(t.......
2980 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 74 72 75 6e 63 61 74 65 2d 70 20 28 3e 20 28 6c 65 6e 67 ....(-let*.((truncate-p.(>.(leng
29a0 74 68 20 6c 69 6e 65 29 20 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 6c 69 6e 65 2d 6c 65 6e 67 74 th.line).deadgrep-max-line-lengt
29c0 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 0a 20 20 20 20 h))...................(line.....
29e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 74 72 75 6e 63 61 74 65 2d 70 0a 20 20 ...............(if.truncate-p...
2a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 .....................(substring.
2a20 6c 69 6e 65 20 30 20 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 6c 69 6e 65 2d 6c 65 6e 67 74 68 29 line.0.deadgrep-max-line-length)
2a40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 29 29 0a 20 20 20 ......................line))....
2a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 69 6c 65 6e 61 6d 65 20 6c 69 6e 65 2d 6e ...............((filename.line-n
2a80 75 6d 20 63 6f 6e 74 65 6e 74 29 20 28 64 65 61 64 67 72 65 70 2d 2d 73 70 6c 69 74 2d 6c 69 6e um.content).(deadgrep--split-lin
2aa0 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d e.line))...................(form
2ac0 61 74 74 65 64 2d 6c 69 6e 65 2d 6e 75 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atted-line-num..................
2ae0 20 20 28 73 2d 70 61 64 2d 72 69 67 68 74 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 69 74 69 6f ..(s-pad-right.deadgrep--positio
2b00 6e 2d 63 6f 6c 75 6d 6e 2d 77 69 64 74 68 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n-column-width."."..............
2b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 ...................(number-to-st
2b40 72 69 6e 67 20 6c 69 6e 65 2d 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ring.line-num)))................
2b60 20 20 20 28 70 72 65 74 74 79 2d 6c 69 6e 65 2d 6e 75 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...(pretty-line-num.............
2b80 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 66 6f 72 6d 61 74 74 65 64 2d 6c 69 6e .......(propertize.formatted-lin
2ba0 65 2d 6e 75 6d 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 e-num...........................
2bc0 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 0a 20 .....'face.'deadgrep-meta-face..
2be0 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 27 64 ..............................'d
2c00 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 eadgrep-filename.filename.......
2c20 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 64 65 61 64 67 72 .........................'deadgr
2c40 65 70 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 6c 69 6e 65 2d 6e 75 6d 0a 20 20 20 20 20 20 20 20 ep-line-number.line-num.........
2c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 61 64 2d 6f 6e 6c .......................'read-onl
2c80 79 20 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 20 20 20 y.t.............................
2ca0 20 20 20 27 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...'front-sticky.t..............
2cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 65 61 72 2d 6e 6f 6e 73 74 69 63 6b ..................'rear-nonstick
2ce0 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 74 74 79 2d y.t))...................(pretty-
2d00 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f filename....................(pro
2d20 70 65 72 74 69 7a 65 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pertize.filename................
2d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d ................'face.'deadgrep-
2d60 66 69 6c 65 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 filename-face...................
2d80 20 20 20 20 20 20 20 20 20 20 20 20 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 20 .............'deadgrep-filename.
2da0 66 69 6c 65 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 filename........................
2dc0 20 20 20 20 20 20 20 20 27 72 65 61 64 2d 6f 6e 6c 79 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 ........'read-only.t............
2de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 72 6f 6e 74 2d 73 74 69 63 6b ....................'front-stick
2e00 79 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 y.t))).............(cond........
2e20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 66 69 6c 65 20 ......;;.This.is.the.first.file.
2e40 77 65 27 76 65 20 73 65 65 6e 2c 20 70 72 69 6e 74 20 74 68 65 20 68 65 61 64 69 6e 67 2e 0a 20 we've.seen,.print.the.heading...
2e60 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 64 65 61 64 67 72 65 70 2d 2d 63 75 72 ............((null.deadgrep--cur
2e80 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 rent-file)...............(push.(
2ea0 63 6f 6e 73 20 66 69 6c 65 6e 61 6d 65 20 28 70 6f 69 6e 74 29 29 20 64 65 61 64 67 72 65 70 2d cons.filename.(point)).deadgrep-
2ec0 2d 69 6d 65 6e 75 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 -imenu-alist)...............(ins
2ee0 65 72 74 20 70 72 65 74 74 79 2d 66 69 6c 65 6e 61 6d 65 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 ert.pretty-filename."\n"))......
2f00 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 69 73 20 61 20 6e 65 77 20 66 69 6c 65 2c 20 70 ........;;.This.is.a.new.file,.p
2f20 72 69 6e 74 20 74 68 65 20 68 65 61 64 69 6e 67 20 77 69 74 68 20 61 20 73 70 61 63 65 72 2e 0a rint.the.heading.with.a.spacer..
2f40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 75 61 6c 20 64 65 61 64 67 72 .............((not.(equal.deadgr
2f60 65 70 2d 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 ep--current-file.filename)).....
2f80 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 66 69 6c 65 6e 61 6d 65 20 28 ..........(push.(cons.filename.(
2fa0 31 2b 20 28 70 6f 69 6e 74 29 29 29 20 64 65 61 64 67 72 65 70 2d 2d 69 6d 65 6e 75 2d 61 6c 69 1+.(point))).deadgrep--imenu-ali
2fc0 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 20 70 st)...............(insert."\n".p
2fe0 72 65 74 74 79 2d 66 69 6c 65 6e 61 6d 65 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 retty-filename."\n")))..........
3000 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 ...(setq.deadgrep--current-file.
3020 66 69 6c 65 6e 61 6d 65 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 filename)..............;;.TODO:.
3040 61 70 70 6c 79 20 74 68 65 20 69 6e 76 69 73 69 62 6c 65 20 70 72 6f 70 65 72 74 79 20 69 66 20 apply.the.invisible.property.if.
3060 74 68 65 20 75 73 65 72 20 64 65 63 69 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 the.user.decided.............;;.
3080 74 6f 20 68 69 64 65 20 74 68 69 73 20 66 69 6c 65 6e 61 6d 65 20 62 65 66 6f 72 65 20 77 65 20 to.hide.this.filename.before.we.
30a0 66 69 6e 69 73 68 65 64 20 66 69 6e 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 finished.finding.............;;.
30c0 72 65 73 75 6c 74 73 20 69 6e 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 results.in.it..............(inse
30e0 72 74 20 70 72 65 74 74 79 2d 6c 69 6e 65 2d 6e 75 6d 20 63 6f 6e 74 65 6e 74 29 0a 0a 20 20 20 rt.pretty-line-num.content).....
3100 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 64 65 61 64 67 72 65 70 2d 2d 72 .........(when.(null.deadgrep--r
3120 65 73 75 6c 74 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 esult-count)...............(setq
3140 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c 74 2d 63 6f 75 6e 74 20 30 29 29 0a 20 20 20 20 .deadgrep--result-count.0)).....
3160 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c ........(cl-incf.deadgrep--resul
3180 74 2d 63 6f 75 6e 74 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 75 6e t-count)..............(when.trun
31a0 63 61 74 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 cate-p...............(insert....
31c0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 2e 2e 2e 20 28 74 ............(propertize.".....(t
31e0 72 75 6e 63 61 74 65 64 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 runcated)"......................
3200 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 29 ......'face.'deadgrep-meta-face)
3220 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 0a 20 20 )).............(insert."\n")....
3240 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 6c 69 6e 65 2d 6e 75 6d 20 6c 69 ..........(setq.prev-line-num.li
3260 6e 65 2d 6e 75 6d 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 ne-num))))))))..(defcustom.deadg
3280 72 65 70 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 rep-finished-hook.nil..."Hook.ru
32a0 6e 20 77 68 65 6e 20 60 64 65 61 64 67 72 65 70 27 20 73 65 61 72 63 68 20 69 73 20 66 69 6e 69 n.when.`deadgrep'.search.is.fini
32c0 73 68 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 64 shed."...:type.'hook...:group.'d
32e0 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 63 65 eadgrep)..(defun.deadgrep--proce
3300 73 73 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 29 0a 20 20 22 ss-sentinel.(process.output)..."
3320 55 70 64 61 74 65 20 74 68 65 20 64 65 61 64 67 72 65 70 20 62 75 66 66 65 72 20 61 73 73 6f 63 Update.the.deadgrep.buffer.assoc
3340 69 61 74 65 64 20 77 69 74 68 20 50 52 4f 43 45 53 53 20 61 73 20 63 6f 6d 70 6c 65 74 65 2e 22 iated.with.PROCESS.as.complete."
3360 0a 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 ...(let.((buffer.(process-buffer
3380 20 70 72 6f 63 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 6e 69 73 68 65 64 2d 70 20 28 .process)).........(finished-p.(
33a0 73 74 72 69 6e 67 3d 20 6f 75 74 70 75 74 20 22 66 69 6e 69 73 68 65 64 5c 6e 22 29 29 29 0a 20 string=.output."finished\n")))..
33c0 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29 0a ...(when.(buffer-live-p.buffer).
33e0 20 20 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 62 75 66 66 65 ......(with-current-buffer.buffe
3400 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 72 75 6e 6e 69 6e r.........(setq.deadgrep--runnin
3420 67 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 67 20 68 61 73 20 74 65 72 6d 69 6e 61 g.nil).........;;.rg.has.termina
3440 74 65 64 2c 20 73 6f 20 73 74 6f 70 20 74 68 65 20 73 70 69 6e 6e 65 72 2e 0a 20 20 20 20 20 20 ted,.so.stop.the.spinner........
3460 20 20 28 73 70 69 6e 6e 65 72 2d 73 74 6f 70 20 64 65 61 64 67 72 65 70 2d 2d 73 70 69 6e 6e 65 ..(spinner-stop.deadgrep--spinne
3480 72 29 0a 0a 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 69 6e 73 65 72 74 2d 6f 75 r)..........(deadgrep--insert-ou
34a0 74 70 75 74 20 22 22 20 66 69 6e 69 73 68 65 64 2d 70 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 tput."".finished-p)..........;;.
34c0 52 65 70 6f 72 74 20 61 6e 79 20 65 72 72 6f 72 73 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 2e Report.any.errors.that.occurred.
34e0 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 6f 75 74 70 75 74 0a .........(unless.(member.output.
3500 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 0a 20 20 ........................(list...
3520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 69 74 65 64 20 61 ......................."exited.a
3540 62 6e 6f 72 6d 61 6c 6c 79 20 77 69 74 68 20 63 6f 64 65 20 31 5c 6e 22 0a 20 20 20 20 20 20 20 bnormally.with.code.1\n"........
3560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 74 65 72 72 75 70 74 5c 6e 22 0a .................."interrupt\n".
3580 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 22 66 69 6e 69 73 68 ........................."finish
35a0 65 64 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f ed\n"))...........(save-excursio
35c0 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 n.............(let.((inhibit-rea
35e0 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 d-only.t))...............(goto-c
3600 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 har.(point-max))...............(
3620 69 6e 73 65 72 74 20 6f 75 74 70 75 74 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d insert.output))))..........(run-
3640 68 6f 6f 6b 73 20 27 64 65 61 64 67 72 65 70 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 29 0a 20 hooks.'deadgrep-finished-hook)..
3660 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 63 72 65 6d 65 .......(unless.deadgrep--increme
3680 6e 74 61 6c 2d 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 ntal-active...........(message."
36a0 44 65 61 64 67 72 65 70 20 66 69 6e 69 73 68 65 64 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e Deadgrep.finished"))))))..(defun
36c0 20 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 65 .deadgrep--process-filter.(proce
36e0 73 73 20 6f 75 74 70 75 74 29 0a 20 20 3b 3b 20 53 65 61 72 63 68 65 73 20 6d 61 79 20 73 65 65 ss.output)...;;.Searches.may.see
3700 20 61 20 6c 6f 74 20 6f 66 20 6f 75 74 70 75 74 2c 20 62 75 74 20 69 74 27 73 20 72 65 61 6c 6c .a.lot.of.output,.but.it's.reall
3720 79 20 75 73 65 66 75 6c 20 74 6f 20 68 61 76 65 0a 20 20 3b 3b 20 61 20 73 6e 69 70 70 65 74 20 y.useful.to.have...;;.a.snippet.
3740 6f 66 20 6f 75 74 70 75 74 20 77 68 65 6e 20 64 65 62 75 67 67 69 6e 67 2e 20 53 74 6f 72 65 20 of.output.when.debugging..Store.
3760 74 68 65 20 66 69 72 73 74 20 6f 75 74 70 75 74 20 72 65 63 65 69 76 65 64 2e 0a 20 20 28 75 6e the.first.output.received....(un
3780 6c 65 73 73 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 66 69 72 73 74 2d 6f 75 74 70 75 less.deadgrep--debug-first-outpu
37a0 74 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 66 69 72 73 t.....(setq.deadgrep--debug-firs
37c0 74 2d 6f 75 74 70 75 74 20 6f 75 74 70 75 74 29 29 0a 0a 20 20 3b 3b 20 49 66 20 77 65 20 68 61 t-output.output))....;;.If.we.ha
37e0 64 20 61 6e 20 75 6e 66 69 6e 69 73 68 65 64 20 6c 69 6e 65 20 66 72 6f 6d 20 6f 75 72 20 6c 61 d.an.unfinished.line.from.our.la
3800 73 74 20 63 61 6c 6c 2c 20 69 6e 63 6c 75 64 65 20 74 68 61 74 2e 0a 20 20 28 77 68 65 6e 20 64 st.call,.include.that....(when.d
3820 65 61 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 0a 20 20 20 20 28 73 eadgrep--remaining-output.....(s
3840 65 74 71 20 6f 75 74 70 75 74 20 28 63 6f 6e 63 61 74 20 64 65 61 64 67 72 65 70 2d 2d 72 65 6d etq.output.(concat.deadgrep--rem
3860 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 20 6f 75 74 70 75 74 29 29 0a 20 20 20 20 28 73 65 74 71 aining-output.output)).....(setq
3880 20 64 65 61 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 6e 67 2d 6f 75 74 70 75 74 20 6e 69 6c 29 .deadgrep--remaining-output.nil)
38a0 29 0a 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 70 72 6f 63 65 )....(when.(buffer-live-p.(proce
38c0 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 ss-buffer.process)).....(with-cu
38e0 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f rrent-buffer.(process-buffer.pro
3900 63 65 73 73 29 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 69 6e 73 65 72 74 2d 6f 75 cess).......(deadgrep--insert-ou
3920 74 70 75 74 20 6f 75 74 70 75 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 tput.output))))..(defun.deadgrep
3940 2d 2d 65 78 74 72 61 63 74 2d 72 65 67 65 78 70 20 28 70 61 74 74 65 72 6e 20 73 29 0a 20 20 22 --extract-regexp.(pattern.s)..."
3960 53 65 61 72 63 68 20 66 6f 72 20 50 41 54 54 45 52 4e 20 69 6e 20 53 2c 20 61 6e 64 20 72 65 74 Search.for.PATTERN.in.S,.and.ret
3980 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 67 72 6f urn.the.content.of.the.first.gro
39a0 75 70 2e 22 0a 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 70 61 74 74 65 72 6e 20 73 29 0a up."...(string-match.pattern.s).
39c0 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 ..(match-string.1.s))..(defconst
39e0 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 2d 72 65 67 65 78 70 0a 20 20 28 72 78 .deadgrep--filename-regexp...(rx
3a00 20 62 6f 73 20 22 5c 78 31 62 5b 30 6d 5c 78 31 62 5b 33 22 20 28 6f 72 20 22 35 22 20 22 36 22 .bos."\x1b[0m\x1b[3".(or."5"."6"
3a20 29 20 22 6d 22 0a 20 20 20 20 20 20 28 3f 20 22 2e 2f 22 29 0a 20 20 20 20 20 20 28 67 72 6f 75 )."m".......(?."./").......(grou
3a40 70 20 28 2b 3f 20 61 6e 79 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 22 5c 78 31 62 5b 22 29 0a p.(+?.anything))......."\x1b[").
3a60 20 20 22 45 78 74 72 61 63 74 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 66 72 6f 6d 20 61 20 .."Extracts.the.filename.from.a.
3a80 72 69 70 67 72 65 70 20 6c 69 6e 65 20 77 69 74 68 20 41 4e 53 49 20 63 6f 6c 6f 72 20 73 65 71 ripgrep.line.with.ANSI.color.seq
3aa0 75 65 6e 63 65 73 2e 0a 57 65 20 75 73 65 20 74 68 65 20 63 6f 6c 6f 72 20 73 65 71 75 65 6e 63 uences..We.use.the.color.sequenc
3ac0 65 73 20 74 6f 20 65 78 74 72 61 63 74 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 65 78 61 63 74 es.to.extract.the.filename.exact
3ae0 6c 79 2c 20 65 76 65 6e 0a 69 66 20 74 68 65 20 70 61 74 68 20 63 6f 6e 74 61 69 6e 73 20 63 6f ly,.even.if.the.path.contains.co
3b00 6c 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 64 65 61 64 67 72 65 70 2d 2d 6c 69 6e lons.")..(defconst.deadgrep--lin
3b20 65 2d 6e 75 6d 2d 72 65 67 65 78 70 0a 20 20 28 72 78 20 22 5c 78 31 62 5b 33 32 6d 22 20 28 67 e-num-regexp...(rx."\x1b[32m".(g
3b40 72 6f 75 70 20 28 2b 20 64 69 67 69 74 29 29 29 0a 20 20 22 45 78 74 72 61 63 74 73 20 74 68 65 roup.(+.digit)))..."Extracts.the
3b60 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 61 20 72 69 70 67 72 65 70 20 6c 69 6e 65 .line.number.from.a.ripgrep.line
3b80 20 77 69 74 68 20 41 4e 53 49 20 63 6f 6c 6f 72 20 73 65 71 75 65 6e 63 65 73 2e 0a 52 69 70 67 .with.ANSI.color.sequences..Ripg
3ba0 72 65 70 20 75 73 65 73 20 61 20 75 6e 69 71 75 65 20 63 6f 6c 6f 72 20 66 6f 72 20 6c 69 6e 65 rep.uses.a.unique.color.for.line
3bc0 20 6e 75 6d 62 65 72 73 2c 20 73 6f 20 77 65 20 75 73 65 20 74 68 61 74 20 74 6f 0a 65 78 74 72 .numbers,.so.we.use.that.to.extr
3be0 61 63 74 20 74 68 65 20 6c 69 6e 75 65 20 6e 75 6d 62 65 72 20 65 78 61 63 74 6c 79 2e 22 29 0a act.the.linue.number.exactly.").
3c00 0a 28 64 65 66 63 6f 6e 73 74 20 64 65 61 64 67 72 65 70 2d 2d 6c 69 6e 65 2d 63 6f 6e 74 65 6e .(defconst.deadgrep--line-conten
3c20 74 73 2d 72 65 67 65 78 70 0a 20 20 28 72 78 20 22 5c 78 31 62 5b 33 32 6d 22 20 28 2b 20 64 69 ts-regexp...(rx."\x1b[32m".(+.di
3c40 67 69 74 29 20 22 5c 78 31 62 5b 30 6d 22 20 28 6f 72 20 22 3a 22 20 22 2d 22 29 20 28 67 72 6f git)."\x1b[0m".(or.":"."-").(gro
3c60 75 70 20 28 2a 20 61 6e 79 74 68 69 6e 67 29 29 29 0a 20 20 22 45 78 74 72 61 63 74 20 74 68 65 up.(*.anything)))..."Extract.the
3c80 20 6c 69 6e 65 20 63 6f 6e 74 65 6e 74 73 20 66 72 6f 6d 20 61 20 72 69 70 67 72 65 70 20 6c 69 .line.contents.from.a.ripgrep.li
3ca0 6e 65 20 77 69 74 68 20 41 4e 53 49 20 63 6f 6c 6f 72 20 73 65 71 75 65 6e 63 65 73 2e 0a 55 73 ne.with.ANSI.color.sequences..Us
3cc0 65 20 74 68 65 20 75 6e 69 71 75 65 20 63 6f 6c 6f 72 20 66 6f 72 20 6c 69 6e 65 20 6e 75 6d 62 e.the.unique.color.for.line.numb
3ce0 65 72 73 20 74 6f 20 65 6e 73 75 72 65 20 77 65 20 73 74 61 72 74 20 61 74 20 74 68 65 0a 63 6f ers.to.ensure.we.start.at.the.co
3d00 72 72 65 63 74 20 63 6f 6c 6f 6e 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 74 65 78 74 rrect.colon...Note.that.the.text
3d20 20 69 6e 20 74 68 65 20 67 72 6f 75 70 20 77 69 6c 6c 20 73 74 69 6c 6c 20 63 6f 6e 74 61 69 6e .in.the.group.will.still.contain
3d40 20 63 6f 6c 6f 72 20 63 6f 64 65 73 0a 68 69 67 68 6c 69 67 68 74 69 6e 67 20 77 68 69 63 68 20 .color.codes.highlighting.which.
3d60 70 61 72 74 73 20 6d 61 74 63 68 65 64 20 74 68 65 20 75 73 65 72 27 73 20 73 65 61 72 63 68 20 parts.matched.the.user's.search.
3d80 74 65 72 6d 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 64 65 61 64 67 72 65 70 2d 2d 68 69 74 term.")..(defconst.deadgrep--hit
3da0 2d 72 65 67 65 78 70 0a 20 20 28 72 78 2d 74 6f 2d 73 74 72 69 6e 67 0a 20 20 20 60 28 73 65 71 -regexp...(rx-to-string....`(seq
3dc0 0a 20 20 20 20 20 3b 3b 20 41 20 72 65 73 65 74 20 63 6f 6c 6f 72 20 63 6f 64 65 2e 0a 20 20 20 ......;;.A.reset.color.code.....
3de0 20 20 22 5c 78 31 62 5b 30 6d 22 0a 20 20 20 20 20 3b 3b 20 54 77 6f 20 63 6f 6c 6f 72 20 63 6f .."\x1b[0m"......;;.Two.color.co
3e00 64 65 73 2c 20 62 6f 6c 64 20 61 6e 64 20 63 6f 6c 6f 72 20 28 61 6e 79 20 6f 72 64 65 72 29 2e des,.bold.and.color.(any.order).
3e20 0a 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 64 65 61 64 67 72 65 70 2d 2d 63 6f 6c 6f 72 2d 63 ......(regexp.,deadgrep--color-c
3e40 6f 64 65 29 0a 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 64 65 61 64 67 72 65 70 2d 2d 63 6f 6c ode)......(regexp.,deadgrep--col
3e60 6f 72 2d 63 6f 64 65 29 0a 20 20 20 20 20 3b 3b 20 54 68 65 20 61 63 74 75 61 6c 20 74 65 78 74 or-code)......;;.The.actual.text
3e80 2e 0a 20 20 20 20 20 28 67 72 6f 75 70 20 28 2b 3f 20 61 6e 79 74 68 69 6e 67 29 29 0a 20 20 20 .......(group.(+?.anything))....
3ea0 20 20 3b 3b 20 41 20 72 65 73 65 74 20 63 6f 6c 6f 72 20 63 6f 64 65 20 61 67 61 69 6e 2e 0a 20 ..;;.A.reset.color.code.again...
3ec0 20 20 20 20 22 5c 78 31 62 5b 30 6d 22 29 29 0a 20 20 22 45 78 74 72 61 63 74 20 74 68 65 20 70 ...."\x1b[0m"))..."Extract.the.p
3ee0 6f 72 74 69 6f 6e 20 6f 66 20 61 20 6c 69 6e 65 20 66 6f 75 6e 64 20 62 79 20 72 69 70 67 72 65 ortion.of.a.line.found.by.ripgre
3f00 70 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 75 73 65 72 27 73 20 69 6e 70 75 74 2e p.that.matches.the.user's.input.
3f20 0a 54 68 69 73 20 6d 61 79 20 6f 63 63 75 72 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 20 69 .This.may.occur.multiple.times.i
3f40 6e 20 6f 6e 65 20 6c 69 6e 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d n.one.line.")..(defun.deadgrep--
3f60 73 70 6c 69 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 53 70 6c 69 74 20 6f 75 74 20 74 split-line.(line)..."Split.out.t
3f80 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 61 20 72 61 77 20 4c 49 4e 45 20 6f 66 20 6f he.components.of.a.raw.LINE.of.o
3fa0 75 74 70 75 74 20 66 72 6f 6d 20 72 67 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 66 69 6c 65 6e 61 utput.from.rg..Return.the.filena
3fc0 6d 65 2c 20 6c 69 6e 65 20 6e 75 6d 62 65 72 2c 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 20 63 6f me,.line.number,.and.the.line.co
3fe0 6e 74 65 6e 74 20 77 69 74 68 20 41 4e 53 49 0a 63 6f 6c 6f 72 20 63 6f 64 65 73 20 72 65 70 6c ntent.with.ANSI.color.codes.repl
4000 61 63 65 64 20 77 69 74 68 20 73 74 72 69 6e 67 20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20 aced.with.string.properties."...
4020 28 6c 69 73 74 0a 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 65 78 74 72 61 63 74 2d 72 65 67 65 (list....(deadgrep--extract-rege
4040 78 70 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 2d 72 65 67 65 78 70 20 6c 69 6e xp.deadgrep--filename-regexp.lin
4060 65 29 0a 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 0a 20 20 20 20 28 64 65 61 e)....(string-to-number.....(dea
4080 64 67 72 65 70 2d 2d 65 78 74 72 61 63 74 2d 72 65 67 65 78 70 20 64 65 61 64 67 72 65 70 2d 2d dgrep--extract-regexp.deadgrep--
40a0 6c 69 6e 65 2d 6e 75 6d 2d 72 65 67 65 78 70 20 6c 69 6e 65 29 29 0a 20 20 20 28 64 65 61 64 67 line-num-regexp.line))....(deadg
40c0 72 65 70 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 68 69 74 73 0a 20 20 20 20 28 64 65 61 64 67 72 rep--propertize-hits.....(deadgr
40e0 65 70 2d 2d 65 78 74 72 61 63 74 2d 72 65 67 65 78 70 20 64 65 61 64 67 72 65 70 2d 2d 6c 69 6e ep--extract-regexp.deadgrep--lin
4100 65 2d 63 6f 6e 74 65 6e 74 73 2d 72 65 67 65 78 70 20 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 e-contents-regexp.line))))..(def
4120 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 65 73 63 61 70 65 2d 62 61 63 6b 73 6c 61 73 68 20 28 73 un.deadgrep--escape-backslash.(s
4140 29 0a 20 20 22 45 73 63 61 70 65 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 62 61 63 6b 73 )..."Escape.occurrences.of.backs
4160 6c 61 73 68 65 73 20 69 6e 20 53 2e 0a 0a 54 68 69 73 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 lashes.in.S...This.differs.from.
4180 60 72 65 67 65 78 70 2d 71 75 6f 74 65 27 2c 20 77 68 69 63 68 20 6f 75 74 70 75 74 73 20 61 20 `regexp-quote',.which.outputs.a.
41a0 72 65 67 65 78 70 20 70 61 74 74 65 72 6e 2e 0a 49 6e 73 74 65 61 64 2c 20 77 65 20 70 72 6f 76 regexp.pattern..Instead,.we.prov
41c0 69 64 65 20 61 20 73 74 72 69 6e 67 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 52 45 50 20 69 6e ide.a.string.suitable.for.REP.in
41e0 0a 60 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 27 2e 22 0a 20 20 .`replace-regexp-in-string'."...
4200 28 73 2d 72 65 70 6c 61 63 65 20 22 5c 5c 22 20 22 5c 5c 5c 5c 22 20 73 29 29 0a 0a 28 64 65 66 (s-replace."\\"."\\\\".s))..(def
4220 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 68 69 74 73 20 28 6c 69 un.deadgrep--propertize-hits.(li
4240 6e 65 2d 63 6f 6e 74 65 6e 74 73 29 0a 20 20 22 47 69 76 65 6e 20 4c 49 4e 45 2d 43 4f 4e 54 45 ne-contents)..."Given.LINE-CONTE
4260 4e 54 53 20 66 72 6f 6d 20 72 69 70 67 72 65 70 2c 20 72 65 70 6c 61 63 65 20 41 4e 53 49 20 63 NTS.from.ripgrep,.replace.ANSI.c
4280 6f 6c 6f 72 20 63 6f 64 65 73 0a 77 69 74 68 20 61 20 74 65 78 74 20 66 61 63 65 20 70 72 6f 70 olor.codes.with.a.text.face.prop
42a0 65 72 74 79 20 60 64 65 61 64 67 72 65 70 2d 6d 61 74 63 68 2d 66 61 63 65 27 2e 22 0a 20 20 28 erty.`deadgrep-match-face'."...(
42c0 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 64 65 61 64 replace-regexp-in-string....dead
42e0 67 72 65 70 2d 2d 68 69 74 2d 72 65 67 65 78 70 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 73 29 0a grep--hit-regexp....(lambda.(s).
4300 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 .....(propertize.......(deadgrep
4320 2d 2d 65 73 63 61 70 65 2d 62 61 63 6b 73 6c 61 73 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 --escape-backslash.(match-string
4340 20 31 20 73 29 29 0a 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 61 74 .1.s)).......'face.'deadgrep-mat
4360 63 68 2d 66 61 63 65 29 29 0a 20 20 20 6c 69 6e 65 2d 63 6f 6e 74 65 6e 74 73 29 29 0a 0a 28 64 ch-face))....line-contents))..(d
4380 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 64 65 61 64 67 72 65 70 2d 73 65 61 72 efine-button-type.'deadgrep-sear
43a0 63 68 2d 74 65 72 6d 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 67 72 65 70 2d 2d 73 65 ch-term...'action.#'deadgrep--se
43c0 61 72 63 68 2d 74 65 72 6d 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 61 6e 67 65 20 73 arch-term...'help-echo."Change.s
43e0 65 61 72 63 68 20 74 65 72 6d 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 earch.term")..(defun.deadgrep--s
4400 65 61 72 63 68 2d 70 72 6f 6d 70 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 65 66 61 75 6c 74 29 earch-prompt.(&optional.default)
4420 0a 20 20 22 54 68 65 20 70 72 6f 6d 70 74 20 73 68 6f 77 6e 20 74 6f 20 74 68 65 20 75 73 65 72 ..."The.prompt.shown.to.the.user
4440 20 77 68 65 6e 20 73 74 61 72 74 69 6e 67 20 61 20 64 65 61 64 67 72 65 70 20 73 65 61 72 63 68 .when.starting.a.deadgrep.search
4460 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 6e 64 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 65 ."...(let.((kind.(if.(eq.deadgre
4480 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 p--search-type.'regexp).........
44a0 20 20 20 20 20 20 20 20 20 20 22 62 79 20 72 65 67 65 78 70 22 20 22 66 6f 72 20 74 65 78 74 22 .........."by.regexp"."for.text"
44c0 29 29 29 0a 20 20 20 20 28 69 66 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 28 66 6f 72 ))).....(if.default.........(for
44e0 6d 61 74 20 22 53 65 61 72 63 68 20 25 73 20 28 64 65 66 61 75 6c 74 20 25 73 29 3a 20 22 20 6b mat."Search.%s.(default.%s):.".k
4500 69 6e 64 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 53 65 61 72 ind.default).......(format."Sear
4520 63 68 20 25 73 3a 20 22 20 6b 69 6e 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 ch.%s:.".kind))))..(defun.deadgr
4540 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 28 5f 62 75 74 74 6f 6e 29 0a 20 20 28 64 65 61 ep--search-term.(_button)...(dea
4560 64 67 72 65 70 2d 73 65 61 72 63 68 2d 74 65 72 6d 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 dgrep-search-term))..(defun.dead
4580 67 72 65 70 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 28 29 0a 20 20 22 43 68 61 6e 67 65 20 74 68 grep-search-term.()..."Change.th
45a0 65 20 63 75 72 72 65 6e 74 20 73 65 61 72 63 68 20 74 65 72 6d 20 61 6e 64 20 72 65 73 74 61 72 e.current.search.term.and.restar
45c0 74 20 74 68 65 20 73 65 61 72 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 t.the.search."...(interactive)..
45e0 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 .(setq.deadgrep--search-term....
4600 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 .....(read-from-minibuffer......
4620 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 70 72 6f 6d 70 74 29 0a 20 20 ....(deadgrep--search-prompt)...
4640 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 29 29 0a 20 .......deadgrep--search-term))..
4660 20 28 72 65 6e 61 6d 65 2d 62 75 66 66 65 72 0a 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 .(rename-buffer....(deadgrep--bu
4680 66 66 65 72 2d 6e 61 6d 65 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 ffer-name.deadgrep--search-term.
46a0 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 20 74 29 0a 20 20 28 64 65 61 64 67 72 65 default-directory).t)...(deadgre
46c0 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 p-restart))..(define-button-type
46e0 20 27 64 65 61 64 67 72 65 70 2d 74 79 70 65 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 .'deadgrep-type...'action.#'dead
4700 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 0a 20 20 27 73 65 61 72 63 68 2d 74 79 70 65 grep--search-type...'search-type
4720 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 61 6e 67 65 20 73 65 61 72 63 68 .nil...'help-echo."Change.search
4740 20 74 79 70 65 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 .type")..(defun.deadgrep--search
4760 2d 74 79 70 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d -type.(button)...(setq.deadgrep-
4780 2d 73 65 61 72 63 68 2d 74 79 70 65 20 28 62 75 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 -search-type.(button-get.button.
47a0 27 73 65 61 72 63 68 2d 74 79 70 65 29 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 'search-type))...(deadgrep-resta
47c0 72 74 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 64 65 61 64 67 rt))..(define-button-type.'deadg
47e0 72 65 70 2d 63 61 73 65 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 67 72 65 70 2d 2d 63 rep-case...'action.#'deadgrep--c
4800 61 73 65 0a 20 20 27 63 61 73 65 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 43 68 ase...'case.nil...'help-echo."Ch
4820 61 6e 67 65 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 69 74 79 22 29 0a 0a 28 64 65 66 75 6e 20 ange.case.sensitivity")..(defun.
4840 64 65 61 64 67 72 65 70 2d 2d 63 61 73 65 20 28 62 75 74 74 6f 6e 29 0a 20 20 28 73 65 74 71 20 deadgrep--case.(button)...(setq.
4860 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 28 62 75 74 74 6f 6e 2d 67 65 deadgrep--search-case.(button-ge
4880 74 20 62 75 74 74 6f 6e 20 27 63 61 73 65 29 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 t.button.'case))...(deadgrep-res
48a0 74 61 72 74 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 64 65 61 tart))..(define-button-type.'dea
48c0 64 67 72 65 70 2d 63 6f 6e 74 65 78 74 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 67 72 dgrep-context...'action.#'deadgr
48e0 65 70 2d 2d 63 6f 6e 74 65 78 74 0a 20 20 27 63 6f 6e 74 65 78 74 20 6e 69 6c 0a 20 20 27 68 65 ep--context...'context.nil...'he
4900 6c 70 2d 65 63 68 6f 20 22 53 68 6f 77 2f 68 69 64 65 20 63 6f 6e 74 65 78 74 20 61 72 6f 75 6e lp-echo."Show/hide.context.aroun
4920 64 20 6d 61 74 63 68 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 d.match")..(defun.deadgrep--cont
4940 65 78 74 20 28 62 75 74 74 6f 6e 29 0a 20 20 3b 3b 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 ext.(button)...;;.deadgrep--cont
4960 65 78 74 20 74 61 6b 65 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 28 62 65 66 6f 72 65 20 2e ext.takes.the.value.of.(before..
4980 20 61 66 74 65 72 29 20 77 68 65 6e 20 73 65 74 2e 0a 20 20 28 73 65 74 71 20 64 65 61 64 67 72 .after).when.set....(setq.deadgr
49a0 65 70 2d 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65 20 28 62 75 ep--context.........(cl-case.(bu
49c0 74 74 6f 6e 2d 67 65 74 20 62 75 74 74 6f 6e 20 27 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 tton-get.button.'context).......
49e0 20 20 20 20 28 28 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 ....((nil)............nil)......
4a00 20 20 20 20 20 28 62 65 66 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 .....(before............(cons...
4a20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 53 68 6f 77 20 4e 20 6c ..........(read-number."Show.N.l
4a40 69 6e 65 73 20 62 65 66 6f 72 65 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 ines.before:.").............(or.
4a60 28 63 64 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 29 20 30 29 29 (cdr-safe.deadgrep--context).0))
4a80 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 )...........(after............(c
4aa0 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 64 65 ons.............(or.(car-safe.de
4ac0 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 adgrep--context).0).............
4ae0 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 53 68 6f 77 20 4e 20 6c 69 6e 65 73 20 61 66 74 65 72 (read-number."Show.N.lines.after
4b00 3a 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 :.")))...........(t............(
4b20 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 63 6f 6e 74 65 78 74 20 74 79 70 65 22 29 29 29 29 error."Unknown.context.type"))))
4b40 0a 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 ....(deadgrep-restart))..(defun.
4b60 64 65 61 64 67 72 65 70 2d 2d 74 79 70 65 2d 6c 69 73 74 20 28 29 0a 20 20 22 51 75 65 72 79 20 deadgrep--type-list.()..."Query.
4b80 74 68 65 20 72 67 20 65 78 65 63 75 74 61 62 6c 65 20 66 6f 72 20 61 76 61 69 6c 61 62 6c 65 20 the.rg.executable.for.available.
4ba0 66 69 6c 65 20 74 79 70 65 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f 75 74 70 75 74 20 28 77 file.types."...(let*.((output.(w
4bc0 69 74 68 2d 6f 75 74 70 75 74 2d 74 6f 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 ith-output-to-string............
4be0 20 20 20 20 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 73 74 61 ........(with-current-buffer.sta
4c00 6e 64 61 72 64 2d 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ndard-output....................
4c20 20 20 28 70 72 6f 63 65 73 73 2d 66 69 6c 65 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 0a 20 20 ..(process-file-shell-command...
4c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 ....................(format."%s.
4c60 2d 2d 74 79 70 65 2d 6c 69 73 74 22 20 64 65 61 64 67 72 65 70 2d 65 78 65 63 75 74 61 62 6c 65 --type-list".deadgrep-executable
4c80 29 0a 20 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 27 28 74 20 ).......................nil.'(t.
4ca0 6e 69 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 28 73 2d 6c 69 6e 65 nil)))))..........(lines.(s-line
4cc0 73 20 28 73 2d 74 72 69 6d 20 6f 75 74 70 75 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 79 s.(s-trim.output)))..........(ty
4ce0 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 73 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 0a 20 pes-and-globs...........(--map..
4d00 20 20 20 20 20 20 20 20 20 20 28 73 2d 73 70 6c 69 74 20 28 72 78 20 22 3a 20 22 29 20 69 74 29 ..........(s-split.(rx.":.").it)
4d20 0a 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 73 29 29 29 0a 20 20 20 20 28 2d 6d 61 70 0a 20 ............lines))).....(-map..
4d40 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 74 79 70 65 20 67 6c 6f 62 73 29 29 0a 20 20 20 20 ....(-lambda.((type.globs)).....
4d60 20 20 20 28 6c 69 73 74 20 74 79 70 65 20 28 73 2d 73 70 6c 69 74 20 28 72 78 20 22 2c 20 22 29 ...(list.type.(s-split.(rx.",.")
4d80 20 67 6c 6f 62 73 29 29 29 0a 20 20 20 20 20 74 79 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 73 29 29 .globs)))......types-and-globs))
4da0 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 64 65 61 64 67 72 65 70 )..(define-button-type.'deadgrep
4dc0 2d 66 69 6c 65 2d 74 79 70 65 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 67 72 65 70 2d -file-type...'action.#'deadgrep-
4de0 2d 66 69 6c 65 2d 74 79 70 65 0a 20 20 27 63 61 73 65 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 -file-type...'case.nil...'help-e
4e00 63 68 6f 20 22 43 68 61 6e 67 65 20 66 69 6c 65 20 74 79 70 65 22 29 0a 0a 28 64 65 66 69 6e 65 cho."Change.file.type")..(define
4e20 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 64 65 61 64 67 72 65 70 2d 73 6b 69 70 2d 68 69 64 64 -button-type.'deadgrep-skip-hidd
4e40 65 6e 2d 74 79 70 65 0a 20 20 27 61 63 74 69 6f 6e 20 23 27 64 65 61 64 67 72 65 70 2d 2d 73 6b en-type...'action.#'deadgrep--sk
4e60 69 70 2d 69 66 2d 68 69 64 64 65 6e 0a 20 20 27 63 61 73 65 20 6e 69 6c 0a 20 20 27 68 65 6c 70 ip-if-hidden...'case.nil...'help
4e80 2d 65 63 68 6f 20 22 54 6f 67 67 6c 65 20 77 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 20 64 6f -echo."Toggle.whether.to.skip.do
4ea0 74 66 69 6c 65 73 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d tfiles")..(defun.deadgrep--skip-
4ec0 69 66 2d 68 69 64 64 65 6e 20 28 5f 62 75 74 74 6f 6e 29 0a 20 20 28 73 65 74 71 20 64 65 61 64 if-hidden.(_button)...(setq.dead
4ee0 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 20 28 6e 6f 74 20 64 65 61 64 67 72 grep--skip-if-hidden.(not.deadgr
4f00 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 29 29 0a 20 20 28 64 65 61 64 67 72 65 70 ep--skip-if-hidden))...(deadgrep
4f20 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 -restart))..(define-button-type.
4f40 27 64 65 61 64 67 72 65 70 2d 76 63 73 2d 73 6b 69 70 2d 74 79 70 65 0a 20 20 27 61 63 74 69 6f 'deadgrep-vcs-skip-type...'actio
4f60 6e 20 23 27 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 n.#'deadgrep--skip-if-vcs-ignore
4f80 0a 20 20 27 63 61 73 65 20 6e 69 6c 0a 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 54 6f 67 67 6c ...'case.nil...'help-echo."Toggl
4fa0 65 20 77 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 20 66 69 6c 65 73 20 6c 69 73 74 65 64 20 69 e.whether.to.skip.files.listed.i
4fc0 6e 20 2e 67 69 74 69 67 6e 6f 72 65 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d n..gitignore")..(defun.deadgrep-
4fe0 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 20 28 5f 62 75 74 74 6f 6e 29 0a 20 20 -skip-if-vcs-ignore.(_button)...
5000 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f (setq.deadgrep--skip-if-vcs-igno
5020 72 65 20 28 6e 6f 74 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 re.(not.deadgrep--skip-if-vcs-ig
5040 6e 6f 72 65 29 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 nore))...(deadgrep-restart))..(d
5060 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 66 6f 72 6d 61 74 2d 66 69 6c 65 2d 74 79 70 65 20 efun.deadgrep--format-file-type.
5080 28 66 69 6c 65 2d 74 79 70 65 20 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 28 6c 65 74 2a 20 28 (file-type.extensions)...(let*.(
50a0 28 6d 61 78 2d 65 78 74 73 20 34 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 64 (max-exts.4)..........(truncated
50c0 20 28 3e 20 28 6c 65 6e 67 74 68 20 65 78 74 65 6e 73 69 6f 6e 73 29 20 6d 61 78 2d 65 78 74 73 .(>.(length.extensions).max-exts
50e0 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 72 75 6e 63 61 74 65 64 0a 20 20 20 20 20 20 28 73 ))).....(when.truncated.......(s
5100 65 74 71 20 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 etq.extensions.............(appe
5120 6e 64 20 28 2d 74 61 6b 65 20 6d 61 78 2d 65 78 74 73 20 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 nd.(-take.max-exts.extensions)..
5140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2e 2e 2e 22 29 29 ...................(list."..."))
5160 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 28 25 73 29 22 0a 20 20 20 20 20 20 20 )).....(format."%s.(%s)"........
5180 20 20 20 20 20 66 69 6c 65 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 2d 6a 6f .....file-type.............(s-jo
51a0 69 6e 20 22 2c 20 22 20 65 78 74 65 6e 73 69 6f 6e 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 in.",.".extensions))))..(defun.d
51c0 65 61 64 67 72 65 70 2d 2d 67 6c 6f 62 2d 72 65 67 65 78 70 20 28 67 6c 6f 62 29 0a 20 20 22 43 eadgrep--glob-regexp.(glob)..."C
51e0 6f 6e 76 65 72 74 20 47 4c 4f 42 20 70 61 74 74 65 72 6e 20 74 6f 20 74 68 65 20 65 71 75 69 76 onvert.GLOB.pattern.to.the.equiv
5200 61 6c 65 6e 74 20 65 6c 69 73 70 20 72 65 67 65 78 70 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 alent.elisp.regexp."...(let*.((i
5220 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 22 5e 22 29 29 0a 20 20 20 20 28 .0)..........(result."^")).....(
5240 77 68 69 6c 65 20 28 3c 20 69 20 28 6c 65 6e 67 74 68 20 67 6c 6f 62 29 29 0a 20 20 20 20 20 20 while.(<.i.(length.glob)).......
5260 28 6c 65 74 2a 20 28 28 63 68 61 72 20 28 65 6c 74 20 67 6c 6f 62 20 69 29 29 29 0a 20 20 20 20 (let*.((char.(elt.glob.i))).....
5280 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 2e 20 6d 61 74 63 68 65 73 20 ....(cond..........;;...matches.
52a0 61 20 6c 69 74 65 72 61 6c 20 2e 20 69 6e 20 67 6c 6f 62 73 2e 0a 20 20 20 20 20 20 20 20 20 28 a.literal...in.globs...........(
52c0 28 65 71 20 63 68 61 72 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 (eq.char.?.)...........(setq.res
52e0 75 6c 74 20 28 63 6f 6e 63 61 74 20 72 65 73 75 6c 74 20 22 5c 5c 2e 22 29 29 0a 20 20 20 20 20 ult.(concat.result."\\."))......
5300 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 3f 20 .....(cl-incf.i))..........;;.?.
5320 6d 61 74 63 68 65 73 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 20 69 6e 20 67 6c 6f 62 73 2e 0a matches.a.single.char.in.globs..
5340 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 68 61 72 20 3f 3f 29 0a 20 20 20 20 20 20 20 20 20 .........((eq.char.??)..........
5360 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 63 61 74 20 72 65 73 75 6c 74 20 22 2e 22 .(setq.result.(concat.result."."
5380 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 69 29 29 0a 20 20 20 20 20 20 ))...........(cl-incf.i)).......
53a0 20 20 20 3b 3b 20 2a 20 6d 61 74 63 68 65 73 20 7a 65 72 6f 20 6f 72 20 6d 6f 72 65 20 6f 66 20 ...;;.*.matches.zero.or.more.of.
53c0 61 6e 79 74 68 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 68 61 72 20 3f 2a 29 anything...........((eq.char.?*)
53e0 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 63 61 74 20 ...........(setq.result.(concat.
5400 72 65 73 75 6c 74 20 22 2e 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 result.".*"))...........(cl-incf
5420 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 5b 61 62 5d 20 6d 61 74 63 68 65 73 20 61 20 .i))..........;;.[ab].matches.a.
5440 6c 69 74 65 72 61 6c 20 61 20 6f 72 20 62 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 5b 61 2d 7a literal.a.or.b...........;;.[a-z
5460 5d 20 6d 61 74 63 68 65 73 20 63 68 61 72 61 63 74 65 72 73 20 62 65 74 77 65 65 6e 20 61 20 61 ].matches.characters.between.a.a
5480 6e 64 20 7a 20 69 6e 63 6c 75 73 69 76 65 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 5b 3f 5d 20 nd.z.inclusive...........;;.[?].
54a0 6d 61 74 63 68 65 73 20 61 20 6c 69 74 65 72 61 6c 20 3f 2e 0a 20 20 20 20 20 20 20 20 20 28 28 matches.a.literal.?...........((
54c0 65 71 20 63 68 61 72 20 3f 5c 5b 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 74 eq.char.?\[)...........;;.Find.t
54e0 68 65 20 6d 61 74 63 68 69 6e 67 20 5d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 he.matching.]............(let.((
5500 6a 20 28 31 2b 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 j.(1+.i))).............(while.(a
5520 6e 64 20 28 3c 20 6a 20 28 6c 65 6e 67 74 68 20 67 6c 6f 62 29 29 0a 20 20 20 20 20 20 20 20 20 nd.(<.j.(length.glob))..........
5540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 65 6c 74 20 67 6c 6f ...............(not.(eq.(elt.glo
5560 62 20 6a 29 20 3f 5c 5d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e b.j).?\])))...............(cl-in
5580 63 66 20 6a 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 6a 29 0a 20 cf.j)).............(cl-incf.j)..
55a0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 63 61 74 20 ...........(setq.result.(concat.
55c0 72 65 73 75 6c 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 result..........................
55e0 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 67 6c 6f 62 20 69 20 6a 29 29 29 0a 20 ........(substring.glob.i.j)))..
5600 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 6a 29 29 29 0a 20 20 20 20 20 20 20 20 ...........(setq.i.j))).........
5620 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 63 .(t...........(setq.result.(conc
5640 61 74 20 72 65 73 75 6c 74 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 68 61 72 29 29 at.result.(char-to-string.char))
5660 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 69 29 29 29 29 29 0a 20 20 20 20 )...........(cl-incf.i))))).....
5680 28 63 6f 6e 63 61 74 20 72 65 73 75 6c 74 20 22 24 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 (concat.result."$")))..(defun.de
56a0 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 65 73 2d 67 6c 6f 62 73 2d 70 20 28 66 69 6c 65 6e 61 6d adgrep--matches-globs-p.(filenam
56c0 65 20 67 6c 6f 62 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 46 49 e.globs)..."Return.non-nil.if.FI
56e0 4c 45 4e 41 4d 45 20 6d 61 74 63 68 65 73 20 61 6e 79 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 20 LENAME.matches.any.glob.pattern.
5700 69 6e 20 47 4c 4f 42 53 2e 22 0a 20 20 28 77 68 65 6e 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 in.GLOBS."...(when.filename.....
5720 28 2d 2d 61 6e 79 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 28 64 65 61 64 67 72 65 70 (--any.(string-match-p.(deadgrep
5740 2d 2d 67 6c 6f 62 2d 72 65 67 65 78 70 20 69 74 29 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 --glob-regexp.it).filename).....
5760 20 20 20 20 20 20 20 67 6c 6f 62 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 .......globs)))..(defun.deadgrep
5780 2d 2d 72 65 6c 65 76 61 6e 74 2d 66 69 6c 65 2d 74 79 70 65 20 28 66 69 6c 65 6e 61 6d 65 20 74 --relevant-file-type.(filename.t
57a0 79 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 73 29 0a 20 20 22 54 72 79 20 74 6f 20 66 69 6e 64 20 74 ypes-and-globs)..."Try.to.find.t
57c0 68 65 20 6d 6f 73 74 20 72 65 6c 65 76 61 6e 74 20 69 74 65 6d 20 69 6e 20 54 59 50 45 53 2d 41 he.most.relevant.item.in.TYPES-A
57e0 4e 44 2d 47 4c 4f 42 53 20 66 6f 72 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 6c 65 74 20 28 ND-GLOBS.for.FILENAME."...(let.(
5800 3b 3b 20 46 69 6e 64 20 61 6c 6c 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 54 59 50 45 53 2d 41 ;;.Find.all.the.items.in.TYPES-A
5820 4e 44 2d 47 4c 4f 42 53 20 77 68 6f 73 65 20 67 6c 6f 62 20 6d 61 74 63 68 0a 20 20 20 20 20 20 ND-GLOBS.whose.glob.match.......
5840 20 20 3b 3b 20 46 49 4c 45 4e 41 4d 45 2e 0a 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 69 6e 67 ..;;.FILENAME..........(matching
5860 20 28 2d 66 69 6c 74 65 72 20 28 2d 6c 61 6d 62 64 61 20 28 28 5f 74 79 70 65 20 67 6c 6f 62 73 .(-filter.(-lambda.((_type.globs
5880 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 20 20 20 ))..............................
58a0 28 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 65 73 2d 67 6c 6f 62 73 2d 70 20 66 69 6c 65 6e (deadgrep--matches-globs-p.filen
58c0 61 6d 65 20 67 6c 6f 62 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame.globs)).....................
58e0 20 20 20 20 20 20 20 74 79 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 73 29 29 29 0a 20 20 20 20 28 2d .......types-and-globs))).....(-
5900 3e 3e 20 6d 61 74 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 66 65 72 20 6c >>.matching..........;;.Prefer.l
5920 6f 6e 67 65 72 20 6e 61 6d 65 73 2c 20 73 6f 20 22 6d 61 72 6b 64 6f 77 6e 22 20 6f 76 65 72 20 onger.names,.so."markdown".over.
5940 22 6d 64 22 20 66 6f 72 20 74 68 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 61 "md".for.the.type..........;;.na
5960 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6c 61 6d 62 64 61 20 28 28 74 me...........(-sort.(-lambda.((t
5980 79 70 65 31 20 5f 29 20 28 74 79 70 65 32 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ype1._).(type2._))..............
59a0 20 20 20 20 20 28 3c 20 28 6c 65 6e 67 74 68 20 74 79 70 65 31 29 20 28 6c 65 6e 67 74 68 20 74 .....(<.(length.type1).(length.t
59c0 79 70 65 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 66 65 72 20 74 79 70 65 ype2))))..........;;.Prefer.type
59e0 73 20 77 69 74 68 20 6d 6f 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 2c 20 61 73 20 74 68 65 79 20 s.with.more.extensions,.as.they.
5a00 74 65 6e 64 20 74 6f 20 62 65 20 6d 6f 72 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6d 6d tend.to.be.more..........;;.comm
5a20 6f 6e 20 6c 61 6e 67 75 61 67 65 73 20 28 65 2e 67 2e 20 27 6f 63 61 6d 6c 27 20 6f 76 65 72 20 on.languages.(e.g..'ocaml'.over.
5a40 27 6d 6c 27 29 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6c 61 6d 62 64 61 20 'ml')...........(-sort.(-lambda.
5a60 28 28 5f 20 67 6c 6f 62 73 31 29 20 28 5f 20 67 6c 6f 62 73 32 29 29 0a 20 20 20 20 20 20 20 20 ((_.globs1).(_.globs2)).........
5a80 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 6c 65 6e 67 74 68 20 67 6c 6f 62 73 31 29 20 28 6c 65 ..........(<.(length.globs1).(le
5aa0 6e 67 74 68 20 67 6c 6f 62 73 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 74 20 ngth.globs2))))..........;;.But.
5ac0 70 72 65 66 65 72 20 65 6c 69 73 70 20 6f 76 65 72 20 6c 69 73 70 20 66 6f 72 20 2e 65 6c 20 66 prefer.elisp.over.lisp.for..el.f
5ae0 69 6c 65 73 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6c 61 6d 62 64 61 20 28 iles...........(-sort.(-lambda.(
5b00 28 74 79 70 65 31 20 5f 29 20 28 74 79 70 65 32 20 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (type1._).(type2._))............
5b20 20 20 20 20 20 20 20 3b 3b 20 52 65 74 75 72 6e 20 74 20 69 66 20 77 65 27 72 65 20 63 6f 6d 70 .......;;.Return.t.if.we're.comp
5b40 61 72 69 6e 67 20 65 6c 69 73 70 20 77 69 74 68 20 6c 69 73 70 2c 20 6e 69 6c 0a 20 20 20 20 20 aring.elisp.with.lisp,.nil......
5b60 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 2e 0a 20 20 20 20 20 .............;;.otherwise.......
5b80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 75 61 6c 20 74 79 70 65 31 20 22 .............(and.(equal.type1."
5ba0 6c 69 73 70 22 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 28 65 lisp")........................(e
5bc0 71 75 61 6c 20 74 79 70 65 32 20 22 65 6c 69 73 70 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 qual.type2."elisp"))))..........
5be0 3b 3b 20 54 61 6b 65 20 74 68 65 20 68 69 67 68 65 73 74 20 73 63 6f 72 69 6e 67 20 6d 61 74 63 ;;.Take.the.highest.scoring.matc
5c00 68 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 2d 69 74 65 6d 29 29 29 29 0a 0a hing...........(-last-item))))..
5c20 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 72 65 61 64 2d 66 69 6c 65 2d 74 79 70 65 20 (defun.deadgrep--read-file-type.
5c40 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 52 65 61 64 20 61 20 72 69 70 67 72 65 70 20 66 69 6c (filename)..."Read.a.ripgrep.fil
5c60 65 20 74 79 70 65 2c 20 64 65 66 61 75 6c 74 69 6e 67 20 74 6f 20 74 68 65 20 74 79 70 65 20 74 e.type,.defaulting.to.the.type.t
5c80 68 61 74 20 6d 61 74 63 68 65 73 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 6c 65 74 2a 20 28 hat.matches.FILENAME."...(let*.(
5ca0 3b 3b 20 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 74 79 70 65 73 20 77 65 20 63 61 6e 20 ;;.Get.the.list.of.types.we.can.
5cc0 6f 66 66 65 72 2e 0a 20 20 20 20 20 20 20 20 20 28 74 79 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 73 offer...........(types-and-globs
5ce0 20 28 64 65 61 64 67 72 65 70 2d 2d 74 79 70 65 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 .(deadgrep--type-list)).........
5d00 20 3b 3b 20 42 75 69 6c 64 20 61 20 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 74 68 65 20 66 6f 72 .;;.Build.a.list.mapping.the.for
5d20 6d 61 74 74 65 64 20 74 79 70 65 73 20 74 6f 20 74 68 65 20 74 79 70 65 20 6e 61 6d 65 2e 0a 20 matted.types.to.the.type.name...
5d40 20 20 20 20 20 20 20 20 28 74 79 70 65 2d 63 68 6f 69 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 ........(type-choices...........
5d60 28 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 74 79 70 65 (-map............(-lambda.((type
5d80 20 67 6c 6f 62 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 .globs))..............(list.....
5da0 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 66 6f 72 6d 61 74 2d 66 69 6c 65 ..........(deadgrep--format-file
5dc0 2d 74 79 70 65 20 74 79 70 65 20 67 6c 6f 62 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -type.type.globs)...............
5de0 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 73 2d 61 6e 64 2d 67 6c 6f 62 type))............types-and-glob
5e00 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 57 6f 72 6b 20 6f 75 74 20 74 68 65 20 64 65 66 s))..........;;.Work.out.the.def
5e20 61 75 6c 74 20 74 79 70 65 20 6e 61 6d 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 66 69 6c 65 ault.type.name.based.on.the.file
5e40 6e 61 6d 65 2e 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 74 79 70 65 2d 61 6e 64 name...........(default-type-and
5e60 2d 67 6c 6f 62 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 72 65 6c -globs............(deadgrep--rel
5e80 65 76 61 6e 74 2d 66 69 6c 65 2d 74 79 70 65 20 66 69 6c 65 6e 61 6d 65 20 74 79 70 65 73 2d 61 evant-file-type.filename.types-a
5ea0 6e 64 2d 67 6c 6f 62 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 0a 20 20 20 nd-globs))..........(default....
5ec0 20 20 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 74 79 70 ........(-when-let.((default-typ
5ee0 65 20 64 65 66 61 75 6c 74 2d 67 6c 6f 62 73 29 20 64 65 66 61 75 6c 74 2d 74 79 70 65 2d 61 6e e.default-globs).default-type-an
5f00 64 2d 67 6c 6f 62 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d d-globs)..............(deadgrep-
5f20 2d 66 6f 72 6d 61 74 2d 66 69 6c 65 2d 74 79 70 65 20 64 65 66 61 75 6c 74 2d 74 79 70 65 20 64 -format-file-type.default-type.d
5f40 65 66 61 75 6c 74 2d 67 6c 6f 62 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 50 72 6f 6d efault-globs)))..........;;.Prom
5f60 70 74 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 61 20 66 69 6c 65 20 74 79 70 65 2e 0a 20 20 20 pt.the.user.for.a.file.type.....
5f80 20 20 20 20 20 20 28 63 68 6f 73 65 6e 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 ......(chosen...........(complet
5fa0 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 22 46 69 6c 65 20 74 79 70 65 3a 20 ing-read............"File.type:.
5fc0 22 20 74 79 70 65 2d 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 20 6e 69 6c 20 6e 69 6c 20 64 65 66 ".type-choices.nil.t.nil.nil.def
5fe0 61 75 6c 74 29 29 29 0a 20 20 20 20 28 6e 74 68 20 31 20 28 61 73 73 6f 63 20 63 68 6f 73 65 6e ault))).....(nth.1.(assoc.chosen
6000 20 74 79 70 65 2d 63 68 6f 69 63 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 .type-choices))))..(defun.deadgr
6020 65 70 2d 2d 72 65 61 64 2d 66 69 6c 65 2d 67 6c 6f 62 20 28 29 0a 20 20 28 6c 65 74 2a 0a 20 20 ep--read-file-glob.()...(let*...
6040 20 20 20 20 28 28 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 28 63 6f 6e ....((initial-value.........(con
6060 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 6c 72 65 61 64 79 20 68 61 76 65 d..........;;.If.we.already.have
6080 20 61 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 2c 20 65 64 69 74 20 69 74 2e 0a 20 20 20 20 20 20 .a.glob.pattern,.edit.it........
60a0 20 20 20 28 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 ...((eq.(car-safe.deadgrep--file
60c0 2d 74 79 70 65 29 20 27 67 6c 6f 62 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 64 65 61 -type).'glob)...........(cdr.dea
60e0 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 dgrep--file-type))..........;;.I
6100 66 20 74 68 65 20 69 6e 69 74 69 61 6c 20 66 69 6c 65 20 68 61 64 20 61 20 66 69 6c 65 20 6e 61 f.the.initial.file.had.a.file.na
6120 6d 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f 2e 62 me.of.the.form..........;;.foo.b
6140 61 72 2c 20 6f 66 66 65 72 20 2a 2e 62 61 72 20 61 73 20 74 68 65 20 69 6e 69 74 69 61 6c 20 67 ar,.offer.*.bar.as.the.initial.g
6160 6c 6f 62 2e 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 64 65 61 64 67 72 65 70 2d 2d 69 6e lob...........((and.deadgrep--in
6180 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 itial-filename................(f
61a0 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 69 ile-name-extension.deadgrep--ini
61c0 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 tial-filename))...........(forma
61e0 74 20 22 2a 2e 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 t."*.%s"...................(file
6200 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 69 74 69 61 -name-extension.deadgrep--initia
6220 6c 2d 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 l-filename)))..........(t.......
6240 20 20 20 20 22 2a 22 29 29 29 0a 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 ...."*")))........(prompt.......
6260 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 20 22 2a 22 ..(if.(string=.initial-value."*"
6280 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 68 6f 77 20 61 6e 20 65 78 61 6d 70 6c 65 ).............;;.Show.an.example
62a0 20 74 6f 20 61 76 6f 69 64 20 63 6f 6e 66 75 73 69 6f 6e 20 77 69 74 68 20 72 65 67 65 78 70 20 .to.avoid.confusion.with.regexp.
62c0 73 79 6e 74 61 78 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 6c 6f 62 20 28 65 2e 67 2e 20 syntax.............."Glob.(e.g..
62e0 2a 2e 6a 73 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 22 47 6c 6f 62 3a 20 22 29 29 0a 20 20 *.js):."..........."Glob:."))...
6300 20 20 20 20 20 28 67 6c 6f 62 0a 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 .....(glob.........(read-from-mi
6320 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 nibuffer..........prompt........
6340 20 20 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 29 29 29 0a 20 20 20 20 67 6c 6f 62 29 29 0a 0a 28 ..initial-value))).....glob))..(
6360 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 28 62 75 74 74 6f defun.deadgrep--file-type.(butto
6380 6e 29 0a 20 20 28 6c 65 74 20 28 28 62 75 74 74 6f 6e 2d 74 79 70 65 20 28 62 75 74 74 6f 6e 2d n)...(let.((button-type.(button-
63a0 67 65 74 20 62 75 74 74 6f 6e 20 27 66 69 6c 65 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 63 6f get.button.'file-type))).....(co
63c0 6e 64 0a 20 20 20 20 20 28 28 65 71 20 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 61 6c 6c 29 0a 20 nd......((eq.button-type.'all)..
63e0 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 .....(setq.deadgrep--file-type.'
6400 61 6c 6c 29 29 0a 20 20 20 20 20 28 28 65 71 20 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 74 79 70 all))......((eq.button-type.'typ
6420 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 e).......(setq.deadgrep--file-ty
6440 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 74 79 70 65 20 28 64 65 61 64 pe.............(cons.'type.(dead
6460 67 72 65 70 2d 2d 72 65 61 64 2d 66 69 6c 65 2d 74 79 70 65 20 64 65 61 64 67 72 65 70 2d 2d 69 grep--read-file-type.deadgrep--i
6480 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 62 75 nitial-filename))))......((eq.bu
64a0 74 74 6f 6e 2d 74 79 70 65 20 27 67 6c 6f 62 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 tton-type.'glob).......(setq.dea
64c0 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 28 63 6f 6e 73 20 27 67 6c 6f 62 20 28 64 65 dgrep--file-type.(cons.'glob.(de
64e0 61 64 67 72 65 70 2d 2d 72 65 61 64 2d 66 69 6c 65 2d 67 6c 6f 62 29 29 29 29 0a 20 20 20 20 20 adgrep--read-file-glob))))......
6500 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 62 75 74 74 6f 6e 20 (t.......(error."Unknown.button.
6520 74 79 70 65 3a 20 25 53 22 20 62 75 74 74 6f 6e 2d 74 79 70 65 29 29 29 29 0a 20 20 28 64 65 61 type:.%S".button-type))))...(dea
6540 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d dgrep-restart))..(define-button-
6560 74 79 70 65 20 27 64 65 61 64 67 72 65 70 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 61 63 74 69 type.'deadgrep-directory...'acti
6580 6f 6e 20 23 27 64 65 61 64 67 72 65 70 2d 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 27 68 65 6c 70 on.#'deadgrep--directory...'help
65a0 2d 65 63 68 6f 20 22 43 68 61 6e 67 65 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 79 22 29 0a 0a -echo."Change.base.directory")..
65c0 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 64 69 72 65 63 74 6f 72 79 20 28 5f 62 75 74 (defun.deadgrep--directory.(_but
65e0 74 6f 6e 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 0a 28 64 ton)...(deadgrep-directory))..(d
6600 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 64 69 72 65 63 74 6f 72 79 20 28 29 0a 20 20 22 50 72 efun.deadgrep-directory.()..."Pr
6620 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 61 20 6e 65 77 20 73 65 61 72 63 68 20 64 ompt.the.user.for.a.new.search.d
6640 69 72 65 63 74 6f 72 79 2c 20 74 68 65 6e 20 72 65 73 74 61 72 74 20 74 68 65 20 73 65 61 72 63 irectory,.then.restart.the.searc
6660 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 64 65 66 61 h."...(interactive)...(setq.defa
6680 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 ult-directory.........(expand-fi
66a0 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 le-name..........(read-directory
66c0 2d 6e 61 6d 65 20 22 53 65 61 72 63 68 20 66 69 6c 65 73 20 69 6e 3a 20 22 29 29 29 0a 20 20 28 -name."Search.files.in:.")))...(
66e0 72 65 6e 61 6d 65 2d 62 75 66 66 65 72 0a 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 rename-buffer....(deadgrep--buff
6700 65 72 2d 6e 61 6d 65 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 64 65 er-name.deadgrep--search-term.de
6720 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 74 29 0a 20 20 28 64 65 61 64 67 72 fault-directory)....t)...(deadgr
6740 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 70 61 ep-restart))..(defun.deadgrep-pa
6760 72 65 6e 74 2d 64 69 72 65 63 74 6f 72 79 20 28 29 0a 20 20 22 52 65 73 74 61 72 74 20 74 68 65 rent-directory.()..."Restart.the
6780 20 73 65 61 72 63 68 20 69 6e 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e .search.in.the.parent.directory.
67a0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 64 65 66 61 75 6c "...(interactive)...(setq.defaul
67c0 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 t-directory.........(file-name-d
67e0 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 65 irectory.(directory-file-name.de
6800 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 28 72 65 6e 61 6d 65 2d 62 75 66 fault-directory)))...(rename-buf
6820 66 65 72 0a 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 64 65 fer....(deadgrep--buffer-name.de
6840 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 64 65 66 61 75 6c 74 2d 64 69 72 65 adgrep--search-term.default-dire
6860 63 74 6f 72 79 29 0a 20 20 20 74 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 ctory)....t)...(deadgrep-restart
6880 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 28 74 65 78 ))..(defun.deadgrep--button.(tex
68a0 74 20 74 79 70 65 20 26 72 65 73 74 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 3b 3b 20 60 6d t.type.&rest.properties)...;;.`m
68c0 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 27 20 6d 75 74 61 74 65 73 20 74 68 65 20 73 74 72 ake-text-button'.mutates.the.str
68e0 69 6e 67 20 74 6f 20 61 64 64 20 70 72 6f 70 65 72 74 69 65 73 2c 20 73 6f 20 63 6f 70 79 0a 20 ing.to.add.properties,.so.copy..
6900 20 3b 3b 20 54 45 58 54 20 66 69 72 73 74 2e 0a 20 20 28 73 65 74 71 20 74 65 78 74 20 28 73 75 .;;.TEXT.first....(setq.text.(su
6920 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 74 65 78 74 29 29 0a 20 20 28 bstring-no-properties.text))...(
6940 61 70 70 6c 79 20 23 27 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 74 65 78 74 20 6e 69 apply.#'make-text-button.text.ni
6960 6c 20 3a 74 79 70 65 20 74 79 70 65 20 70 72 6f 70 65 72 74 69 65 73 29 29 0a 0a 28 64 65 66 63 l.:type.type.properties))..(defc
6980 75 73 74 6f 6d 20 64 65 61 64 67 72 65 70 2d 65 78 74 72 61 2d 61 72 67 75 6d 65 6e 74 73 0a 20 ustom.deadgrep-extra-arguments..
69a0 20 27 28 22 2d 2d 6e 6f 2d 63 6f 6e 66 69 67 22 29 0a 20 20 22 4c 69 73 74 20 64 65 66 69 6e 69 .'("--no-config")..."List.defini
69c0 6e 67 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f 20 64 65 61 ng.extra.arguments.passed.to.dea
69e0 64 67 72 65 70 2e 0a 4d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 69 6d 70 6f 72 74 dgrep..Many.arguments.are.import
6a00 61 6e 74 20 74 6f 20 68 6f 77 20 64 65 61 64 67 72 65 70 20 70 61 72 73 65 73 20 74 68 65 20 6f ant.to.how.deadgrep.parses.the.o
6a20 75 74 70 75 74 0a 61 6e 64 20 73 6f 6d 65 20 61 72 65 20 61 64 64 65 64 20 70 72 6f 67 72 61 6d utput.and.some.are.added.program
6a40 6d 61 74 69 63 61 6c 6c 79 2c 20 6c 69 6b 65 20 74 68 6f 73 65 20 66 6f 72 20 73 65 61 72 63 68 matically,.like.those.for.search
6a60 20 74 79 70 65 2c 0a 63 61 73 65 20 73 65 6e 73 69 74 69 76 69 74 79 2c 20 61 6e 64 20 63 6f 6e .type,.case.sensitivity,.and.con
6a80 74 65 78 74 2e 0a 0a 48 6f 77 65 76 65 72 2c 20 73 6f 6d 65 20 61 72 67 75 6d 65 6e 74 73 20 64 text...However,.some.arguments.d
6aa0 6f 20 6e 6f 74 20 66 61 6c 6c 20 69 6e 74 6f 20 65 69 74 68 65 72 20 6f 66 20 74 68 6f 73 65 20 o.not.fall.into.either.of.those.
6ac0 63 61 73 65 73 2c 0a 61 6e 64 20 74 68 65 79 20 63 61 6e 20 62 65 20 61 64 64 65 64 20 68 65 72 cases,.and.they.can.be.added.her
6ae0 65 2e 20 20 54 68 69 6e 67 73 20 6c 69 6b 65 20 60 2d 2d 73 65 61 72 63 68 2d 7a 69 70 27 20 74 e...Things.like.`--search-zip'.t
6b00 6f 20 73 65 61 72 63 68 0a 63 6f 6d 70 72 65 73 73 65 64 20 66 69 6c 65 73 2c 20 6f 72 20 60 2d o.search.compressed.files,.or.`-
6b20 2d 66 6f 6c 6c 6f 77 27 20 74 6f 20 66 6f 6c 6c 6f 77 20 73 79 6d 6c 69 6e 6b 73 2e 0a 0a 53 6f -follow'.to.follow.symlinks...So
6b40 6d 65 74 69 6d 65 73 20 73 65 74 74 69 6e 67 73 20 69 6e 20 79 6f 75 72 20 63 6f 6e 66 69 67 20 metimes.settings.in.your.config.
6b60 66 69 6c 65 20 63 61 6e 20 63 61 75 73 65 20 70 72 6f 62 6c 65 6d 73 2c 20 77 68 69 63 68 0a 69 file.can.cause.problems,.which.i
6b80 73 20 77 68 79 20 60 2d 2d 6e 6f 2d 63 6f 6e 66 69 67 27 20 69 73 20 69 6e 63 6c 75 64 65 64 20 s.why.`--no-config'.is.included.
6ba0 68 65 72 65 20 62 79 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 here.by.default."...:type.'(repe
6bc0 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 6f 75 70 20 27 64 65 61 64 67 72 65 70 29 0a 0a at.string)...:group.'deadgrep)..
6be0 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 61 72 67 75 6d 65 6e 74 73 20 28 73 65 61 72 (defun.deadgrep--arguments.(sear
6c00 63 68 2d 74 65 72 6d 20 73 65 61 72 63 68 2d 74 79 70 65 20 63 61 73 65 20 63 6f 6e 74 65 78 74 ch-term.search-type.case.context
6c20 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 6c 69 )..."Return.a.list.of.command.li
6c40 6e 65 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 77 65 20 63 61 6e 20 65 78 65 63 75 74 65 ne.arguments.that.we.can.execute
6c60 20 69 6e 20 61 20 73 68 65 6c 6c 0a 74 6f 20 6f 62 74 61 69 6e 20 72 69 70 67 72 65 70 20 72 65 .in.a.shell.to.obtain.ripgrep.re
6c80 73 75 6c 74 73 2e 22 0a 20 20 3b 3b 20 57 65 20 70 75 74 20 74 68 65 20 65 78 74 72 61 20 61 72 sults."...;;.We.put.the.extra.ar
6ca0 67 75 6d 65 6e 74 73 20 66 69 72 73 74 20 73 6f 20 74 68 61 74 20 6c 61 74 65 72 20 61 72 67 75 guments.first.so.that.later.argu
6cc0 6d 65 6e 74 73 20 77 69 6c 6c 0a 20 20 3b 3b 20 6f 76 65 72 72 69 64 65 20 74 68 65 6d 2c 20 70 ments.will...;;.override.them,.p
6ce0 72 65 76 65 6e 74 69 6e 67 20 61 20 75 73 65 72 20 66 72 6f 6d 20 61 63 63 69 64 65 6e 74 61 6c reventing.a.user.from.accidental
6d00 6c 79 20 62 72 65 61 6b 69 6e 67 0a 20 20 3b 3b 20 72 69 70 67 72 65 70 20 62 79 20 73 70 65 63 ly.breaking...;;.ripgrep.by.spec
6d20 69 66 79 69 6e 67 20 2d 2d 68 65 61 64 69 6e 67 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2e 0a 20 ifying.--heading,.for.example...
6d40 20 28 6c 65 74 20 28 28 61 72 67 73 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 64 65 61 64 .(let.((args.(copy-sequence.dead
6d60 67 72 65 70 2d 65 78 74 72 61 2d 61 72 67 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 28 70 75 73 grep-extra-arguments))).....(pus
6d80 68 20 22 2d 2d 63 6f 6c 6f 72 3d 61 6e 73 69 22 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 h."--color=ansi".args).....(push
6da0 20 22 2d 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 22 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 ."--line-number".args).....(push
6dc0 20 22 2d 2d 6e 6f 2d 68 65 61 64 69 6e 67 22 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 20 ."--no-heading".args).....(push.
6de0 22 2d 2d 6e 6f 2d 63 6f 6c 75 6d 6e 22 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 20 22 2d "--no-column".args).....(push."-
6e00 2d 77 69 74 68 2d 66 69 6c 65 6e 61 6d 65 22 20 61 72 67 73 29 0a 0a 20 20 20 20 28 63 6f 6e 64 -with-filename".args)......(cond
6e20 0a 20 20 20 20 20 28 28 65 71 20 73 65 61 72 63 68 2d 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a ......((eq.search-type.'string).
6e40 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 66 69 78 65 64 2d 73 74 72 69 6e 67 73 22 20 61 72 ......(push."--fixed-strings".ar
6e60 67 73 29 29 0a 20 20 20 20 20 28 28 65 71 20 73 65 61 72 63 68 2d 74 79 70 65 20 27 77 6f 72 64 gs))......((eq.search-type.'word
6e80 73 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 66 69 78 65 64 2d 73 74 72 69 6e 67 73 22 s).......(push."--fixed-strings"
6ea0 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 77 6f 72 64 2d 72 65 67 65 78 .args).......(push."--word-regex
6ec0 70 22 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 28 65 71 20 73 65 61 72 63 68 2d 74 79 70 65 20 p".args))......((eq.search-type.
6ee0 27 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 'regexp))......(t.......(error."
6f00 55 6e 6b 6e 6f 77 6e 20 73 65 61 72 63 68 20 74 79 70 65 3a 20 25 73 22 20 73 65 61 72 63 68 2d Unknown.search.type:.%s".search-
6f20 74 79 70 65 29 29 29 0a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 63 61 73 type)))......(cond......((eq.cas
6f40 65 20 27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 73 6d 61 72 74 2d 63 e.'smart).......(push."--smart-c
6f60 61 73 65 22 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 28 65 71 20 63 61 73 65 20 27 73 65 6e 73 ase".args))......((eq.case.'sens
6f80 69 74 69 76 65 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 63 61 73 65 2d 73 65 6e 73 69 itive).......(push."--case-sensi
6fa0 74 69 76 65 22 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 28 65 71 20 63 61 73 65 20 27 69 67 6e tive".args))......((eq.case.'ign
6fc0 6f 72 65 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 69 67 6e 6f 72 65 2d 63 61 73 65 22 ore).......(push."--ignore-case"
6fe0 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e .args))......(t.......(error."Un
7000 6b 6e 6f 77 6e 20 63 61 73 65 3a 20 25 73 22 20 63 61 73 65 29 29 29 0a 0a 20 20 20 20 28 63 6f known.case:.%s".case)))......(co
7020 6e 64 0a 20 20 20 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 nd......((eq.deadgrep--file-type
7040 20 27 61 6c 6c 29 29 0a 20 20 20 20 20 28 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 .'all))......((eq.(car-safe.dead
7060 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 20 27 74 79 70 65 29 0a 20 20 20 20 20 20 28 70 grep--file-type).'type).......(p
7080 75 73 68 20 28 66 6f 72 6d 61 74 20 22 2d 2d 74 79 70 65 3d 25 73 22 20 28 63 64 72 20 64 65 61 ush.(format."--type=%s".(cdr.dea
70a0 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 29 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 dgrep--file-type)).args))......(
70c0 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 (eq.(car-safe.deadgrep--file-typ
70e0 65 29 20 27 67 6c 6f 62 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d 61 74 20 22 2d e).'glob).......(push.(format."-
7100 2d 67 6c 6f 62 3d 25 73 22 20 28 63 64 72 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 -glob=%s".(cdr.deadgrep--file-ty
7120 70 65 29 29 20 61 72 67 73 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 pe)).args))......(t.......(error
7140 20 22 55 6e 6b 6e 6f 77 6e 20 66 69 6c 65 2d 74 79 70 65 3a 20 25 53 22 20 64 65 61 64 67 72 65 ."Unknown.file-type:.%S".deadgre
7160 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 p--file-type)))......(when.conte
7180 78 74 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d 61 74 20 22 2d 2d 62 65 66 6f 72 65 xt.......(push.(format."--before
71a0 2d 63 6f 6e 74 65 78 74 3d 25 73 22 20 28 63 61 72 20 63 6f 6e 74 65 78 74 29 29 20 61 72 67 73 -context=%s".(car.context)).args
71c0 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 66 6f 72 6d 61 74 20 22 2d 2d 61 66 74 65 72 2d 63 ).......(push.(format."--after-c
71e0 6f 6e 74 65 78 74 3d 25 73 22 20 28 63 64 72 20 63 6f 6e 74 65 78 74 29 29 20 61 72 67 73 29 29 ontext=%s".(cdr.context)).args))
7200 0a 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d ......(unless.deadgrep--skip-if-
7220 68 69 64 64 65 6e 0a 20 20 20 20 20 20 28 70 75 73 68 20 22 2d 2d 68 69 64 64 65 6e 22 20 61 72 hidden.......(push."--hidden".ar
7240 67 73 29 29 0a 20 20 20 20 28 69 66 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 gs)).....(if.deadgrep--skip-if-v
7260 63 73 2d 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 42 79 20 64 65 66 61 75 6c 74 2c cs-ignore.........;;.By.default,
7280 20 72 69 70 67 72 65 70 20 73 65 61 72 63 68 65 73 20 2e 67 69 74 20 65 76 65 6e 20 77 68 65 6e .ripgrep.searches..git.even.when
72a0 20 69 74 27 73 20 72 65 73 70 65 63 74 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 2e 67 69 74 .it's.respecting.........;;..git
72c0 69 67 6e 6f 72 65 2c 20 69 66 20 2d 2d 68 69 64 64 65 6e 20 69 73 20 73 65 74 2e 20 49 67 6e 6f ignore,.if.--hidden.is.set..Igno
72e0 72 65 20 2e 67 69 74 20 77 68 65 6e 20 77 65 27 72 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 73 re..git.when.we're.........;;.us
7300 69 6e 67 20 2e 67 69 74 69 67 6e 6f 72 65 2e 0a 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 ing..gitignore..........;;......
7320 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 42 75 72 6e 74 53 75 ...;;.https://github.com/BurntSu
7340 73 68 69 2f 72 69 70 67 72 65 70 2f 69 73 73 75 65 73 2f 37 31 33 0a 20 20 20 20 20 20 20 20 28 shi/ripgrep/issues/713.........(
7360 70 75 73 68 20 22 2d 2d 67 6c 6f 62 3d 21 2f 2e 67 69 74 22 20 61 72 67 73 29 0a 20 20 20 20 20 push."--glob=!/.git".args)......
7380 20 28 70 75 73 68 20 22 2d 2d 6e 6f 2d 69 67 6e 6f 72 65 2d 76 63 73 22 20 61 72 67 73 29 29 0a .(push."--no-ignore-vcs".args)).
73a0 0a 20 20 20 20 28 70 75 73 68 20 22 2d 2d 22 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 20 .....(push."--".args).....(push.
73c0 73 65 61 72 63 68 2d 74 65 72 6d 20 61 72 67 73 29 0a 20 20 20 20 28 70 75 73 68 20 22 2e 22 20 search-term.args).....(push.".".
73e0 61 72 67 73 29 0a 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 61 72 67 73 29 29 29 0a 0a 28 64 args)......(nreverse.args)))..(d
7400 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 77 72 69 74 65 2d 68 65 61 64 69 6e 67 20 28 29 0a efun.deadgrep--write-heading.().
7420 20 20 22 57 72 69 74 65 20 74 68 65 20 64 65 61 64 67 72 65 70 20 68 65 61 64 69 6e 67 20 77 69 .."Write.the.deadgrep.heading.wi
7440 74 68 20 62 75 74 74 6f 6e 73 20 72 65 66 6c 65 63 74 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e th.buttons.reflecting.the.curren
7460 74 0a 73 65 61 72 63 68 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 t.search.settings."...(let.((sta
7480 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 rt-pos.(point)).........(inhibit
74a0 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 -read-only.t)).....(insert.(prop
74c0 65 72 74 69 7a 65 20 22 53 65 61 72 63 68 20 74 65 72 6d 3a 20 22 0a 20 20 20 20 20 20 20 20 20 ertize."Search.term:."..........
74e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d ...............'face.'deadgrep-m
7500 65 74 61 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 64 65 eta-face).............(if.(eq.de
7520 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 72 65 67 65 78 70 29 0a 20 20 20 adgrep--search-type.'regexp)....
7540 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 70 65 72 74 69 .............(deadgrep--properti
7560 7a 65 2d 72 65 67 65 78 70 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 29 ze-regexp.deadgrep--search-term)
7580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 ...............(propertize......
75a0 20 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 0a ..........deadgrep--search-term.
75c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 73 ...............'face.'deadgrep-s
75e0 65 61 72 63 68 2d 74 65 72 6d 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 earch-term-face)).............".
7600 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 ".............(deadgrep--button.
7620 22 63 68 61 6e 67 65 22 20 27 64 65 61 64 67 72 65 70 2d 73 65 61 72 63 68 2d 74 65 72 6d 29 0a "change".'deadgrep-search-term).
7640 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 ............"\n".............(pr
7660 6f 70 65 72 74 69 7a 65 20 22 53 65 61 72 63 68 20 74 79 70 65 3a 20 22 0a 20 20 20 20 20 20 20 opertize."Search.type:."........
7680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 .................'face.'deadgrep
76a0 2d 6d 65 74 61 2d 66 61 63 65 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 -meta-face)..............(if.(eq
76c0 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a .deadgrep--search-type.'string).
76e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 ................"string"........
7700 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 73 74 72 69 6e 67 .......(deadgrep--button."string
7720 22 20 27 64 65 61 64 67 72 65 70 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ".'deadgrep-type................
7740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 65 61 72 63 68 2d 74 79 70 65 20 27 73 .................'search-type.'s
7760 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 tring)).............".".........
7780 20 20 20 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 ....(if.(eq.deadgrep--search-typ
77a0 65 20 27 77 6f 72 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 6f 72 64 73 e.'words)................."words
77c0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f "...............(deadgrep--butto
77e0 6e 20 22 77 6f 72 64 73 22 20 27 64 65 61 64 67 72 65 70 2d 74 79 70 65 0a 20 20 20 20 20 20 20 n."words".'deadgrep-type........
7800 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 73 65 61 72 63 68 .........................'search
7820 2d 74 79 70 65 20 27 77 6f 72 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 -type.'words))............."."..
7840 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 ...........(if.(eq.deadgrep--sea
7860 72 63 68 2d 74 79 70 65 20 27 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rch-type.'regexp)...............
7880 20 20 22 72 65 67 65 78 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 .."regexp"...............(deadgr
78a0 65 70 2d 2d 62 75 74 74 6f 6e 20 22 72 65 67 65 78 70 22 20 27 64 65 61 64 67 72 65 70 2d 74 79 ep--button."regexp".'deadgrep-ty
78c0 70 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 20 20 20 20 20 20 pe..............................
78e0 20 20 20 27 73 65 61 72 63 68 2d 74 79 70 65 20 27 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 ...'search-type.'regexp)).......
7900 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 ......"\n".............(properti
7920 7a 65 20 22 43 61 73 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ze."Case:.".....................
7940 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 29 0a 20 ....'face.'deadgrep-meta-face)..
7960 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 ...........(if.(eq.deadgrep--sea
7980 72 63 68 2d 63 61 73 65 20 27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rch-case.'smart)................
79a0 20 22 73 6d 61 72 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 ."smart"...............(deadgrep
79c0 2d 2d 62 75 74 74 6f 6e 20 22 73 6d 61 72 74 22 20 27 64 65 61 64 67 72 65 70 2d 63 61 73 65 0a --button."smart".'deadgrep-case.
79e0 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 ................................
7a00 27 63 61 73 65 20 27 73 6d 61 72 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 'case.'smart))............."."..
7a20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 ...........(if.(eq.deadgrep--sea
7a40 72 63 68 2d 63 61 73 65 20 27 73 65 6e 73 69 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 rch-case.'sensitive)............
7a60 20 20 20 20 20 22 73 65 6e 73 69 74 69 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....."sensitive"...............(
7a80 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 73 65 6e 73 69 74 69 76 65 22 20 27 64 65 deadgrep--button."sensitive".'de
7aa0 61 64 67 72 65 70 2d 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 adgrep-case.....................
7ac0 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 73 65 20 27 73 65 6e 73 69 74 69 76 65 29 29 0a 20 ............'case.'sensitive))..
7ae0 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 ...........".".............(if.(
7b00 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 27 69 67 6e 6f 72 65 eq.deadgrep--search-case.'ignore
7b20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 67 6e 6f 72 65 22 0a 20 20 20 20 20 )................."ignore"......
7b40 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 69 67 6e 6f .........(deadgrep--button."igno
7b60 72 65 22 20 27 64 65 61 64 67 72 65 70 2d 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 re".'deadgrep-case..............
7b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 73 65 20 27 69 67 6e 6f 72 65 ...................'case.'ignore
7ba0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ))............."\n".............
7bc0 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 6f 6e 74 65 78 74 3a 20 22 0a 20 20 20 20 20 20 20 20 (propertize."Context:.".........
7be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d ................'face.'deadgrep-
7c00 6d 65 74 61 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 61 64 67 meta-face).............(if.deadg
7c20 72 65 70 2d 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 rep--context.................(de
7c40 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 6e 6f 6e 65 22 20 27 64 65 61 64 67 72 65 70 2d adgrep--button."none".'deadgrep-
7c60 63 6f 6e 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 context.........................
7c80 20 20 20 20 20 20 20 20 20 20 27 63 6f 6e 74 65 78 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 ..........'context.nil).........
7ca0 20 20 20 20 20 20 22 6e 6f 6e 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 ......"none")............."."...
7cc0 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 62 65 66 ..........(deadgrep--button."bef
7ce0 6f 72 65 22 20 27 64 65 61 64 67 72 65 70 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 ore".'deadgrep-context..........
7d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f 6e 74 65 78 74 20 27 62 .....................'context.'b
7d20 65 66 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 61 64 67 72 65 70 2d efore).............(if.deadgrep-
7d40 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 -context.................(format
7d60 20 22 3a 25 64 22 20 28 63 61 72 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 29 29 0a .":%d".(car.deadgrep--context)).
7d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 .............."").............".
7da0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 ".............(deadgrep--button.
7dc0 22 61 66 74 65 72 22 20 27 64 65 61 64 67 72 65 70 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 "after".'deadgrep-context.......
7de0 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 63 6f 6e 74 65 78 74 ........................'context
7e00 20 27 61 66 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 61 64 67 72 65 .'after).............(if.deadgre
7e20 70 2d 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d p--context.................(form
7e40 61 74 20 22 3a 25 64 22 20 28 63 64 72 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 29 at.":%d".(cdr.deadgrep--context)
7e60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 )..............."").............
7e80 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 ."\n\n".............(propertize.
7ea0 22 44 69 72 65 63 74 6f 72 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "Directory:."...................
7ec0 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 29 ......'face.'deadgrep-meta-face)
7ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 0a 20 .............(deadgrep--button..
7f00 20 20 20 20 20 20 20 20 20 20 20 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d ............(abbreviate-file-nam
7f20 65 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 e.default-directory)............
7f40 20 20 27 64 65 61 64 67 72 65 70 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 ..'deadgrep-directory)..........
7f60 20 20 20 28 69 66 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 30 20 27 64 65 61 ...(if.(get-text-property.0.'dea
7f80 64 67 72 65 70 2d 6f 76 65 72 72 69 64 64 65 6e 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f dgrep-overridden.default-directo
7fa0 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 ry).................(propertize.
7fc0 22 20 28 66 72 6f 6d 20 6f 76 65 72 72 69 64 65 29 22 20 27 66 61 63 65 20 27 64 65 61 64 67 72 ".(from.override)".'face.'deadgr
7fe0 65 70 2d 6d 65 74 61 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a ep-meta-face)..............."").
8000 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 ............"\n".............(pr
8020 6f 70 65 72 74 69 7a 65 20 22 46 69 6c 65 73 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 opertize."Files:."..............
8040 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d ...........'face.'deadgrep-meta-
8060 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 64 65 61 64 67 72 face).............(if.(eq.deadgr
8080 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ep--file-type.'all).............
80a0 20 20 20 20 22 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 ...."all"...............(deadgre
80c0 70 2d 2d 62 75 74 74 6f 6e 20 22 61 6c 6c 22 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 2d 74 p--button."all".'deadgrep-file-t
80e0 79 70 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 20 20 20 20 20 ype.............................
8100 20 20 20 20 27 66 69 6c 65 2d 74 79 70 65 20 27 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 ....'file-type.'all))...........
8120 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 ..".".............(deadgrep--but
8140 74 6f 6e 20 22 74 79 70 65 22 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 2d 74 79 70 65 0a 20 ton."type".'deadgrep-file-type..
8160 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 27 66 69 .............................'fi
8180 6c 65 2d 74 79 70 65 20 27 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 le-type.'type).............(if.(
81a0 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 eq.(car-safe.deadgrep--file-type
81c0 29 20 27 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 ).'type).................(format
81e0 20 22 3a 25 73 22 20 28 63 64 72 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 .":%s".(cdr.deadgrep--file-type)
8200 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 )..............."").............
8220 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f ".".............(deadgrep--butto
8240 6e 20 22 67 6c 6f 62 22 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 2d 74 79 70 65 0a 20 20 20 n."glob".'deadgrep-file-type....
8260 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 27 66 69 6c 65 ...........................'file
8280 2d 74 79 70 65 20 27 67 6c 6f 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 -type.'glob).............(if.(eq
82a0 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 20 .(car-safe.deadgrep--file-type).
82c0 27 67 6c 6f 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 'glob).................(format."
82e0 3a 25 73 22 20 28 63 64 72 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 29 0a :%s".(cdr.deadgrep--file-type)).
8300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c .............."")............."\
8320 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 53 6b 69 70 n".............(propertize."Skip
8340 3a 20 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 27 66 61 63 :.".........................'fac
8360 65 20 27 64 65 61 64 67 72 65 70 2d 6d 65 74 61 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 e.'deadgrep-meta-face)..........
8380 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e 20 22 64 6f 74 66 69 6c 65 73 22 20 ...(deadgrep--button."dotfiles".
83a0 27 64 65 61 64 67 72 65 70 2d 73 6b 69 70 2d 68 69 64 64 65 6e 2d 74 79 70 65 29 0a 20 20 20 20 'deadgrep-skip-hidden-type).....
83c0 20 20 20 20 20 20 20 20 28 69 66 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 ........(if.deadgrep--skip-if-hi
83e0 64 64 65 6e 20 22 3a 79 65 73 22 20 22 3a 6e 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 dden.":yes".":no")............."
8400 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 74 74 6f 6e .".............(deadgrep--button
8420 20 22 2e 67 69 74 69 67 6e 6f 72 65 20 69 74 65 6d 73 22 20 27 64 65 61 64 67 72 65 70 2d 76 63 .".gitignore.items".'deadgrep-vc
8440 73 2d 73 6b 69 70 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 61 s-skip-type).............(if.dea
8460 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 20 22 3a 79 65 73 22 dgrep--skip-if-vcs-ignore.":yes"
8480 20 22 3a 6e 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 .":no")............."\n\n").....
84a0 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 73 74 61 72 74 2d 70 6f (put-text-property......start-po
84c0 73 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 27 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 s.(point)......'read-only.t)....
84e0 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 73 74 61 72 74 2d 70 .(put-text-property......start-p
8500 6f 73 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 27 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 74 29 os.(point)......'front-sticky.t)
8520 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 63 6f 75 6c 64 20 77 65 20 64 6f 20 74 68 69 73 20 69 6e ))..;;.TODO:.could.we.do.this.in
8540 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 74 6f 6f 3f 0a 28 64 65 66 75 6e 20 64 65 61 64 .the.minibuffer.too?.(defun.dead
8560 67 72 65 70 2d 2d 70 72 6f 70 65 72 74 69 7a 65 2d 72 65 67 65 78 70 20 28 72 65 67 65 78 70 29 grep--propertize-regexp.(regexp)
8580 0a 20 20 22 47 69 76 65 6e 20 61 20 73 74 72 69 6e 67 20 52 45 47 45 58 50 20 72 65 70 72 65 73 ..."Given.a.string.REGEXP.repres
85a0 65 6e 74 69 6e 67 20 61 20 73 65 61 72 63 68 20 74 65 72 6d 20 77 69 74 68 20 72 65 67 75 6c 61 enting.a.search.term.with.regula
85c0 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61 78 2c 20 68 69 67 68 6c 69 67 68 74 20 74 r.expression.syntax,.highlight.t
85e0 68 65 20 6d 65 74 61 63 68 61 72 61 63 74 65 72 73 2e 0a 52 65 74 75 72 6e 73 20 61 20 63 6f 70 he.metacharacters..Returns.a.cop
8600 79 20 6f 66 20 52 45 47 45 58 50 20 77 69 74 68 20 70 72 6f 70 65 72 74 69 65 73 20 73 65 74 2e y.of.REGEXP.with.properties.set.
8620 22 0a 20 20 28 73 65 74 71 20 72 65 67 65 78 70 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 "...(setq.regexp.(copy-sequence.
8640 72 65 67 65 78 70 29 29 0a 0a 20 20 3b 3b 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e regexp))....;;.See.https://docs.
8660 72 73 2f 72 65 67 65 78 2f 31 2e 30 2e 30 2f 72 65 67 65 78 2f 23 73 79 6e 74 61 78 0a 20 20 28 rs/regex/1.0.0/regex/#syntax...(
8680 6c 65 74 20 28 28 6d 65 74 61 63 68 61 72 73 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 61 72 let.((metachars..........;;.Char
86a0 61 63 74 65 72 73 20 74 68 61 74 20 64 6f 6e 27 74 20 6d 61 74 63 68 20 74 68 65 6d 73 65 6c 76 acters.that.don't.match.themselv
86c0 65 73 2e 0a 20 20 20 20 20 20 20 20 20 27 28 3f 5c 28 20 3f 5c 29 20 3f 5c 5b 20 3f 5c 5d 20 3f es...........'(?\(.?\).?\[.?\].?
86e0 5c 7b 20 3f 5c 7d 20 3f 7c 20 3f 2e 20 3f 2b 20 3f 2a 20 3f 3f 20 3f 5e 20 3f 24 29 29 0a 20 20 \{.?\}.?|.?..?+.?*.??.?^.?$))...
8700 20 20 20 20 20 20 3b 3b 20 43 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 68 61 76 65 20 73 70 ......;;.Characters.that.have.sp
8720 65 63 69 61 6c 20 72 65 67 65 78 70 20 6d 65 61 6e 69 6e 67 20 77 68 65 6e 20 70 72 65 63 65 64 ecial.regexp.meaning.when.preced
8740 65 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 69 74 68 20 61 20 62 61 63 6b 73 6c 61 73 68 2e 20 ed.........;;.with.a.backslash..
8760 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 5c 62 20 62 75 74 This.includes.things.like.\b.but
8780 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 6e 67 73 20 6c 69 6b 65 20 5c 6e 2e 0a .not.........;;.things.like.\n..
87a0 20 20 20 20 20 20 20 20 28 65 73 63 61 70 65 2d 6d 65 74 61 63 68 61 72 73 0a 20 20 20 20 20 20 ........(escape-metachars.......
87c0 20 20 20 27 28 3f 41 20 3f 62 20 3f 42 20 3f 64 20 3f 44 20 3f 70 20 3f 73 20 3f 53 20 3f 77 20 ...'(?A.?b.?B.?d.?D.?p.?s.?S.?w.
87e0 3f 57 20 3f 7a 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 63 68 61 72 20 6e 69 6c 29 29 ?W.?z)).........(prev-char.nil))
8800 0a 20 20 20 20 3b 3b 20 50 75 74 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 73 65 61 72 63 68 20 .....;;.Put.the.standard.search.
8820 74 65 72 6d 20 66 61 63 65 20 6f 6e 20 65 76 65 72 79 20 63 68 61 72 61 63 74 65 72 0a 20 20 20 term.face.on.every.character....
8840 20 3b 3b 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 2e 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 .;;.individually......(dotimes.(
8860 69 20 28 6c 65 6e 67 74 68 20 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 28 70 75 74 2d 74 65 i.(length.regexp)).......(put-te
8880 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 69 20 28 31 2b 20 69 29 0a 20 20 20 20 xt-property........i.(1+.i).....
88a0 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 73 65 61 72 63 68 2d 74 65 72 6d 2d 66 ...'face.'deadgrep-search-term-f
88c0 61 63 65 0a 20 20 20 20 20 20 20 72 65 67 65 78 70 29 29 0a 20 20 20 20 3b 3b 20 50 75 74 20 74 ace........regexp)).....;;.Put.t
88e0 68 65 20 6d 65 74 61 63 68 61 72 61 63 74 65 72 20 66 61 63 65 20 6f 6e 20 61 6e 79 20 63 68 61 he.metacharacter.face.on.any.cha
8900 72 61 63 74 65 72 20 74 68 61 74 20 69 73 6e 27 74 20 74 72 65 61 74 65 64 0a 20 20 20 20 3b 3b racter.that.isn't.treated.....;;
8920 20 6c 69 74 65 72 61 6c 6c 79 2e 0a 20 20 20 20 28 2d 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 20 .literally......(--each-indexed.
8940 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 28 63 (string-to-list.regexp).......(c
8960 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 48 69 67 68 6c 69 67 68 74 20 65 76 65 72 79 74 68 69 ond........;;.Highlight.everythi
8980 6e 67 20 62 65 74 77 65 65 6e 20 7b 20 61 6e 64 20 7d 2e 0a 20 20 20 20 20 20 20 28 28 61 6e 64 ng.between.{.and.}.........((and
89a0 20 28 65 71 20 69 74 20 3f 5c 7b 29 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 70 72 65 76 2d 63 68 .(eq.it.?\{).(not.(equal.prev-ch
89c0 61 72 20 3f 5c 5c 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6c 6f 73 69 6e 67 ar.?\\))).........(let.((closing
89e0 2d 70 6f 73 20 69 74 2d 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 -pos.it-index))...........;;.TOD
8a00 4f 3a 20 77 65 20 68 61 76 65 20 6c 6f 6f 70 73 20 6c 69 6b 65 20 74 68 69 73 20 69 6e 20 73 65 O:.we.have.loops.like.this.in.se
8a20 76 65 72 61 6c 20 70 6c 61 63 65 73 2c 20 66 61 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 3b veral.places,.factor...........;
8a40 3b 20 6f 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 3c 20 ;.out............(while.(and.(<.
8a60 63 6c 6f 73 69 6e 67 2d 70 6f 73 20 28 6c 65 6e 67 74 68 20 72 65 67 65 78 70 29 29 0a 20 20 20 closing-pos.(length.regexp))....
8a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 65 6c 74 ...................(not.(eq.(elt
8aa0 20 72 65 67 65 78 70 20 63 6c 6f 73 69 6e 67 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 .regexp.closing-pos)............
8ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 5c 7d 29 29 29 0a 20 20 20 20 20 ....................?\})))......
8ae0 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 63 6c 6f 73 69 6e 67 2d 70 6f 73 29 29 0a 20 20 .......(cl-incf.closing-pos))...
8b00 20 20 20 20 20 20 20 20 3b 3b 20 53 74 65 70 20 6f 76 65 72 20 74 68 65 20 63 6c 6f 73 69 6e 67 ........;;.Step.over.the.closing
8b20 20 7d 2c 20 69 66 20 77 65 20 66 6f 75 6e 64 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 .},.if.we.found.one............(
8b40 75 6e 6c 65 73 73 20 28 3d 20 63 6c 6f 73 69 6e 67 2d 70 6f 73 20 28 6c 65 6e 67 74 68 20 72 65 unless.(=.closing-pos.(length.re
8b60 67 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 63 6c 6f 73 gexp)).............(cl-incf.clos
8b80 69 6e 67 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 ing-pos))...........(put-text-pr
8ba0 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 69 74 2d 69 6e 64 65 78 20 63 6c 6f 73 69 operty............it-index.closi
8bc0 6e 67 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 0a 20 20 20 20 20 20 20 20 ng-pos............'face.........
8be0 20 20 20 27 64 65 61 64 67 72 65 70 2d 72 65 67 65 78 70 2d 6d 65 74 61 63 68 61 72 2d 66 61 63 ...'deadgrep-regexp-metachar-fac
8c00 65 0a 20 20 20 20 20 20 20 20 20 20 20 72 65 67 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 3b 3b e............regexp)))........;;
8c20 20 48 69 67 68 6c 69 67 68 74 20 69 6e 64 69 76 69 64 75 61 6c 20 6d 65 74 61 63 68 61 72 73 2e .Highlight.individual.metachars.
8c40 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6d 65 6d 71 20 69 74 20 6d 65 74 61 63 68 61 72 73 ........((and.(memq.it.metachars
8c60 29 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 70 72 65 76 2d 63 68 61 72 20 3f 5c 5c 29 29 29 0a 20 ).(not.(equal.prev-char.?\\)))..
8c80 20 20 20 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 .......(put-text-property.......
8ca0 20 20 20 69 74 2d 69 6e 64 65 78 20 28 31 2b 20 69 74 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 ...it-index.(1+.it-index).......
8cc0 20 20 20 27 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 27 64 65 61 64 67 72 65 70 2d 72 65 67 65 ...'face..........'deadgrep-rege
8ce0 78 70 2d 6d 65 74 61 63 68 61 72 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 72 65 67 65 78 70 xp-metachar-face..........regexp
8d00 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6d 65 6d 71 20 69 74 20 65 73 63 61 70 65 2d ))........((and.(memq.it.escape-
8d20 6d 65 74 61 63 68 61 72 73 29 20 28 65 71 75 61 6c 20 70 72 65 76 2d 63 68 61 72 20 3f 5c 5c 29 metachars).(equal.prev-char.?\\)
8d40 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 79 0a 20 20 20 ).........(put-text-property....
8d60 20 20 20 20 20 20 28 31 2d 20 69 74 2d 69 6e 64 65 78 29 20 28 31 2b 20 69 74 2d 69 6e 64 65 78 ......(1-.it-index).(1+.it-index
8d80 29 0a 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 72 65 67 65 78 )..........'face.'deadgrep-regex
8da0 70 2d 6d 65 74 61 63 68 61 72 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 72 65 67 65 78 70 29 p-metachar-face..........regexp)
8dc0 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 63 68 61 72 20 69 74 29 29 29 0a ))........(setq.prev-char.it))).
8de0 20 20 72 65 67 65 78 70 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 ..regexp)..(defun.deadgrep--buff
8e00 65 72 2d 6e 61 6d 65 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 64 69 72 65 63 74 6f 72 79 29 0a er-name.(search-term.directory).
8e20 20 20 28 66 6f 72 6d 61 74 20 22 2a 64 65 61 64 67 72 65 70 20 25 73 20 25 73 2a 22 0a 20 20 20 ..(format."*deadgrep.%s.%s*"....
8e40 20 20 20 20 20 20 20 28 73 2d 74 72 75 6e 63 61 74 65 20 33 30 20 73 65 61 72 63 68 2d 74 65 72 .......(s-truncate.30.search-ter
8e60 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 m)...........(abbreviate-file-na
8e80 6d 65 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 me.directory)))..(defun.deadgrep
8ea0 2d 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 41 6c 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 --buffers.()..."All.the.current.
8ec0 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 73 2e 0a 52 65 74 75 72 6e deadgrep.results.buffers..Return
8ee0 73 20 61 20 6c 69 73 74 20 6f 72 64 65 72 65 64 20 62 79 20 74 68 65 20 6d 6f 73 74 20 72 65 63 s.a.list.ordered.by.the.most.rec
8f00 65 6e 74 6c 79 20 61 63 63 65 73 73 65 64 2e 22 0a 20 20 28 2d 2d 66 69 6c 74 65 72 20 28 77 69 ently.accessed."...(--filter.(wi
8f20 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 th-current-buffer.it............
8f40 20 20 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 ...(eq.major-mode.'deadgrep-mode
8f60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 62 75 66 66 65 72 2d 6c 69 73 74 27 20 )).............;;.`buffer-list'.
8f80 73 65 65 6d 73 20 74 6f 20 62 65 20 6f 72 64 65 72 65 64 20 62 79 20 6d 6f 73 74 20 72 65 63 65 seems.to.be.ordered.by.most.rece
8fa0 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76 69 73 69 74 65 64 20 66 69 72 73 ntly.............;;.visited.firs
8fc0 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 0a 0a t..............(buffer-list)))..
8fe0 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 20 28 73 65 61 72 63 68 2d (defun.deadgrep--buffer.(search-
9000 74 65 72 6d 20 64 69 72 65 63 74 6f 72 79 20 69 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 29 term.directory.initial-filename)
9020 0a 20 20 22 43 72 65 61 74 65 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 73 65 20 61 20 73 65 61 72 ..."Create.and.initialise.a.sear
9040 63 68 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 ch.results.buffer."...(let*.((bu
9060 66 2d 6e 61 6d 65 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 73 65 f-name.(deadgrep--buffer-name.se
9080 61 72 63 68 2d 74 65 72 6d 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 arch-term.directory))..........(
90a0 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 buf.(get-buffer.buf-name))).....
90c0 28 69 66 20 62 75 66 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 72 65 20 77 61 73 20 61 6c 72 (if.buf.........;;.There.was.alr
90e0 65 61 64 79 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 69 73 20 6e 61 6d 65 2e 20 52 65 eady.a.buffer.with.this.name..Re
9100 73 65 74 20 69 74 73 20 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 74 61 74 65 2e set.its.search.........;;.state.
9120 0a 20 20 20 20 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 62 75 .........(with-current-buffer.bu
9140 66 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 74 6f 70 2d 61 6e 64 2d f...........(deadgrep--stop-and-
9160 72 65 73 65 74 29 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 6e 65 65 64 20 74 6f 20 63 72 65 61 reset)).......;;.We.need.to.crea
9180 74 65 20 74 68 65 20 62 75 66 66 65 72 2c 20 65 6e 73 75 72 65 20 77 65 20 64 6f 6e 27 74 20 65 te.the.buffer,.ensure.we.don't.e
91a0 78 63 65 65 64 0a 20 20 20 20 20 20 3b 3b 20 60 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 62 75 66 xceed.......;;.`deadgrep-max-buf
91c0 66 65 72 73 27 20 62 79 20 6b 69 6c 6c 69 6e 67 20 74 68 65 20 6c 65 61 73 74 20 72 65 63 65 6e fers'.by.killing.the.least.recen
91e0 74 6c 79 20 75 73 65 64 2e 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 tly.used........(progn.........(
9200 77 68 65 6e 20 28 6e 75 6d 62 65 72 70 20 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 62 75 66 66 65 when.(numberp.deadgrep-max-buffe
9220 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 65 78 63 65 73 73 2d 62 75 66 rs)...........(let*.((excess-buf
9240 66 65 72 73 20 28 2d 64 72 6f 70 20 28 31 2d 20 64 65 61 64 67 72 65 70 2d 6d 61 78 2d 62 75 66 fers.(-drop.(1-.deadgrep-max-buf
9260 66 65 72 73 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 fers)...........................
9280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 73 ..............(deadgrep--buffers
92a0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4b 69 6c 6c 20 62 75 66 66 65 72 73 )))).............;;.Kill.buffers
92c0 20 73 6f 20 77 65 20 68 61 76 65 20 6f 6e 65 20 62 75 66 66 65 72 20 6c 65 73 73 20 74 68 61 6e .so.we.have.one.buffer.less.than
92e0 20 74 68 65 20 6d 61 78 69 6d 75 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f .the.maximum.............;;.befo
9300 72 65 20 77 65 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 re.we.create.a.new.one..........
9320 20 20 20 20 28 2d 65 61 63 68 20 65 78 63 65 73 73 2d 62 75 66 66 65 72 73 20 23 27 6b 69 6c 6c ....(-each.excess-buffers.#'kill
9340 2d 62 75 66 66 65 72 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 20 28 67 -buffer)))..........(setq.buf.(g
9360 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 62 75 66 2d 6e 61 6d 65 29 29 29 29 0a 0a 20 et-buffer-create.buf-name))))...
9380 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 ...(with-current-buffer.buf.....
93a0 20 20 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 ..(setq.default-directory.direct
93c0 6f 72 79 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f ory).......(let.((inhibit-read-o
93e0 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 6e 65 65 64 73 20 74 6f nly.t)).........;;.This.needs.to
9400 20 68 61 70 70 65 6e 20 66 69 72 73 74 2c 20 61 73 20 69 74 20 63 6c 6f 62 62 65 72 73 20 61 6c .happen.first,.as.it.clobbers.al
9420 6c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 l.buffer-local.........;;.variab
9440 6c 65 73 2e 0a 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 29 0a 20 20 20 les..........(deadgrep-mode)....
9460 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 0a 20 20 20 20 20 20 20 20 28 73 65 .....(erase-buffer)..........(se
9480 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 73 65 61 72 63 68 2d tq.deadgrep--search-term.search-
94a0 74 65 72 6d 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 63 75 term).........(setq.deadgrep--cu
94c0 72 72 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 rrent-file.nil).........(setq.de
94e0 61 64 67 72 65 70 2d 2d 69 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 20 69 6e 69 74 69 61 6c adgrep--initial-filename.initial
9500 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 -filename)).......(setq.buffer-r
9520 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 62 75 66 29 29 0a 0a 28 64 65 66 75 6e 20 64 ead-only.t)).....buf))..(defun.d
9540 65 61 64 67 72 65 70 2d 63 79 63 6c 65 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 43 79 63 6c 65 20 eadgrep-cycle-files.()..."Cycle.
9560 77 68 69 63 68 20 66 69 6c 65 73 20 61 72 65 20 73 65 61 72 63 68 65 64 20 28 61 6c 6c 20 2f 20 which.files.are.searched.(all./.
9580 74 79 70 65 20 2f 20 67 6c 6f 62 29 20 61 6e 64 20 72 65 73 74 61 72 74 20 74 68 65 20 73 65 61 type./.glob).and.restart.the.sea
95a0 72 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 rch."...(interactive)...(cond...
95c0 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 61 6c 6c 29 0a .((eq.deadgrep--file-type.'all).
95e0 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 0a 20 20 ....(setq.deadgrep--file-type...
9600 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 74 79 70 65 20 28 64 65 61 64 67 72 65 70 2d 2d 72 ........(cons.'type.(deadgrep--r
9620 65 61 64 2d 66 69 6c 65 2d 74 79 70 65 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 69 74 69 61 6c 2d ead-file-type.deadgrep--initial-
9640 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 28 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 filename))))....((eq.(car-safe.d
9660 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 29 20 27 74 79 70 65 29 0a 20 20 20 20 28 eadgrep--file-type).'type).....(
9680 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 28 63 6f 6e 73 20 27 setq.deadgrep--file-type.(cons.'
96a0 67 6c 6f 62 20 28 64 65 61 64 67 72 65 70 2d 2d 72 65 61 64 2d 66 69 6c 65 2d 67 6c 6f 62 29 29 glob.(deadgrep--read-file-glob))
96c0 29 29 0a 20 20 20 28 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 64 65 61 64 67 72 65 70 2d 2d 66 ))....((eq.(car-safe.deadgrep--f
96e0 69 6c 65 2d 74 79 70 65 29 20 27 67 6c 6f 62 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 ile-type).'glob).....(setq.deadg
9700 72 65 70 2d 2d 66 69 6c 65 2d 74 79 70 65 20 27 61 6c 6c 29 29 29 0a 20 20 28 64 65 61 64 67 72 rep--file-type.'all)))...(deadgr
9720 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 63 79 ep-restart))..(defun.deadgrep-cy
9740 63 6c 65 2d 73 65 61 72 63 68 2d 74 79 70 65 20 28 29 0a 20 20 22 43 79 63 6c 65 20 74 68 65 20 cle-search-type.()..."Cycle.the.
9760 73 65 61 72 63 68 20 74 79 70 65 20 28 73 74 72 69 6e 67 20 2f 20 77 6f 72 64 73 20 2f 20 72 65 search.type.(string./.words./.re
9780 67 65 78 70 29 20 61 6e 64 20 72 65 73 74 61 72 74 20 74 68 65 20 73 65 61 72 63 68 2e 22 0a 20 gexp).and.restart.the.search."..
97a0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 65 71 20 64 .(interactive)...(cond....((eq.d
97c0 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 73 74 72 69 6e 67 29 20 28 73 eadgrep--search-type.'string).(s
97e0 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 77 6f 72 64 73 etq.deadgrep--search-type.'words
9800 29 29 0a 20 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 ))....((eq.deadgrep--search-type
9820 20 27 77 6f 72 64 73 29 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d .'words).(setq.deadgrep--search-
9840 74 79 70 65 20 27 72 65 67 65 78 70 29 29 0a 20 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d type.'regexp))....((eq.deadgrep-
9860 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 72 65 67 65 78 70 29 20 28 73 65 74 71 20 64 65 61 64 -search-type.'regexp).(setq.dead
9880 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 20 27 73 74 72 69 6e 67 29 29 29 0a 20 20 28 grep--search-type.'string)))...(
98a0 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 deadgrep-restart))..(defun.deadg
98c0 72 65 70 2d 63 79 63 6c 65 2d 73 65 61 72 63 68 2d 63 61 73 65 20 28 29 0a 20 20 22 43 79 63 6c rep-cycle-search-case.()..."Cycl
98e0 65 20 74 68 65 20 73 65 61 72 63 68 20 63 61 73 65 20 28 73 6d 61 72 74 20 2f 20 73 65 6e 73 69 e.the.search.case.(smart./.sensi
9900 74 69 76 65 20 2f 20 69 67 6e 6f 72 65 29 20 61 6e 64 20 72 65 73 74 61 72 74 20 74 68 65 20 73 tive./.ignore).and.restart.the.s
9920 65 61 72 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a earch."...(interactive)...(cond.
9940 20 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 27 73 ...((eq.deadgrep--search-case.'s
9960 6d 61 72 74 29 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 mart).(setq.deadgrep--search-cas
9980 65 20 27 73 65 6e 73 69 74 69 76 65 29 29 0a 20 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d e.'sensitive))....((eq.deadgrep-
99a0 2d 73 65 61 72 63 68 2d 63 61 73 65 20 27 73 65 6e 73 69 74 69 76 65 29 20 28 73 65 74 71 20 64 -search-case.'sensitive).(setq.d
99c0 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 27 69 67 6e 6f 72 65 29 29 0a 20 eadgrep--search-case.'ignore))..
99e0 20 20 28 28 65 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 27 69 67 ..((eq.deadgrep--search-case.'ig
9a00 6e 6f 72 65 29 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 nore).(setq.deadgrep--search-cas
9a20 65 20 27 73 6d 61 72 74 29 29 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 e.'smart)))...(deadgrep-restart)
9a40 29 0a 0a 28 64 65 66 76 61 72 20 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 )..(defvar.deadgrep-mode-map...(
9a60 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 let.((map.(make-sparse-keymap)))
9a80 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 .....(define-key.map.(kbd."RET")
9aa0 20 23 27 64 65 61 64 67 72 65 70 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 29 0a 20 20 20 20 28 64 .#'deadgrep-visit-result).....(d
9ac0 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6f 22 29 20 23 27 64 65 61 64 67 72 efine-key.map.(kbd."o").#'deadgr
9ae0 65 70 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 ep-visit-result-other-window)...
9b00 20 20 3b 3b 20 54 4f 44 4f 3a 20 77 65 20 73 68 6f 75 6c 64 20 73 74 69 6c 6c 20 62 65 20 61 62 ..;;.TODO:.we.should.still.be.ab
9b20 6c 65 20 74 6f 20 63 6c 69 63 6b 20 6f 6e 20 62 75 74 74 6f 6e 73 2e 0a 0a 20 20 20 20 28 64 65 le.to.click.on.buttons.......(de
9b40 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 22 29 20 23 27 64 65 61 64 67 72 65 fine-key.map.(kbd."S").#'deadgre
9b60 70 2d 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d p-search-term).....(define-key.m
9b80 61 70 20 28 6b 62 64 20 22 54 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 63 79 63 6c 65 2d 73 65 ap.(kbd."T").#'deadgrep-cycle-se
9ba0 61 72 63 68 2d 74 79 70 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 arch-type).....(define-key.map.(
9bc0 6b 62 64 20 22 43 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 63 79 63 6c 65 2d 73 65 61 72 63 68 kbd."C").#'deadgrep-cycle-search
9be0 2d 63 61 73 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 -case).....(define-key.map.(kbd.
9c00 22 46 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 63 79 63 6c 65 2d 66 69 6c 65 73 29 0a 20 20 20 "F").#'deadgrep-cycle-files)....
9c20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 44 22 29 20 23 27 64 65 61 .(define-key.map.(kbd."D").#'dea
9c40 64 67 72 65 70 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 dgrep-directory).....(define-key
9c60 20 6d 61 70 20 28 6b 62 64 20 22 5e 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 70 61 72 65 6e 74 .map.(kbd."^").#'deadgrep-parent
9c80 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 -directory).....(define-key.map.
9ca0 28 6b 62 64 20 22 67 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 0a 20 20 (kbd."g").#'deadgrep-restart)...
9cc0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 49 22 29 20 23 27 64 65 ..(define-key.map.(kbd."I").#'de
9ce0 61 64 67 72 65 70 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 29 0a 0a 20 20 20 20 3b 3b 20 54 4f 44 4f adgrep-incremental)......;;.TODO
9d00 3a 20 74 68 69 73 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20 77 68 65 6e 20 70 6f 69 6e 74 20 69 73 :.this.should.work.when.point.is
9d20 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65 20 66 69 6c 65 2c 20 6e 6f 74 0a 20 20 20 20 3b .anywhere.in.the.file,.not.....;
9d40 3b 20 6a 75 73 74 20 6f 6e 20 69 74 73 20 68 65 61 64 69 6e 67 2e 0a 20 20 20 20 28 64 65 66 69 ;.just.on.its.heading......(defi
9d60 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 54 41 42 22 29 20 23 27 64 65 61 64 67 72 65 ne-key.map.(kbd."TAB").#'deadgre
9d80 70 2d 74 6f 67 67 6c 65 2d 66 69 6c 65 2d 72 65 73 75 6c 74 73 29 0a 20 20 20 20 28 64 65 66 69 p-toggle-file-results).....(defi
9da0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 2d 43 2d 69 22 29 20 23 27 64 65 61 64 67 ne-key.map.(kbd."S-C-i").#'deadg
9dc0 72 65 70 2d 74 6f 67 67 6c 65 2d 61 6c 6c 2d 66 69 6c 65 2d 72 65 73 75 6c 74 73 29 0a 20 20 20 rep-toggle-all-file-results)....
9de0 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e .(define-key.map.(kbd."<backtab>
9e00 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 74 6f 67 67 6c 65 2d 61 6c 6c 2d 66 69 6c 65 2d 72 65 ").#'deadgrep-toggle-all-file-re
9e20 73 75 6c 74 73 29 0a 0a 20 20 20 20 3b 3b 20 4b 65 79 62 69 6e 64 69 6e 67 20 63 68 6f 73 65 6e sults)......;;.Keybinding.chosen
9e40 20 74 6f 20 6d 61 74 63 68 20 60 6b 69 6c 6c 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 2e 0a 20 20 .to.match.`kill-compilation'....
9e60 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6b 22 ..(define-key.map.(kbd."C-c.C-k"
9e80 29 20 23 27 64 65 61 64 67 72 65 70 2d 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 29 0a 0a 20 20 20 20 ).#'deadgrep-kill-process)......
9ea0 3b 3b 20 4b 65 79 62 69 6e 64 69 6e 67 20 63 68 6f 73 65 6e 20 74 6f 20 6d 61 74 63 68 20 6f 74 ;;.Keybinding.chosen.to.match.ot
9ec0 68 65 72 20 74 6f 6f 6c 73 2c 20 69 6e 63 6c 75 64 69 6e 67 20 60 72 65 61 64 2d 6f 6e 6c 79 2d her.tools,.including.`read-only-
9ee0 6d 6f 64 65 27 2e 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 mode'......(define-key.map.(kbd.
9f00 22 43 2d 78 20 43 2d 71 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 29 "C-x.C-q").#'deadgrep-edit-mode)
9f20 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6e 22 29 20 ......(define-key.map.(kbd."n").
9f40 23 27 64 65 61 64 67 72 65 70 2d 66 6f 72 77 61 72 64 2d 6d 61 74 63 68 29 0a 20 20 20 20 28 64 #'deadgrep-forward-match).....(d
9f60 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 64 65 61 64 67 72 efine-key.map.(kbd."p").#'deadgr
9f80 65 70 2d 62 61 63 6b 77 61 72 64 2d 6d 61 74 63 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b ep-backward-match).....(define-k
9fa0 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 66 6f ey.map.(kbd."M-n").#'deadgrep-fo
9fc0 72 77 61 72 64 2d 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 rward-filename).....(define-key.
9fe0 6d 61 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 64 65 61 64 67 72 65 70 2d 62 61 63 6b 77 map.(kbd."M-p").#'deadgrep-backw
a000 61 72 64 2d 66 69 6c 65 6e 61 6d 65 29 0a 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 ard-filename)......map)..."Keyma
a020 70 20 66 6f 72 20 60 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 76 61 p.for.`deadgrep-mode'.")..(defva
a040 72 20 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 r.deadgrep-edit-mode-map...(let.
a060 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 ((map.(make-sparse-keymap)))....
a080 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20 23 27 64 .(define-key.map.(kbd."RET").#'d
a0a0 65 61 64 67 72 65 70 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 29 0a 20 20 20 20 28 64 65 66 69 6e eadgrep-visit-result).....(defin
a0c0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 63 22 29 20 23 27 64 65 61 64 e-key.map.(kbd."C-c.C-c").#'dead
a0e0 67 72 65 70 2d 6d 6f 64 65 29 20 3b 3b 20 65 78 69 74 20 65 64 69 74 20 6d 6f 64 65 0a 20 20 20 grep-mode).;;.exit.edit.mode....
a100 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 64 65 61 64 67 72 65 70 2d 65 64 .map)..."Keymap.for.`deadgrep-ed
a120 69 74 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 it-mode'.")..(define-derived-mod
a140 65 20 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 0a 20 20 27 e.deadgrep-mode.special-mode...'
a160 28 3a 65 76 61 6c 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 6f 64 65 2d 6c 69 6e 65 29 29 0a 20 20 (:eval.(deadgrep--mode-line))...
a180 22 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 73 "Major.mode.for.deadgrep.results
a1a0 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 61 66 74 65 72 .buffers."...(remove-hook.'after
a1c0 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 64 65 61 64 67 72 65 70 2d 2d 70 72 -change-functions.#'deadgrep--pr
a1e0 6f 70 61 67 61 74 65 2d 63 68 61 6e 67 65 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 opagate-change.t))..(defun.deadg
a200 72 65 70 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 28 70 61 74 68 29 0a 20 20 22 4f 70 65 6e 20 50 41 rep--find-file.(path)..."Open.PA
a220 54 48 20 69 6e 20 61 20 62 75 66 66 65 72 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 63 6f 6e TH.in.a.buffer,.and.return.a.con
a240 73 20 63 65 6c 6c 0a 5c 28 42 55 46 20 2e 20 4f 50 45 4e 45 44 29 2e 20 4f 50 45 4e 45 44 20 69 s.cell.\(BUF...OPENED)..OPENED.i
a260 73 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 20 61 6c 72 65 61 64 79 20 61 20 62 75 66 s.nil.if.there.was.already.a.buf
a280 66 65 72 20 66 6f 72 0a 74 68 69 73 20 70 61 74 68 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e fer.for.this.path."...(let*.((in
a2a0 69 74 69 61 6c 2d 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 0a 20 20 20 itial-buffers.(buffer-list))....
a2c0 20 20 20 20 20 20 28 6f 70 65 6e 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 53 ......(opened.nil)..........;;.S
a2e0 6b 69 70 20 72 75 6e 6e 69 6e 67 20 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 73 69 6e 63 65 kip.running.find-file-hook.since
a300 20 69 74 20 6d 61 79 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 2e 0a 20 20 20 20 20 20 20 .it.may.prompt.the.user.........
a320 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 ..(find-file-hook.nil)..........
a340 3b 3b 20 49 66 20 77 65 20 65 6e 64 20 75 70 20 6f 70 65 6e 69 6e 67 20 61 20 62 75 66 66 65 72 ;;.If.we.end.up.opening.a.buffer
a360 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 20 66 69 6c 65 0a 20 20 20 20 20 20 20 ,.don't.bother.with.file........
a380 20 20 3b 3b 20 76 61 72 69 61 62 6c 65 73 2e 20 49 74 20 70 72 6f 6d 70 74 73 20 74 68 65 20 75 ..;;.variables..It.prompts.the.u
a3a0 73 65 72 2c 20 61 6e 64 20 77 65 20 64 69 73 63 61 72 64 20 74 68 65 20 62 75 66 66 65 72 0a 20 ser,.and.we.discard.the.buffer..
a3c0 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 77 61 72 64 73 20 61 6e 79 77 61 79 2e 0a 20 20 ........;;.afterwards.anyway....
a3e0 20 20 20 20 20 20 20 28 65 6e 61 62 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 6e .......(enable-local-variables.n
a400 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 42 69 6e 64 20 60 61 75 74 6f 2d 6d 6f 64 65 2d il)..........;;.Bind.`auto-mode-
a420 61 6c 69 73 74 27 20 74 6f 20 6e 69 6c 2c 20 73 6f 20 77 65 20 6f 70 65 6e 20 74 68 65 20 62 75 alist'.to.nil,.so.we.open.the.bu
a440 66 66 65 72 20 69 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 60 66 75 6e 64 61 6d 65 6e 74 61 6c ffer.in..........;;.`fundamental
a460 2d 6d 6f 64 65 27 20 69 66 20 69 74 20 69 73 6e 27 74 20 61 6c 72 65 61 64 79 20 6f 70 65 6e 2e -mode'.if.it.isn't.already.open.
a480 0a 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 6e 69 6c 29 0a ..........(auto-mode-alist.nil).
a4a0 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 60 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c .........;;.Use.`find-file-nosel
a4c0 65 63 74 27 20 73 6f 20 77 65 20 73 74 69 6c 6c 20 64 65 63 6f 64 65 20 62 79 74 65 73 20 66 72 ect'.so.we.still.decode.bytes.fr
a4e0 6f 6d 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 75 6e 64 65 72 6c 79 69 6e 67 20 66 69 om.the..........;;.underlying.fi
a500 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 le...........(buf.(find-file-nos
a520 65 6c 65 63 74 20 70 61 74 68 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 2d 63 6f 6e 74 elect.path))).....(unless.(-cont
a540 61 69 6e 73 2d 70 20 69 6e 69 74 69 61 6c 2d 62 75 66 66 65 72 73 20 62 75 66 29 0a 20 20 20 20 ains-p.initial-buffers.buf).....
a560 20 20 28 73 65 74 71 20 6f 70 65 6e 65 64 20 74 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 62 75 66 ..(setq.opened.t)).....(cons.buf
a580 20 6f 70 65 6e 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 70 72 6f .opened)))..(defun.deadgrep--pro
a5a0 70 61 67 61 74 65 2d 63 68 61 6e 67 65 20 28 62 65 67 20 65 6e 64 20 6c 65 6e 67 74 68 29 0a 20 pagate-change.(beg.end.length)..
a5c0 20 22 52 65 70 65 61 74 20 74 68 65 20 6c 61 73 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 ."Repeat.the.last.modification.t
a5e0 6f 20 74 68 65 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 20 69 6e 20 74 68 65 0a 75 6e 64 65 o.the.results.buffer.in.the.unde
a600 72 6c 79 69 6e 67 20 66 69 6c 65 2e 22 0a 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 20 6e 65 76 rlying.file."...;;.We.should.nev
a620 65 72 20 62 65 20 63 61 6c 6c 65 64 20 6f 75 74 73 69 64 65 20 61 6e 20 65 64 69 74 20 62 75 66 er.be.called.outside.an.edit.buf
a640 66 65 72 2c 20 62 75 74 20 62 65 0a 20 20 3b 3b 20 64 65 66 65 6e 73 69 76 65 2e 20 42 75 67 67 fer,.but.be...;;.defensive..Bugg
a660 79 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 63 68 61 6e 67 65 20 68 6f 6f 6b 73 20 61 72 65 20 y.functions.in.change.hooks.are.
a680 70 61 69 6e 66 75 6c 2e 0a 20 20 28 77 68 65 6e 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 painful....(when.(eq.major-mode.
a6a0 27 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 61 76 65 2d 6d 'deadgrep-edit-mode).....(save-m
a6c0 61 72 6b 2d 61 6e 64 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 ark-and-excursion.......(goto-ch
a6e0 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 63 6f 6c 75 6d 6e 20 28 2b ar.beg).......(-let*.((column.(+
a700 20 28 6f 72 20 28 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 .(or.(deadgrep--current-column).
a720 30 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 6c 65 6e 67 0)..........................leng
a740 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 6e 61 6d 65 20 28 64 65 th))...............(filename.(de
a760 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 adgrep--filename))..............
a780 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 6c 69 6e 65 2d 6e 75 .(line-number.(deadgrep--line-nu
a7a0 6d 62 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 20 2e 20 6f 70 65 mber))...............((buf...ope
a7c0 6e 65 64 29 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 6e 61 ned).(deadgrep--find-file.filena
a7e0 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 65 64 20 28 62 75 me))...............(inserted.(bu
a800 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 ffer-substring.beg.end))).......
a820 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 ..(with-current-buffer.buf......
a840 20 20 20 20 20 28 73 61 76 65 2d 6d 61 72 6b 2d 61 6e 64 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 .....(save-mark-and-excursion...
a860 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 ..........(save-restriction.....
a880 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........(widen)...............
a8a0 28 67 6f 74 6f 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 (goto-char................(deadg
a8c0 72 65 70 2d 2d 62 75 66 66 65 72 2d 70 6f 73 69 74 69 6f 6e 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 rep--buffer-position.line-number
a8e0 20 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d .column))...............(delete-
a900 63 68 61 72 20 28 2d 20 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 char.(-.length))...............(
a920 69 6e 73 65 72 74 20 69 6e 73 65 72 74 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 insert.inserted)))...........;;.
a940 49 66 20 77 65 20 77 65 72 65 6e 27 74 20 76 69 73 69 74 69 6e 67 20 74 68 69 73 20 66 69 6c 65 If.we.weren't.visiting.this.file
a960 20 62 65 66 6f 72 65 2c 20 6a 75 73 74 20 73 61 76 65 20 69 74 20 61 6e 64 0a 20 20 20 20 20 20 .before,.just.save.it.and.......
a980 20 20 20 20 3b 3b 20 63 6c 6f 73 65 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e ....;;.close.it............(when
a9a0 20 6f 70 65 6e 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 73 69 63 2d 73 61 76 65 2d .opened.............(basic-save-
a9c0 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 buffer).............(kill-buffer
a9e0 20 62 75 66 29 29 29 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 64 65 61 64 67 72 65 70 .buf)))))))..(defcustom.deadgrep
aa00 2d 65 64 69 74 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 43 61 6c 6c 65 64 20 61 66 -edit-mode-hook.nil..."Called.af
aa20 74 65 72 20 60 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 27 20 69 73 20 74 75 72 6e ter.`deadgrep-edit-mode'.is.turn
aa40 65 64 20 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 ed.on."...:type.'hook...:group.'
aa60 64 65 61 64 67 72 65 70 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d deadgrep)..(defun.deadgrep-edit-
aa80 6d 6f 64 65 20 28 29 0a 20 20 22 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 65 64 69 74 69 6e mode.()..."Major.mode.for.editin
aaa0 67 20 74 68 65 20 72 65 73 75 6c 74 73 20 66 69 6c 65 73 20 64 69 72 65 63 74 6c 79 20 66 72 6f g.the.results.files.directly.fro
aac0 6d 20 61 0a 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 2e 0a 0a 5c 5c m.a.deadgrep.results.buffer...\\
aae0 7b 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 28 69 6e 74 {deadgrep-edit-mode-map}"...(int
ab00 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f eractive)...(unless.(eq.major-mo
ab20 64 65 20 27 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 de.'deadgrep-mode).....(user-err
ab40 6f 72 20 22 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 20 6f 6e 6c 79 20 77 6f 72 6b or."deadgrep-edit-mode.only.work
ab60 73 20 69 6e 20 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 20 62 75 66 66 65 72 73 22 29 29 0a s.in.deadgrep.result.buffers")).
ab80 20 20 28 77 68 65 6e 20 64 65 61 64 67 72 65 70 2d 2d 72 75 6e 6e 69 6e 67 0a 20 20 20 20 28 75 ..(when.deadgrep--running.....(u
aba0 73 65 72 2d 65 72 72 6f 72 20 22 43 61 6e 27 74 20 65 64 69 74 20 61 20 72 65 73 75 6c 74 73 20 ser-error."Can't.edit.a.results.
abc0 62 75 66 66 65 72 20 75 6e 74 69 6c 20 74 68 65 20 73 65 61 72 63 68 20 69 73 20 66 69 6e 69 73 buffer.until.the.search.is.finis
abe0 68 65 64 22 29 29 0a 20 20 3b 3b 20 57 65 20 64 65 6c 69 62 65 72 61 74 65 6c 79 20 64 6f 6e 27 hed"))...;;.We.deliberately.don'
ac00 74 20 75 73 65 20 60 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 27 20 68 65 72 65 t.use.`define-derived-mode'.here
ac20 20 62 65 63 61 75 73 65 20 77 65 0a 20 20 3b 3b 20 77 61 6e 74 20 74 6f 20 63 68 65 63 6b 20 74 .because.we...;;.want.to.check.t
ac40 68 65 20 70 72 65 76 69 6f 75 73 20 76 61 6c 75 65 20 6f 66 20 60 6d 61 6a 6f 72 2d 6d 6f 64 65 he.previous.value.of.`major-mode
ac60 27 2e 20 49 6e 69 74 69 61 6c 69 73 65 20 74 68 65 0a 20 20 3b 3b 20 6d 61 6a 6f 72 20 6d 6f 64 '..Initialise.the...;;.major.mod
ac80 65 20 6d 61 6e 75 61 6c 6c 79 2e 0a 20 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 0a e.manually....(delay-mode-hooks.
aca0 20 20 20 20 28 6b 69 6c 6c 2d 61 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 29 0a 20 ....(kill-all-local-variables)..
acc0 20 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 64 65 61 64 67 72 65 70 2d 65 64 ...(setq.major-mode.'deadgrep-ed
ace0 69 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6e 61 6d 65 0a 20 20 20 it-mode).....(setq.mode-name....
ad00 20 20 20 20 20 20 20 27 28 3a 70 72 6f 70 65 72 74 69 7a 65 20 22 44 65 61 64 67 72 65 70 3a 45 .......'(:propertize."Deadgrep:E
ad20 64 69 74 22 20 66 61 63 65 20 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 0a 20 dit".face.mode-line-emphasis))..
ad40 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 20 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d ...(use-local-map.deadgrep-edit-
ad60 6d 6f 64 65 2d 6d 61 70 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 mode-map).....;;.Done.major.mode
ad80 20 6d 61 6e 75 61 6c 20 69 6e 69 74 69 61 6c 69 73 65 20 28 63 6f 70 69 65 64 20 66 72 6f 6d 20 .manual.initialise.(copied.from.
ada0 60 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 27 29 2e 0a 0a 20 20 20 20 3b 3b 20 `define-derived-mode').......;;.
adc0 41 6c 6c 6f 77 20 65 64 69 74 69 6e 67 2c 20 61 6e 64 20 70 72 6f 70 61 67 61 74 65 20 63 68 61 Allow.editing,.and.propagate.cha
ade0 6e 67 65 73 2e 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 nges......(setq.buffer-read-only
ae00 20 6e 69 6c 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 .nil).....(add-hook.'after-chang
ae20 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 70 61 67 61 74 e-functions.#'deadgrep--propagat
ae40 65 2d 63 68 61 6e 67 65 20 6e 69 6c 20 74 29 0a 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e e-change.nil.t)......(message."N
ae60 6f 77 20 65 64 69 74 69 6e 67 2c 20 75 73 65 20 60 4d 2d 78 20 64 65 61 64 67 72 65 70 2d 6d 6f ow.editing,.use.`M-x.deadgrep-mo
ae80 64 65 27 20 77 68 65 6e 20 66 69 6e 69 73 68 65 64 22 29 29 0a 0a 20 20 28 72 75 6e 2d 6d 6f 64 de'.when.finished"))....(run-mod
aea0 65 2d 68 6f 6f 6b 73 20 27 64 65 61 64 67 72 65 70 2d 65 64 69 74 2d 6d 6f 64 65 2d 68 6f 6f 6b e-hooks.'deadgrep-edit-mode-hook
aec0 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d 63 6f 6c ))..(defun.deadgrep--current-col
aee0 75 6d 6e 20 28 29 0a 20 20 22 57 68 65 6e 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 72 65 73 umn.()..."When.point.is.on.a.res
af00 75 6c 74 20 69 6e 20 61 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 2c 20 72 65 74 75 72 6e 20 ult.in.a.results.buffer,.return.
af20 74 68 65 20 63 6f 6c 75 6d 6e 20 6f 66 66 73 65 74 0a 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 the.column.offset.of.the.underly
af40 69 6e 67 20 66 69 6c 65 2e 20 54 72 65 61 74 73 20 74 61 62 73 20 61 73 20 31 2e 0a 0a 66 6f 6f ing.file..Treats.tabs.as.1...foo
af60 2e 65 6c 0a 31 32 33 20 68 7c 65 6c 6c 6f 20 77 6f 72 6c 64 0a 0a 49 6e 20 74 68 69 73 20 65 78 .el.123.h|ello.world..In.this.ex
af80 61 6d 70 6c 65 2c 20 74 68 65 20 63 6f 6c 75 6d 6e 20 69 73 20 31 2e 22 0a 20 20 28 6c 65 74 2a ample,.the.column.is.1."...(let*
afa0 20 28 28 6c 69 6e 65 2d 73 74 61 72 74 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f .((line-start.(line-beginning-po
afc0 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 0a 20 sition))..........(line-number..
afe0 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 6c 69 6e 65 .........(get-text-property.line
b000 2d 73 74 61 72 74 20 27 64 65 61 64 67 72 65 70 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 0a 20 -start.'deadgrep-line-number))..
b020 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 77 69 64 74 68 0a 20 20 20 20 20 ........(line-number-width......
b040 20 20 20 20 20 28 6d 61 78 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 69 74 69 6f 6e 2d 63 6f 6c .....(max.deadgrep--position-col
b060 75 6d 6e 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 umn-width................(length
b080 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 .(number-to-string.line-number))
b0a0 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d 63 6f 75 6e 74 20 30 29 29 0a 20 20 20 20 ))..........(char-count.0)).....
b0c0 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f (save-excursion.......(while.(no
b0e0 74 20 28 65 71 75 61 6c 20 28 70 6f 69 6e 74 29 20 6c 69 6e 65 2d 73 74 61 72 74 29 29 0a 20 20 t.(equal.(point).line-start))...
b100 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 63 68 61 72 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 ......(cl-incf.char-count)......
b120 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 0a 20 20 20 20 28 69 66 20 28 ...(backward-char.1))).....(if.(
b140 3c 20 63 68 61 72 2d 63 6f 75 6e 74 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 77 69 64 74 68 29 0a <.char-count.line-number-width).
b160 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 28 2d 20 63 68 61 72 2d 63 6f 75 6e 74 20 ........nil.......(-.char-count.
b180 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 77 69 64 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 line-number-width))))..(defun.de
b1a0 61 64 67 72 65 70 2d 2d 66 6c 61 73 68 2d 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 73 20 28 73 74 adgrep--flash-column-offsets.(st
b1c0 61 72 74 20 65 6e 64 29 0a 20 20 22 54 65 6d 70 6f 72 61 72 69 6c 79 20 68 69 67 68 6c 69 67 68 art.end)..."Temporarily.highligh
b1e0 74 20 63 6f 6c 75 6d 6e 20 6f 66 66 73 65 74 20 66 72 6f 6d 20 53 54 41 52 54 20 74 6f 20 45 4e t.column.offset.from.START.to.EN
b200 44 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 2d 73 74 61 72 74 20 28 6c 69 6e 65 2d 62 D."...(let*.((line-start.(line-b
b220 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 76 eginning-position))..........(ov
b240 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 erlay.(make-overlay.............
b260 20 20 20 20 20 20 20 28 2b 20 6c 69 6e 65 2d 73 74 61 72 74 20 73 74 61 72 74 29 0a 20 20 20 20 .......(+.line-start.start).....
b280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 6c 69 6e 65 2d 73 74 61 72 74 20 65 6e 64 ...............(+.line-start.end
b2a0 29 29 29 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 )))).....(overlay-put.overlay.'f
b2c0 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 0a 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d 74 69 ace.'highlight).....(run-with-ti
b2e0 6d 65 72 20 31 2e 35 20 6e 69 6c 20 27 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 65 72 mer.1.5.nil.'delete-overlay.over
b300 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 2d 66 lay)))..(defun.deadgrep--match-f
b320 61 63 65 2d 70 20 28 70 6f 73 29 0a 20 20 22 49 73 20 74 68 65 72 65 20 61 20 6d 61 74 63 68 20 ace-p.(pos)..."Is.there.a.match.
b340 66 61 63 65 20 61 74 20 50 4f 53 3f 22 0a 20 20 28 65 71 20 28 67 65 74 2d 74 65 78 74 2d 70 72 face.at.POS?"...(eq.(get-text-pr
b360 6f 70 65 72 74 79 20 70 6f 73 20 27 66 61 63 65 29 20 27 64 65 61 64 67 72 65 70 2d 6d 61 74 63 operty.pos.'face).'deadgrep-matc
b380 68 2d 66 61 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 h-face))..(defun.deadgrep--match
b3a0 2d 70 6f 73 69 74 69 6f 6e 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f -positions.()..."Return.a.list.o
b3c0 66 20 63 6f 6c 75 6d 6e 20 6f 66 66 73 65 74 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 f.column.offsets.of.the.current.
b3e0 6c 69 6e 65 27 73 20 6d 61 74 63 68 65 73 2e 0a 45 61 63 68 20 69 74 65 6d 20 69 6e 20 74 68 65 line's.matches..Each.item.in.the
b400 20 6c 69 73 74 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 53 54 41 52 54 2d 4f 46 46 53 45 54 .list.has.the.form.(START-OFFSET
b420 20 45 4e 44 2d 4f 46 46 53 45 54 29 2e 22 0a 20 20 28 6c 65 74 20 28 70 6f 73 69 74 69 6f 6e 73 .END-OFFSET)."...(let.(positions
b440 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 62 65 67 ).....(save-excursion.......(beg
b460 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6c inning-of-line)........(let*.((l
b480 69 6e 65 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 ine-number...............(get-te
b4a0 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 64 65 61 64 67 72 65 70 2d 6c 69 xt-property.(point).'deadgrep-li
b4c0 6e 65 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e ne-number))..............(line-n
b4e0 75 6d 62 65 72 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 64 umber-width...............(max.d
b500 65 61 64 67 72 65 70 2d 2d 70 6f 73 69 74 69 6f 6e 2d 63 6f 6c 75 6d 6e 2d 77 69 64 74 68 0a 20 eadgrep--position-column-width..
b520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6e 75 6d 62 65 ..................(length.(numbe
b540 72 2d 74 6f 2d 73 74 72 69 6e 67 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 29 29 0a 20 20 20 20 r-to-string.line-number)))).....
b560 20 20 20 20 20 20 20 20 20 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 .........(i.0)..............(sta
b580 72 74 2d 70 6f 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 rt-pos.0)..............(line-end
b5a0 2d 70 6f 73 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 0a 20 20 20 20 -pos.(line-end-position)))......
b5c0 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 77 69 ....(forward-char.line-number-wi
b5e0 64 74 68 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 3d 20 28 70 6f 69 6e 74 29 dth)..........(while.(<=.(point)
b600 20 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 .line-end-pos)...........;;.If.w
b620 65 27 76 65 20 6a 75 73 74 20 65 6e 74 65 72 65 64 20 61 20 6d 61 74 63 68 2c 20 72 65 63 6f 72 e've.just.entered.a.match,.recor
b640 64 20 74 68 65 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 d.the.start.position............
b660 28 77 68 65 6e 20 28 61 6e 64 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 2d 66 61 63 65 (when.(and.(deadgrep--match-face
b680 2d 70 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -p.(point)).....................
b6a0 20 28 6e 6f 74 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 2d 66 61 63 65 2d 70 20 28 31 .(not.(deadgrep--match-face-p.(1
b6c0 2d 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 -.(point))))).............(setq.
b6e0 73 74 61 72 74 2d 70 6f 73 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 start-pos.i))...........;;.If.we
b700 27 76 65 20 6a 75 73 74 20 6c 65 66 74 20 61 20 6d 61 74 63 68 2c 20 72 65 63 6f 72 64 20 74 68 've.just.left.a.match,.record.th
b720 65 20 6d 61 74 63 68 20 72 61 6e 67 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 e.match.range............(when.(
b740 61 6e 64 20 28 6e 6f 74 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 2d 66 61 63 65 2d 70 and.(not.(deadgrep--match-face-p
b760 20 28 70 6f 69 6e 74 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 .(point)))......................
b780 28 64 65 61 64 67 72 65 70 2d 2d 6d 61 74 63 68 2d 66 61 63 65 2d 70 20 28 31 2d 20 28 70 6f 69 (deadgrep--match-face-p.(1-.(poi
b7a0 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 73 nt)))).............(push.(list.s
b7c0 74 61 72 74 2d 70 6f 73 20 69 29 20 70 6f 73 69 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 20 20 20 tart-pos.i).positions)).........
b7e0 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f ...(setq.i.(1+.i))...........(fo
b800 72 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 29 0a 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 rward-char.1))))......(nreverse.
b820 70 6f 73 69 74 69 6f 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 62 positions)))..(defun.deadgrep--b
b840 75 66 66 65 72 2d 70 6f 73 69 74 69 6f 6e 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 63 6f 6c 75 uffer-position.(line-number.colu
b860 6d 6e 2d 6f 66 66 73 65 74 29 0a 20 20 22 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 62 75 66 66 mn-offset)..."Calculate.the.buff
b880 65 72 20 70 6f 73 69 74 69 6f 6e 20 74 68 61 74 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 er.position.that.corresponds.to.
b8a0 4c 49 4e 45 2d 4e 55 4d 42 45 52 20 61 74 20 43 4f 4c 55 4d 4e 2d 4f 46 46 53 45 54 0a 69 6e 20 LINE-NUMBER.at.COLUMN-OFFSET.in.
b8c0 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 the.current.buffer."...(save-exc
b8e0 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 ursion.....(save-restriction....
b900 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 ...(widen).......(goto-char.(poi
b920 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d nt-min)).......(forward-line.(1-
b940 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 .line-number)).......(forward-ch
b960 61 72 20 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 29 0a 0a 20 20 20 20 20 20 28 70 6f 69 6e 74 29 ar.column-offset)........(point)
b980 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 20 28 )))..(defun.deadgrep--filename.(
b9a0 26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20 20 22 47 65 74 20 74 68 65 20 66 69 6c 65 6e 61 &optional.pos)..."Get.the.filena
b9c0 6d 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 61 74 20 70 6f 69 6e 74 20 50 4f 53 2e 0a 49 me.of.the.result.at.point.POS..I
b9e0 66 20 50 4f 53 20 69 73 20 6e 69 6c 2c 20 75 73 65 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 f.POS.is.nil,.use.the.beginning.
ba00 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 position.of.the.current.line."..
ba20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6f 72 20 70 6f 73 20 28 6c 69 6e .(get-text-property.(or.pos.(lin
ba40 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 20 27 64 65 61 64 67 72 65 70 e-beginning-position)).'deadgrep
ba60 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6c 69 -filename))..(defun.deadgrep--li
ba80 6e 65 2d 6e 75 6d 62 65 72 20 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 ne-number.()..."Get.the.filename
baa0 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 67 65 74 .of.the.result.at.point."...(get
bac0 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 -text-property.(line-beginning-p
bae0 6f 73 69 74 69 6f 6e 29 20 27 64 65 61 64 67 72 65 70 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 osition).'deadgrep-line-number))
bb00 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 20 ..(defun.deadgrep--visit-result.
bb20 28 6f 70 65 6e 2d 66 6e 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 73 65 61 72 63 68 20 72 65 73 (open-fn)..."Goto.the.search.res
bb40 75 6c 74 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 ult.at.point."...(interactive)..
bb60 20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 .(let*.((pos.(line-beginning-pos
bb80 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 20 28 64 65 61 ition))..........(file-name.(dea
bba0 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 dgrep--filename))..........(line
bbc0 2d 6e 75 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 -number.(deadgrep--line-number))
bbe0 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 20 28 77 68 65 6e 20 6c ..........(column-offset.(when.l
bc00 69 6e 65 2d 6e 75 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d 63 6f ine-number.(deadgrep--current-co
bc20 6c 75 6d 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 70 6f 73 69 74 69 6f 6e lumn)))..........(match-position
bc40 73 20 28 77 68 65 6e 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 6d s.(when.line-number.(deadgrep--m
bc60 61 74 63 68 2d 70 6f 73 69 74 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 66 69 6c atch-positions)))).....(when.fil
bc80 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6f 76 65 72 6c 61 79 2d 61 72 72 6f 77 e-name.......(when.overlay-arrow
bca0 2d 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 6f 76 -position.........(set-marker.ov
bcc0 65 72 6c 61 79 2d 61 72 72 6f 77 2d 70 6f 73 69 74 69 6f 6e 20 6e 69 6c 29 29 0a 20 20 20 20 20 erlay-arrow-position.nil))......
bce0 20 3b 3b 20 53 68 6f 77 20 61 6e 20 61 72 72 6f 77 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6c 61 .;;.Show.an.arrow.next.to.the.la
bd00 73 74 20 72 65 73 75 6c 74 20 76 69 65 77 65 64 2e 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 st.result.viewed..This.is.......
bd20 3b 3b 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d ;;.consistent.with.`compilation-
bd40 6e 65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 61 6c 73 6f 0a 20 20 next-error-function'.and.also...
bd60 20 20 20 20 3b 3b 20 75 73 65 66 75 6c 20 77 69 74 68 20 60 64 65 61 64 67 72 65 70 2d 76 69 73 ....;;.useful.with.`deadgrep-vis
bd80 69 74 2d 72 65 73 75 6c 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 27 2e 0a 20 20 20 20 20 20 28 it-result-other-window'........(
bda0 73 65 74 71 20 6f 76 65 72 6c 61 79 2d 61 72 72 6f 77 2d 70 6f 73 69 74 69 6f 6e 20 28 63 6f 70 setq.overlay-arrow-position.(cop
bdc0 79 2d 6d 61 72 6b 65 72 20 70 6f 73 29 29 0a 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f y-marker.pos))........(funcall.o
bde0 70 65 6e 2d 66 6e 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 pen-fn.file-name).......(goto-ch
be00 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 69 6e ar.(point-min))........(when.lin
be20 65 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 70 6f 69 6e 74 20 77 61 73 e-number.........;;.If.point.was
be40 20 6f 6e 20 74 68 65 20 6c 69 6e 65 20 6e 75 6d 62 65 72 20 72 61 74 68 65 72 20 74 68 61 6e 20 .on.the.line.number.rather.than.
be60 61 20 73 70 65 63 69 66 69 63 0a 20 20 20 20 20 20 20 20 3b 3b 20 70 6f 73 69 74 69 6f 6e 20 6f a.specific.........;;.position.o
be80 6e 20 74 68 65 20 6c 69 6e 65 2c 20 67 6f 20 74 68 65 20 66 69 72 73 74 20 6d 61 74 63 68 2e 20 n.the.line,.go.the.first.match..
bea0 54 68 69 73 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 68 61 This.is.generally.........;;.wha
bec0 74 20 75 73 65 72 73 20 77 61 6e 74 2c 20 65 73 70 65 63 69 61 6c 6c 79 20 77 68 65 6e 20 74 68 t.users.want,.especially.when.th
bee0 65 72 65 20 61 72 65 20 6c 6f 6e 67 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 28 75 6e 6c ere.are.long.lines..........(unl
bf00 65 73 73 20 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 2d ess.column-offset...........(if-
bf20 6c 65 74 20 28 66 69 72 73 74 2d 6d 61 74 63 68 2d 70 6f 73 20 28 63 61 72 20 6d 61 74 63 68 2d let.(first-match-pos.(car.match-
bf40 70 6f 73 69 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 positions))...............(setq.
bf60 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 20 28 63 61 72 20 66 69 72 73 74 2d 6d 61 74 63 68 2d 70 column-offset.(car.first-match-p
bf80 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 75 6d 6e 2d 6f 66 os)).............(setq.column-of
bfa0 66 73 65 74 20 30 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 64 65 73 74 69 6e fset.0)))..........(-let.[destin
bfc0 61 74 69 6f 6e 2d 70 6f 73 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 2d 70 6f 73 69 ation-pos.(deadgrep--buffer-posi
bfe0 74 69 6f 6e 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 tion............................
c000 20 20 20 20 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 29 5d .....line-number.column-offset)]
c020 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 75 74 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 70 ...........;;.Put.point.on.the.p
c040 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 61 74 63 68 2c 20 77 69 64 65 6e 69 6e 67 20 74 osition.of.the.match,.widening.t
c060 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 20 69 66 20 6e 65 63 65 73 73 he...........;;.buffer.if.necess
c080 61 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 3c 20 64 65 73 74 ary............(when.(or.(<.dest
c0a0 69 6e 61 74 69 6f 6e 2d 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 ination-pos.(point-min))........
c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 6f 73 20 .............(>.destination-pos.
c0e0 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e (point-max))).............(widen
c100 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 64 65 73 74 69 6e 61 74 ))...........(goto-char.destinat
c120 69 6f 6e 2d 70 6f 73 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 65 6d 70 6f 72 61 72 69 ion-pos)............;;.Temporari
c140 6c 79 20 68 69 67 68 6c 69 67 68 74 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 6c 69 ly.highlight.the.parts.of.the.li
c160 6e 65 20 74 68 61 74 20 6d 61 74 63 68 65 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 ne.that.matched...........;;.the
c180 20 73 65 61 72 63 68 20 74 65 72 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 28 2d 65 61 63 68 20 6d .search.term............(-each.m
c1a0 61 74 63 68 2d 70 6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 6d atch-positions.............(-lam
c1c0 62 64 61 20 28 28 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bda.((start.end))...............
c1e0 28 64 65 61 64 67 72 65 70 2d 2d 66 6c 61 73 68 2d 63 6f 6c 75 6d 6e 2d 6f 66 66 73 65 74 73 20 (deadgrep--flash-column-offsets.
c200 73 74 61 72 74 20 65 6e 64 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 start.end))))))))..(defun.deadgr
c220 65 70 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a ep-visit-result-other-window.().
c240 20 20 22 47 6f 74 6f 20 74 68 65 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 20 61 74 20 70 6f 69 .."Goto.the.search.result.at.poi
c260 6e 74 2c 20 6f 70 65 6e 69 6e 67 20 69 6e 20 61 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 22 0a nt,.opening.in.another.window.".
c280 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 76 69 73 ..(interactive)...(deadgrep--vis
c2a0 69 74 2d 72 65 73 75 6c 74 20 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 it-result.#'find-file-other-wind
c2c0 6f 77 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 76 69 73 69 74 2d 72 65 73 75 ow))..(defun.deadgrep-visit-resu
c2e0 6c 74 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 20 lt.()..."Goto.the.search.result.
c300 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 65 at.point."...(interactive)...(de
c320 61 64 67 72 65 70 2d 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 20 23 27 66 69 6e 64 2d 66 69 6c 65 adgrep--visit-result.#'find-file
c340 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 64 65 61 64 67 72 65 70 2d 2d 68 69 64 64 ))..(defvar-local.deadgrep--hidd
c360 65 6e 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 72 65 63 6f 72 64 69 en-files.nil..."An.alist.recordi
c380 6e 67 20 77 68 69 63 68 20 66 69 6c 65 73 20 63 75 72 72 65 6e 74 6c 79 20 68 61 76 65 20 74 68 ng.which.files.currently.have.th
c3a0 65 69 72 20 6c 69 6e 65 73 0a 68 69 64 64 65 6e 20 69 6e 20 74 68 69 73 20 64 65 61 64 67 72 65 eir.lines.hidden.in.this.deadgre
c3c0 70 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 2e 0a 0a 4b 65 79 73 20 61 72 65 20 69 6e 74 65 p.results.buffer...Keys.are.inte
c3e0 72 6e 65 64 20 66 69 6c 65 6e 61 6d 65 73 2c 20 73 6f 20 74 68 65 79 20 63 6f 6d 70 61 72 65 20 rned.filenames,.so.they.compare.
c400 77 69 74 68 20 60 65 71 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 74 6f with.`eq'.")..(defun.deadgrep-to
c420 67 67 6c 65 2d 66 69 6c 65 2d 72 65 73 75 6c 74 73 20 28 29 0a 20 20 22 53 68 6f 77 2f 68 69 64 ggle-file-results.()..."Show/hid
c440 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 20 61 74 20 70 6f 69 e.the.results.of.the.file.at.poi
c460 6e 74 2e 22 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 66 nt."...(interactive)...(let*.((f
c480 69 6c 65 2d 6e 61 6d 65 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 29 0a 20 ile-name.(deadgrep--filename))..
c4a0 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d ........(line-number.(deadgrep--
c4c0 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 line-number))).....(when.(and.fi
c4e0 6c 65 2d 6e 61 6d 65 20 28 6e 6f 74 20 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 le-name.(not.line-number))......
c500 20 3b 3b 20 57 65 27 72 65 20 6f 6e 20 61 20 66 69 6c 65 20 68 65 61 64 69 6e 67 2e 0a 20 20 20 .;;.We're.on.a.file.heading.....
c520 20 20 20 28 69 66 20 28 61 6c 69 73 74 2d 67 65 74 20 28 69 6e 74 65 72 6e 20 66 69 6c 65 2d 6e ...(if.(alist-get.(intern.file-n
c540 61 6d 65 29 20 64 65 61 64 67 72 65 70 2d 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 29 0a 20 20 20 ame).deadgrep--hidden-files)....
c560 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 68 6f 77 29 0a 20 20 20 20 20 20 20 20 .......(deadgrep--show).........
c580 28 64 65 61 64 67 72 65 70 2d 2d 68 69 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 (deadgrep--hide)))))..(defun.dea
c5a0 64 67 72 65 70 2d 74 6f 67 67 6c 65 2d 61 6c 6c 2d 66 69 6c 65 2d 72 65 73 75 6c 74 73 20 28 29 dgrep-toggle-all-file-results.()
c5c0 0a 20 20 22 53 68 6f 77 2f 68 69 64 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20 61 6c 6c ..."Show/hide.the.results.of.all
c5e0 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 .files."...(interactive)...(let.
c600 28 28 73 68 6f 75 6c 64 2d 73 68 6f 77 20 28 63 6c 2d 73 6f 6d 65 20 23 27 63 64 72 20 64 65 61 ((should-show.(cl-some.#'cdr.dea
c620 64 67 72 65 70 2d 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 dgrep--hidden-files)).........(s
c640 65 65 6e 2d 66 69 6c 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 een-files.nil)).....(save-excurs
c660 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ion.......(goto-char.(point-min)
c680 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 71 20 28 70 6f 69 6e 74 29 20 ).......(while.(not.(eq.(point).
c6a0 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 (point-max))).........(goto-char
c6c0 20 28 6f 72 20 28 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 .(or.(next-single-property-chang
c6e0 65 20 28 70 6f 69 6e 74 29 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 29 0a 20 20 e.(point).'deadgrep-filename)...
c700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 .....................(point-max)
c720 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 64 65 61 64 67 72 65 70 2d )).........(when.(and.(deadgrep-
c740 2d 66 69 6c 65 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 28 6e -filename)....................(n
c760 6f 74 20 28 6d 65 6d 62 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 20 ot.(member.(deadgrep--filename).
c780 73 65 65 6e 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 64 seen-files)))...........(push.(d
c7a0 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 20 73 65 65 6e 2d 66 69 6c 65 73 29 0a 20 eadgrep--filename).seen-files)..
c7c0 20 20 20 20 20 20 20 20 20 28 69 66 20 73 68 6f 75 6c 64 2d 73 68 6f 77 0a 20 20 20 20 20 20 20 .........(if.should-show........
c7e0 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 68 6f 77 29 0a 20 20 20 20 20 20 20 20 .......(deadgrep--show).........
c800 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 68 69 64 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 ....(deadgrep--hide)))))))..(def
c820 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 68 6f 77 20 28 29 0a 20 20 28 2d 6c 65 74 2a 20 28 28 un.deadgrep--show.()...(-let*.((
c840 66 69 6c 65 2d 6e 61 6d 65 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 6e 61 6d 65 29 29 0a file-name.(deadgrep--filename)).
c860 20 20 20 20 20 20 20 20 20 20 28 28 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 20 28 ..........((start-pos.end-pos).(
c880 61 6c 69 73 74 2d 67 65 74 20 28 69 6e 74 65 72 6e 20 66 69 6c 65 2d 6e 61 6d 65 29 20 64 65 61 alist-get.(intern.file-name).dea
c8a0 64 67 72 65 70 2d 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 28 72 65 6d 6f dgrep--hidden-files))).....(remo
c8c0 76 65 2d 6f 76 65 72 6c 61 79 73 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 20 27 69 ve-overlays.start-pos.end-pos.'i
c8e0 6e 76 69 73 69 62 6c 65 20 74 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 nvisible.t).....(setf.(alist-get
c900 20 28 69 6e 74 65 72 6e 20 66 69 6c 65 2d 6e 61 6d 65 29 20 64 65 61 64 67 72 65 70 2d 2d 68 69 .(intern.file-name).deadgrep--hi
c920 64 64 65 6e 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 dden-files)...........nil)))..(d
c940 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 68 69 64 65 20 28 29 0a 20 20 22 48 69 64 65 20 74 efun.deadgrep--hide.()..."Hide.t
c960 68 65 20 66 69 6c 65 20 72 65 73 75 6c 74 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 he.file.results.immediately.afte
c980 72 20 70 6f 69 6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 r.point."...(save-excursion.....
c9a0 28 6c 65 74 2a 20 28 28 66 69 6c 65 2d 6e 61 6d 65 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6c (let*.((file-name.(deadgrep--fil
c9c0 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 6f 73 0a 20 20 ename))............(start-pos...
c9e0 20 20 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 20 20 28 ..........(progn...............(
ca00 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 forward-line)...............(poi
ca20 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 70 6f 73 0a 20 20 20 20 20 20 nt)))............(end-pos.......
ca40 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 20 20 28 77 68 69 6c ......(progn...............(whil
ca60 65 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 e.(and.......................(or
ca80 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 64 65 61 .(get-text-property.(point).'dea
caa0 64 67 72 65 70 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 dgrep-line-number)..............
cac0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 .............(get-text-property.
cae0 28 70 6f 69 6e 74 29 20 27 64 65 61 64 67 72 65 70 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 20 20 (point).'deadgrep-separator))...
cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 62 6f 62 70 29 29 ....................(not.(bobp))
cb20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 ).................(forward-line)
cb40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 65 70 20 6f 76 65 72 20 74 68 65 )...............;;.Step.over.the
cb60 20 6e 65 77 6c 69 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 70 6f 69 .newline................(1+.(poi
cb80 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 20 28 6d 61 6b 65 2d 6f 76 65 72 6c nt))))............(o.(make-overl
cba0 61 79 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 28 6f ay.start-pos.end-pos))).......(o
cbc0 76 65 72 6c 61 79 2d 70 75 74 20 6f 20 27 69 6e 76 69 73 69 62 6c 65 20 74 29 0a 20 20 20 20 20 verlay-put.o.'invisible.t)......
cbe0 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 28 69 6e 74 65 72 6e 20 66 69 6c 65 2d 6e .(setf.(alist-get.(intern.file-n
cc00 61 6d 65 29 20 64 65 61 64 67 72 65 70 2d 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 29 0a 20 20 20 ame).deadgrep--hidden-files)....
cc20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 73 74 61 72 74 2d 70 6f 73 20 65 6e 64 2d 70 6f 73 .........(list.start-pos.end-pos
cc40 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 74 65 72 72 75 70 )))))..(defun.deadgrep--interrup
cc60 74 2d 70 72 6f 63 65 73 73 20 28 29 0a 20 20 22 47 72 61 63 65 66 75 6c 6c 79 20 73 74 6f 70 20 t-process.()..."Gracefully.stop.
cc80 74 68 65 20 72 67 20 70 72 6f 63 65 73 73 2c 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 22 0a the.rg.process,.synchronously.".
cca0 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 70 72 6f 63 20 28 67 65 74 2d 62 75 66 66 65 72 2d 70 ..(-when-let.(proc.(get-buffer-p
ccc0 72 6f 63 65 73 73 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 3b 3b rocess.(current-buffer))).....;;
cce0 20 45 6e 73 75 72 65 20 74 68 61 74 20 6f 75 72 20 70 72 6f 63 65 73 73 20 66 69 6c 74 65 72 20 .Ensure.that.our.process.filter.
cd00 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 61 67 61 69 6e 2e 0a 20 20 20 20 28 73 65 74 2d 70 72 is.not.called.again......(set-pr
cd20 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 70 72 6f 63 20 23 27 69 67 6e 6f 72 65 29 0a 0a 20 20 20 ocess-filter.proc.#'ignore).....
cd40 20 28 69 6e 74 65 72 72 75 70 74 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 20 20 3b 3b .(interrupt-process.proc).....;;
cd60 20 57 61 69 74 20 66 6f 72 20 74 68 65 20 70 72 6f 63 65 73 73 20 74 6f 20 74 65 72 6d 69 6e 61 .Wait.for.the.process.to.termina
cd80 74 65 2c 20 73 6f 20 77 65 20 6b 6e 6f 77 20 74 68 61 74 0a 20 20 20 20 3b 3b 20 60 64 65 61 64 te,.so.we.know.that.....;;.`dead
cda0 67 72 65 70 2d 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 27 20 68 61 73 20 62 65 65 6e grep--process-sentinel'.has.been
cdc0 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f 63 65 73 73 2d 6c 69 76 .called......(while.(process-liv
cde0 65 2d 70 20 70 72 6f 63 29 0a 20 20 20 20 20 20 3b 3b 20 60 72 65 64 69 73 70 6c 61 79 27 20 63 e-p.proc).......;;.`redisplay'.c
ce00 61 6e 20 74 72 69 67 67 65 72 20 70 72 6f 63 65 73 73 20 66 69 6c 74 65 72 73 20 6f 72 20 73 65 an.trigger.process.filters.or.se
ce20 6e 74 69 6e 65 6c 73 2e 0a 20 20 20 20 20 20 28 72 65 64 69 73 70 6c 61 79 29 0a 20 20 20 20 20 ntinels........(redisplay)......
ce40 20 28 73 6c 65 65 70 2d 66 6f 72 20 30 2e 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 .(sleep-for.0.1))))..(defun.dead
ce60 67 72 65 70 2d 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 grep-kill-process.()..."Kill.the
ce80 20 64 65 61 64 67 72 65 70 20 70 72 6f 63 65 73 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 .deadgrep.process.associated.wit
cea0 68 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 69 6e 74 65 72 61 h.the.current.buffer."...(intera
cec0 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 70 72 6f 63 65 73 73 ctive)...(if.(get-buffer-process
cee0 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 .(current-buffer)).......(deadgr
cf00 65 70 2d 2d 69 6e 74 65 72 72 75 70 74 2d 70 72 6f 63 65 73 73 29 0a 20 20 20 20 28 6d 65 73 73 ep--interrupt-process).....(mess
cf20 61 67 65 20 22 4e 6f 20 70 72 6f 63 65 73 73 20 72 75 6e 6e 69 6e 67 2e 22 29 29 29 0a 0a 28 64 age."No.process.running.")))..(d
cf40 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 69 74 65 6d 2d 70 20 28 70 6f 73 29 0a 20 20 22 49 efun.deadgrep--item-p.(pos)..."I
cf60 73 20 74 68 65 72 65 20 73 6f 6d 65 74 68 69 6e 67 20 61 74 20 50 4f 53 20 74 68 61 74 20 77 65 s.there.something.at.POS.that.we
cf80 20 63 61 6e 20 69 6e 74 65 72 61 63 74 20 77 69 74 68 3f 22 0a 20 20 28 6f 72 20 28 62 75 74 74 .can.interact.with?"...(or.(butt
cfa0 6f 6e 2d 61 74 20 70 6f 73 29 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 66 69 6c 65 on-at.pos).......(deadgrep--file
cfc0 6e 61 6d 65 20 70 6f 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 66 69 name.pos)))..(defun.deadgrep--fi
cfe0 6c 65 6e 61 6d 65 2d 70 20 28 70 6f 73 29 0a 20 20 22 49 73 20 74 68 65 72 65 20 61 20 66 69 6c lename-p.(pos)..."Is.there.a.fil
d000 65 6e 61 6d 65 20 61 74 20 50 4f 53 20 74 68 61 74 20 77 65 20 63 61 6e 20 69 6e 74 65 72 61 63 ename.at.POS.that.we.can.interac
d020 74 20 77 69 74 68 3f 22 0a 20 20 28 65 71 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 t.with?"...(eq.(get-text-propert
d040 79 20 70 6f 73 20 27 66 61 63 65 29 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 2d y.pos.'face).'deadgrep-filename-
d060 66 61 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 65 20 28 66 face))..(defun.deadgrep--move.(f
d080 6f 72 77 61 72 64 2d 70 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 69 74 orward-p)..."Move.to.the.next.it
d0a0 65 6d 2e 0a 54 68 69 73 20 77 69 6c 6c 20 65 69 74 68 65 72 20 62 65 20 61 20 62 75 74 74 6f 6e em..This.will.either.be.a.button
d0c0 2c 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 6f 72 20 61 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 ,.a.filename,.or.a.search.result
d0e0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 ."...(interactive)...(let.((pos.
d100 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 49 66 20 70 6f 69 6e 74 20 69 73 20 69 6e 69 (point))).....;;.If.point.is.ini
d120 74 69 61 6c 6c 79 20 6f 6e 20 61 6e 20 69 74 65 6d 2c 20 6d 6f 76 65 20 70 61 73 74 20 69 74 2e tially.on.an.item,.move.past.it.
d140 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 64 65 61 64 67 72 65 70 2d 2d 69 74 65 6d .....(while.(and.(deadgrep--item
d160 2d 70 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 -p.pos).................(if.forw
d180 61 72 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 70 6f 73 ard-p.....................(<.pos
d1a0 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(point-max))...................
d1c0 28 3e 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 (>.pos.(point-min)))).......(if.
d1e0 66 6f 72 77 61 72 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 forward-p...........(cl-incf.pos
d200 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 70 6f 73 29 29 29 0a 20 20 20 20 3b 3b ).........(cl-decf.pos))).....;;
d220 20 46 69 6e 64 20 74 68 65 20 6e 65 78 74 20 69 74 65 6d 2e 0a 20 20 20 20 28 77 68 69 6c 65 20 .Find.the.next.item......(while.
d240 28 61 6e 64 20 28 6e 6f 74 20 28 64 65 61 64 67 72 65 70 2d 2d 69 74 65 6d 2d 70 20 70 6f 73 29 (and.(not.(deadgrep--item-p.pos)
d260 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 61 72 64 2d 70 0a ).................(if.forward-p.
d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 70 6f 73 20 28 70 6f 69 6e ....................(<.pos.(poin
d2a0 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 70 6f 73 t-max))...................(>.pos
d2c0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 61 72 .(point-min)))).......(if.forwar
d2e0 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 29 0a 20 20 20 20 d-p...........(cl-incf.pos).....
d300 20 20 20 20 28 63 6c 2d 64 65 63 66 20 70 6f 73 29 29 29 0a 20 20 20 20 3b 3b 20 52 65 67 61 72 ....(cl-decf.pos))).....;;.Regar
d320 64 6c 65 73 73 20 6f 66 20 64 69 72 65 63 74 69 6f 6e 2c 20 65 6e 73 75 72 65 20 70 6f 69 6e 74 dless.of.direction,.ensure.point
d340 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 0a 20 20 20 20 3b 3b 20 74 .is.at.the.beginning.of.....;;.t
d360 68 65 20 69 74 65 6d 2e 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 69 66 20 66 6f 72 he.item......(while.(and.(if.for
d380 77 61 72 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 70 6f ward-p.....................(<.po
d3a0 73 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.(point-max))..................
d3c0 20 28 3e 20 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(>.pos.(point-min)))...........
d3e0 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 69 74 65 6d 2d 70 20 28 31 2d 20 70 6f 73 29 ......(deadgrep--item-p.(1-.pos)
d400 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 70 6f 73 29 29 0a 20 20 20 20 3b 3b 20 49 )).......(cl-decf.pos)).....;;.I
d420 66 20 77 65 20 72 65 61 63 68 65 64 20 61 6e 20 69 74 65 6d 20 28 77 65 20 61 72 65 6e 27 74 20 f.we.reached.an.item.(we.aren't.
d440 61 74 20 74 68 65 20 66 69 72 73 74 2f 6c 61 73 74 20 69 74 65 6d 29 2c 20 74 68 65 6e 0a 20 20 at.the.first/last.item),.then...
d460 20 20 3b 3b 20 67 6f 20 74 6f 20 69 74 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 64 65 61 64 67 72 ..;;.go.to.it......(when.(deadgr
d480 65 70 2d 2d 69 74 65 6d 2d 70 20 70 6f 73 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ep--item-p.pos).......(goto-char
d4a0 20 70 6f 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 66 6f 72 77 61 72 .pos))))..(defun.deadgrep-forwar
d4c0 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 d.()..."Move.forward.to.the.next
d4e0 20 69 74 65 6d 2e 0a 54 68 69 73 20 77 69 6c 6c 20 65 69 74 68 65 72 20 62 65 20 61 20 62 75 74 .item..This.will.either.be.a.but
d500 74 6f 6e 2c 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 6f 72 20 61 20 73 65 61 72 63 68 20 72 65 73 ton,.a.filename,.or.a.search.res
d520 75 6c 74 2e 20 53 65 65 0a 61 6c 73 6f 20 60 64 65 61 64 67 72 65 70 2d 66 6f 72 77 61 72 64 2d ult..See.also.`deadgrep-forward-
d540 6d 61 74 63 68 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 65 61 64 match'."...(interactive)...(dead
d560 67 72 65 70 2d 2d 6d 6f 76 65 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d grep--move.t))..(defun.deadgrep-
d580 62 61 63 6b 77 61 72 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 62 61 63 6b 77 61 72 64 20 74 6f 20 backward.()..."Move.backward.to.
d5a0 74 68 65 20 70 72 65 76 69 6f 75 73 20 69 74 65 6d 2e 0a 54 68 69 73 20 77 69 6c 6c 20 65 69 74 the.previous.item..This.will.eit
d5c0 68 65 72 20 62 65 20 61 20 62 75 74 74 6f 6e 2c 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 6f 72 20 her.be.a.button,.a.filename,.or.
d5e0 61 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 2e 20 53 65 65 0a 61 6c 73 6f 20 60 64 65 61 64 67 a.search.result..See.also.`deadg
d600 72 65 70 2d 62 61 63 6b 77 61 72 64 2d 6d 61 74 63 68 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 rep-backward-match'."...(interac
d620 74 69 76 65 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 65 20 6e 69 6c 29 29 0a 0a 28 tive)...(deadgrep--move.nil))..(
d640 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 66 6f 72 77 61 72 64 2d 66 69 6c 65 6e 61 6d 65 20 defun.deadgrep-forward-filename.
d660 28 29 0a 20 20 22 4d 6f 76 65 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 66 ()..."Move.forward.to.the.next.f
d680 69 6c 65 6e 61 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 65 61 ilename."...(interactive)...(dea
d6a0 64 67 72 65 70 2d 2d 6d 6f 76 65 2d 6d 61 74 63 68 20 74 20 27 64 65 61 64 67 72 65 70 2d 66 69 dgrep--move-match.t.'deadgrep-fi
d6c0 6c 65 6e 61 6d 65 2d 66 61 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 62 lename-face))..(defun.deadgrep-b
d6e0 61 63 6b 77 61 72 64 2d 66 69 6c 65 6e 61 6d 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 62 61 63 6b ackward-filename.()..."Move.back
d700 77 61 72 64 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 6c 65 6e 61 6d 65 2e 22 0a ward.to.the.previous.filename.".
d720 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 ..(interactive)...(deadgrep--mov
d740 65 2d 6d 61 74 63 68 20 6e 69 6c 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 2d 66 e-match.nil.'deadgrep-filename-f
d760 61 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 65 2d 6d 61 74 ace))..(defun.deadgrep--move-mat
d780 63 68 20 28 66 6f 72 77 61 72 64 2d 70 20 66 61 63 65 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e ch.(forward-p.face)..."Move.poin
d7a0 74 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6e 65 78 74 2f 70 t.to.the.beginning.of.the.next/p
d7c0 72 65 76 69 6f 75 73 20 6d 61 74 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a revious.match."...(interactive).
d7e0 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 ..(let.((start-pos.(point)))....
d800 20 3b 3b 20 4d 6f 76 65 20 6f 76 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 61 74 63 68 2c .;;.Move.over.the.current.match,
d820 20 69 66 20 77 65 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 6f 6e 20 6f 6e 65 2e 0a 20 20 20 20 .if.we.were.already.on.one......
d840 28 77 68 69 6c 65 20 28 65 71 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 (while.(eq.(get-text-property.(p
d860 6f 69 6e 74 29 20 27 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 oint).'face)................face
d880 29 0a 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 61 72 64 2d 70 20 28 66 6f 72 77 61 72 64 2d 63 ).......(if.forward-p.(forward-c
d8a0 68 61 72 29 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 har).(backward-char))).....(cond
d8c0 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 ition-case.nil.........(progn...
d8e0 20 20 20 20 20 20 20 20 3b 3b 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 ........;;.Move.point.to.the.nex
d900 74 20 6d 61 74 63 68 2c 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 6f 6e 20 74 68 65 20 73 61 6d t.match,.which.may.be.on.the.sam
d920 65 20 6c 69 6e 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 e.line............(while.(not.(e
d940 71 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 61 q.(get-text-property.(point).'fa
d960 63 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 66 61 ce)...........................fa
d980 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 6f 72 77 61 72 64 2d 70 20 28 ce)).............(if.forward-p.(
d9a0 66 6f 72 77 61 72 64 2d 63 68 61 72 29 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 29 0a forward-char).(backward-char))).
d9c0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6e 73 75 72 65 20 70 6f 69 6e 74 20 69 73 20 61 74 20 ..........;;.Ensure.point.is.at.
d9e0 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6d 61 74 63 68 2e 0a 20 20 20 20 the.beginning.of.the.match......
da00 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 66 6f 72 77 61 72 64 2d 70 0a 20 20 20 20 20 20 20 20 ......(unless.forward-p.........
da20 20 20 20 20 28 77 68 69 6c 65 20 28 65 71 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 ....(while.(eq.(get-text-propert
da40 79 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.(point).'face)................
da60 20 20 20 20 20 20 20 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 ........face)...............(bac
da80 6b 77 61 72 64 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 kward-char)).............(forwar
daa0 64 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 6d 6f 76 65 20 70 6f d-char))).......;;.Don't.move.po
dac0 69 6e 74 20 62 65 79 6f 6e 64 20 74 68 65 20 6c 61 73 74 20 6d 61 74 63 68 2e 20 48 6f 77 65 76 int.beyond.the.last.match..Howev
dae0 65 72 2c 20 69 74 27 73 20 73 74 69 6c 6c 0a 20 20 20 20 20 20 3b 3b 20 75 73 65 66 75 6c 20 74 er,.it's.still.......;;.useful.t
db00 6f 20 73 69 67 6e 61 6c 20 74 68 61 74 20 77 65 27 72 65 20 61 74 20 74 68 65 20 65 6e 64 2c 20 o.signal.that.we're.at.the.end,.
db20 73 6f 20 75 73 65 72 73 20 63 61 6e 20 75 73 65 20 74 68 69 73 0a 20 20 20 20 20 20 3b 3b 20 63 so.users.can.use.this.......;;.c
db40 6f 6d 6d 61 6e 64 20 77 69 74 68 20 6d 61 63 72 6f 73 20 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 ommand.with.macros.and.terminate
db60 20 77 68 65 6e 20 69 74 27 73 20 64 6f 6e 65 2e 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e .when.it's.done........(beginnin
db80 67 2d 6f 66 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 g-of-buffer........(goto-char.st
dba0 61 72 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 62 65 67 69 6e 6e 69 art-pos)........(signal.'beginni
dbc0 6e 67 2d 6f 66 2d 62 75 66 66 65 72 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 ng-of-buffer.nil)).......(end-of
dbe0 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 2d -buffer........(goto-char.start-
dc00 70 6f 73 29 0a 20 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27 65 6e 64 2d 6f 66 2d 62 75 66 66 pos)........(signal.'end-of-buff
dc20 65 72 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 66 6f 72 er.nil)))))..(defun.deadgrep-for
dc40 77 61 72 64 2d 6d 61 74 63 68 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 66 6f 72 77 ward-match.()..."Move.point.forw
dc60 61 72 64 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 6d 61 74 ard.to.the.beginning.of.next.mat
dc80 63 68 2e 0a 4e 6f 74 65 20 74 68 61 74 20 61 20 72 65 73 75 6c 74 20 6c 69 6e 65 20 6d 61 79 20 ch..Note.that.a.result.line.may.
dca0 63 6f 6e 74 61 69 6e 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 6d 61 74 63 68 2c 20 6f 72 20 contain.more.than.one.match,.or.
dcc0 7a 65 72 6f 0a 6d 61 74 63 68 65 73 20 28 69 66 20 74 68 65 20 72 65 73 75 6c 74 20 6c 69 6e 65 zero.matches.(if.the.result.line
dce0 20 68 61 73 20 62 65 65 6e 20 74 72 75 6e 63 61 74 65 64 29 2e 22 0a 20 20 28 69 6e 74 65 72 61 .has.been.truncated)."...(intera
dd00 63 74 69 76 65 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 65 2d 6d 61 74 63 68 20 74 ctive)...(deadgrep--move-match.t
dd20 20 27 64 65 61 64 67 72 65 70 2d 6d 61 74 63 68 2d 66 61 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 .'deadgrep-match-face))..(defun.
dd40 64 65 61 64 67 72 65 70 2d 62 61 63 6b 77 61 72 64 2d 6d 61 74 63 68 20 28 29 0a 20 20 22 4d 6f deadgrep-backward-match.()..."Mo
dd60 76 65 20 70 6f 69 6e 74 20 62 61 63 6b 77 61 72 64 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 ve.point.backward.to.the.beginni
dd80 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 6d 61 74 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 ng.of.previous.match."...(intera
dda0 63 74 69 76 65 29 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 6d 6f 76 65 2d 6d 61 74 63 68 20 6e ctive)...(deadgrep--move-match.n
ddc0 69 6c 20 27 64 65 61 64 67 72 65 70 2d 6d 61 74 63 68 2d 66 61 63 65 29 29 0a 0a 28 64 65 66 75 il.'deadgrep-match-face))..(defu
dde0 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 74 61 72 74 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 73 n.deadgrep--start.(search-term.s
de00 65 61 72 63 68 2d 74 79 70 65 20 63 61 73 65 29 0a 20 20 22 53 74 61 72 74 20 61 20 72 69 70 67 earch-type.case)..."Start.a.ripg
de20 72 65 70 20 73 65 61 72 63 68 2e 22 0a 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 rep.search."...(setq.deadgrep--s
de40 70 69 6e 6e 65 72 20 28 73 70 69 6e 6e 65 72 2d 63 72 65 61 74 65 20 27 70 72 6f 67 72 65 73 73 pinner.(spinner-create.'progress
de60 2d 62 61 72 20 74 29 29 0a 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 72 75 6e 6e 69 -bar.t))...(setq.deadgrep--runni
de80 6e 67 20 74 29 0a 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c 74 2d 63 ng.t)...(setq.deadgrep--result-c
dea0 6f 75 6e 74 20 30 29 0a 20 20 28 73 70 69 6e 6e 65 72 2d 73 74 61 72 74 20 64 65 61 64 67 72 65 ount.0)...(spinner-start.deadgre
dec0 70 2d 2d 73 70 69 6e 6e 65 72 29 0a 20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 64 65 61 64 p--spinner)...(let*.((args.(dead
dee0 67 72 65 70 2d 2d 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 grep--arguments.................
df00 73 65 61 72 63 68 2d 74 65 72 6d 20 73 65 61 72 63 68 2d 74 79 70 65 20 63 61 73 65 0a 20 20 20 search-term.search-type.case....
df20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 63 6f 6e 74 65 78 74 29 29 .............deadgrep--context))
df40 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 ..........(process...........(ap
df60 70 6c 79 20 23 27 73 74 61 72 74 2d 66 69 6c 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 ply.#'start-file-process........
df80 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 72 67 20 25 73 22 20 73 65 61 72 63 68 ..........(format."rg.%s".search
dfa0 2d 74 65 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 -term)..................(current
dfc0 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 -buffer)..................deadgr
dfe0 65 70 2d 65 78 65 63 75 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 ep-executable..................a
e000 72 67 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 rgs))).....(setq.deadgrep--debug
e020 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 25 -command...........(format."%s.%
e040 73 22 20 64 65 61 64 67 72 65 70 2d 65 78 65 63 75 74 61 62 6c 65 20 28 73 2d 6a 6f 69 6e 20 22 s".deadgrep-executable.(s-join."
e060 20 22 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 .".args))).....(set-process-filt
e080 65 72 20 70 72 6f 63 65 73 73 20 23 27 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 63 65 73 73 2d 66 er.process.#'deadgrep--process-f
e0a0 69 6c 74 65 72 29 0a 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c ilter).....(set-process-sentinel
e0c0 20 70 72 6f 63 65 73 73 20 23 27 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 63 65 73 73 2d 73 65 6e .process.#'deadgrep--process-sen
e0e0 74 69 6e 65 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 74 6f 70 2d tinel)))..(defun.deadgrep--stop-
e100 61 6e 64 2d 72 65 73 65 74 20 28 29 0a 20 20 22 54 65 72 6d 69 6e 61 74 65 20 74 68 65 20 63 75 and-reset.()..."Terminate.the.cu
e120 72 72 65 6e 74 20 73 65 61 72 63 68 20 61 6e 64 20 72 65 73 65 74 20 61 6e 79 20 73 65 61 72 63 rrent.search.and.reset.any.searc
e140 68 20 73 74 61 74 65 2e 22 0a 20 20 3b 3b 20 53 74 6f 70 20 74 68 65 20 6f 6c 64 20 73 65 61 72 h.state."...;;.Stop.the.old.sear
e160 63 68 2c 20 73 6f 20 77 65 20 64 6f 6e 27 74 20 63 61 72 72 79 20 6f 6e 20 69 6e 73 65 72 74 69 ch,.so.we.don't.carry.on.inserti
e180 6e 67 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 0a 20 20 3b 3b 20 74 68 65 20 6c 61 73 74 20 74 68 ng.results.from...;;.the.last.th
e1a0 69 6e 67 20 77 65 20 73 65 61 72 63 68 65 64 20 66 6f 72 2e 0a 20 20 28 64 65 61 64 67 72 65 70 ing.we.searched.for....(deadgrep
e1c0 2d 2d 69 6e 74 65 72 72 75 70 74 2d 70 72 6f 63 65 73 73 29 0a 0a 20 20 28 6c 65 74 20 28 28 69 --interrupt-process)....(let.((i
e1e0 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 3b 3b 20 52 65 73 65 nhibit-read-only.t)).....;;.Rese
e200 74 20 55 49 3a 20 72 65 6d 6f 76 65 20 72 65 73 75 6c 74 73 2c 20 72 65 73 65 74 20 69 74 65 6d t.UI:.remove.results,.reset.item
e220 73 20 68 69 64 64 65 6e 20 62 79 20 54 41 42 2c 20 61 6e 64 20 61 72 72 6f 77 0a 20 20 20 20 3b s.hidden.by.TAB,.and.arrow.....;
e240 3b 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 ;.position......(erase-buffer)..
e260 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 20 ...(setq.deadgrep--hidden-files.
e280 6e 69 6c 29 0a 20 20 20 20 28 77 68 65 6e 20 6f 76 65 72 6c 61 79 2d 61 72 72 6f 77 2d 70 6f 73 nil).....(when.overlay-arrow-pos
e2a0 69 74 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 6f 76 65 72 6c 61 79 2d ition.......(set-marker.overlay-
e2c0 61 72 72 6f 77 2d 70 6f 73 69 74 69 6f 6e 20 6e 69 6c 29 29 0a 0a 20 20 20 20 3b 3b 20 52 65 73 arrow-position.nil))......;;.Res
e2e0 65 74 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 73 65 61 72 63 68 20 73 74 61 74 65 2e 0a 20 20 et.intermediate.search.state....
e300 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 6e ..(setq.deadgrep--current-file.n
e320 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 70 69 6e 6e 65 72 20 il).....(setq.deadgrep--spinner.
e340 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 72 65 6d 61 69 6e 69 nil).....(setq.deadgrep--remaini
e360 6e 67 2d 6f 75 74 70 75 74 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 ng-output.nil).....(setq.deadgre
e380 70 2d 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 64 p--current-file.nil).....(setq.d
e3a0 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 66 69 72 73 74 2d 6f 75 74 70 75 74 20 6e 69 6c 29 eadgrep--debug-first-output.nil)
e3c0 0a 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 69 6d 65 6e 75 2d 61 6c 69 73 74 .....(setq.deadgrep--imenu-alist
e3e0 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 .nil)))..(defun.deadgrep-restart
e400 20 28 29 0a 20 20 22 52 65 2d 72 75 6e 20 72 69 70 67 72 65 70 20 77 69 74 68 20 74 68 65 20 63 .()..."Re-run.ripgrep.with.the.c
e420 75 72 72 65 6e 74 20 73 65 61 72 63 68 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 69 6e 74 65 urrent.search.settings."...(inte
e440 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 6e 27 74 20 73 74 61 72 ractive)...;;.If.we.haven't.star
e460 74 65 64 20 79 65 74 2c 20 73 74 61 72 74 20 74 68 65 20 73 65 61 72 63 68 20 69 66 20 77 65 27 ted.yet,.start.the.search.if.we'
e480 76 65 20 62 65 65 6e 20 63 61 6c 6c 65 64 0a 20 20 3b 3b 20 62 79 20 74 68 65 20 75 73 65 72 2e ve.been.called...;;.by.the.user.
e4a0 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 74 70 6f 6e 65 ...(when.(and.deadgrep--postpone
e4c0 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 65 64 2d 69 6e 74 65 -start..............(called-inte
e4e0 72 61 63 74 69 76 65 6c 79 2d 70 20 27 69 6e 74 65 72 61 63 74 69 76 65 29 29 0a 20 20 20 20 28 ractively-p.'interactive)).....(
e500 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 74 70 6f 6e 65 2d 73 74 61 72 74 20 6e 69 setq.deadgrep--postpone-start.ni
e520 6c 29 29 0a 0a 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 74 6f 70 2d 61 6e 64 2d 72 65 73 65 74 l))....(deadgrep--stop-and-reset
e540 29 0a 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 )....(let.((start-point.(point))
e560 0a 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a .........(inhibit-read-only.t)).
e580 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 77 72 69 74 65 2d 68 65 61 64 69 6e 67 29 0a 20 20 ....(deadgrep--write-heading)...
e5a0 20 20 3b 3b 20 49 66 20 74 68 65 20 70 6f 69 6e 74 20 77 61 73 20 69 6e 20 74 68 65 20 68 65 61 ..;;.If.the.point.was.in.the.hea
e5c0 64 69 6e 67 2c 20 65 6e 73 75 72 65 20 74 68 61 74 20 77 65 20 72 65 73 74 6f 72 65 20 69 74 73 ding,.ensure.that.we.restore.its
e5e0 0a 20 20 20 20 3b 3b 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 .....;;.position......(goto-char
e600 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 73 74 61 72 74 2d 70 6f 69 6e 74 29 29 0a .(min.(point-max).start-point)).
e620 0a 20 20 20 20 28 69 66 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 74 70 6f 6e 65 2d 73 74 61 72 .....(if.deadgrep--postpone-star
e640 74 0a 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 77 72 69 74 65 2d 70 6f 73 74 70 t.........(deadgrep--write-postp
e660 6f 6e 65 64 29 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 74 61 72 74 0a 20 20 20 oned).......(deadgrep--start....
e680 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 ....deadgrep--search-term.......
e6a0 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 79 70 65 0a 20 20 20 20 20 20 20 64 65 .deadgrep--search-type........de
e6c0 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 adgrep--search-case))))..(defun.
e6e0 64 65 61 64 67 72 65 70 2d 2d 72 65 61 64 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 28 29 0a 20 20 deadgrep--read-search-term.()...
e700 22 52 65 61 64 20 61 20 73 65 61 72 63 68 20 74 65 72 6d 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e "Read.a.search.term.from.the.min
e720 69 62 75 66 66 65 72 2e 0a 49 66 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 72 65 ibuffer..If.region.is.active,.re
e740 74 75 72 6e 20 74 68 61 74 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 20 20 4f 74 68 65 72 77 69 73 turn.that.immediately...Otherwis
e760 65 2c 20 70 72 6f 6d 70 74 0a 66 6f 72 20 61 20 73 74 72 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 e,.prompt.for.a.string,.offering
e780 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 6f 72 64 20 61 73 20 61 20 64 65 66 61 75 6c 74 2e 22 .the.current.word.as.a.default."
e7a0 0a 20 20 28 6c 65 74 20 28 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 20 20 28 69 66 20 28 75 ...(let.(search-term).....(if.(u
e7c0 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 se-region-p).........(progn.....
e7e0 20 20 20 20 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 ......(setq.search-term.........
e800 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f ........(buffer-substring-no-pro
e820 70 65 72 74 69 65 73 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 perties.(region-beginning).(regi
e840 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d on-end)))...........(deactivate-
e860 6d 61 72 6b 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d 20 28 73 79 6d 62 6f 6c mark)).......(let*.((sym.(symbol
e880 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 2d 6e 61 -at-point))..............(sym-na
e8a0 6d 65 20 28 77 68 65 6e 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me.(when.sym....................
e8c0 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 ......(substring-no-properties.(
e8e0 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 symbol-name.sym)))).............
e900 20 28 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 .(prompt...............(deadgrep
e920 2d 2d 73 65 61 72 63 68 2d 70 72 6f 6d 70 74 20 73 79 6d 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 --search-prompt.sym-name))).....
e940 20 20 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 20 20 ....(setq.search-term...........
e960 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 ....(read-from-minibuffer.......
e980 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 27 64 65 61 .........prompt.nil.nil.nil.'dea
e9a0 64 67 72 65 70 2d 68 69 73 74 6f 72 79 20 73 79 6d 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 dgrep-history.sym-name))........
e9c0 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 73 65 61 72 63 68 2d 74 65 72 6d 20 22 22 29 0a 20 20 .(when.(equal.search-term."")...
e9e0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 74 65 72 6d 20 73 79 6d 2d 6e 61 ........(setq.search-term.sym-na
ea00 6d 65 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 63 61 72 20 64 me)))).....(unless.(equal.(car.d
ea20 65 61 64 67 72 65 70 2d 68 69 73 74 6f 72 79 29 20 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 eadgrep-history).search-term)...
ea40 20 20 20 20 28 70 75 73 68 20 73 65 61 72 63 68 2d 74 65 72 6d 20 64 65 61 64 67 72 65 70 2d 68 ....(push.search-term.deadgrep-h
ea60 69 73 74 6f 72 79 29 29 0a 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 29 0a 0a 28 64 65 66 istory)).....search-term))..(def
ea80 75 6e 20 64 65 61 64 67 72 65 70 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 20 28 29 0a 20 20 28 69 6e un.deadgrep-incremental.()...(in
eaa0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 61 74 63 68 20 27 62 72 65 61 6b 0a 20 20 20 20 28 teractive)...(catch.'break.....(
eac0 6c 65 74 20 28 28 64 65 61 64 67 72 65 70 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 2d 61 63 74 69 let.((deadgrep--incremental-acti
eae0 76 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 28 6f 72 ve.t)...........(search-term.(or
eb00 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 22 22 29 29 29 0a 20 20 20 .deadgrep--search-term."")))....
eb20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 78 74 2d ...(while.t.........(let.((next-
eb40 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 63 68 61 72 0a 20 char................(read-char..
eb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 55 73 65 20 74 68 65 20 ...............;;.TODO:.Use.the.
eb80 73 61 6d 65 20 70 72 6f 6d 70 74 20 66 6f 72 6d 61 74 20 61 73 20 6f 74 68 65 72 20 73 65 61 72 same.prompt.format.as.other.sear
eba0 63 68 20 6f 70 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 ch.options..................(for
ebc0 6d 61 74 20 22 25 73 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mat."%s.%s".....................
ebe0 20 20 20 20 28 61 70 70 6c 79 20 23 27 70 72 6f 70 65 72 74 69 7a 65 20 22 49 6e 63 72 65 6d 65 ....(apply.#'propertize."Increme
ec00 6e 74 61 6c 20 53 65 61 72 63 68 20 28 52 45 54 20 77 68 65 6e 20 64 6f 6e 65 29 3a 22 20 6d 69 ntal.Search.(RET.when.done):".mi
ec20 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 nibuffer-prompt-properties).....
ec40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 ....................search-term)
ec60 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 )))...........(cond............(
ec80 28 65 71 20 6e 65 78 74 2d 63 68 61 72 20 3f 5c 43 2d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 (eq.next-char.?\C-m)............
eca0 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(throw.'break.nil))............
ecc0 28 28 65 71 20 6e 65 78 74 2d 63 68 61 72 20 3f 5c 43 2d 3f 29 0a 20 20 20 20 20 20 20 20 20 20 ((eq.next-char.?\C-?)...........
ece0 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 74 65 72 6d 20 28 73 2d 6c 65 66 74 20 2d 31 20 73 ..(setq.search-term.(s-left.-1.s
ed00 65 61 72 63 68 2d 74 65 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 earch-term)))............(t.....
ed20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 61 72 63 68 2d 74 65 72 6d 20 28 63 6f 6e 63 61 ........(setq.search-term.(conca
ed40 74 20 73 65 61 72 63 68 2d 74 65 72 6d 20 28 6c 69 73 74 20 6e 65 78 74 2d 63 68 61 72 29 29 29 t.search-term.(list.next-char)))
ed60 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 65 61 ))).........(when.(>.(length.sea
ed80 72 63 68 2d 74 65 72 6d 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 rch-term).2)...........(setq.dea
eda0 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 65 72 6d 20 73 65 61 72 63 68 2d 74 65 72 6d 29 0a dgrep--search-term.search-term).
edc0 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 72 65 73 74 61 72 74 29 29 29 29 29 ..........(deadgrep-restart)))))
ede0 29 0a 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6e 6f 72 6d 61 6c 69 73 65 2d 64 )...(defun.deadgrep--normalise-d
ee00 69 72 6e 61 6d 65 20 28 70 61 74 68 29 0a 20 20 22 45 78 70 61 6e 64 20 50 41 54 48 20 61 6e 64 irname.(path)..."Expand.PATH.and
ee20 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 64 6f 65 73 6e 27 74 20 65 6e 64 20 77 69 74 68 .ensure.that.it.doesn't.end.with
ee40 20 61 20 73 6c 61 73 68 2e 0a 49 66 20 50 41 54 48 20 69 73 20 72 65 6d 6f 74 65 20 70 61 74 68 .a.slash..If.PATH.is.remote.path
ee60 2c 20 69 74 20 69 73 20 6e 6f 74 20 65 78 70 61 6e 64 65 64 2e 22 0a 20 20 28 64 69 72 65 63 74 ,.it.is.not.expanded."...(direct
ee80 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 69 66 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 ory-file-name.(if.(file-remote-p
eea0 20 70 61 74 68 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 .path)..........................
eec0 20 20 70 61 74 68 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 ..path..........................
eee0 28 6c 65 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 68 61 6e 64 6c 65 72 2d 61 6c 69 73 74 29 0a 20 (let.(file-name-handler-alist)..
ef00 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 65 78 70 61 6e ..........................(expan
ef20 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 d-file-name.path)))))..(defun.de
ef40 61 64 67 72 65 70 2d 2d 6c 6f 6f 6b 75 70 2d 6f 76 65 72 72 69 64 65 20 28 70 61 74 68 29 0a 20 adgrep--lookup-override.(path)..
ef60 20 22 49 66 20 50 41 54 48 20 69 73 20 70 72 65 73 65 6e 74 20 69 6e 20 60 64 65 61 64 67 72 65 ."If.PATH.is.present.in.`deadgre
ef80 70 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 6f 76 65 72 72 69 64 65 73 27 2c 0a 72 65 74 75 72 p-project-root-overrides',.retur
efa0 6e 20 74 68 65 20 6f 76 65 72 72 69 64 64 65 6e 20 76 61 6c 75 65 2e 0a 4f 74 68 65 72 77 69 73 n.the.overridden.value..Otherwis
efc0 65 2c 20 72 65 74 75 72 6e 20 50 41 54 48 20 61 73 20 69 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 e,.return.PATH.as.is."...(let*.(
efe0 28 6e 6f 72 6d 61 6c 69 73 65 64 2d 70 61 74 68 20 28 64 65 61 64 67 72 65 70 2d 2d 6e 6f 72 6d (normalised-path.(deadgrep--norm
f000 61 6c 69 73 65 2d 64 69 72 6e 61 6d 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f alise-dirname.path))..........(o
f020 76 65 72 72 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 72 73 74 0a 20 20 20 20 20 20 verride...........(-first.......
f040 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 28 6f 72 69 67 69 6e 61 6c 20 2e 20 5f 29 29 0a 20 .....(-lambda.((original..._))..
f060 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 64 65 61 64 67 72 65 70 2d 2d 6e 6f ............(equal.(deadgrep--no
f080 72 6d 61 6c 69 73 65 2d 64 69 72 6e 61 6d 65 20 6f 72 69 67 69 6e 61 6c 29 20 6e 6f 72 6d 61 6c rmalise-dirname.original).normal
f0a0 69 73 65 64 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d ised-path))............deadgrep-
f0c0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 6f 76 65 72 72 69 64 65 73 29 29 29 0a 20 20 20 20 28 77 project-root-overrides))).....(w
f0e0 68 65 6e 20 6f 76 65 72 72 69 64 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 74 68 20 28 63 hen.override.......(setq.path.(c
f100 64 72 20 6f 76 65 72 72 69 64 65 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 dr.override)).......(unless.(str
f120 69 6e 67 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 ingp.path).........(user-error."
f140 42 61 64 20 6f 76 65 72 72 69 64 65 3a 20 65 78 70 65 63 74 65 64 20 61 20 70 61 74 68 20 73 74 Bad.override:.expected.a.path.st
f160 72 69 6e 67 2c 20 62 75 74 20 67 6f 74 3a 20 25 53 22 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 ring,.but.got:.%S".path)).......
f180 28 73 65 74 71 20 70 61 74 68 20 28 70 72 6f 70 65 72 74 69 7a 65 20 70 61 74 68 20 27 64 65 61 (setq.path.(propertize.path.'dea
f1a0 64 67 72 65 70 2d 6f 76 65 72 72 69 64 64 65 6e 20 74 29 29 29 0a 20 20 20 20 70 61 74 68 29 29 dgrep-overridden.t))).....path))
f1c0 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 ..(defun.deadgrep--project-root.
f1e0 28 29 0a 20 20 22 47 75 65 73 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 6f 66 20 ()..."Guess.the.project.root.of.
f200 74 68 65 20 67 69 76 65 6e 20 46 49 4c 45 2d 50 41 54 48 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 the.given.FILE-PATH."...(let.((r
f220 6f 6f 74 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 28 oot.default-directory).........(
f240 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 2d 63 75 72 72 65 6e 74 29 29 29 0a 20 20 20 20 project.(project-current))).....
f260 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 (when.project.......(cond.((and.
f280 28 66 62 6f 75 6e 64 70 20 27 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 (fboundp.'project-root).........
f2a0 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f ..........(>=.emacs-major-versio
f2c0 6e 20 32 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 70 72 6f 6a 65 63 74 2d n.28))..............;;.`project-
f2e0 72 6f 6f 74 27 20 77 61 73 20 61 64 64 65 64 20 69 6e 20 45 6d 61 63 73 20 32 38 2c 20 62 75 74 root'.was.added.in.Emacs.28,.but
f300 20 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 66 69 .projectile..............;;.defi
f320 6e 65 73 20 69 74 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 2e 0a 20 20 20 20 20 20 20 20 nes.it.unconditionally..........
f340 20 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 .....(setq.root.(project-root.pr
f360 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 oject))).............(t.........
f380 20 20 20 20 20 3b 3b 20 4f 6c 64 65 72 20 45 6d 61 63 73 65 6e 2e 0a 20 20 20 20 20 20 20 20 20 .....;;.Older.Emacsen...........
f3a0 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 72 6f 6f 74 73 20 28 70 72 6f 6a 65 63 74 2d 72 ....(-when-let.(roots.(project-r
f3c0 6f 6f 74 73 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 oots.project))................(s
f3e0 65 74 71 20 72 6f 6f 74 20 28 63 61 72 20 72 6f 6f 74 73 29 29 29 29 29 29 0a 20 20 20 20 28 77 etq.root.(car.roots)))))).....(w
f400 68 65 6e 20 72 6f 6f 74 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 6c 6f 6f 6b 75 70 hen.root.......(deadgrep--lookup
f420 2d 6f 76 65 72 72 69 64 65 20 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 -override.root))))..(defun.deadg
f440 72 65 70 2d 2d 77 72 69 74 65 2d 70 6f 73 74 70 6f 6e 65 64 20 28 29 0a 20 20 22 57 72 69 74 65 rep--write-postponed.()..."Write
f460 20 61 20 6d 65 73 73 61 67 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 .a.message.to.the.current.buffer
f480 20 69 6e 66 6f 72 6d 69 6e 67 20 74 68 65 20 75 73 65 72 20 74 68 61 74 0a 64 65 61 64 67 72 65 .informing.the.user.that.deadgre
f4a0 70 20 69 73 20 72 65 61 64 79 20 62 75 74 20 6e 6f 74 20 79 65 74 20 73 65 61 72 63 68 69 6e 67 p.is.ready.but.not.yet.searching
f4c0 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 ."...(let*.((inhibit-read-only.t
f4e0 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 74 61 72 74 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 )..........(restart-key.........
f500 20 20 28 77 68 65 72 65 2d 69 73 2d 69 6e 74 65 72 6e 61 6c 20 23 27 64 65 61 64 67 72 65 70 2d ..(where-is-internal.#'deadgrep-
f520 72 65 73 74 61 72 74 20 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 2d 6d 61 70 20 74 29 29 29 0a 20 restart.deadgrep-mode-map.t)))..
f540 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 ...(save-excursion.......(goto-c
f560 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 har.(point-max)).......(insert..
f580 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 50 72 65 73 73 20 25 73 20 74 6f 20 73 74 61 72 74 ......(format."Press.%s.to.start
f5a0 20 74 68 65 20 73 65 61 72 63 68 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 65 .the.search."................(ke
f5c0 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 72 65 73 74 61 72 74 2d 6b 65 79 29 29 29 29 29 29 0a y-description.restart-key)))))).
f5e0 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 .(defun.deadgrep--mode-line.()..
f600 20 28 6c 65 74 2a 20 28 28 73 20 28 69 66 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c 74 2d .(let*.((s.(if.deadgrep--result-
f620 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 44 count.................(format."D
f640 65 61 64 67 72 65 70 3a 25 73 22 20 64 65 61 64 67 72 65 70 2d 2d 72 65 73 75 6c 74 2d 63 6f 75 eadgrep:%s".deadgrep--result-cou
f660 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 44 65 61 64 67 72 65 70 22 29 29 0a 20 nt)..............."Deadgrep"))..
f680 20 20 20 20 20 20 20 20 28 73 70 69 6e 6e 65 72 2d 73 74 72 20 28 73 70 69 6e 6e 65 72 2d 70 72 ........(spinner-str.(spinner-pr
f6a0 69 6e 74 20 64 65 61 64 67 72 65 70 2d 2d 73 70 69 6e 6e 65 72 29 29 29 0a 20 20 20 20 28 69 66 int.deadgrep--spinner))).....(if
f6c0 20 73 70 69 6e 6e 65 72 2d 73 74 72 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 73 20 22 .spinner-str.........(concat.s."
f6e0 20 22 20 73 70 69 6e 6e 65 72 2d 73 74 72 29 0a 20 20 20 20 20 20 73 29 29 29 0a 0a 28 64 65 66 .".spinner-str).......s)))..(def
f700 75 6e 20 64 65 61 64 67 72 65 70 2d 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 20 un.deadgrep--create-imenu-index.
f720 28 29 0a 20 20 22 43 72 65 61 74 65 20 60 69 6d 65 6e 75 27 20 69 6e 64 65 78 20 66 6f 72 20 6d ()..."Create.`imenu'.index.for.m
f740 61 74 63 68 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 77 68 65 6e 20 64 65 61 64 67 72 65 70 2d atched.files."...(when.deadgrep-
f760 2d 69 6d 65 6e 75 2d 61 6c 69 73 74 0a 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 22 46 69 -imenu-alist.....(list.(cons."Fi
f780 6c 65 73 22 20 28 72 65 76 65 72 73 65 20 64 65 61 64 67 72 65 70 2d 2d 69 6d 65 6e 75 2d 61 6c les".(reverse.deadgrep--imenu-al
f7a0 69 73 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 ist)))))..;;;###autoload.(defun.
f7c0 64 65 61 64 67 72 65 70 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 deadgrep.(search-term.&optional.
f7e0 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 53 74 61 72 74 20 61 20 72 69 70 67 72 65 70 20 73 65 directory)..."Start.a.ripgrep.se
f800 61 72 63 68 20 66 6f 72 20 53 45 41 52 43 48 2d 54 45 52 4d 20 69 6e 20 44 49 52 45 43 54 4f 52 arch.for.SEARCH-TERM.in.DIRECTOR
f820 59 2e 0a 0a 49 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 2c 20 44 49 52 20 64 65 66 61 75 6c 74 Y...If.not.provided,.DIR.default
f840 73 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 64 65 74 65 72 6d 69 6e 65 64 s.to.the.directory.as.determined
f860 20 62 79 0a 60 64 65 61 64 67 72 65 70 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 .by.`deadgrep-project-root-funct
f880 69 6f 6e 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 64 65 61 64 67 72 65 70 2d 70 72 6f 6a 65 63 ion'...See.also.`deadgrep-projec
f8a0 74 2d 72 6f 6f 74 2d 6f 76 65 72 72 69 64 65 73 27 2e 0a 0a 49 66 20 63 61 6c 6c 65 64 20 77 69 t-root-overrides'...If.called.wi
f8c0 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 63 72 65 61 74 65 20 74 68 65 th.a.prefix.argument,.create.the
f8e0 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 72 20 62 75 74 0a 64 6f 6e 27 74 20 61 63 74 75 61 6c .results.buffer.but.don't.actual
f900 6c 79 20 73 74 61 72 74 20 74 68 65 20 73 65 61 72 63 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ly.start.the.search."...(interac
f920 74 69 76 65 20 28 6c 69 73 74 20 28 64 65 61 64 67 72 65 70 2d 2d 72 65 61 64 2d 73 65 61 72 63 tive.(list.(deadgrep--read-searc
f940 68 2d 74 65 72 6d 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 20 28 6f 72 20 64 69 72 65 h-term)))...(let*.((dir.(or.dire
f960 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c ctory...................(funcall
f980 20 64 65 61 64 67 72 65 70 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 29 .deadgrep-project-root-function)
f9a0 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 ))..........(buf.(deadgrep--buff
f9c0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 er................search-term...
f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............dir................
fa00 28 6f 72 20 64 65 61 64 67 72 65 70 2d 2d 69 6e 69 74 69 61 6c 2d 66 69 6c 65 6e 61 6d 65 0a 20 (or.deadgrep--initial-filename..
fa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e ..................(buffer-file-n
fa40 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 72 65 73 75 6c 74 73 2d 62 ame))))..........(last-results-b
fa60 75 66 20 28 63 61 72 2d 73 61 66 65 20 28 64 65 61 64 67 72 65 70 2d 2d 62 75 66 66 65 72 73 29 uf.(car-safe.(deadgrep--buffers)
fa80 29 29 0a 20 20 20 20 20 20 20 20 20 70 72 65 76 2d 73 65 61 72 63 68 2d 74 79 70 65 0a 20 20 20 ))..........prev-search-type....
faa0 20 20 20 20 20 20 70 72 65 76 2d 73 65 61 72 63 68 2d 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 ......prev-search-case..........
fac0 70 72 65 76 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 0a 20 20 20 20 20 20 20 20 20 70 72 65 prev-skip-if-hidden..........pre
fae0 76 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 29 0a 20 20 20 20 3b 3b 20 46 69 6e v-skip-if-vcs-ignore).....;;.Fin
fb00 64 20 6f 75 74 20 77 68 61 74 20 73 65 61 72 63 68 20 73 65 74 74 69 6e 67 73 20 77 65 72 65 20 d.out.what.search.settings.were.
fb20 75 73 65 64 20 6c 61 73 74 20 74 69 6d 65 2e 0a 20 20 20 20 28 77 68 65 6e 20 6c 61 73 74 2d 72 used.last.time......(when.last-r
fb40 65 73 75 6c 74 73 2d 62 75 66 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 esults-buf.......(with-current-b
fb60 75 66 66 65 72 20 6c 61 73 74 2d 72 65 73 75 6c 74 73 2d 62 75 66 0a 20 20 20 20 20 20 20 20 28 uffer.last-results-buf.........(
fb80 73 65 74 71 20 70 72 65 76 2d 73 65 61 72 63 68 2d 74 79 70 65 20 64 65 61 64 67 72 65 70 2d 2d setq.prev-search-type.deadgrep--
fba0 73 65 61 72 63 68 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d search-type).........(setq.prev-
fbc0 73 65 61 72 63 68 2d 63 61 73 65 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 search-case.deadgrep--search-cas
fbe0 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 73 6b 69 70 2d 69 66 2d 68 69 e).........(setq.prev-skip-if-hi
fc00 64 64 65 6e 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 29 0a 20 dden.deadgrep--skip-if-hidden)..
fc20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 .......(setq.prev-skip-if-vcs-ig
fc40 6e 6f 72 65 20 64 65 61 64 67 72 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 nore.deadgrep--skip-if-vcs-ignor
fc60 65 29 29 29 0a 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 64 65 61 64 67 72 65 70 2d 64 69 73 70 e)))......(funcall.deadgrep-disp
fc80 6c 61 79 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 62 75 66 29 0a 0a 20 20 20 20 28 77 lay-buffer-function.buf)......(w
fca0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 73 65 ith-current-buffer.buf.......(se
fcc0 74 71 20 69 6d 65 6e 75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66 75 6e 63 74 69 6f 6e 20 23 tq.imenu-create-index-function.#
fce0 27 64 65 61 64 67 72 65 70 2d 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78 29 0a 20 'deadgrep--create-imenu-index)..
fd00 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74 69 6f 6e 20 23 .....(setq.next-error-function.#
fd20 27 64 65 61 64 67 72 65 70 2d 6e 65 78 74 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 28 73 65 74 'deadgrep-next-error).......(set
fd40 71 20 6e 65 78 74 2d 65 72 72 6f 72 2d 6c 61 73 74 2d 62 75 66 66 65 72 20 62 75 66 29 0a 0a 20 q.next-error-last-buffer.buf)...
fd60 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 68 61 76 65 20 70 72 65 76 69 6f 75 73 20 73 65 61 72 .....;;.If.we.have.previous.sear
fd80 63 68 20 73 65 74 74 69 6e 67 73 2c 20 61 70 70 6c 79 20 74 68 65 6d 20 74 6f 20 6f 75 72 20 6e ch.settings,.apply.them.to.our.n
fda0 65 77 0a 20 20 20 20 20 20 3b 3b 20 73 65 61 72 63 68 20 72 65 73 75 6c 74 73 20 62 75 66 66 65 ew.......;;.search.results.buffe
fdc0 72 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 61 73 74 2d 72 65 73 75 6c 74 73 2d 62 75 66 0a r........(when.last-results-buf.
fde0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 74 ........(setq.deadgrep--search-t
fe00 79 70 65 20 70 72 65 76 2d 73 65 61 72 63 68 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 28 73 ype.prev-search-type).........(s
fe20 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 68 2d 63 61 73 65 20 70 72 65 76 2d 73 etq.deadgrep--search-case.prev-s
fe40 65 61 72 63 68 2d 63 61 73 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 earch-case).........(setq.deadgr
fe60 65 70 2d 2d 73 6b 69 70 2d 69 66 2d 68 69 64 64 65 6e 20 70 72 65 76 2d 73 6b 69 70 2d 69 66 2d ep--skip-if-hidden.prev-skip-if-
fe80 68 69 64 64 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d hidden).........(setq.deadgrep--
fea0 73 6b 69 70 2d 69 66 2d 76 63 73 2d 69 67 6e 6f 72 65 20 70 72 65 76 2d 73 6b 69 70 2d 69 66 2d skip-if-vcs-ignore.prev-skip-if-
fec0 76 63 73 2d 69 67 6e 6f 72 65 29 29 0a 0a 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 77 vcs-ignore))........(deadgrep--w
fee0 72 69 74 65 2d 68 65 61 64 69 6e 67 29 0a 0a 20 20 20 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 rite-heading)........(if.current
ff00 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 73 -prefix-arg...........;;.Don't.s
ff20 74 61 72 74 20 74 68 65 20 73 65 61 72 63 68 2c 20 6a 75 73 74 20 63 72 65 61 74 65 20 74 68 65 tart.the.search,.just.create.the
ff40 20 62 75 66 66 65 72 20 61 6e 64 20 69 6e 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .buffer.and.inform...........;;.
ff60 74 68 65 20 75 73 65 72 20 68 6f 77 20 74 6f 20 73 74 61 72 74 20 77 68 65 6e 20 74 68 65 79 27 the.user.how.to.start.when.they'
ff80 72 65 20 72 65 61 64 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 re.ready............(progn......
ffa0 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 61 64 67 72 65 70 2d 2d 70 6f 73 74 70 6f 6e 65 2d .......(setq.deadgrep--postpone-
ffc0 73 74 61 72 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d start.t).............(deadgrep--
ffe0 77 72 69 74 65 2d 70 6f 73 74 70 6f 6e 65 64 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 74 61 write-postponed)).........;;.Sta
10000 72 74 20 74 68 65 20 73 65 61 72 63 68 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 0a 20 20 20 20 20 rt.the.search.immediately.......
10020 20 20 20 28 64 65 61 64 67 72 65 70 2d 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 73 65 61 ...(deadgrep--start..........sea
10040 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 rch-term..........deadgrep--sear
10060 63 68 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 64 65 61 64 67 72 65 70 2d 2d 73 65 61 72 63 ch-type..........deadgrep--searc
10080 68 2d 63 61 73 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 6e 65 78 h-case)))))..(defun.deadgrep-nex
100a0 74 2d 65 72 72 6f 72 20 28 61 72 67 20 72 65 73 65 74 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 t-error.(arg.reset)..."Move.to.t
100c0 68 65 20 6e 65 78 74 20 65 72 72 6f 72 2e 0a 49 66 20 41 52 47 20 69 73 20 67 69 76 65 6e 2c 20 he.next.error..If.ARG.is.given,.
100e0 6d 6f 76 65 20 62 79 20 74 68 61 74 20 6d 61 6e 79 20 65 72 72 6f 72 73 2e 0a 0a 54 68 69 73 20 move.by.that.many.errors...This.
10100 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 60 6e 65 78 74 2d 65 is.intended.for.use.with.`next-e
10120 72 72 6f 72 2d 66 75 6e 63 74 69 6f 6e 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 77 rror-function',.which.see."...(w
10140 68 65 6e 20 72 65 73 65 74 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d hen.reset.....(goto-char.(point-
10160 6d 69 6e 29 29 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 min)))...(beginning-of-line)...(
10180 6c 65 74 20 28 28 64 69 72 65 63 74 69 6f 6e 20 28 3e 20 61 72 67 20 30 29 29 29 0a 20 20 20 20 let.((direction.(>.arg.0))).....
101a0 28 73 65 74 71 20 61 72 67 20 28 61 62 73 20 61 72 67 29 29 0a 0a 20 20 20 20 28 77 68 69 6c 65 (setq.arg.(abs.arg))......(while
101c0 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 61 72 .(and.............(not.(zerop.ar
101e0 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 29 0a 20 20 g)).............(not.(eobp)))...
10200 20 20 20 20 28 69 66 20 64 69 72 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 ....(if.direction...........(for
10220 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 ward-line.1).........(forward-li
10240 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 6f 6e 20 61 20 ne.-1)).......;;.If.we.are.on.a.
10260 73 70 65 63 69 66 69 63 20 72 65 73 75 6c 74 20 28 6e 6f 74 20 61 20 68 65 61 64 69 6e 67 29 2c specific.result.(not.a.heading),
10280 20 77 65 20 68 61 76 65 20 61 20 6c 69 6e 65 0a 20 20 20 20 20 20 3b 3b 20 6e 75 6d 62 65 72 2e .we.have.a.line.......;;.number.
102a0 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 .......(when.(get-text-property.
102c0 28 70 6f 69 6e 74 29 20 27 64 65 61 64 67 72 65 70 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 29 0a 20 (point).'deadgrep-line-number)..
102e0 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 61 72 67 29 29 29 29 0a 20 20 28 64 65 61 64 67 .......(cl-decf.arg))))...(deadg
10300 72 65 70 2d 76 69 73 69 74 2d 72 65 73 75 6c 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 29 0a rep-visit-result-other-window)).
10320 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 64 65 62 75 67 20 28 29 0a 20 20 22 53 68 6f .(defun.deadgrep-debug.()..."Sho
10340 77 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 73 6f 6d 65 20 64 65 62 75 67 20 69 6e 66 6f 72 w.a.buffer.with.some.debug.infor
10360 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 61 72 63 68 2e mation.about.the.current.search.
10380 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 "...(interactive)...(unless.(eq.
103a0 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 64 65 61 64 67 72 65 70 2d 6d 6f 64 65 29 0a 20 20 20 20 28 major-mode.'deadgrep-mode).....(
103c0 75 73 65 72 2d 65 72 72 6f 72 20 22 64 65 61 64 67 72 65 70 2d 64 65 62 75 67 20 73 68 6f 75 6c user-error."deadgrep-debug.shoul
103e0 64 20 62 65 20 72 75 6e 20 69 6e 20 61 20 64 65 61 64 67 72 65 70 20 72 65 73 75 6c 74 73 20 62 d.be.run.in.a.deadgrep.results.b
10400 75 66 66 65 72 22 29 29 0a 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 64 65 61 64 67 uffer"))....(let.((command.deadg
10420 72 65 70 2d 2d 64 65 62 75 67 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 rep--debug-command).........(out
10440 70 75 74 20 64 65 61 64 67 72 65 70 2d 2d 64 65 62 75 67 2d 66 69 72 73 74 2d 6f 75 74 70 75 74 put.deadgrep--debug-first-output
10460 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 ).........(buf.(get-buffer-creat
10480 65 20 22 2a 64 65 61 64 67 72 65 70 20 64 65 62 75 67 2a 22 29 29 0a 20 20 20 20 20 20 20 20 28 e."*deadgrep.debug*")).........(
104a0 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 28 70 6f 70 2d 74 inhibit-read-only.t)).....(pop-t
104c0 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 o-buffer.buf).....(erase-buffer)
104e0 0a 20 20 20 20 28 73 70 65 63 69 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 .....(special-mode).....(setq.bu
10500 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 0a 20 20 20 20 28 69 6e 73 65 72 74 0a 20 ffer-read-only.t)......(insert..
10520 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 41 62 6f 75 74 20 79 6f 75 ....(propertize......."About.you
10540 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 3a 5c 6e 22 0a 20 20 20 20 20 20 27 66 61 63 65 20 27 64 r.environment:\n".......'face.'d
10560 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 66 6f 72 eadgrep-filename-face)......(for
10580 6d 61 74 20 22 50 6c 61 74 66 6f 72 6d 3a 20 25 73 5c 6e 22 20 73 79 73 74 65 6d 2d 74 79 70 65 mat."Platform:.%s\n".system-type
105a0 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 3a 20 25 )......(format."Emacs.version:.%
105c0 73 5c 6e 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 s\n".emacs-version)......(format
105e0 20 22 43 6f 6d 6d 61 6e 64 3a 20 25 73 5c 6e 22 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 28 ."Command:.%s\n".command)......(
10600 66 6f 72 6d 61 74 20 22 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 3a 20 25 53 5c 6e 22 format."default-directory:.%S\n"
10620 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 .default-directory)......(format
10640 20 22 65 78 65 63 2d 70 61 74 68 3a 20 25 53 5c 6e 22 20 65 78 65 63 2d 70 61 74 68 29 0a 20 20 ."exec-path:.%S\n".exec-path)...
10660 20 20 20 28 69 66 20 28 62 6f 75 6e 64 70 20 27 74 72 61 6d 70 2d 72 65 6d 6f 74 65 2d 70 61 74 ...(if.(boundp.'tramp-remote-pat
10680 68 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 74 72 61 6d 70 2d 72 65 6d 6f 74 65 2d 70 61 h)......(format."tramp-remote-pa
106a0 74 68 3a 20 25 53 5c 6e 22 20 74 72 61 6d 70 2d 72 65 6d 6f 74 65 2d 70 61 74 68 29 0a 20 20 20 th:.%S\n".tramp-remote-path)....
106c0 20 20 20 20 22 22 29 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 ...."")......(propertize......."
106e0 5c 6e 49 6e 69 74 69 61 6c 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 72 69 70 67 72 65 70 3a 5c 6e \nInitial.output.from.ripgrep:\n
10700 22 0a 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 ".......'face.'deadgrep-filename
10720 2d 66 61 63 65 29 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 53 22 20 6f 75 74 70 75 74 29 -face)......(format."%S".output)
10740 0a 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 22 5c 6e 5c 6e 50 6c 65 ......(propertize......."\n\nPle
10760 61 73 65 20 66 69 6c 65 20 62 75 67 73 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e ase.file.bugs.at.https://github.
10780 63 6f 6d 2f 57 69 6c 66 72 65 64 2f 64 65 61 64 67 72 65 70 2f 69 73 73 75 65 73 2f 6e 65 77 22 com/Wilfred/deadgrep/issues/new"
107a0 0a 20 20 20 20 20 20 27 66 61 63 65 20 27 64 65 61 64 67 72 65 70 2d 66 69 6c 65 6e 61 6d 65 2d .......'face.'deadgrep-filename-
107c0 66 61 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 61 64 67 72 65 70 2d 6b 69 6c 6c 2d 61 face))))..(defun.deadgrep-kill-a
107e0 6c 6c 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 61 6c 6c 20 6f 70 65 6e 20 64 ll-buffers.()..."Kill.all.open.d
10800 65 61 64 67 72 65 70 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 eadgrep.buffers."...(interactive
10820 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72 20 28 64 65 61 64 67 72 65 70 2d 2d 62 )...(dolist.(buffer.(deadgrep--b
10840 75 66 66 65 72 73 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 uffers)).....(kill-buffer.buffer
10860 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 64 65 61 64 67 72 65 70 29 0a 3b 3b 3b 20 64 65 61 )))..(provide.'deadgrep).;;;.dea
10880 64 67 72 65 70 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 dgrep.el.ends.here..;;.Local.Var
108a0 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 iables:.;;.byte-compile-warnings
108c0 3a 20 28 6e 6f 74 20 6f 62 73 6f 6c 65 74 65 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 :.(not.obsolete).;;.End:........
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 ................................