| ofs | hex dump | ascii |
|---|
| 0000 | 70 72 65 73 63 69 65 6e 74 2d 32 30 32 35 30 38 31 36 2e 31 39 2f 00 00 00 00 00 00 00 00 00 00 | prescient-20250816.19/.......... |
| 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 36 34 36 00 20 35 00 00 00 | 0000000.00000000000.012646..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 | 70 72 65 73 63 69 65 6e 74 2d 32 30 32 35 30 38 31 36 2e 31 39 2f 70 72 65 73 63 69 65 6e 74 2d | prescient-20250816.19/prescient- |
| 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 36 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 35 33 00 20 30 00 00 00 | 0000666.00000000000.015753..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 70 72 65 73 63 69 65 6e 74 22 20 22 32 30 32 35 30 38 31 36 2e 31 39 22 0a 20 20 | age."prescient"."20250816.19"... |
| 0460 | 22 42 65 74 74 65 72 20 73 6f 72 74 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 2e 22 0a | "Better.sorting.and.filtering.". |
| 0480 | 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 | ..'((emacs."25.1"))...:url."http |
| 04a0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72 65 73 63 69 65 6e | s://github.com/raxod502/prescien |
| 04c0 | 74 2e 65 6c 22 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 38 37 65 32 64 32 66 32 64 64 66 32 34 66 35 | t.el"...:commit."87e2d2f2ddf24f5 |
| 04e0 | 39 31 61 35 66 37 30 63 63 39 30 64 32 61 66 62 34 35 33 37 63 61 61 31 38 22 0a 20 20 3a 72 65 | 91a5f70cc90d2afb4537caa18"...:re |
| 0500 | 76 64 65 73 63 20 22 38 37 65 32 64 32 66 32 64 64 66 32 22 0a 20 20 3a 6b 65 79 77 6f 72 64 73 | vdesc."87e2d2f2ddf2"...:keywords |
| 0520 | 20 27 28 22 65 78 74 65 6e 73 69 6f 6e 73 22 29 0a 20 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 | .'("extensions")...:authors.'((" |
| 0540 | 52 61 64 69 61 6e 20 4c 4c 43 22 20 2e 20 22 63 6f 6e 74 61 63 74 2b 70 72 65 73 63 69 65 6e 74 | Radian.LLC"..."contact+prescient |
| 0560 | 40 72 61 64 69 61 6e 2e 63 6f 64 65 73 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 20 | @radian.codes"))...:maintainers. |
| 0580 | 27 28 28 22 52 61 64 69 61 6e 20 4c 4c 43 22 20 2e 20 22 63 6f 6e 74 61 63 74 2b 70 72 65 73 63 | '(("Radian.LLC"..."contact+presc |
| 05a0 | 69 65 6e 74 40 72 61 64 69 61 6e 2e 63 6f 64 65 73 22 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 | ient@radian.codes")))........... |
| 05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0600 | 70 72 65 73 63 69 65 6e 74 2d 32 30 32 35 30 38 31 36 2e 31 39 2f 70 72 65 73 63 69 65 6e 74 2e | prescient-20250816.19/prescient. |
| 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 31 36 31 34 31 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 37 34 00 20 30 00 00 00 | 0161415.00000000000.015174..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 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 2d 2d 2d 20 42 65 74 74 65 72 20 73 6f 72 74 | ;;;.prescient.el.---.Better.sort |
| 0820 | 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 | ing.and.filtering.-*-.lexical-bi |
| 0840 | 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 | nding:.t.-*-..;;.Copyright.(C).2 |
| 0860 | 30 31 37 2d 32 30 32 32 20 52 61 64 69 61 6e 20 4c 4c 43 20 61 6e 64 20 63 6f 6e 74 72 69 62 75 | 017-2022.Radian.LLC.and.contribu |
| 0880 | 74 6f 72 73 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 52 61 64 69 61 6e 20 4c 4c 43 20 3c 63 6f 6e | tors..;;.Author:.Radian.LLC.<con |
| 08a0 | 74 61 63 74 2b 70 72 65 73 63 69 65 6e 74 40 72 61 64 69 61 6e 2e 63 6f 64 65 73 3e 0a 3b 3b 20 | tact+prescient@radian.codes>.;;. |
| 08c0 | 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78 | Homepage:.https://github.com/rax |
| 08e0 | 6f 64 35 30 32 2f 70 72 65 73 63 69 65 6e 74 2e 65 6c 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 | od502/prescient.el.;;.Keywords:. |
| 0900 | 65 78 74 65 6e 73 69 6f 6e 73 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 37 20 41 75 67 20 32 30 31 | extensions.;;.Created:.7.Aug.201 |
| 0920 | 37 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 | 7.;;.Package-Requires:.((emacs." |
| 0940 | 32 35 2e 31 22 29 29 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 | 25.1")).;;.SPDX-License-Identifi |
| 0960 | 65 72 3a 20 4d 49 54 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 56 65 72 73 69 6f 6e 3a 20 32 30 32 35 | er:.MIT.;;.Package-Version:.2025 |
| 0980 | 30 38 31 36 2e 31 39 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 76 69 73 69 6f 6e 3a 20 38 37 65 | 0816.19.;;.Package-Revision:.87e |
| 09a0 | 32 64 32 66 32 64 64 66 32 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 70 | 2d2f2ddf2..;;;.Commentary:..;;.p |
| 09c0 | 72 65 73 63 69 65 6e 74 2e 65 6c 20 69 73 20 61 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 | rescient.el.is.a.general-purpose |
| 09e0 | 20 6c 69 62 72 61 72 79 20 66 6f 72 20 73 6f 72 74 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 | .library.for.sorting.and.filteri |
| 0a00 | 6e 67 0a 3b 3b 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 0a 3b 3b 20 54 68 65 20 61 6c 67 6f 72 69 | ng.;;.candidates...;;.The.algori |
| 0a20 | 74 68 6d 20 6f 66 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 69 73 20 76 65 72 79 20 73 69 6d 70 | thm.of.prescient.el.is.very.simp |
| 0a40 | 6c 65 2e 20 59 6f 75 20 65 6e 74 65 72 20 61 20 71 75 65 72 79 2c 20 6f 72 0a 3b 3b 20 6d 75 6c | le..You.enter.a.query,.or.;;.mul |
| 0a60 | 74 69 70 6c 65 20 71 75 65 72 69 65 73 20 73 65 70 61 72 61 74 65 64 20 62 79 20 73 70 61 63 65 | tiple.queries.separated.by.space |
| 0a80 | 73 20 28 74 77 6f 20 73 70 61 63 65 73 20 6d 61 74 63 68 20 61 20 6c 69 74 65 72 61 6c 0a 3b 3b | s.(two.spaces.match.a.literal.;; |
| 0aa0 | 20 73 70 61 63 65 29 2c 20 61 6e 64 20 65 61 63 68 20 71 75 65 72 79 20 66 69 6c 74 65 72 73 20 | .space),.and.each.query.filters. |
| 0ac0 | 74 68 65 20 63 61 6e 64 69 64 61 74 65 73 20 62 79 20 6d 61 74 63 68 69 6e 67 20 65 69 74 68 65 | the.candidates.by.matching.eithe |
| 0ae0 | 72 20 61 0a 3b 3b 20 73 75 62 73 74 72 69 6e 67 20 28 65 2e 67 2e 20 22 73 63 69 65 6e 74 22 20 | r.a.;;.substring.(e.g.."scient". |
| 0b00 | 6d 61 74 63 68 65 73 20 22 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 74 68 72 | matches."prescient-frequency-thr |
| 0b20 | 65 73 68 6f 6c 64 22 29 0a 3b 3b 20 6f 72 20 69 6e 69 74 69 61 6c 69 73 6d 20 28 65 2e 67 2e 20 | eshold").;;.or.initialism.(e.g.. |
| 0b40 | 22 66 74 22 20 61 6c 73 6f 20 6d 61 74 63 68 65 73 20 74 68 65 20 73 61 6d 65 29 2e 20 54 68 65 | "ft".also.matches.the.same)..The |
| 0b60 | 6e 2c 20 63 61 6e 64 69 64 61 74 65 73 0a 3b 3b 20 61 72 65 20 73 6f 72 74 65 64 20 74 6f 20 70 | n,.candidates.;;.are.sorted.to.p |
| 0b80 | 72 69 6f 72 69 74 69 7a 65 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 | rioritize.recently.chosen.candid |
| 0ba0 | 61 74 65 73 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 0a 3b 3b 20 66 72 65 71 75 65 6e 74 6c 79 20 | ates,.followed.by.;;.frequently. |
| 0bc0 | 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 2c 20 77 69 74 68 20 74 68 65 20 72 65 6d 61 | chosen.candidates,.with.the.rema |
| 0be0 | 69 6e 69 6e 67 20 63 61 6e 64 69 64 61 74 65 73 20 73 6f 72 74 65 64 0a 3b 3b 20 62 79 20 6c 65 | ining.candidates.sorted.;;.by.le |
| 0c00 | 6e 67 74 68 2e 0a 0a 3b 3b 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 61 69 6d 73 20 74 6f 20 72 | ngth...;;.prescient.el.aims.to.r |
| 0c20 | 65 70 6c 61 63 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 6f 74 68 65 72 20 70 61 63 6b 61 67 65 | eplace.a.number.of.other.package |
| 0c40 | 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 3b 3b 20 49 44 4f 2c 20 53 6d 65 78 2c 20 46 6c 78 2c 20 | s,.including.;;.IDO,.Smex,.Flx,. |
| 0c60 | 48 69 73 74 6f 72 69 61 6e 2c 20 61 6e 64 20 43 6f 6d 70 61 6e 79 2d 53 74 61 74 69 73 74 69 63 | Historian,.and.Company-Statistic |
| 0c80 | 73 2e 20 49 74 20 61 6c 73 6f 20 72 65 70 6c 61 63 65 73 0a 3b 3b 20 74 68 65 20 73 6f 72 74 69 | s..It.also.replaces.;;.the.sorti |
| 0ca0 | 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 69 65 73 | ng.and.filtering.functionalities |
| 0cc0 | 20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 72 61 6d 65 77 6f 72 6b 73 0a 3b 3b 20 73 75 63 | .of.completion.frameworks.;;.suc |
| 0ce0 | 68 20 61 73 20 48 65 6c 6d 20 61 6e 64 20 49 76 79 2e 0a 0a 3b 3b 20 54 6f 20 75 73 65 20 70 72 | h.as.Helm.and.Ivy...;;.To.use.pr |
| 0d00 | 65 73 63 69 65 6e 74 2e 65 6c 20 66 6f 72 20 49 76 79 2c 20 73 65 65 20 69 76 79 2d 70 72 65 73 | escient.el.for.Ivy,.see.ivy-pres |
| 0d20 | 63 69 65 6e 74 2e 65 6c 2e 20 54 6f 20 75 73 65 0a 3b 3b 20 70 72 65 73 63 69 65 6e 74 2e 65 6c | cient.el..To.use.;;.prescient.el |
| 0d40 | 20 66 6f 72 20 43 6f 6d 70 61 6e 79 2c 20 73 65 65 20 63 6f 6d 70 61 6e 79 2d 70 72 65 73 63 69 | .for.Company,.see.company-presci |
| 0d60 | 65 6e 74 2e 65 6c 2e 20 49 6e 20 65 69 74 68 65 72 20 63 61 73 65 2c 0a 3b 3b 20 79 6f 75 20 77 | ent.el..In.either.case,.;;.you.w |
| 0d80 | 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 77 61 6e 74 20 79 6f 75 72 20 75 73 61 67 65 20 | ill.most.likely.want.your.usage. |
| 0da0 | 73 74 61 74 69 73 74 69 63 73 20 74 6f 20 62 65 20 73 61 76 65 64 20 61 63 72 6f 73 73 0a 3b 3b | statistics.to.be.saved.across.;; |
| 0dc0 | 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 3b 20 74 6f 20 64 6f 20 74 68 69 73 2c 20 65 6e 61 | .Emacs.sessions;.to.do.this,.ena |
| 0de0 | 62 6c 65 20 60 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 27 20 69 6e 20 | ble.`prescient-persist-mode'.in. |
| 0e00 | 79 6f 75 72 0a 3b 3b 20 69 6e 69 74 2d 66 69 6c 65 20 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 | your.;;.init-file.or.interactive |
| 0e20 | 6c 79 2e 0a 0a 3b 3b 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 73 65 | ly...;;.For.more.information,.se |
| 0e40 | 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72 | e.https://github.com/raxod502/pr |
| 0e60 | 65 73 63 69 65 6e 74 2e 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 20 54 6f 20 73 65 | escient.el...;;;.Code:..;;.To.se |
| 0e80 | 65 20 74 68 65 20 6f 75 74 6c 69 6e 65 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2c 20 72 75 6e 20 | e.the.outline.of.this.file,.run. |
| 0ea0 | 4d 2d 78 20 6f 75 74 6c 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 61 6e 64 0a 3b 3b 20 74 68 | M-x.outline-minor-mode.and.;;.th |
| 0ec0 | 65 6e 20 70 72 65 73 73 20 43 2d 63 20 40 20 43 2d 74 2e 20 54 6f 20 61 6c 73 6f 20 73 68 6f 77 | en.press.C-c.@.C-t..To.also.show |
| 0ee0 | 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 0a 3b 3b 20 | .the.top-level.functions.and.;;. |
| 0f00 | 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 20 65 61 63 68 20 73 65 | variable.declarations.in.each.se |
| 0f20 | 63 74 69 6f 6e 2c 20 72 75 6e 20 4d 2d 78 20 6f 63 63 75 72 20 77 69 74 68 20 74 68 65 0a 3b 3b | ction,.run.M-x.occur.with.the.;; |
| 0f40 | 20 66 6f 6c 6c 6f 77 69 6e 67 20 71 75 65 72 79 3a 20 5e 3b 3b 3b 3b 2a 20 5c 7c 5e 28 0a 0a 3b | .following.query:.^;;;;*.\|^(..; |
| 0f60 | 3b 3b 3b 20 4c 69 62 72 61 72 69 65 73 0a 0a 3b 3b 20 52 65 71 75 69 72 65 20 60 63 68 61 72 2d | ;;;.Libraries..;;.Require.`char- |
| 0f80 | 66 6f 6c 64 27 20 73 6f 20 74 68 61 74 20 60 63 68 61 72 2d 66 6f 6c 64 2d 74 61 62 6c 65 27 20 | fold'.so.that.`char-fold-table'. |
| 0fa0 | 67 65 74 73 20 64 65 66 69 6e 65 64 2e 0a 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 60 63 68 61 72 | gets.defined..;;.Otherwise.`char |
| 0fc0 | 2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 27 20 63 61 6e 20 73 69 67 6e 61 6c 20 61 6e 20 65 | -fold-to-regexp'.can.signal.an.e |
| 0fe0 | 72 72 6f 72 2e 0a 28 72 65 71 75 69 72 65 20 27 63 68 61 72 2d 66 6f 6c 64 29 0a 28 72 65 71 75 | rror..(require.'char-fold).(requ |
| 1000 | 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 0a | ire.'cl-lib).(require.'subr-x).. |
| 1020 | 3b 3b 3b 3b 20 55 73 65 72 20 6f 70 74 69 6f 6e 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 70 72 65 | ;;;;.User.options..(defgroup.pre |
| 1040 | 73 63 69 65 6e 74 20 6e 69 6c 0a 20 20 22 53 69 6d 70 6c 65 20 62 75 74 20 65 66 66 65 63 74 69 | scient.nil..."Simple.but.effecti |
| 1060 | 76 65 20 63 61 6e 64 69 64 61 74 65 20 73 6f 72 74 69 6e 67 20 62 79 20 75 73 61 67 65 2e 22 0a | ve.candidate.sorting.by.usage.". |
| 1080 | 20 20 3a 67 72 6f 75 70 20 27 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 20 20 3a 70 72 65 66 69 78 20 | ..:group.'convenience...:prefix. |
| 10a0 | 22 70 72 65 73 63 69 65 6e 74 2d 22 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e 6b 20 | "prescient-"...:link.'(url-link. |
| 10c0 | 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72 65 | "https://github.com/raxod502/pre |
| 10e0 | 73 63 69 65 6e 74 2e 65 6c 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 | scient.el"))..(defcustom.prescie |
| 1100 | 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 20 31 30 30 0a 20 20 22 4e 75 6d 62 65 72 20 | nt-history-length.100..."Number. |
| 1120 | 6f 66 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 20 74 68 | of.recently.chosen.candidates.th |
| 1140 | 61 74 20 77 69 6c 6c 20 62 65 20 72 65 6d 65 6d 62 65 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 | at.will.be.remembered."...:type. |
| 1160 | 27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 66 | 'number)..(defcustom.prescient-f |
| 1180 | 72 65 71 75 65 6e 63 79 2d 64 65 63 61 79 20 30 2e 39 39 37 0a 20 20 22 52 61 74 65 20 61 74 20 | requency-decay.0.997..."Rate.at. |
| 11a0 | 77 68 69 63 68 20 66 72 65 71 75 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 | which.frequently.chosen.candidat |
| 11c0 | 65 73 20 77 69 6c 6c 20 62 65 20 66 6f 72 67 6f 74 74 65 6e 2e 0a 45 76 65 72 79 20 74 69 6d 65 | es.will.be.forgotten..Every.time |
| 11e0 | 20 61 20 63 61 6e 64 69 64 61 74 65 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 6c 6c 20 63 61 | .a.candidate.is.selected,.all.ca |
| 1200 | 6e 64 69 64 61 74 65 73 20 61 72 65 20 6d 75 6c 74 69 70 6c 69 65 64 0a 62 79 20 74 68 69 73 20 | ndidates.are.multiplied.by.this. |
| 1220 | 66 61 63 74 6f 72 2e 20 53 65 65 20 61 6c 73 6f 20 60 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 | factor..See.also.`prescient-freq |
| 1240 | 75 65 6e 63 79 2d 74 68 72 65 73 68 6f 6c 64 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 | uency-threshold'."...:type.'numb |
| 1260 | 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 75 65 | er)..(defcustom.prescient-freque |
| 1280 | 6e 63 79 2d 74 68 72 65 73 68 6f 6c 64 20 30 2e 30 35 0a 20 20 22 54 68 72 65 73 68 6f 6c 64 20 | ncy-threshold.0.05..."Threshold. |
| 12a0 | 66 6f 72 20 66 6f 72 67 65 74 74 69 6e 67 20 61 62 6f 75 74 20 61 20 66 72 65 71 75 65 6e 74 6c | for.forgetting.about.a.frequentl |
| 12c0 | 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 2e 0a 41 6e 79 20 63 61 6e 64 69 64 61 74 | y.chosen.candidate..Any.candidat |
| 12e0 | 65 73 20 77 69 74 68 20 66 72 65 71 75 65 6e 63 69 65 73 20 6c 65 73 73 20 74 68 61 6e 20 74 68 | es.with.frequencies.less.than.th |
| 1300 | 69 73 20 61 66 74 65 72 20 61 20 73 65 6c 65 63 74 69 6f 6e 0a 77 69 6c 6c 20 62 65 20 64 69 73 | is.after.a.selection.will.be.dis |
| 1320 | 63 61 72 64 65 64 2e 20 53 65 65 20 61 6c 73 6f 20 60 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 | carded..See.also.`prescient-freq |
| 1340 | 75 65 6e 63 79 2d 64 65 63 61 79 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a | uency-decay'."...:type.'number). |
| 1360 | 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 0a | .(defcustom.prescient-save-file. |
| 1380 | 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 76 61 72 2f 70 72 65 73 63 69 65 | ..(expand-file-name."var/prescie |
| 13a0 | 6e 74 2d 73 61 76 65 2e 65 6c 22 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 | nt-save.el".user-emacs-directory |
| 13c0 | 29 0a 20 20 22 46 69 6c 65 20 69 6e 20 77 68 69 63 68 20 74 6f 20 73 61 76 65 20 75 73 61 67 65 | )..."File.in.which.to.save.usage |
| 13e0 | 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 54 68 69 73 20 6f 6e 6c 79 20 68 61 73 20 61 6e 20 65 | .information..This.only.has.an.e |
| 1400 | 66 66 65 63 74 20 69 66 20 60 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 | ffect.if.`prescient-persist-mode |
| 1420 | 27 20 69 73 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a 0a 28 | '.is.enabled."...:type.'file)..( |
| 1440 | 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f | defcustom.prescient-filter-metho |
| 1460 | 64 20 27 28 6c 69 74 65 72 61 6c 20 72 65 67 65 78 70 20 69 6e 69 74 69 61 6c 69 73 6d 29 0a 20 | d.'(literal.regexp.initialism).. |
| 1480 | 20 22 48 6f 77 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 | ."How.to.interpret.prescient.el. |
| 14a0 | 66 69 6c 74 65 72 69 6e 67 20 71 75 65 72 69 65 73 2e 0a 51 75 65 72 69 65 73 20 61 72 65 20 66 | filtering.queries..Queries.are.f |
| 14c0 | 69 72 73 74 20 73 70 6c 69 74 20 6f 6e 20 73 70 61 63 65 73 20 28 77 69 74 68 20 74 77 6f 20 63 | irst.split.on.spaces.(with.two.c |
| 14e0 | 6f 6e 73 65 63 75 74 69 76 65 20 73 70 61 63 65 73 0a 73 74 61 6e 64 69 6e 67 20 66 6f 72 20 61 | onsecutive.spaces.standing.for.a |
| 1500 | 20 6c 69 74 65 72 61 6c 20 73 70 61 63 65 29 2e 20 54 68 65 6e 2c 20 74 68 65 20 63 61 6e 64 69 | .literal.space)..Then,.the.candi |
| 1520 | 64 61 74 65 73 20 61 72 65 20 66 69 6c 74 65 72 65 64 0a 75 73 69 6e 67 20 65 61 63 68 20 73 75 | dates.are.filtered.using.each.su |
| 1540 | 62 71 75 65 72 79 20 69 6e 20 74 75 72 6e 2e 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 61 66 | bquery.in.turn..This.variable.af |
| 1560 | 66 65 63 74 73 20 68 6f 77 20 74 68 61 74 0a 66 69 6c 74 65 72 69 6e 67 20 74 61 6b 65 73 20 70 | fects.how.that.filtering.takes.p |
| 1580 | 6c 61 63 65 2e 0a 0a 56 61 6c 75 65 20 60 6c 69 74 65 72 61 6c 27 20 6d 65 61 6e 73 20 74 68 65 | lace...Value.`literal'.means.the |
| 15a0 | 20 73 75 62 71 75 65 72 79 20 6d 75 73 74 20 62 65 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 | .subquery.must.be.a.substring.of |
| 15c0 | 20 74 68 65 0a 63 61 6e 64 69 64 61 74 65 2e 20 53 75 70 70 6f 72 74 73 20 63 68 61 72 20 66 6f | .the.candidate..Supports.char.fo |
| 15e0 | 6c 64 69 6e 67 2e 0a 0a 56 61 6c 75 65 20 60 6c 69 74 65 72 61 6c 2d 70 72 65 66 69 78 27 20 6d | lding...Value.`literal-prefix'.m |
| 1600 | 65 61 6e 73 20 74 68 65 20 66 69 72 73 74 20 73 75 62 71 75 65 72 79 20 6d 75 73 74 20 62 65 20 | eans.the.first.subquery.must.be. |
| 1620 | 74 68 65 0a 70 72 65 66 69 78 20 6f 66 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 20 61 6e 64 20 | the.prefix.of.the.candidate.and. |
| 1640 | 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 73 75 62 71 75 65 72 69 65 73 20 6d 75 73 74 20 62 65 | the.remaining.subqueries.must.be |
| 1660 | 0a 70 72 65 66 69 78 65 73 20 6f 66 20 77 6f 72 64 73 20 69 6e 20 74 68 65 20 63 61 6e 64 69 64 | .prefixes.of.words.in.the.candid |
| 1680 | 61 74 65 2e 20 53 75 70 70 6f 72 74 73 20 63 68 61 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 56 61 6c | ate..Supports.char.folding...Val |
| 16a0 | 75 65 20 60 72 65 67 65 78 70 27 20 6d 65 61 6e 73 20 74 68 65 20 73 75 62 71 75 65 72 79 20 69 | ue.`regexp'.means.the.subquery.i |
| 16c0 | 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 64 69 72 65 63 74 6c 79 20 61 73 20 61 0a 72 65 67 75 | s.interpreted.directly.as.a.regu |
| 16e0 | 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 56 61 6c 75 65 20 60 69 6e 69 74 69 61 6c 69 | lar.expression...Value.`initiali |
| 1700 | 73 6d 27 20 6d 65 61 6e 73 20 74 68 65 20 73 75 62 71 75 65 72 79 20 6d 75 73 74 20 6d 61 74 63 | sm'.means.the.subquery.must.matc |
| 1720 | 68 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 0a 74 68 65 20 69 6e 69 74 69 61 6c 73 20 6f 66 | h.a.substring.of.the.initials.of |
| 1740 | 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 2e 0a 0a 56 61 6c 75 65 20 60 66 75 7a 7a 79 27 20 6d | .the.candidate...Value.`fuzzy'.m |
| 1760 | 65 61 6e 73 20 74 68 65 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68 65 20 73 75 62 71 75 | eans.the.characters.of.the.subqu |
| 1780 | 65 72 79 20 6d 75 73 74 20 6d 61 74 63 68 0a 73 6f 6d 65 20 73 75 62 73 65 74 20 6f 66 20 74 68 | ery.must.match.some.subset.of.th |
| 17a0 | 6f 73 65 20 6f 66 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 2c 20 69 6e 20 74 68 65 20 63 6f 72 | ose.of.the.candidate,.in.the.cor |
| 17c0 | 72 65 63 74 20 6f 72 64 65 72 20 62 75 74 0a 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 63 | rect.order.but.not.necessarily.c |
| 17e0 | 6f 6e 74 69 67 75 6f 75 73 2e 0a 0a 56 61 6c 75 65 20 60 70 72 65 66 69 78 27 20 6d 65 61 6e 73 | ontiguous...Value.`prefix'.means |
| 1800 | 20 74 68 65 20 77 6f 72 64 73 20 28 73 75 62 73 74 72 69 6e 67 73 20 6f 66 20 6f 6e 6c 79 20 77 | .the.words.(substrings.of.only.w |
| 1820 | 6f 72 64 0a 63 68 61 72 61 63 74 65 72 73 29 20 6d 61 74 63 68 20 74 68 65 20 62 65 67 69 6e 6e | ord.characters).match.the.beginn |
| 1840 | 69 6e 67 20 6f 66 20 77 6f 72 64 73 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 61 6e 64 69 64 | ing.of.words.found.in.the.candid |
| 1860 | 61 74 65 2c 0a 69 6e 20 6f 72 64 65 72 2c 20 73 65 70 61 72 61 74 65 64 20 62 79 20 74 68 65 20 | ate,.in.order,.separated.by.the. |
| 1880 | 73 61 6d 65 20 6e 6f 6e 2d 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 73 65 | same.non-word.characters.that.se |
| 18a0 | 70 61 72 61 74 65 0a 77 6f 72 64 73 20 69 6e 20 74 68 65 20 71 75 65 72 79 2e 20 54 68 69 73 20 | parate.words.in.the.query..This. |
| 18c0 | 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 | is.similar.to.the.completion.sty |
| 18e0 | 6c 65 0a 60 70 61 72 74 69 61 6c 27 2e 0a 0a 56 61 6c 75 65 20 60 61 6e 63 68 6f 72 65 64 27 20 | le.`partial'...Value.`anchored'. |
| 1900 | 6d 65 61 6e 73 20 77 6f 72 64 73 20 61 72 65 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 61 70 | means.words.are.separated.by.cap |
| 1920 | 69 74 61 6c 20 6c 65 74 74 65 72 73 20 6f 72 0a 73 79 6d 62 6f 6c 73 2c 20 77 69 74 68 20 63 61 | ital.letters.or.symbols,.with.ca |
| 1940 | 70 69 74 61 6c 20 6c 65 74 74 65 72 73 20 62 65 69 6e 67 20 74 68 65 20 73 74 61 72 74 20 6f 66 | pital.letters.being.the.start.of |
| 1960 | 20 61 20 6e 65 77 20 77 6f 72 64 2e 20 54 68 69 73 0a 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 | .a.new.word..This.is.similar.to. |
| 1980 | 60 70 72 65 66 69 78 27 2c 20 62 75 74 20 61 6c 6c 6f 77 73 20 66 6f 72 20 6c 65 73 73 20 74 79 | `prefix',.but.allows.for.less.ty |
| 19a0 | 70 69 6e 67 2e 0a 0a 56 61 6c 75 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 20 | ping...Value.can.also.be.a.list. |
| 19c0 | 6f 66 20 61 6e 79 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 6d 65 74 68 6f 64 73 2c 20 69 6e 20 | of.any.of.the.above.methods,.in. |
| 19e0 | 77 68 69 63 68 0a 63 61 73 65 20 65 61 63 68 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 62 65 20 61 | which.case.each.method.will.be.a |
| 1a00 | 70 70 6c 69 65 64 20 69 6e 20 6f 72 64 65 72 20 75 6e 74 69 6c 20 6f 6e 65 20 6d 61 74 63 68 65 | pplied.in.order.until.one.matche |
| 1a20 | 73 2e 0a 0a 56 61 6c 75 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e | s...Value.can.also.be.a.function |
| 1a40 | 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 61 6e 79 20 6f 66 20 74 68 65 20 61 6c 6c 6f 77 61 | .which.returns.any.of.the.allowa |
| 1a60 | 62 6c 65 0a 76 61 6c 75 65 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 61 62 6f 76 65 2e 0a 0a 46 6f | ble.values.documented.above...Fo |
| 1a80 | 72 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 74 68 65 20 76 | r.backwards.compatibility,.the.v |
| 1aa0 | 61 6c 75 65 20 6f 66 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 63 61 6e 20 61 6c 73 6f 0a 62 | alue.of.this.variable.can.also.b |
| 1ac0 | 65 20 60 6c 69 74 65 72 61 6c 2b 69 6e 69 74 69 61 6c 69 73 6d 27 2c 20 77 68 69 63 68 20 65 71 | e.`literal+initialism',.which.eq |
| 1ae0 | 75 69 76 61 6c 65 6e 74 20 74 6f 20 74 68 65 20 6c 69 73 74 20 28 60 6c 69 74 65 72 61 6c 27 0a | uivalent.to.the.list.(`literal'. |
| 1b00 | 60 69 6e 69 74 69 61 6c 69 73 6d 27 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 73 65 74 0a 20 20 | `initialism')."...:type.'(set... |
| 1b20 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69 74 65 72 61 6c 22 20 6c 69 | ........(const.:tag."Literal".li |
| 1b40 | 74 65 72 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69 | teral)...........(const.:tag."Li |
| 1b60 | 74 65 72 61 6c 20 50 72 65 66 69 78 22 20 6c 69 74 65 72 61 6c 2d 70 72 65 66 69 78 29 0a 20 20 | teral.Prefix".literal-prefix)... |
| 1b80 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 52 65 67 65 78 70 22 20 72 65 67 | ........(const.:tag."Regexp".reg |
| 1ba0 | 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 6e 69 74 | exp)...........(const.:tag."Init |
| 1bc0 | 69 61 6c 69 73 6d 22 20 69 6e 69 74 69 61 6c 69 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 | ialism".initialism)...........(c |
| 1be0 | 6f 6e 73 74 20 3a 74 61 67 20 22 46 75 7a 7a 79 22 20 66 75 7a 7a 79 29 0a 20 20 20 20 20 20 20 | onst.:tag."Fuzzy".fuzzy)........ |
| 1c00 | 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 50 72 65 66 69 78 22 20 70 72 65 66 69 78 29 0a | ...(const.:tag."Prefix".prefix). |
| 1c20 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6e 63 68 6f 72 65 64 22 | ..........(const.:tag."Anchored" |
| 1c40 | 20 61 6e 63 68 6f 72 65 64 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 | .anchored)))..(defcustom.prescie |
| 1c60 | 6e 74 2d 66 69 6c 74 65 72 2d 61 6c 69 73 74 0a 20 20 27 28 28 6c 69 74 65 72 61 6c 20 2e 20 70 | nt-filter-alist...'((literal...p |
| 1c80 | 72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 6c 69 | rescient-literal-regexp).....(li |
| 1ca0 | 74 65 72 61 6c 2d 70 72 65 66 69 78 20 2e 20 70 72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c | teral-prefix...prescient-literal |
| 1cc0 | 2d 70 72 65 66 69 78 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 69 6e 69 74 69 61 6c 69 73 6d 20 | -prefix-regexp).....(initialism. |
| 1ce0 | 2e 20 70 72 65 73 63 69 65 6e 74 2d 69 6e 69 74 69 61 6c 73 2d 72 65 67 65 78 70 29 0a 20 20 20 | ..prescient-initials-regexp).... |
| 1d00 | 20 28 72 65 67 65 78 70 20 2e 20 70 72 65 73 63 69 65 6e 74 2d 72 65 67 65 78 70 2d 72 65 67 65 | .(regexp...prescient-regexp-rege |
| 1d20 | 78 70 29 0a 20 20 20 20 28 66 75 7a 7a 79 20 2e 20 70 72 65 73 63 69 65 6e 74 2d 66 75 7a 7a 79 | xp).....(fuzzy...prescient-fuzzy |
| 1d40 | 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 70 72 65 66 69 78 20 2e 20 70 72 65 73 63 69 65 6e 74 | -regexp).....(prefix...prescient |
| 1d60 | 2d 70 72 65 66 69 78 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 61 6e 63 68 6f 72 65 64 20 2e 20 | -prefix-regexp).....(anchored... |
| 1d80 | 70 72 65 73 63 69 65 6e 74 2d 61 6e 63 68 6f 72 65 64 2d 72 65 67 65 78 70 29 29 0a 20 20 22 41 | prescient-anchored-regexp))..."A |
| 1da0 | 6e 20 61 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 20 6d 65 74 68 6f 64 73 20 61 6e 64 20 74 68 | n.alist.of.filter.methods.and.th |
| 1dc0 | 65 69 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 54 68 65 73 65 20 73 79 6d 62 6f 6c 73 20 63 61 | eir.functions...These.symbols.ca |
| 1de0 | 6e 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 | n.be.included.in.`prescient-filt |
| 1e00 | 65 72 2d 6d 65 74 68 6f 64 27 2c 20 61 6e 64 0a 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 | er-method',.and.their.correspond |
| 1e20 | 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 63 72 | ing.functions.will.be.used.to.cr |
| 1e40 | 65 61 74 65 20 72 65 67 65 78 70 73 20 66 6f 72 0a 6d 61 74 63 68 69 6e 67 20 63 61 6e 64 69 64 | eate.regexps.for.matching.candid |
| 1e60 | 61 74 65 73 2e 0a 0a 41 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 74 61 6b 65 20 74 68 | ates...A.function.should.take.th |
| 1e80 | 65 20 73 75 62 2d 71 75 65 72 79 20 66 6f 72 20 77 68 69 63 68 20 69 74 20 73 68 6f 75 6c 64 20 | e.sub-query.for.which.it.should. |
| 1ea0 | 63 72 65 61 74 65 20 61 0a 72 65 67 65 78 70 2c 20 61 6e 64 20 6b 65 79 77 6f 72 64 20 61 72 67 | create.a.regexp,.and.keyword.arg |
| 1ec0 | 75 6d 65 6e 74 73 20 6f 66 20 77 68 69 63 68 20 74 68 65 72 65 20 61 72 65 20 63 75 72 72 65 6e | uments.of.which.there.are.curren |
| 1ee0 | 74 6c 79 3a 0a 0a 20 20 20 20 77 69 74 68 2d 67 72 6f 75 70 20 20 20 20 20 20 3c 62 6f 6f 6c 2d | tly:......with-group......<bool- |
| 1f00 | 76 61 6c 75 65 2d 6f 72 2d 61 6c 6c 3e 0a 20 20 20 20 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65 | value-or-all>.....subquery-numbe |
| 1f20 | 72 20 3c 69 6e 74 2d 76 61 6c 75 65 3e 0a 0a 54 68 65 20 62 6f 6f 6c 65 61 6e 20 6b 65 79 77 6f | r.<int-value>..The.boolean.keywo |
| 1f40 | 72 64 20 61 72 67 75 6d 65 6e 74 20 57 49 54 48 2d 47 52 4f 55 50 20 64 65 73 63 72 69 62 65 73 | rd.argument.WITH-GROUP.describes |
| 1f60 | 20 77 68 65 74 68 65 72 20 74 68 65 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 65 6e 63 | .whether.the.function.should.enc |
| 1f80 | 6c 6f 73 65 20 6d 61 74 63 68 65 64 20 74 65 78 74 20 69 6e 20 61 20 63 61 70 74 75 72 65 20 67 | lose.matched.text.in.a.capture.g |
| 1fa0 | 72 6f 75 70 20 28 73 75 63 68 20 61 73 0a 77 69 74 68 20 60 70 72 65 73 63 69 65 6e 74 2d 77 69 | roup.(such.as.with.`prescient-wi |
| 1fc0 | 74 68 2d 67 72 6f 75 70 27 29 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 69 66 20 74 68 | th-group')...Additionally,.if.th |
| 1fe0 | 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 0a 73 79 6d 62 6f 6c 20 60 61 6c 6c 27 2c 20 74 68 65 | e.value.is.the.symbol.`all',.the |
| 2000 | 6e 20 6c 69 74 65 72 61 6c 20 73 75 62 73 74 72 69 6e 67 73 20 73 68 6f 75 6c 64 20 62 65 20 65 | n.literal.substrings.should.be.e |
| 2020 | 6e 63 6c 6f 73 65 64 20 69 6e 0a 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2e 0a 0a 54 68 65 20 | nclosed.in.capture.groups...The. |
| 2040 | 69 6e 74 65 67 65 72 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 20 53 55 42 51 55 45 52 | integer.keyword.argument.SUBQUER |
| 2060 | 59 2d 4e 55 4d 42 45 52 20 73 74 61 74 65 73 20 74 68 65 20 6f 72 64 65 72 20 6f 66 0a 68 6f 77 | Y-NUMBER.states.the.order.of.how |
| 2080 | 20 74 68 65 20 69 6e 70 75 74 20 68 61 73 20 62 65 65 6e 20 73 70 6c 69 74 20 69 6e 74 6f 20 69 | .the.input.has.been.split.into.i |
| 20a0 | 6e 64 69 76 69 64 75 61 6c 20 73 75 62 71 75 65 72 69 65 73 20 28 73 74 61 72 74 69 6e 67 0a 77 | ndividual.subqueries.(starting.w |
| 20c0 | 69 74 68 20 30 29 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 74 68 65 20 69 6e 70 | ith.0)...For.example,.if.the.inp |
| 20e0 | 75 74 20 77 61 73 20 5c 22 66 6f 6f 20 62 61 72 20 62 61 7a 5c 22 20 74 68 65 0a 66 75 6e 63 74 | ut.was.\"foo.bar.baz\".the.funct |
| 2100 | 69 6f 6e 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 74 68 72 65 65 20 74 69 6d 65 73 3a 0a | ion.will.be.called.three.times:. |
| 2120 | 0a 20 20 20 20 28 66 6e 20 5c 22 66 6f 6f 5c 22 20 3a 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65 | .....(fn.\"foo\".:subquery-numbe |
| 2140 | 72 20 30 29 0a 20 20 20 20 28 66 6e 20 5c 22 62 61 72 5c 22 20 3a 73 75 62 71 75 65 72 79 2d 6e | r.0).....(fn.\"bar\".:subquery-n |
| 2160 | 75 6d 62 65 72 20 31 29 0a 20 20 20 20 28 66 6e 20 5c 22 62 61 7a 5c 22 20 3a 73 75 62 71 75 65 | umber.1).....(fn.\"baz\".:subque |
| 2180 | 72 79 2d 6e 75 6d 62 65 72 20 32 29 22 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b | ry-number.2)"...:type.'(alist.:k |
| 21a0 | 65 79 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 66 75 6e 63 74 | ey-type.symbol.:value-type.funct |
| 21c0 | 69 6f 6e 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 | ion))..(defcustom.prescient-sort |
| 21e0 | 2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73 | -length-enable.t..."Whether.to.s |
| 2200 | 6f 72 74 20 63 61 6e 64 69 64 61 74 65 73 20 62 79 20 6c 65 6e 67 74 68 2e 0a 49 66 20 6e 6f 6e | ort.candidates.by.length..If.non |
| 2220 | 2d 6e 69 6c 2c 20 74 68 65 6e 20 63 61 6e 64 69 64 61 74 65 73 20 77 69 74 68 20 69 64 65 6e 74 | -nil,.then.candidates.with.ident |
| 2240 | 69 63 61 6c 20 72 65 63 65 6e 63 79 20 61 6e 64 20 66 72 65 71 75 65 6e 63 79 0a 77 69 6c 6c 20 | ical.recency.and.frequency.will. |
| 2260 | 62 65 20 73 6f 72 74 65 64 20 62 79 20 6c 65 6e 67 74 68 2e 20 49 66 20 6e 69 6c 2c 20 74 68 65 | be.sorted.by.length..If.nil,.the |
| 2280 | 6e 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 6c 65 66 74 20 69 6e 20 74 68 65 0a 6f 72 64 65 72 | n.they.will.be.left.in.the.order |
| 22a0 | 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6c 6c 65 63 74 69 6f 6e 2e 0a 0a 49 74 | .of.the.original.collection...It |
| 22c0 | 20 6d 69 67 68 74 20 62 65 20 64 65 73 69 72 61 62 6c 65 20 74 6f 20 73 65 74 20 74 68 69 73 20 | .might.be.desirable.to.set.this. |
| 22e0 | 76 61 72 69 61 62 6c 65 20 74 6f 20 6e 69 6c 20 28 76 69 61 0a 60 63 6f 6d 70 61 6e 79 2d 70 72 | variable.to.nil.(via.`company-pr |
| 2300 | 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 27 29 20 77 68 65 | escient-sort-length-enable').whe |
| 2320 | 6e 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 61 0a 43 6f 6d 70 61 6e 79 20 62 61 63 6b 65 6e 64 | n.working.with.a.Company.backend |
| 2340 | 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 66 75 7a 7a 79 2d 6d 61 74 63 68 65 64 20 72 65 73 | .which.returns.fuzzy-matched.res |
| 2360 | 75 6c 74 73 20 74 68 61 74 20 63 61 6e 6e 6f 74 0a 75 73 65 66 75 6c 6c 79 20 62 65 20 73 6f 72 | ults.that.cannot.usefully.be.sor |
| 2380 | 74 65 64 20 62 79 20 6c 65 6e 67 74 68 20 28 70 72 65 73 75 6d 61 62 6c 79 2c 20 74 68 65 20 62 | ted.by.length.(presumably,.the.b |
| 23a0 | 61 63 6b 65 6e 64 20 72 65 74 75 72 6e 73 0a 74 68 65 73 65 20 72 65 73 75 6c 74 73 20 69 6e 20 | ackend.returns.these.results.in. |
| 23c0 | 73 6f 6d 65 20 61 6c 72 65 61 64 79 2d 73 6f 72 74 65 64 20 6f 72 64 65 72 29 2e 22 0a 20 20 3a | some.already-sorted.order)."...: |
| 23e0 | 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 | type.'boolean)..(defcustom.presc |
| 2400 | 69 65 6e 74 2d 74 69 65 62 72 65 61 6b 65 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 | ient-tiebreaker.nil..."If.non-ni |
| 2420 | 6c 2c 20 74 68 65 20 6d 65 74 68 6f 64 20 75 73 65 64 20 74 6f 20 62 72 65 61 6b 20 74 69 65 73 | l,.the.method.used.to.break.ties |
| 2440 | 20 69 6e 73 74 65 61 64 20 6f 66 20 6c 65 6e 67 74 68 2e 0a 54 68 65 20 76 61 6c 75 65 20 77 69 | .instead.of.length..The.value.wi |
| 2460 | 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 61 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 | ll.be.called.as.a.function.with. |
| 2480 | 74 77 6f 20 63 61 6e 64 69 64 61 74 65 73 20 74 68 61 74 0a 68 61 76 65 20 74 68 65 20 73 61 6d | two.candidates.that.have.the.sam |
| 24a0 | 65 20 72 65 63 65 6e 63 79 20 61 6e 64 20 66 72 65 71 75 65 6e 63 79 20 69 6e 66 6f 72 6d 61 74 | e.recency.and.frequency.informat |
| 24c0 | 69 6f 6e 2c 20 61 6e 64 20 73 68 6f 75 6c 64 0a 72 65 74 75 72 6e 20 61 20 6e 75 6d 62 65 72 20 | ion,.and.should.return.a.number. |
| 24e0 | 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 76 65 20 6f 72 64 65 72 | to.indicate.their.relative.order |
| 2500 | 20 28 6e 65 67 61 74 69 76 65 20 66 6f 72 0a 66 69 72 73 74 20 3c 20 73 65 63 6f 6e 64 2c 20 7a | .(negative.for.first.<.second,.z |
| 2520 | 65 72 6f 20 66 6f 72 20 66 69 72 73 74 20 3d 20 73 65 63 6f 6e 64 2c 20 70 6f 73 69 74 69 76 65 | ero.for.first.=.second,.positive |
| 2540 | 20 66 6f 72 20 66 69 72 73 74 20 3e 0a 73 65 63 6f 6e 64 29 2c 20 77 68 65 72 65 20 63 61 6e 64 | .for.first.>.second),.where.cand |
| 2560 | 69 64 61 74 65 73 20 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 73 6f 72 74 20 69 6e 20 61 73 | idates.are.assumed.to.sort.in.as |
| 2580 | 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20 | cending.order..You.can.also.use. |
| 25a0 | 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79 27 20 74 | the.variable.`prescient-query'.t |
| 25c0 | 6f 20 61 63 63 65 73 73 20 74 68 65 0a 6f 72 69 67 69 6e 61 6c 20 71 75 65 72 79 20 66 72 6f 6d | o.access.the.original.query.from |
| 25e0 | 20 74 68 65 20 75 73 65 72 20 28 62 75 74 20 73 65 65 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 | .the.user.(but.see.that.variable |
| 2600 | 20 66 6f 72 0a 63 61 76 65 61 74 73 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 | .for.caveats)."...:type.'(choice |
| 2620 | 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 65 6e 67 74 68 22 20 | ...........(const.:tag."Length". |
| 2640 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 43 | nil)...........(function.:tag."C |
| 2660 | 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 | ustom.function")))..(defcustom.p |
| 2680 | 72 65 73 63 69 65 6e 74 2d 61 67 67 72 65 73 73 69 76 65 2d 66 69 6c 65 2d 73 61 76 65 20 6e 69 | rescient-aggressive-file-save.ni |
| 26a0 | 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 73 61 76 65 20 74 68 65 20 63 61 63 68 65 20 66 | l..."Whether.to.save.the.cache.f |
| 26c0 | 69 6c 65 20 61 67 67 72 65 73 73 69 76 65 6c 79 2e 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 | ile.aggressively..If.non-nil,.th |
| 26e0 | 65 6e 20 77 72 69 74 65 20 74 68 65 20 63 61 63 68 65 20 64 61 74 61 20 74 6f 20 60 70 72 65 73 | en.write.the.cache.data.to.`pres |
| 2700 | 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 0a 61 66 74 65 72 20 74 68 65 20 63 61 63 68 65 | cient-save-file'.after.the.cache |
| 2720 | 20 64 61 74 61 20 69 73 20 75 70 64 61 74 65 64 20 62 79 20 60 70 72 65 73 63 69 65 6e 74 2d 72 | .data.is.updated.by.`prescient-r |
| 2740 | 65 6d 65 6d 62 65 72 27 20 77 68 65 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 | emember'.when.`prescient-persist |
| 2760 | 2d 6d 6f 64 65 27 20 69 73 20 61 63 74 69 76 61 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 | -mode'.is.activated."...:type.'b |
| 2780 | 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 73 6f | oolean)..(defcustom.prescient-so |
| 27a0 | 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 20 6e 69 6c 0a 20 20 22 57 68 65 | rt-full-matches-first.nil..."Whe |
| 27c0 | 74 68 65 72 20 74 6f 20 73 6f 72 74 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64 20 63 61 6e 64 69 | ther.to.sort.fully.matched.candi |
| 27e0 | 64 61 74 65 73 20 62 65 66 6f 72 65 20 6f 74 68 65 72 73 2e 0a 0a 50 72 65 73 63 69 65 6e 74 20 | dates.before.others...Prescient. |
| 2800 | 63 61 6e 20 73 6f 72 74 20 62 79 20 72 65 63 65 6e 63 79 2c 20 66 72 65 71 75 65 6e 63 79 2c 20 | can.sort.by.recency,.frequency,. |
| 2820 | 61 6e 64 20 63 61 6e 64 69 64 61 74 65 20 6c 65 6e 67 74 68 2e 0a 57 69 74 68 20 74 68 69 73 20 | and.candidate.length..With.this. |
| 2840 | 6f 70 74 69 6f 6e 2c 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64 20 63 61 6e 64 69 64 61 74 65 73 | option,.fully.matched.candidates |
| 2860 | 20 77 69 6c 6c 20 62 65 20 73 6f 72 74 65 64 20 62 65 66 6f 72 65 0a 70 61 72 74 69 61 6c 6c 79 | .will.be.sorted.before.partially |
| 2880 | 20 6d 61 74 63 68 65 64 20 63 61 6e 64 69 64 61 74 65 73 2c 20 62 75 74 20 63 61 6e 64 69 64 61 | .matched.candidates,.but.candida |
| 28a0 | 74 65 73 20 69 6e 20 65 61 63 68 20 67 72 6f 75 70 20 77 69 6c 6c 0a 73 74 69 6c 6c 20 62 65 20 | tes.in.each.group.will.still.be. |
| 28c0 | 73 6f 72 74 65 64 20 6c 69 6b 65 20 6e 6f 72 6d 61 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f | sorted.like.normal."...:type.'bo |
| 28e0 | 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 | olean)..(defcustom.prescient-use |
| 2900 | 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 63 65 72 74 61 | -char-folding.t..."Whether.certa |
| 2920 | 69 6e 20 6c 69 74 65 72 61 6c 20 66 69 6c 74 65 72 69 6e 67 20 6d 65 74 68 6f 64 73 20 75 73 65 | in.literal.filtering.methods.use |
| 2940 | 20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 54 68 69 73 20 61 66 66 65 63 74 | .character.folding...This.affect |
| 2960 | 73 20 74 68 65 20 60 6c 69 74 65 72 61 6c 27 20 61 6e 64 20 60 6c 69 74 65 72 61 6c 2d 70 72 65 | s.the.`literal'.and.`literal-pre |
| 2980 | 66 69 78 27 20 66 69 6c 74 65 72 69 6e 67 20 6d 65 74 68 6f 64 73 2e 0a 0a 49 6e 20 45 6d 61 63 | fix'.filtering.methods...In.Emac |
| 29a0 | 73 20 76 65 72 73 69 6f 6e 73 20 32 37 20 6f 72 20 67 72 65 61 74 65 72 2c 20 73 65 65 20 61 6c | s.versions.27.or.greater,.see.al |
| 29c0 | 73 6f 20 74 68 65 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 0a 76 61 72 69 61 62 6c 65 73 20 60 63 | so.the.customizable.variables.`c |
| 29e0 | 68 61 72 2d 66 6f 6c 64 2d 69 6e 63 6c 75 64 65 27 2c 20 60 63 68 61 72 2d 66 6f 6c 64 2d 65 78 | har-fold-include',.`char-fold-ex |
| 2a00 | 63 6c 75 64 65 27 2c 20 61 6e 64 0a 60 63 68 61 72 2d 66 6f 6c 64 2d 73 79 6d 6d 65 74 72 69 63 | clude',.and.`char-fold-symmetric |
| 2a20 | 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f | '."...:type.'boolean)..(defcusto |
| 2a40 | 6d 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 20 27 73 6d | m.prescient-use-case-folding.'sm |
| 2a60 | 61 72 74 0a 20 20 22 57 68 65 74 68 65 72 20 66 69 6c 74 65 72 69 6e 67 20 6d 65 74 68 6f 64 73 | art..."Whether.filtering.methods |
| 2a80 | 20 61 72 65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 2e 0a 0a 49 66 20 74 2c 20 61 6c 77 61 79 73 | .are.case.folding...If.t,.always |
| 2aa0 | 20 75 73 65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 2e 20 20 49 66 20 6e 69 6c 2c 20 6e 65 76 65 | .use.case.folding...If.nil,.neve |
| 2ac0 | 72 20 75 73 65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 2e 0a 49 66 20 60 73 6d 61 72 74 27 20 28 | r.use.case.folding..If.`smart'.( |
| 2ae0 | 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 75 73 65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 20 6f | the.default),.use.case.folding.o |
| 2b00 | 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 71 75 65 72 79 0a 63 6f 6e 74 61 69 6e 73 20 6e 6f 20 75 | nly.when.the.query.contains.no.u |
| 2b20 | 70 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 | pper-case.letters."...:type.'(ch |
| 2b40 | 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6c 77 61 | oice...........(const.:tag."Alwa |
| 2b60 | 79 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 65 | ys".t)...........(const.:tag."Ne |
| 2b80 | 76 65 72 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | ver".nil)...........(const.:tag. |
| 2ba0 | 22 55 6e 6c 65 73 73 20 75 73 69 6e 67 20 75 70 70 65 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 | "Unless.using.upper-case.letters |
| 2bc0 | 22 20 73 6d 61 72 74 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 65 73 63 69 65 6e 74 | ".smart)))..(defcustom.prescient |
| 2be0 | 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 6d 61 74 63 68 65 73 20 74 0a | -completion-highlight-matches.t. |
| 2c00 | 20 20 22 57 68 65 74 68 65 72 20 74 68 65 20 60 70 72 65 73 63 69 65 6e 74 27 20 63 6f 6d 70 6c | .."Whether.the.`prescient'.compl |
| 2c20 | 65 74 69 6f 6e 20 73 74 79 6c 65 20 73 68 6f 75 6c 64 20 68 69 67 68 6c 69 67 68 74 20 6d 61 74 | etion.style.should.highlight.mat |
| 2c40 | 63 68 65 73 2e 0a 0a 49 66 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d 68 69 6c 69 74 | ches...If.`completion-lazy-hilit |
| 2c60 | 27 20 69 73 20 62 6f 75 6e 64 20 61 6e 64 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 6e 20 74 68 69 | '.is.bound.and.non-nil,.then.thi |
| 2c80 | 73 20 75 73 65 72 0a 6f 70 74 69 6f 6e 20 69 73 20 69 67 6e 6f 72 65 64 20 69 6e 20 66 61 76 6f | s.user.option.is.ignored.in.favo |
| 2ca0 | 72 20 6f 66 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 | r.of.that.variable...See.also.th |
| 2cc0 | 65 20 66 61 63 65 73 20 60 70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c | e.faces.`prescient-primary-highl |
| 2ce0 | 69 67 68 74 27 20 61 6e 64 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68 | ight'.and.`prescient-secondary-h |
| 2d00 | 69 67 68 6c 69 67 68 74 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 | ighlight'."...:type.'boolean)..( |
| 2d20 | 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20 27 73 65 6c 65 | define-obsolete-face-alias.'sele |
| 2d40 | 63 74 72 75 6d 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 | ctrum-primary-highlight......... |
| 2d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 73 63 69 65 6e 74 2d 70 | ....................'prescient-p |
| 2d80 | 72 69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 20 74 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f | rimary-highlight.t).(define-obso |
| 2da0 | 6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20 27 73 65 6c 65 63 74 72 75 6d 2d 70 72 65 73 63 | lete-face-alias.'selectrum-presc |
| 2dc0 | 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 | ient-primary-highlight.......... |
| 2de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 73 63 69 65 6e 74 2d 70 72 | ...................'prescient-pr |
| 2e00 | 69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 20 74 29 0a 28 64 65 66 66 61 63 65 20 70 72 65 73 | imary-highlight.t).(defface.pres |
| 2e20 | 63 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 27 28 28 74 20 3a | cient-primary-highlight...'((t.: |
| 2e40 | 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 | weight.bold))..."Face.used.to.hi |
| 2e60 | 67 68 6c 69 67 68 74 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 63 61 6e 64 69 64 61 74 65 73 20 | ghlight.the.parts.of.candidates. |
| 2e80 | 74 68 61 74 20 6d 61 74 63 68 20 74 68 65 20 69 6e 70 75 74 2e 22 29 0a 0a 28 64 65 66 69 6e 65 | that.match.the.input.")..(define |
| 2ea0 | 2d 6f 62 73 6f 6c 65 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20 27 73 65 6c 65 63 74 72 75 6d 2d | -obsolete-face-alias.'selectrum- |
| 2ec0 | 73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | secondary-highlight............. |
| 2ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 73 63 69 65 6e 74 2d 73 65 63 6f 6e | ................'prescient-secon |
| 2f00 | 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 20 74 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 | dary-highlight.t).(define-obsole |
| 2f20 | 74 65 2d 66 61 63 65 2d 61 6c 69 61 73 20 27 73 65 6c 65 63 74 72 75 6d 2d 70 72 65 73 63 69 65 | te-face-alias.'selectrum-prescie |
| 2f40 | 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 | nt-secondary-highlight.......... |
| 2f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 73 63 69 65 6e 74 2d 73 65 | ...................'prescient-se |
| 2f80 | 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 20 74 29 0a 28 64 65 66 66 61 63 65 20 70 72 | condary-highlight.t).(defface.pr |
| 2fa0 | 65 73 63 69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 27 28 | escient-secondary-highlight...'( |
| 2fc0 | 28 74 20 3a 69 6e 68 65 72 69 74 20 70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 | (t.:inherit.prescient-primary-hi |
| 2fe0 | 67 68 6c 69 67 68 74 20 3a 75 6e 64 65 72 6c 69 6e 65 20 74 29 29 0a 20 20 22 41 64 64 69 74 69 | ghlight.:underline.t))..."Additi |
| 3000 | 6f 6e 61 6c 20 66 61 63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 70 61 72 74 | onal.face.used.to.highlight.part |
| 3020 | 73 20 6f 66 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 0a 4d 61 79 20 62 65 20 75 73 65 64 20 74 6f | s.of.candidates...May.be.used.to |
| 3040 | 20 68 69 67 68 6c 69 67 68 74 20 70 61 72 74 73 20 6f 66 20 63 61 6e 64 69 64 61 74 65 73 20 74 | .highlight.parts.of.candidates.t |
| 3060 | 68 61 74 20 6d 61 74 63 68 20 73 70 65 63 69 66 69 63 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 | hat.match.specific.parts.of.the. |
| 3080 | 69 6e 70 75 74 2e 22 29 0a 0a 3b 3b 3b 3b 20 43 61 63 68 65 73 0a 0a 28 64 65 66 76 61 72 20 70 | input.")..;;;;.Caches..(defvar.p |
| 30a0 | 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 | rescient--history.(make-hash-tab |
| 30c0 | 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 48 61 73 68 20 74 61 62 6c 65 20 6f | le.:test.'equal)..."Hash.table.o |
| 30e0 | 66 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 54 68 | f.recently.chosen.candidates..Th |
| 3100 | 65 20 6b 65 79 73 20 61 72 65 20 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 73 74 72 69 6e 67 73 | e.keys.are.candidates.as.strings |
| 3120 | 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 73 20 61 72 65 20 30 2d 62 61 73 65 64 0a 69 6e 64 69 | .and.the.values.are.0-based.indi |
| 3140 | 63 65 73 2c 20 6c 65 73 73 20 74 68 61 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 | ces,.less.than.`prescient-histor |
| 3160 | 79 2d 6c 65 6e 67 74 68 27 2e 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 76 61 6c 75 65 73 20 | y-length'..The.number.of.values. |
| 3180 | 77 69 6c 6c 20 62 65 20 61 74 20 6d 6f 73 74 20 60 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f | will.be.at.most.`prescient-histo |
| 31a0 | 72 79 2d 6c 65 6e 67 74 68 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d | ry-length'.")..(defun.prescient- |
| 31c0 | 2d 68 69 73 74 6f 72 79 2d 61 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 | -history-as-list.()..."Return.a. |
| 31e0 | 6c 69 73 74 20 6f 66 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73 65 6e | list.of.the.most.recently.chosen |
| 3200 | 20 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 54 68 65 20 6d 6f 73 74 | .candidates.as.strings..The.most |
| 3220 | 20 72 65 63 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 20 61 72 65 20 | .recently.chosen.candidates.are. |
| 3240 | 61 74 20 74 68 65 20 66 72 6f 6e 74 20 6f 66 20 74 68 65 0a 6c 69 73 74 2e 20 54 68 69 73 20 66 | at.the.front.of.the.list..This.f |
| 3260 | 75 6e 63 74 69 6f 6e 20 69 73 20 6d 6f 73 74 6c 79 20 75 73 65 66 75 6c 20 66 6f 72 20 64 65 62 | unction.is.mostly.useful.for.deb |
| 3280 | 75 67 67 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 69 73 74 6f 72 79 20 28 6d 61 6b 65 2d | ugging."...(let.((history.(make- |
| 32a0 | 76 65 63 74 6f 72 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 20 | vector.prescient-history-length. |
| 32c0 | 6e 69 6c 29 29 29 0a 20 20 20 20 28 6d 61 70 68 61 73 68 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 | nil))).....(maphash......(lambda |
| 32e0 | 20 28 63 61 6e 64 20 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 | .(cand.index)........(ignore-err |
| 3300 | 6f 72 73 0a 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 68 69 73 74 6f 72 79 20 69 6e 64 65 78 | ors..........(aset.history.index |
| 3320 | 20 63 61 6e 64 29 29 29 0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 | .cand)))......prescient--history |
| 3340 | 29 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 20 6e 69 6c 20 28 61 70 70 65 6e 64 20 68 69 73 | ).....(cl-remove.nil.(append.his |
| 3360 | 74 6f 72 79 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d | tory.nil))))..(defvar.prescient- |
| 3380 | 2d 66 72 65 71 75 65 6e 63 79 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 | -frequency.(make-hash-table.:tes |
| 33a0 | 74 20 27 65 71 75 61 6c 29 0a 20 20 22 48 61 73 68 20 74 61 62 6c 65 20 6f 66 20 66 72 65 71 75 | t.'equal)..."Hash.table.of.frequ |
| 33c0 | 65 6e 74 6c 79 20 63 68 6f 73 65 6e 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 54 68 65 20 6b 65 79 | ently.chosen.candidates..The.key |
| 33e0 | 73 20 61 72 65 20 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 73 74 72 69 6e 67 73 20 61 6e 64 20 | s.are.candidates.as.strings.and. |
| 3400 | 74 68 65 20 76 61 6c 75 65 73 20 61 72 65 0a 66 72 65 71 75 65 6e 63 69 65 73 20 28 66 6c 6f 61 | the.values.are.frequencies.(floa |
| 3420 | 74 69 6e 67 2d 70 6f 69 6e 74 20 6e 75 6d 62 65 72 73 29 2e 20 46 72 65 71 75 65 6e 63 69 65 73 | ting-point.numbers)..Frequencies |
| 3440 | 20 77 69 6c 6c 20 62 65 20 61 74 0a 6c 65 61 73 74 20 60 70 72 65 73 63 69 65 6e 74 2d 66 72 65 | .will.be.at.least.`prescient-fre |
| 3460 | 71 75 65 6e 63 79 2d 74 68 72 65 73 68 6f 6c 64 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 | quency-threshold'.")..(defvar.pr |
| 3480 | 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 6c 6f 61 64 65 64 20 6e 69 6c 0a 20 20 22 4e 6f 6e | escient--cache-loaded.nil..."Non |
| 34a0 | 2d 6e 69 6c 20 69 66 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 64 61 74 61 20 77 61 73 20 6c 6f | -nil.if.prescient.el.data.was.lo |
| 34c0 | 61 64 65 64 20 66 72 6f 6d 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e | aded.from.`prescient-save-file'. |
| 34e0 | 0a 45 76 65 6e 20 69 66 20 74 68 65 20 6c 6f 61 64 20 66 61 69 6c 65 64 2c 20 74 68 69 73 20 76 | .Even.if.the.load.failed,.this.v |
| 3500 | 61 72 69 61 62 6c 65 20 69 73 20 73 74 69 6c 6c 20 73 65 74 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 0a | ariable.is.still.set.to.non-nil. |
| 3520 | 77 68 65 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 27 20 69 73 20 63 61 6c 6c 65 64 | when.`prescient--load'.is.called |
| 3540 | 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e | .")..(defvar.prescient--serial-n |
| 3560 | 75 6d 62 65 72 20 30 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 74 69 6d 65 73 20 60 70 72 65 73 | umber.0..."Number.of.times.`pres |
| 3580 | 63 69 65 6e 74 2d 72 65 6d 65 6d 62 65 72 27 20 68 61 73 20 62 65 65 6e 20 63 61 6c 6c 65 64 2e | cient-remember'.has.been.called. |
| 35a0 | 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 69 63 | ..This.is.used.to.determine.whic |
| 35c0 | 68 20 73 65 74 20 6f 66 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 73 61 76 65 20 66 69 6c | h.set.of.changes.to.the.save.fil |
| 35e0 | 65 0a 73 68 6f 75 6c 64 20 5c 22 77 69 6e 5c 22 20 77 68 65 6e 20 74 77 6f 20 63 6f 6e 63 75 72 | e.should.\"win\".when.two.concur |
| 3600 | 72 65 6e 74 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 20 77 61 6e 74 20 74 6f 20 6d 6f 64 69 | rent.Emacs.sessions.want.to.modi |
| 3620 | 66 79 0a 69 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 66 6f 72 67 65 | fy.it.")..(defun.prescient-forge |
| 3640 | 74 20 28 63 61 6e 64 69 64 61 74 65 29 0a 20 20 22 52 65 6d 6f 76 65 20 43 41 4e 44 49 44 41 54 | t.(candidate)..."Remove.CANDIDAT |
| 3660 | 45 20 66 72 6f 6d 20 72 65 63 65 6e 63 79 20 61 6e 64 20 66 72 65 71 75 65 6e 63 79 20 72 65 63 | E.from.recency.and.frequency.rec |
| 3680 | 6f 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 | ords."...(interactive....(list.( |
| 36a0 | 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 46 6f 72 67 65 74 20 63 61 6e 64 69 64 61 74 | completing-read."Forget.candidat |
| 36c0 | 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 20 20 20 20 20 20 3b | e:."...........................; |
| 36e0 | 3b 20 53 69 6e 63 65 20 63 61 6e 64 69 64 61 74 65 73 20 61 72 65 20 73 68 61 72 65 64 2c 20 73 | ;.Since.candidates.are.shared,.s |
| 3700 | 65 6c 65 63 74 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elect.from...................... |
| 3720 | 20 20 20 20 20 3b 3b 20 74 68 65 20 74 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 6d 6f 73 74 20 | .....;;.the.table.with.the.most. |
| 3740 | 63 61 6e 64 69 64 61 74 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | candidates...................... |
| 3760 | 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 73 69 7a 65 20 70 72 | ......(if.(>.(hash-table-size.pr |
| 3780 | 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | escient--frequency)............. |
| 37a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 | .....................(hash-table |
| 37c0 | 2d 73 69 7a 65 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 | -size.prescient--history))...... |
| 37e0 | 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 70 72 65 73 63 69 65 | .........................prescie |
| 3800 | 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt--frequency................... |
| 3820 | 20 20 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 0a 20 20 | ..........prescient--history)... |
| 3840 | 20 20 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 74 29 29 29 | ........................nil.t))) |
| 3860 | 0a 20 20 28 72 65 6d 68 61 73 68 20 63 61 6e 64 69 64 61 74 65 20 70 72 65 73 63 69 65 6e 74 2d | ...(remhash.candidate.prescient- |
| 3880 | 2d 68 69 73 74 6f 72 79 29 0a 20 20 28 72 65 6d 68 61 73 68 20 63 61 6e 64 69 64 61 74 65 20 70 | -history)...(remhash.candidate.p |
| 38a0 | 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 29 0a 0a 3b 3b 3b 3b 20 50 65 72 73 | rescient--frequency))..;;;;.Pers |
| 38c0 | 69 73 74 65 6e 63 65 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 | istence..(defvar.prescient--cach |
| 38e0 | 65 2d 76 65 72 73 69 6f 6e 20 35 0a 20 20 22 43 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 20 6e | e-version.5..."Current.version.n |
| 3900 | 75 6d 62 65 72 20 6f 66 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 20 66 | umber.of.`prescient-save-file'.f |
| 3920 | 6f 72 6d 61 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 63 61 63 68 | ormat.")..(defvar.prescient-cach |
| 3940 | 65 2d 63 61 6c 6c 62 61 63 6b 20 23 27 69 67 6e 6f 72 65 0a 20 20 22 43 61 6c 6c 62 61 63 6b 20 | e-callback.#'ignore..."Callback. |
| 3960 | 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 20 62 79 20 6c 6f 61 64 69 6e 67 20 60 70 72 65 73 | function.called.by.loading.`pres |
| 3980 | 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e 0a 41 20 60 66 75 6e 63 61 6c 6c 27 20 74 6f | cient-save-file'..A.`funcall'.to |
| 39a0 | 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 60 70 72 | .this.variable.is.written.to.`pr |
| 39c0 | 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e | escient-save-file'..The.function |
| 39e0 | 20 6d 61 79 20 70 72 6f 64 75 63 65 20 65 72 72 6f 72 73 3b 20 74 68 65 79 20 77 69 6c 6c 20 62 | .may.produce.errors;.they.will.b |
| 3a00 | 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 55 73 75 61 6c 6c 79 20 74 68 69 73 20 76 61 72 69 61 62 6c | e.ignored...Usually.this.variabl |
| 3a20 | 65 20 69 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62 6f 75 6e 64 20 74 6f 20 61 6e 6f 74 68 65 | e.is.dynamically.bound.to.anothe |
| 3a40 | 72 20 76 61 6c 75 65 20 77 68 69 6c 65 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 | r.value.while.`prescient-save-fi |
| 3a60 | 6c 65 27 20 69 73 20 6c 6f 61 64 65 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 | le'.is.loaded.")..(defun.prescie |
| 3a80 | 6e 74 2d 2d 6c 6f 61 64 2d 73 61 76 65 2d 66 69 6c 65 20 28 29 0a 20 20 22 4c 6f 61 64 20 60 70 | nt--load-save-file.()..."Load.`p |
| 3aa0 | 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2c 20 69 67 6e 6f 72 69 6e 67 20 65 72 | rescient-save-file',.ignoring.er |
| 3ac0 | 72 6f 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 6f 61 64 2d 73 6f 75 72 63 65 2d 66 69 6c 65 | rors."...(let.((load-source-file |
| 3ae0 | 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f | -function.nil)).....(ignore-erro |
| 3b00 | 72 73 0a 20 20 20 20 20 20 28 6c 6f 61 64 20 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 | rs.......(load.prescient-save-fi |
| 3b20 | 6c 65 20 27 6e 6f 65 72 72 6f 72 20 27 6e 6f 6d 65 73 73 61 67 29 29 29 29 0a 0a 28 64 65 66 75 | le.'noerror.'nomessag))))..(defu |
| 3b40 | 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 20 28 29 0a 20 20 22 52 65 61 64 20 64 61 74 | n.prescient--load.()..."Read.dat |
| 3b60 | 61 20 66 72 6f 6d 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e 22 0a 20 | a.from.`prescient-save-file'.".. |
| 3b80 | 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 70 72 65 73 | .(interactive)...(cl-letf.((pres |
| 3ba0 | 63 69 65 6e 74 2d 63 61 63 68 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 | cient-cache-callback............ |
| 3bc0 | 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 | ..(lambda.(&rest.args).......... |
| 3be0 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 | ......(when.(equal.(plist-get.ar |
| 3c00 | 67 73 20 3a 76 65 72 73 69 6f 6e 29 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 76 65 | gs.:version).prescient--cache-ve |
| 3c20 | 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 | rsion)..................(setq.pr |
| 3c40 | 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 73 | escient--history.(plist-get.args |
| 3c60 | 20 3a 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | .:history))..................(se |
| 3c80 | 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 20 28 70 6c 69 73 74 2d 67 | tq.prescient--frequency.(plist-g |
| 3ca0 | 65 74 20 61 72 67 73 20 3a 66 72 65 71 75 65 6e 63 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | et.args.:frequency))............ |
| 3cc0 | 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e 75 | ......(setq.prescient--serial-nu |
| 3ce0 | 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | mber........................(pli |
| 3d00 | 73 74 2d 67 65 74 20 61 72 67 73 20 3a 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 29 29 29 29 29 29 | st-get.args.:serial-number)))))) |
| 3d20 | 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 2d 73 61 76 65 2d 66 69 6c 65 29 | .....(prescient--load-save-file) |
| 3d40 | 29 0a 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 6c 6f 61 64 65 | )...(setq.prescient--cache-loade |
| 3d60 | 64 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 73 61 76 65 20 28 29 | d.t))..(defun.prescient--save.() |
| 3d80 | 0a 20 20 22 57 72 69 74 65 20 64 61 74 61 20 74 6f 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 | ..."Write.data.to.`prescient-sav |
| 3da0 | 65 2d 66 69 6c 65 27 2e 22 0a 20 20 28 63 6c 2d 6c 65 74 66 2a 20 28 28 73 61 76 65 64 2d 73 65 | e-file'."...(cl-letf*.((saved-se |
| 3dc0 | 72 69 61 6c 2d 6e 75 6d 62 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | rial-number.nil)..............(p |
| 3de0 | 72 65 73 63 69 65 6e 74 2d 63 61 63 68 65 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 | rescient-cache-callback......... |
| 3e00 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 | ......(lambda.(&rest.args)...... |
| 3e20 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 | ...........(when.(equal.(plist-g |
| 3e40 | 65 74 20 61 72 67 73 20 3a 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.args.:version)............... |
| 3e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d | ...............prescient--cache- |
| 3e80 | 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | version)...................(setq |
| 3ea0 | 20 73 61 76 65 64 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | .saved-serial-number............ |
| 3ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 73 20 3a 73 65 | .............(plist-get.args.:se |
| 3ee0 | 72 69 61 6c 2d 6e 75 6d 62 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | rial-number)))))..............(p |
| 3f00 | 72 69 6e 74 2d 6c 65 6e 67 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | rint-length.nil)..............(p |
| 3f20 | 72 69 6e 74 2d 6c 65 76 65 6c 20 6e 69 6c 29 29 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d | rint-level.nil)).....(prescient- |
| 3f40 | 2d 6c 6f 61 64 2d 73 61 76 65 2d 66 69 6c 65 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 | -load-save-file).....(when.(or.( |
| 3f60 | 6e 6f 74 20 28 6e 75 6d 62 65 72 70 20 73 61 76 65 64 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 | not.(numberp.saved-serial-number |
| 3f80 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20 70 72 65 73 63 69 65 6e 74 2d 2d | ))...............(>=.prescient-- |
| 3fa0 | 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 20 73 61 76 65 64 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 | serial-number.saved-serial-numbe |
| 3fc0 | 72 29 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d | r)).......(make-directory.(file- |
| 3fe0 | 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | name-directory.................. |
| 4000 | 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 65 73 63 69 65 6e | ......(expand-file-name.prescien |
| 4020 | 74 2d 73 61 76 65 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-save-file))................... |
| 4040 | 20 20 20 20 27 70 61 72 65 6e 74 73 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 | ....'parents).......(with-temp-f |
| 4060 | 69 6c 65 20 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 | ile.prescient-save-file......... |
| 4080 | 28 69 6e 73 65 72 74 20 20 22 3b 3b 3b 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e | (insert..";;;.-*-.lexical-bindin |
| 40a0 | 67 3a 20 74 3b 20 2d 2a 2d 22 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 6e 74 0a 20 20 20 20 20 | g:.t;.-*-").........(print...... |
| 40c0 | 20 20 20 20 60 28 66 75 6e 63 61 6c 6c 20 70 72 65 73 63 69 65 6e 74 2d 63 61 63 68 65 2d 63 61 | ....`(funcall.prescient-cache-ca |
| 40e0 | 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76 65 72 73 69 | llback....................:versi |
| 4100 | 6f 6e 20 27 2c 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 76 65 72 73 69 6f 6e 0a 20 20 | on.',prescient--cache-version... |
| 4120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 69 73 74 6f 72 79 20 27 2c 70 72 65 73 | .................:history.',pres |
| 4140 | 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cient--history.................. |
| 4160 | 20 20 3a 66 72 65 71 75 65 6e 63 79 20 27 2c 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 | ..:frequency.',prescient--freque |
| 4180 | 6e 63 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 72 69 61 6c 2d 6e | ncy....................:serial-n |
| 41a0 | 75 6d 62 65 72 20 27 2c 70 72 65 73 63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 | umber.',prescient--serial-number |
| 41c0 | 29 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 | )..........(current-buffer)))))) |
| 41e0 | 0a 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 70 72 65 73 63 69 65 6e 74 2d 70 | ..(define-minor-mode.prescient-p |
| 4200 | 65 72 73 69 73 74 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 74 6f 20 70 65 72 | ersist-mode..."Minor.mode.to.per |
| 4220 | 73 69 73 74 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 73 74 61 74 69 73 74 69 63 73 20 74 6f 20 | sist.prescient.el.statistics.to. |
| 4240 | 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d 66 69 6c 65 27 2e 22 0a 20 20 3a 67 6c 6f 62 61 | `prescient-save-file'."...:globa |
| 4260 | 6c 20 74 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 65 73 63 69 65 6e 74 0a 20 20 28 69 66 20 70 72 | l.t...:group.'prescient...(if.pr |
| 4280 | 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 70 72 6f 67 | escient-persist-mode.......(prog |
| 42a0 | 6e 0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 | n.........(prescient-persist-mod |
| 42c0 | 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 70 65 | e.-1).........(setq.prescient-pe |
| 42e0 | 72 73 69 73 74 2d 6d 6f 64 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 | rsist-mode.t).........(add-hook. |
| 4300 | 27 6b 69 6c 6c 2d 65 6d 61 63 73 2d 68 6f 6f 6b 20 23 27 70 72 65 73 63 69 65 6e 74 2d 2d 73 61 | 'kill-emacs-hook.#'prescient--sa |
| 4320 | 76 65 29 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 65 6d 61 63 | ve)).....(remove-hook.'kill-emac |
| 4340 | 73 2d 68 6f 6f 6b 20 23 27 70 72 65 73 63 69 65 6e 74 2d 2d 73 61 76 65 29 29 29 0a 0a 3b 3b 3b | s-hook.#'prescient--save)))..;;; |
| 4360 | 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 28 64 65 66 75 6e 20 70 72 65 73 63 | ;.Utility.functions.(defun.presc |
| 4380 | 69 65 6e 74 2d 2d 63 68 61 72 2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 20 28 73 74 72 69 6e | ient--char-fold-to-regexp.(strin |
| 43a0 | 67 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 54 52 49 4e 47 20 74 6f 20 61 20 72 65 67 65 78 70 | g)..."Convert.STRING.to.a.regexp |
| 43c0 | 20 74 68 61 74 20 68 61 6e 64 6c 65 73 20 63 68 61 72 20 66 6f 6c 64 69 6e 67 2e 0a 54 68 69 73 | .that.handles.char.folding..This |
| 43e0 | 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 60 63 68 61 72 2d 66 6f 6c 64 2d 74 6f 2d 72 65 | .is.the.same.as.`char-fold-to-re |
| 4400 | 67 65 78 70 27 20 62 75 74 20 69 74 20 77 6f 72 6b 73 20 61 72 6f 75 6e 64 0a 68 74 74 70 73 3a | gexp'.but.it.works.around.https: |
| 4420 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 78 6f 64 35 30 32 2f 70 72 65 73 63 69 65 6e 74 2e | //github.com/raxod502/prescient. |
| 4440 | 65 6c 2f 69 73 73 75 65 73 2f 37 31 2e 20 54 68 65 20 69 73 73 75 65 0a 73 68 6f 75 6c 64 20 72 | el/issues/71..The.issue.should.r |
| 4460 | 65 61 6c 6c 79 20 62 65 20 66 69 78 65 64 20 75 70 73 74 72 65 61 6d 20 69 6e 20 45 6d 61 63 73 | eally.be.fixed.upstream.in.Emacs |
| 4480 | 2c 20 62 75 74 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 61 74 0a 69 73 20 6e 6f 74 20 | ,.but.it.looks.like.that.is.not. |
| 44a0 | 68 61 70 70 65 6e 69 6e 67 20 61 6e 79 74 69 6d 65 20 73 6f 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 | happening.anytime.soon."...(let. |
| 44c0 | 28 28 72 65 67 65 78 70 20 28 63 68 61 72 2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 20 73 74 | ((regexp.(char-fold-to-regexp.st |
| 44e0 | 72 69 6e 67 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 5f 0a 20 20 | ring))).....(condition-case._... |
| 4500 | 20 20 20 20 20 20 28 70 72 6f 67 31 20 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 28 73 | ......(prog1.regexp...........(s |
| 4520 | 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 72 65 67 65 78 70 20 22 22 29 29 0a 20 20 20 20 20 20 | tring-match-p.regexp.""))....... |
| 4540 | 28 69 6e 76 61 6c 69 64 2d 72 65 67 65 78 70 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 73 74 | (invalid-regexp.(regexp-quote.st |
| 4560 | 72 69 6e 67 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 73 70 6c 69 | ring)))))..(defun.prescient-spli |
| 4580 | 74 2d 71 75 65 72 79 20 28 71 75 65 72 79 29 0a 20 20 22 53 70 6c 69 74 20 51 55 45 52 59 20 73 | t-query.(query)..."Split.QUERY.s |
| 45a0 | 74 72 69 6e 67 20 69 6e 74 6f 20 73 75 62 2d 71 75 65 72 69 65 73 2e 0a 54 68 65 20 71 75 65 72 | tring.into.sub-queries..The.quer |
| 45c0 | 79 20 69 73 20 73 70 6c 69 74 20 6f 6e 20 73 70 61 63 65 73 2c 20 62 75 74 20 61 20 73 65 71 75 | y.is.split.on.spaces,.but.a.sequ |
| 45e0 | 65 6e 63 65 20 6f 66 20 74 77 6f 20 6f 72 20 6d 6f 72 65 0a 73 70 61 63 65 73 20 68 61 73 20 6f | ence.of.two.or.more.spaces.has.o |
| 4600 | 6e 65 20 73 70 61 63 65 20 72 65 6d 6f 76 65 64 20 61 6e 64 20 69 73 20 74 72 65 61 74 65 64 20 | ne.space.removed.and.is.treated. |
| 4620 | 6c 69 74 65 72 61 6c 6c 79 20 72 61 74 68 65 72 20 74 68 61 6e 0a 61 73 20 61 20 73 75 62 2d 71 | literally.rather.than.as.a.sub-q |
| 4640 | 75 65 72 79 20 64 65 6c 69 6d 69 74 65 72 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d | uery.delimiter."...(if.(string-m |
| 4660 | 61 74 63 68 2d 70 20 22 5c 5c 60 20 2a 5c 5c 27 22 20 71 75 65 72 79 29 0a 20 20 20 20 20 20 3b | atch-p."\\`.*\\'".query).......; |
| 4680 | 3b 20 49 66 20 73 74 72 69 6e 67 20 69 73 20 7a 65 72 6f 20 6f 72 20 6f 6e 65 20 73 70 61 63 65 | ;.If.string.is.zero.or.one.space |
| 46a0 | 73 2c 20 74 68 65 6e 20 77 65 20 6d 61 74 63 68 20 65 76 65 72 79 74 68 69 6e 67 2e 0a 20 20 20 | s,.then.we.match.everything..... |
| 46c0 | 20 20 20 3b 3b 20 52 65 74 75 72 6e 20 61 6e 20 65 6d 70 74 79 20 73 75 62 71 75 65 72 79 20 6c | ...;;.Return.an.empty.subquery.l |
| 46e0 | 69 73 74 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3c 3d 20 28 6c 65 6e 67 74 68 20 71 | ist........(unless.(<=.(length.q |
| 4700 | 75 65 72 79 29 20 31 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 74 | uery).1).........;;.Otherwise,.t |
| 4720 | 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 70 61 63 65 73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 | he.number.of.spaces.should.be.re |
| 4740 | 64 75 63 65 64 20 62 79 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 73 75 62 | duced.by.one..........(list.(sub |
| 4760 | 73 74 72 69 6e 67 20 71 75 65 72 79 20 31 29 29 29 0a 20 20 20 20 3b 3b 20 54 72 69 6d 20 6f 66 | string.query.1))).....;;.Trim.of |
| 4780 | 66 20 61 20 73 69 6e 67 6c 65 20 73 70 61 63 65 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e | f.a.single.space.from.the.beginn |
| 47a0 | 69 6e 67 20 61 6e 64 20 65 6e 64 2c 20 69 66 20 70 72 65 73 65 6e 74 2e 0a 20 20 20 20 3b 3b 20 | ing.and.end,.if.present......;;. |
| 47c0 | 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 79 20 77 6f 75 6c 64 20 67 65 6e 65 72 61 74 65 20 65 | Otherwise,.they.would.generate.e |
| 47e0 | 6d 70 74 79 20 73 70 6c 69 74 73 20 61 6e 64 20 63 61 75 73 65 20 75 73 20 74 6f 0a 20 20 20 20 | mpty.splits.and.cause.us.to..... |
| 4800 | 3b 3b 20 6d 61 74 63 68 20 6c 69 74 65 72 61 6c 20 77 68 69 74 65 73 70 61 63 65 2e 0a 20 20 20 | ;;.match.literal.whitespace..... |
| 4820 | 20 28 73 65 74 71 20 71 75 65 72 79 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d | .(setq.query.(replace-regexp-in- |
| 4840 | 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 60 20 3f 5c 5c | string.................."\\`.?\\ |
| 4860 | 28 2e 2a 3f 5c 5c 29 20 3f 5c 5c 27 22 20 22 5c 5c 31 22 20 71 75 65 72 79 20 27 66 69 78 65 64 | (.*?\\).?\\'"."\\1".query.'fixed |
| 4880 | 63 61 73 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 73 20 28 73 70 6c 69 74 2d | case)).....(let.((splits.(split- |
| 48a0 | 73 74 72 69 6e 67 20 71 75 65 72 79 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 75 | string.query."."))...........(su |
| 48c0 | 62 71 75 65 72 79 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 2d 66 6f 75 6e | bquery."")...........(token-foun |
| 48e0 | 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 75 62 71 75 65 72 69 65 73 20 6e 69 6c | d.nil)...........(subqueries.nil |
| 4900 | 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 70 6c 69 74 20 73 70 6c 69 74 73 29 0a | )).......(dolist.(split.splits). |
| 4920 | 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 66 6f 72 20 65 6d 70 74 79 20 73 70 6c 69 74 | ........;;.Check.for.empty.split |
| 4940 | 2c 20 6d 65 61 6e 69 6e 67 20 74 77 6f 20 63 6f 6e 73 65 63 75 74 69 76 65 20 73 70 61 63 65 73 | ,.meaning.two.consecutive.spaces |
| 4960 | 20 69 6e 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 71 75 65 72 | .in.........;;.the.original.quer |
| 4980 | 79 2e 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 73 | y..........(if.(string-empty-p.s |
| 49a0 | 70 6c 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 | plit).............(progn........ |
| 49c0 | 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 73 65 63 75 74 69 76 65 20 73 70 61 63 65 73 20 6d 65 61 | .......;;.Consecutive.spaces.mea |
| 49e0 | 6e 20 6c 69 74 65 72 61 6c 20 73 70 61 63 65 73 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 | n.literal.spaces.in.the......... |
| 4a00 | 20 20 20 20 20 20 3b 3b 20 73 75 62 71 75 65 72 79 20 75 6e 64 65 72 20 63 6f 6e 73 74 72 75 63 | ......;;.subquery.under.construc |
| 4a20 | 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 75 62 71 75 65 | tion................(setq.subque |
| 4a40 | 72 79 20 28 63 6f 6e 63 61 74 20 73 75 62 71 75 65 72 79 20 22 20 22 29 29 0a 20 20 20 20 20 20 | ry.(concat.subquery."."))....... |
| 4a60 | 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 67 65 74 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 | ........;;.If.we.get.a.non-empty |
| 4a80 | 20 73 70 6c 69 74 2c 20 61 70 70 65 6e 64 20 69 74 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 20 | .split,.append.it.to.the........ |
| 4aa0 | 20 20 20 20 20 20 20 3b 3b 20 73 75 62 71 75 65 72 79 20 72 61 74 68 65 72 20 74 68 61 6e 20 70 | .......;;.subquery.rather.than.p |
| 4ac0 | 61 72 73 69 6e 67 20 69 74 20 61 73 20 61 6e 6f 74 68 65 72 20 73 75 62 71 75 65 72 79 2e 0a 20 | arsing.it.as.another.subquery... |
| 4ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 6b 65 6e 2d 66 6f 75 6e 64 20 6e | .............(setq.token-found.n |
| 4b00 | 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 73 69 62 6c 79 20 61 64 64 20 74 | il))...........;;.Possibly.add.t |
| 4b20 | 68 65 20 63 6f 6c 6c 65 63 74 65 64 20 73 74 72 69 6e 67 20 61 73 20 61 20 6e 65 77 20 73 75 62 | he.collected.string.as.a.new.sub |
| 4b40 | 71 75 65 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 2d 66 6f 75 | query............(when.token-fou |
| 4b60 | 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 75 62 71 75 65 72 79 20 73 75 | nd.............(push.subquery.su |
| 4b80 | 62 71 75 65 72 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 75 62 71 | bqueries).............(setq.subq |
| 4ba0 | 75 65 72 79 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 69 74 68 65 72 20 73 74 | uery.""))...........;;.Either.st |
| 4bc0 | 61 72 74 20 61 20 6e 65 77 20 73 75 62 71 75 65 72 79 20 6f 72 20 61 70 70 65 6e 64 20 74 6f 20 | art.a.new.subquery.or.append.to. |
| 4be0 | 74 68 65 20 65 78 69 73 74 69 6e 67 20 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 69 | the.existing.one...........;;.(i |
| 4c00 | 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 65 69 6e 67 20 | n.the.case.of.previously.seeing. |
| 4c20 | 61 6e 20 65 6d 70 74 79 20 73 70 6c 69 74 29 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | an.empty.split)............(setq |
| 4c40 | 20 73 75 62 71 75 65 72 79 20 28 63 6f 6e 63 61 74 20 73 75 62 71 75 65 72 79 20 73 70 6c 69 74 | .subquery.(concat.subquery.split |
| 4c60 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 61 6e 6f 74 68 65 72 20 6e 6f 6e 2d 65 | ))...........;;.If.another.non-e |
| 4c80 | 6d 70 74 79 20 73 70 6c 69 74 20 69 73 20 66 6f 75 6e 64 2c 20 69 74 27 73 20 61 20 73 65 70 61 | mpty.split.is.found,.it's.a.sepa |
| 4ca0 | 72 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 75 62 71 75 65 72 79 2e 0a 20 20 20 20 | rate...........;;.subquery...... |
| 4cc0 | 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 6b 65 6e 2d 66 6f 75 6e 64 20 74 29 29 29 0a 20 20 20 | ......(setq.token-found.t))).... |
| 4ce0 | 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 77 65 20 68 69 74 20 74 68 65 20 65 6e 64 20 6f 66 | ...;;.Check.if.we.hit.the.end.of |
| 4d00 | 20 74 68 65 20 73 74 72 69 6e 67 20 77 68 69 6c 65 20 73 74 69 6c 6c 0a 20 20 20 20 20 20 3b 3b | .the.string.while.still.......;; |
| 4d20 | 20 63 6f 6e 73 74 72 75 63 74 69 6e 67 20 61 20 73 75 62 71 75 65 72 79 2c 20 61 6e 64 20 68 61 | .constructing.a.subquery,.and.ha |
| 4d40 | 6e 64 6c 65 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 | ndle........(unless.(string-empt |
| 4d60 | 79 2d 70 20 73 75 62 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 75 62 71 | y-p.subquery).........(push.subq |
| 4d80 | 75 65 72 79 20 73 75 62 71 75 65 72 69 65 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 61 64 | uery.subqueries)).......;;.We.ad |
| 4da0 | 64 65 64 20 74 68 65 20 73 75 62 71 75 65 72 69 65 73 20 69 6e 20 72 65 76 65 72 73 65 20 6f 72 | ded.the.subqueries.in.reverse.or |
| 4dc0 | 64 65 72 2e 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 73 75 62 71 75 65 72 69 65 73 29 | der........(nreverse.subqueries) |
| 4de0 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75 70 | )))..(defun.prescient-with-group |
| 4e00 | 20 28 72 65 67 65 78 70 20 77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 22 57 72 61 70 20 52 45 47 | .(regexp.with-group)..."Wrap.REG |
| 4e20 | 45 58 50 20 69 6e 20 61 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 2c 20 62 75 74 20 6f 6e 6c 79 | EXP.in.a.capture.group,.but.only |
| 4e40 | 20 69 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 69 | .if.WITH-GROUP.is.non-nil."...(i |
| 4e60 | 66 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5c 5c 28 25 | f.with-group.......(format."\\(% |
| 4e80 | 73 5c 5c 29 22 20 72 65 67 65 78 70 29 0a 20 20 20 20 72 65 67 65 78 70 29 29 0a 0a 28 64 65 66 | s\\)".regexp).....regexp))..(def |
| 4ea0 | 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 70 72 65 66 69 78 2d 61 6e 64 2d 70 61 74 74 65 72 6e | un.prescient--prefix-and-pattern |
| 4ec0 | 20 28 73 74 72 69 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 0a 20 20 22 53 70 6c 69 74 20 53 54 | .(string.table.pred)..."Split.ST |
| 4ee0 | 52 49 4e 47 20 69 6e 74 6f 20 70 72 65 66 69 78 20 61 6e 64 20 70 61 74 74 65 72 6e 20 61 63 63 | RING.into.prefix.and.pattern.acc |
| 4f00 | 6f 72 64 69 6e 67 20 74 6f 20 54 41 42 4c 45 2e 0a 0a 54 68 65 20 70 72 65 64 69 63 61 74 65 20 | ording.to.TABLE...The.predicate. |
| 4f20 | 50 52 45 44 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 73 74 72 61 69 6e 20 74 68 65 20 65 6e | PRED.is.used.to.constrain.the.en |
| 4f40 | 74 72 69 65 73 20 69 6e 20 54 41 42 4c 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 6d 69 74 20 | tries.in.TABLE."...(let.((limit. |
| 4f60 | 28 63 61 72 20 28 63 6f 6d 70 6c 65 74 69 6f 6e 2d 62 6f 75 6e 64 61 72 69 65 73 20 73 74 72 69 | (car.(completion-boundaries.stri |
| 4f80 | 6e 67 20 74 61 62 6c 65 20 70 72 65 64 20 22 22 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 | ng.table.pred."")))).....(cons.( |
| 4fa0 | 73 75 62 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20 30 20 6c 69 6d 69 74 29 20 28 73 75 62 73 74 | substring.string.0.limit).(subst |
| 4fc0 | 72 69 6e 67 20 73 74 72 69 6e 67 20 6c 69 6d 69 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 | ring.string.limit))))..(defun.pr |
| 4fe0 | 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 2d 70 20 28 69 6e 70 75 74 29 0a 20 20 | escient-ignore-case-p.(input)... |
| 5000 | 22 57 68 65 74 68 65 72 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 73 68 6f 75 6c 64 20 69 67 6e | "Whether.prescient.el.should.ign |
| 5020 | 6f 72 65 20 63 61 73 65 20 63 6f 6e 73 69 64 65 72 69 6e 67 20 49 4e 50 55 54 2e 0a 0a 46 69 6c | ore.case.considering.INPUT...Fil |
| 5040 | 74 65 72 69 6e 67 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 69 67 6e 6f 72 65 20 63 61 73 | tering.can.optionally.ignore.cas |
| 5060 | 65 20 69 66 20 60 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 | e.if.`prescient-use-case-folding |
| 5080 | 27 0a 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 20 20 49 66 20 60 73 6d 61 72 74 27 2c 20 74 68 65 6e 20 | '.is.non-nil...If.`smart',.then. |
| 50a0 | 66 69 6c 74 65 72 69 6e 67 20 77 69 6c 6c 20 6e 6f 74 20 69 67 6e 6f 72 65 20 63 61 73 65 20 77 | filtering.will.not.ignore.case.w |
| 50c0 | 68 65 6e 0a 49 4e 50 55 54 20 63 6f 6e 74 61 69 6e 73 20 75 70 70 65 72 63 61 73 65 20 6c 65 74 | hen.INPUT.contains.uppercase.let |
| 50e0 | 74 65 72 73 2e 22 0a 20 20 28 69 66 20 28 65 71 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 | ters."...(if.(eq.prescient-use-c |
| 5100 | 61 73 65 2d 66 6f 6c 64 69 6e 67 20 27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 | ase-folding.'smart).......(let.( |
| 5120 | 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 | (case-fold-search.nil))......... |
| 5140 | 3b 3b 20 49 66 20 75 73 69 6e 67 20 75 70 70 65 72 2d 63 61 73 65 20 63 68 61 72 61 63 74 65 72 | ;;.If.using.upper-case.character |
| 5160 | 73 2c 20 74 68 65 6e 20 64 6f 6e 27 74 20 66 6f 6c 64 20 63 61 73 65 2e 0a 20 20 20 20 20 20 20 | s,.then.don't.fold.case......... |
| 5180 | 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5b 3a 75 70 70 65 72 3a | .(not.(string-match-p."[[:upper: |
| 51a0 | 5d 5d 22 20 69 6e 70 75 74 29 29 29 0a 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 | ]]".input))).....prescient-use-c |
| 51c0 | 61 73 65 2d 66 6f 6c 64 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d | ase-folding))..(defun.prescient- |
| 51e0 | 2d 61 64 64 2d 73 6f 72 74 2d 69 6e 66 6f 20 28 63 61 6e 64 69 64 61 74 65 73 20 26 72 65 73 74 | -add-sort-info.(candidates.&rest |
| 5200 | 20 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 22 50 72 6f 70 65 72 74 69 7a 65 20 74 68 65 20 66 | .properties)..."Propertize.the.f |
| 5220 | 69 72 73 74 20 63 61 6e 64 69 64 61 74 65 20 69 6e 20 43 41 4e 44 49 44 41 54 45 53 20 74 6f 20 | irst.candidate.in.CANDIDATES.to. |
| 5240 | 73 61 76 65 20 64 61 74 61 2e 0a 0a 43 75 72 72 65 6e 74 6c 79 20 72 65 63 6f 67 6e 69 7a 65 64 | save.data...Currently.recognized |
| 5260 | 20 50 52 4f 50 45 52 54 49 45 53 20 61 72 65 3a 0a 0a 2d 20 60 3a 70 72 65 73 63 69 65 6e 74 2d | .PROPERTIES.are:..-.`:prescient- |
| 5280 | 6d 61 74 63 68 2d 72 65 67 65 78 70 73 27 3a 20 54 68 65 20 72 65 67 65 78 70 73 20 75 73 65 64 | match-regexps':.The.regexps.used |
| 52a0 | 20 66 6f 72 20 66 69 6c 74 65 72 69 6e 67 2e 0a 0a 2d 20 60 3a 70 72 65 73 63 69 65 6e 74 2d 61 | .for.filtering...-.`:prescient-a |
| 52c0 | 6c 6c 2d 72 65 67 65 78 70 73 27 3a 20 41 6c 6c 20 72 65 67 65 78 70 73 20 6f 75 74 70 75 74 74 | ll-regexps':.All.regexps.outputt |
| 52e0 | 65 64 20 62 79 20 74 68 65 20 66 69 6c 74 65 72 0a 20 20 6d 65 74 68 6f 64 73 2c 20 77 68 69 63 | ed.by.the.filter...methods,.whic |
| 5300 | 68 20 77 65 72 65 20 75 73 65 64 20 74 6f 20 6d 61 6b 65 20 50 52 45 53 43 49 45 4e 54 2d 4d 41 | h.were.used.to.make.PRESCIENT-MA |
| 5320 | 54 43 48 2d 52 45 47 45 58 50 53 2e 20 41 0a 20 20 72 65 67 65 78 70 20 69 6e 20 74 68 69 73 20 | TCH-REGEXPS..A...regexp.in.this. |
| 5340 | 6c 69 73 74 20 64 6f 65 73 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 61 74 63 68 20 | list.does.not.necessarily.match. |
| 5360 | 74 68 65 20 63 61 6e 64 69 64 61 74 65 73 0a 20 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 2d 20 60 | the.candidates...by.itself...-.` |
| 5380 | 3a 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 27 3a 20 57 68 65 74 68 65 72 | :prescient-ignore-case':.Whether |
| 53a0 | 20 70 72 65 73 63 69 65 6e 74 20 69 67 6e 6f 72 65 64 20 63 61 73 65 2e 0a 0a 2d 20 60 3a 70 72 | .prescient.ignored.case...-.`:pr |
| 53c0 | 65 73 63 69 65 6e 74 2d 71 75 65 72 79 27 3a 20 4f 72 69 67 69 6e 61 6c 20 73 65 61 72 63 68 20 | escient-query':.Original.search. |
| 53e0 | 71 75 65 72 79 20 66 72 6f 6d 20 75 73 65 72 2e 0a 0a 54 68 65 73 65 20 70 72 6f 70 65 72 74 69 | query.from.user...These.properti |
| 5400 | 65 73 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 64 20 75 73 69 6e 67 20 6b 65 79 77 6f 72 64 20 | es.are.identified.using.keyword. |
| 5420 | 73 79 6d 62 6f 6c 73 2e 0a 0a 54 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 75 73 | symbols...This.information.is.us |
| 5440 | 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 6f | ed.by.the.function.`prescient-so |
| 5460 | 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 69 66 20 28 | rt-full-matches-first'."...(if.( |
| 5480 | 6e 75 6c 6c 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 | null.candidates).......nil.....( |
| 54a0 | 63 6f 6e 73 20 28 61 70 70 6c 79 20 23 27 70 72 6f 70 65 72 74 69 7a 65 20 28 63 61 72 20 63 61 | cons.(apply.#'propertize.(car.ca |
| 54c0 | 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 | ndidates)..................;;.Wh |
| 54e0 | 69 6c 65 20 50 52 4f 50 45 52 54 49 45 53 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 67 69 76 65 | ile.PROPERTIES.contains.all.give |
| 5500 | 6e 20 6b 65 79 73 2c 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 | n.keys,.we..................;;.e |
| 5520 | 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 74 68 69 | xplicitly.set.the.properties.thi |
| 5540 | 73 20 77 61 79 20 73 6f 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | s.way.so.that..................; |
| 5560 | 3b 20 77 65 27 72 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 | ;.we're.sure.that.the.properties |
| 5580 | 20 65 78 69 73 74 20 65 76 65 6e 20 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .exist.even.when................ |
| 55a0 | 20 20 3b 3b 20 74 68 65 79 27 72 65 20 6e 6f 74 20 67 69 76 65 6e 2e 20 54 68 69 73 20 6d 61 6b | ..;;.they're.not.given..This.mak |
| 55c0 | 65 73 20 74 65 73 74 69 6e 67 20 65 61 73 69 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | es.testing.easier............... |
| 55e0 | 20 20 20 3b 3b 20 61 6e 64 20 73 68 6f 75 6c 64 20 62 65 20 68 65 6c 70 66 75 6c 20 66 6f 72 20 | ...;;.and.should.be.helpful.for. |
| 5600 | 6f 74 68 65 72 73 20 63 72 65 61 74 69 6e 67 20 74 68 65 69 72 0a 20 20 20 20 20 20 20 20 20 20 | others.creating.their........... |
| 5620 | 20 20 20 20 20 20 20 3b 3b 20 6f 77 6e 20 73 6f 72 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 2e | .......;;.own.sorting.functions. |
| 5640 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | ..................;;............ |
| 5660 | 20 20 20 20 20 20 3b 3b 20 4e 6f 74 65 20 61 6c 6c 20 70 61 73 73 65 64 20 70 72 6f 70 65 72 74 | ......;;.Note.all.passed.propert |
| 5680 | 69 65 73 20 77 69 6c 6c 20 73 74 69 6c 6c 20 67 65 74 20 73 65 74 2c 0a 20 20 20 20 20 20 20 20 | ies.will.still.get.set,......... |
| 56a0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 6a 75 73 74 20 64 65 66 61 75 6c 74 73 20 74 | .........;;.this.just.defaults.t |
| 56c0 | 68 65 20 73 74 61 6e 64 61 72 64 20 6f 6e 65 73 20 74 6f 20 6e 69 6c 20 69 6e 0a 20 20 20 20 20 | he.standard.ones.to.nil.in...... |
| 56e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 74 68 65 79 20 61 72 65 20 6d 69 73 | ............;;.case.they.are.mis |
| 5700 | 73 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 6c 65 74 20 | sing...................(cl-flet. |
| 5720 | 28 28 70 75 74 2d 67 65 74 20 28 70 72 6f 70 73 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 | ((put-get.(props.sym)........... |
| 5740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 | ...................(plist-put.pr |
| 5760 | 6f 70 73 20 73 79 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 | ops.sym......................... |
| 5780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 73 | ................(plist-get.props |
| 57a0 | 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 | .sym))))....................(thr |
| 57c0 | 65 61 64 2d 66 69 72 73 74 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 | ead-first.properties............ |
| 57e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 67 65 74 20 3a | ......................(put-get.: |
| 5800 | 70 72 65 73 63 69 65 6e 74 2d 6d 61 74 63 68 2d 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 20 20 | prescient-match-regexps)........ |
| 5820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d 67 | ..........................(put-g |
| 5840 | 65 74 20 3a 70 72 65 73 63 69 65 6e 74 2d 61 6c 6c 2d 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 | et.:prescient-all-regexps)...... |
| 5860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 | ............................(put |
| 5880 | 2d 67 65 74 20 3a 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 29 0a 20 20 20 | -get.:prescient-ignore-case).... |
| 58a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | ..............................(p |
| 58c0 | 75 74 2d 67 65 74 20 3a 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79 29 29 29 29 0a 20 20 20 20 | ut-get.:prescient-query))))..... |
| 58e0 | 20 20 20 20 20 20 28 63 64 72 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 0a 0a 28 64 65 66 75 | ......(cdr.candidates))))..(defu |
| 5900 | 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 67 65 74 2d 73 6f 72 74 2d 69 6e 66 6f 20 28 63 61 6e 64 | n.prescient--get-sort-info.(cand |
| 5920 | 69 64 61 74 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 70 65 72 74 79 20 6c 69 73 | idates)..."Return.a.property.lis |
| 5940 | 74 20 6f 66 20 70 72 6f 70 65 72 74 69 65 73 20 61 64 64 65 64 20 62 79 20 60 70 72 65 73 63 69 | t.of.properties.added.by.`presci |
| 5960 | 65 6e 74 2d 66 69 6c 74 65 72 27 2e 0a 0a 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 27 | ent-filter'...`prescient-filter' |
| 5980 | 20 61 64 64 73 20 70 72 6f 70 65 72 74 69 65 73 20 74 6f 20 74 68 65 20 43 41 4e 44 49 44 41 54 | .adds.properties.to.the.CANDIDAT |
| 59a0 | 45 53 20 74 68 61 74 20 69 74 0a 66 69 6c 74 65 72 65 64 20 66 6f 72 20 75 73 65 20 62 79 20 74 | ES.that.it.filtered.for.use.by.t |
| 59c0 | 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c | he.function.`prescient-sort-full |
| 59e0 | 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 | -matches-first'."...(cl-loop.for |
| 5a00 | 20 63 61 6e 64 20 69 6e 20 63 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 66 | .cand.in.candidates............f |
| 5a20 | 6f 72 20 70 72 6f 70 73 20 3d 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 2d 61 74 20 30 | or.props.=.(text-properties-at.0 |
| 5a40 | 20 63 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c 20 28 70 6c 69 73 74 2d 6d | .cand)............until.(plist-m |
| 5a60 | 65 6d 62 65 72 20 70 72 6f 70 73 20 3a 70 72 65 73 63 69 65 6e 74 2d 6d 61 74 63 68 2d 72 65 67 | ember.props.:prescient-match-reg |
| 5a80 | 65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 77 65 20 61 6c 6c | exps)............;;.Since.we.all |
| 5aa0 | 6f 77 20 6f 74 68 65 72 20 6b 65 79 73 20 69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 61 64 64 | ow.other.keys.in.`prescient--add |
| 5ac0 | 2d 73 6f 72 74 2d 69 6e 66 6f 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6a 75 73 74 20 | -sort-info',............;;.just. |
| 5ae0 | 72 65 74 75 72 6e 20 61 6c 6c 20 70 72 6f 70 65 72 74 69 65 73 20 68 65 72 65 2e 0a 20 20 20 20 | return.all.properties.here...... |
| 5b00 | 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 70 72 6f 70 73 29 29 0a 0a 28 | .......finally.return.props))..( |
| 5b20 | 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 68 6c 69 67 68 74 2d 63 61 6e 64 69 | defun.prescient--highlight-candi |
| 5b40 | 64 61 74 65 20 28 72 65 67 65 78 70 73 20 63 61 73 65 2d 66 6f 6c 64 20 63 61 6e 64 69 64 61 74 | date.(regexps.case-fold.candidat |
| 5b60 | 65 29 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 65 78 74 20 6d 61 74 63 68 69 6e 67 20 52 45 | e)..."Highlight.text.matching.RE |
| 5b80 | 47 45 58 50 53 20 61 6e 64 20 63 6f 6e 73 69 64 65 72 69 6e 67 20 43 41 53 45 2d 46 4f 4c 44 20 | GEXPS.and.considering.CASE-FOLD. |
| 5ba0 | 69 6e 20 43 41 4e 44 49 44 41 54 45 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 70 72 6f 70 65 72 74 | in.CANDIDATE...Returns.a.propert |
| 5bc0 | 69 7a 65 64 20 43 41 4e 44 49 44 41 54 45 2e 22 0a 20 20 28 73 65 74 71 20 63 61 6e 64 69 64 61 | ized.CANDIDATE."...(setq.candida |
| 5be0 | 74 65 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 63 61 6e 64 69 64 61 74 65 29 29 0a 20 20 | te.(copy-sequence.candidate))... |
| 5c00 | 28 70 72 6f 67 31 20 63 61 6e 64 69 64 61 74 65 0a 20 20 20 20 28 6c 65 74 20 28 28 63 61 73 65 | (prog1.candidate.....(let.((case |
| 5c20 | 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 63 61 73 65 2d 66 6f 6c 64 29 29 0a 20 20 20 20 20 20 28 | -fold-search.case-fold)).......( |
| 5c40 | 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 | save-match-data.........(dolist. |
| 5c60 | 28 72 65 67 65 78 70 20 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | (regexp.regexps)...........(when |
| 5c80 | 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 67 65 78 70 20 63 61 6e 64 69 64 61 74 65 29 | .(string-match.regexp.candidate) |
| 5ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 65 6e 64 2d | .............(font-lock-prepend- |
| 5cc0 | 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 | text-property..............(matc |
| 5ce0 | 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 | h-beginning.0).(match-end.0).... |
| 5d00 | 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61 | ..........'face.'prescient-prima |
| 5d20 | 72 79 2d 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 64 69 64 | ry-highlight..............candid |
| 5d40 | 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 | ate).............(cl-loop....... |
| 5d60 | 20 20 20 20 20 20 20 66 6f 72 20 28 73 74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 | .......for.(start.end).......... |
| 5d80 | 20 20 20 20 6f 6e 20 28 63 64 64 72 20 28 6d 61 74 63 68 2d 64 61 74 61 29 29 0a 20 20 20 20 20 | ....on.(cddr.(match-data))...... |
| 5da0 | 20 20 20 20 20 20 20 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 | ........by.#'cddr..............d |
| 5dc0 | 6f 20 28 77 68 65 6e 20 28 61 6e 64 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | o.(when.(and.start.end)......... |
| 5de0 | 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 70 72 65 70 65 6e 64 2d 74 65 78 | ..........(font-lock-prepend-tex |
| 5e00 | 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 | t-property....................st |
| 5e20 | 61 72 74 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 | art.end....................'face |
| 5e40 | 20 27 70 72 65 73 63 69 65 6e 74 2d 73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 0a | .'prescient-secondary-highlight. |
| 5e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 64 69 64 61 74 65 29 29 29 29 | ...................candidate)))) |
| 5e80 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 68 6c 69 67 | )))))..(defun.prescient--highlig |
| 5ea0 | 68 74 2d 63 61 6e 64 69 64 61 74 65 73 20 28 69 6e 70 75 74 20 63 61 6e 64 69 64 61 74 65 73 29 | ht-candidates.(input.candidates) |
| 5ec0 | 0a 20 20 22 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 49 4e 50 55 54 2c 20 68 69 67 68 6c 69 67 68 | ..."According.to.INPUT,.highligh |
| 5ee0 | 74 20 74 68 65 20 6d 61 74 63 68 65 64 20 73 65 63 74 69 6f 6e 73 20 69 6e 20 43 41 4e 44 49 44 | t.the.matched.sections.in.CANDID |
| 5f00 | 41 54 45 53 2e 0a 0a 49 4e 50 55 54 20 69 73 20 74 68 65 20 73 74 72 69 6e 67 20 74 68 61 74 20 | ATES...INPUT.is.the.string.that. |
| 5f20 | 77 61 73 20 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 20 6c 69 73 74 20 6f 66 20 72 | was.used.to.generate.a.list.of.r |
| 5f40 | 65 67 65 78 70 73 0a 66 6f 72 20 66 69 6c 74 65 72 69 6e 67 2e 20 43 41 4e 44 49 44 41 54 45 53 | egexps.for.filtering..CANDIDATES |
| 5f60 | 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 74 65 72 65 64 20 63 61 6e 64 69 64 61 | .is.the.list.of.filtered.candida |
| 5f80 | 74 65 73 2c 0a 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 | tes,.which.should.be.a.list.of.s |
| 5fa0 | 74 72 69 6e 67 73 2e 0a 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 | trings...Return.a.list.of.proper |
| 5fc0 | 74 69 7a 65 64 20 43 41 4e 44 49 44 41 54 45 53 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 | tized.CANDIDATES."...(cl-loop.wi |
| 5fe0 | 74 68 20 72 65 67 65 78 70 73 20 3d 20 28 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 72 | th.regexps.=.(prescient-filter-r |
| 6000 | 65 67 65 78 70 73 20 69 6e 70 75 74 20 27 77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 20 | egexps.input.'with-group)....... |
| 6020 | 20 20 20 20 20 61 6e 64 20 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 3d 20 28 70 72 65 | .....and.case-fold-search.=.(pre |
| 6040 | 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 2d 70 20 69 6e 70 75 74 29 0a 20 20 20 20 | scient-ignore-case-p.input)..... |
| 6060 | 20 20 20 20 20 20 20 66 6f 72 20 63 61 6e 64 20 69 6e 20 63 61 6e 64 69 64 61 74 65 73 0a 20 20 | .......for.cand.in.candidates... |
| 6080 | 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 | .........collect.(prescient--hig |
| 60a0 | 68 6c 69 67 68 74 2d 63 61 6e 64 69 64 61 74 65 20 72 65 67 65 78 70 73 20 63 61 73 65 2d 66 6f | hlight-candidate.regexps.case-fo |
| 60c0 | 6c 64 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ld-search....................... |
| 60e0 | 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 63 61 6e | .............................can |
| 6100 | 64 29 29 29 0a 0a 3b 3b 3b 3b 20 52 65 67 65 78 70 20 42 75 69 6c 64 65 72 73 0a 0a 28 63 6c 2d | d)))..;;;;.Regexp.Builders..(cl- |
| 6120 | 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c 2d 72 65 67 65 78 70 20 28 | defun.prescient-literal-regexp.( |
| 6140 | 71 75 65 72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 | query.&key.with-group........... |
| 6160 | 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 | ................................ |
| 6180 | 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 | &allow-other-keys)..."Return.a.r |
| 61a0 | 65 67 65 78 70 20 6d 61 74 63 68 69 6e 67 20 51 55 45 52 59 20 77 69 74 68 20 6f 70 74 69 6f 6e | egexp.matching.QUERY.with.option |
| 61c0 | 61 6c 20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 49 66 20 57 49 54 48 2d 47 | al.character.folding...If.WITH-G |
| 61e0 | 52 4f 55 50 20 69 73 20 60 61 6c 6c 27 2c 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 6d 61 74 63 68 | ROUP.is.`all',.enclose.the.match |
| 6200 | 20 69 6e 20 61 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 | .in.a.capture.group...See.also.t |
| 6220 | 68 65 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 60 70 72 65 73 63 69 | he.customizable.variable.`presci |
| 6240 | 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 27 2e 22 0a 20 20 28 70 72 65 73 63 | ent-use-char-folding'."...(presc |
| 6260 | 69 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 28 69 66 20 70 72 65 73 63 69 65 6e 74 | ient-with-group....(if.prescient |
| 6280 | 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 28 70 72 65 73 63 69 | -use-char-folding........(presci |
| 62a0 | 65 6e 74 2d 2d 63 68 61 72 2d 66 6f 6c 64 2d 74 6f 2d 72 65 67 65 78 70 20 71 75 65 72 79 29 0a | ent--char-fold-to-regexp.query). |
| 62c0 | 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 71 75 65 72 79 29 29 0a 20 20 20 28 65 | .....(regexp-quote.query))....(e |
| 62e0 | 71 20 77 69 74 68 2d 67 72 6f 75 70 20 27 61 6c 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 | q.with-group.'all)))..(cl-defun. |
| 6300 | 70 72 65 73 63 69 65 6e 74 2d 6c 69 74 65 72 61 6c 2d 70 72 65 66 69 78 2d 72 65 67 65 78 70 0a | prescient-literal-prefix-regexp. |
| 6320 | 20 20 20 20 28 71 75 65 72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f 75 70 20 73 75 62 71 75 | ....(query.&key.with-group.subqu |
| 6340 | 65 72 79 2d 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f 74 68 | ery-number............&allow-oth |
| 6360 | 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 6d 61 74 63 | er-keys)..."Return.a.regexp.matc |
| 6380 | 68 69 6e 67 20 51 55 45 52 59 20 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 63 68 61 72 61 63 74 | hing.QUERY.with.optional.charact |
| 63a0 | 65 72 20 66 6f 6c 64 69 6e 67 2e 0a 0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 60 61 | er.folding...If.WITH-GROUP.is.`a |
| 63c0 | 6c 6c 27 2c 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 6d 61 74 63 68 20 69 6e 20 61 20 63 61 70 74 | ll',.enclose.the.match.in.a.capt |
| 63e0 | 75 72 65 20 67 72 6f 75 70 2e 0a 41 6e 63 68 6f 72 20 74 68 65 20 51 55 45 52 59 20 61 74 20 74 | ure.group..Anchor.the.QUERY.at.t |
| 6400 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 20 69 66 | he.beginning.of.the.candidate.if |
| 6420 | 0a 53 55 42 51 55 45 52 59 2d 4e 55 4d 42 45 52 20 65 71 75 61 6c 73 20 30 2e 0a 0a 53 65 65 20 | .SUBQUERY-NUMBER.equals.0...See. |
| 6440 | 61 6c 73 6f 20 74 68 65 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 76 61 72 69 61 62 6c 65 20 60 | also.the.customizable.variable.` |
| 6460 | 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 27 2e 22 0a 20 20 | prescient-use-char-folding'."... |
| 6480 | 28 70 72 65 73 63 69 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 28 63 6f 6e 63 61 74 | (prescient-with-group....(concat |
| 64a0 | 20 28 69 66 20 28 3d 20 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65 72 20 30 29 0a 20 20 20 20 20 | .(if.(=.subquery-number.0)...... |
| 64c0 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 31 2e 20 73 75 62 71 75 65 72 79 20 3d 3e 20 61 6e 63 68 | ..........;;.1..subquery.=>.anch |
| 64e0 | 6f 72 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 63 61 6e 64 69 64 61 74 65 | or.at.the.beginning.of.candidate |
| 6500 | 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5e 22 0a 20 20 20 20 20 20 20 20 20 20 20 | ................."^"............ |
| 6520 | 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 6a 75 73 74 20 61 6e 63 68 6f 72 20 61 74 20 74 | ..;;.Otherwise,.just.anchor.at.t |
| 6540 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 73 6f 6d 65 20 77 6f 72 64 0a 20 20 20 20 20 20 | he.beginning.of.some.word....... |
| 6560 | 20 20 20 20 20 20 20 3b 3b 20 69 6e 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 2e 0a 20 20 20 20 | .......;;.in.the.candidate...... |
| 6580 | 20 20 20 20 20 20 20 20 20 22 5c 5c 62 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 | ........."\\b")............(if.p |
| 65a0 | 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 | rescient-use-char-folding....... |
| 65c0 | 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 63 68 61 72 2d 66 6f 6c 64 2d 74 | .........(prescient--char-fold-t |
| 65e0 | 6f 2d 72 65 67 65 78 70 20 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | o-regexp.query)..............(re |
| 6600 | 67 65 78 70 2d 71 75 6f 74 65 20 71 75 65 72 79 29 29 29 0a 20 20 20 28 65 71 20 77 69 74 68 2d | gexp-quote.query)))....(eq.with- |
| 6620 | 67 72 6f 75 70 20 27 61 6c 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 73 63 69 65 | group.'all)))..(cl-defun.prescie |
| 6640 | 6e 74 2d 69 6e 69 74 69 61 6c 73 2d 72 65 67 65 78 70 20 28 71 75 65 72 79 20 26 6b 65 79 20 77 | nt-initials-regexp.(query.&key.w |
| 6660 | 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ith-group....................... |
| 6680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 | .....................&allow-othe |
| 66a0 | 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 6d 61 74 63 68 | r-keys)..."Return.a.regexp.match |
| 66c0 | 69 6e 67 20 51 55 45 52 59 20 61 73 20 61 6e 20 69 6e 69 74 69 61 6c 69 73 6d 2e 0a 54 68 69 73 | ing.QUERY.as.an.initialism..This |
| 66e0 | 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 72 65 67 65 78 70 20 77 69 6c 6c 20 6f 6e 6c 79 | .means.that.the.regexp.will.only |
| 6700 | 20 6d 61 74 63 68 20 61 20 67 69 76 65 6e 20 73 74 72 69 6e 67 20 69 66 0a 51 55 45 52 59 20 69 | .match.a.given.string.if.QUERY.i |
| 6720 | 73 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20 6f 66 | s.a.substring.of.the.initials.of |
| 6740 | 20 74 68 65 20 73 74 72 69 6e 67 2e 0a 0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e | .the.string...If.WITH-GROUP.is.n |
| 6760 | 6f 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 | on-nil,.enclose.the.parts.of.the |
| 6780 | 20 72 65 67 65 78 70 20 74 68 61 74 0a 6d 61 74 63 68 20 74 68 65 20 61 63 74 75 61 6c 20 69 6e | .regexp.that.match.the.actual.in |
| 67a0 | 69 74 69 61 6c 73 20 69 6e 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74 68 61 | itials.in.capture.groups,.so.tha |
| 67c0 | 74 20 74 68 65 20 6d 61 74 63 68 0a 64 61 74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 | t.the.match.data.can.be.used.to. |
| 67e0 | 68 69 67 68 6c 69 67 68 74 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20 6f 66 20 74 68 65 20 6d 61 | highlight.the.initials.of.the.ma |
| 6800 | 74 63 68 2e 0a 0a 54 6f 20 69 6c 6c 75 73 74 72 61 74 65 2c 20 69 66 20 5c 22 66 61 5c 22 20 6d | tch...To.illustrate,.if.\"fa\".m |
| 6820 | 61 74 63 68 65 73 20 5c 22 66 69 6e 64 2d 66 69 6c 65 2d 61 74 2d 70 6f 69 6e 74 5c 22 2c 20 74 | atches.\"find-file-at-point\",.t |
| 6840 | 68 65 6e 20 74 68 65 0a 65 6e 74 69 72 65 20 6d 61 74 63 68 20 77 69 6c 6c 20 62 65 20 74 68 65 | hen.the.entire.match.will.be.the |
| 6860 | 20 74 65 78 74 20 5c 22 66 69 6c 65 2d 61 74 5c 22 2c 20 61 6e 64 20 74 68 65 72 65 20 77 69 6c | .text.\"file-at\",.and.there.wil |
| 6880 | 6c 20 62 65 20 74 77 6f 0a 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 20 6d 61 74 63 68 69 6e 67 | l.be.two.capture.groups.matching |
| 68a0 | 20 5c 22 66 5c 22 20 61 6e 64 20 5c 22 61 5c 22 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 | .\"f\".and.\"a\"."...(mapconcat. |
| 68c0 | 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | (lambda.(char)................(l |
| 68e0 | 65 74 20 28 28 72 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 63 68 61 72 2d 74 6f 2d 73 74 | et.((r.(regexp-quote.(char-to-st |
| 6900 | 72 69 6e 67 20 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ring.char))))..................( |
| 6920 | 77 68 65 6e 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | when.with-group................. |
| 6940 | 20 20 20 28 73 65 74 71 20 72 20 28 66 6f 72 6d 61 74 20 22 5c 5c 28 25 73 5c 5c 29 22 20 72 29 | ...(setq.r.(format."\\(%s\\)".r) |
| 6960 | 29 29 0a 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 5c 5c 62 | ))..................(format."\\b |
| 6980 | 25 73 5c 5c 77 2a 22 20 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72 79 0a | %s\\w*".r)))..............query. |
| 69a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 57 2a 22 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e | ............."\\W*"))..(cl-defun |
| 69c0 | 20 70 72 65 73 63 69 65 6e 74 2d 72 65 67 65 78 70 2d 72 65 67 65 78 70 20 28 71 75 65 72 79 20 | .prescient-regexp-regexp.(query. |
| 69e0 | 26 72 65 73 74 20 5f 69 67 6e 6f 72 65 29 0a 20 20 22 55 6e 6c 65 73 73 20 75 73 69 6e 67 20 74 | &rest._ignore)..."Unless.using.t |
| 6a00 | 68 65 20 72 65 67 65 78 70 20 51 55 45 52 59 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 61 6e 20 | he.regexp.QUERY.would.return.an. |
| 6a20 | 65 72 72 6f 72 2c 20 72 65 74 75 72 6e 20 51 55 45 52 59 2e 22 0a 20 20 28 69 67 6e 6f 72 65 2d | error,.return.QUERY."...(ignore- |
| 6a40 | 65 72 72 6f 72 73 0a 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 72 65 67 65 78 70 20 69 66 20 69 | errors.....;;.Ignore.regexp.if.i |
| 6a60 | 74 27 73 20 6d 61 6c 66 6f 72 6d 65 64 2e 0a 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 | t's.malformed......(string-match |
| 6a80 | 2d 70 20 71 75 65 72 79 20 22 22 29 0a 20 20 20 20 71 75 65 72 79 29 29 0a 0a 28 63 6c 2d 64 65 | -p.query."").....query))..(cl-de |
| 6aa0 | 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 61 6e 63 68 6f 72 65 64 2d 72 65 67 65 78 70 20 28 71 | fun.prescient-anchored-regexp.(q |
| 6ac0 | 75 65 72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 | uery.&key.with-group............ |
| 6ae0 | 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 | ................................ |
| 6b00 | 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 | &allow-other-keys)..."Return.a.r |
| 6b20 | 65 67 65 78 70 20 6d 61 74 63 68 69 6e 67 20 51 55 45 52 59 20 77 69 74 68 20 61 6e 63 68 6f 72 | egexp.matching.QUERY.with.anchor |
| 6b40 | 73 2e 0a 54 68 69 73 20 6d 65 61 6e 73 20 75 70 70 65 72 63 61 73 65 20 61 6e 64 20 73 79 6d 62 | s..This.means.uppercase.and.symb |
| 6b60 | 6f 6c 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 62 65 67 69 6e 20 6f 66 20 77 6f 72 | ols.will.be.used.as.begin.of.wor |
| 6b80 | 64 73 2e 0a 0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 65 | ds...If.WITH-GROUP.is.non-nil,.e |
| 6ba0 | 6e 63 6c 6f 73 65 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 72 65 67 65 78 70 20 74 | nclose.the.parts.of.the.regexp.t |
| 6bc0 | 68 61 74 0a 6d 61 74 63 68 20 74 68 65 20 61 63 74 75 61 6c 20 69 6e 69 74 69 61 6c 73 20 69 6e | hat.match.the.actual.initials.in |
| 6be0 | 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 6d 61 74 | .capture.groups,.so.that.the.mat |
| 6c00 | 63 68 0a 64 61 74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 | ch.data.can.be.used.to.highlight |
| 6c20 | 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20 6f 66 20 74 68 65 20 6d 61 74 63 68 2e 0a 0a 54 6f 20 | .the.initials.of.the.match...To. |
| 6c40 | 69 6c 6c 75 73 74 72 61 74 65 2c 20 5c 22 46 69 46 69 41 74 5c 22 20 6d 61 74 63 68 65 73 20 5c | illustrate,.\"FiFiAt\".matches.\ |
| 6c60 | 22 66 69 6e 64 2d 66 69 6c 65 2d 61 74 2d 70 6f 69 6e 74 5c 22 20 77 69 74 68 20 74 68 65 0a 65 | "find-file-at-point\".with.the.e |
| 6c80 | 6e 74 69 72 65 20 6d 61 74 63 68 20 62 65 69 6e 67 20 5c 22 66 69 6c 65 2d 66 69 6e 64 2d 61 74 | ntire.match.being.\"file-find-at |
| 6ca0 | 5c 22 20 61 6e 64 20 77 69 74 68 20 74 68 72 65 65 20 67 72 6f 75 70 73 0a 5c 22 66 69 6e 64 5c | \".and.with.three.groups.\"find\ |
| 6cc0 | 22 2c 20 5c 22 66 69 6c 65 5c 22 2c 20 61 6e 64 20 5c 22 61 74 5c 22 2e 0a 0a 41 20 73 69 6d 69 | ",.\"file\",.and.\"at\"...A.simi |
| 6ce0 | 6c 61 72 20 6d 61 74 63 68 20 63 61 6e 20 62 65 20 61 63 68 69 65 76 65 20 77 69 74 68 20 5c 22 | lar.match.can.be.achieve.with.\" |
| 6d00 | 66 69 2d 66 69 2d 61 74 5c 22 2c 20 6f 72 20 5c 22 46 46 41 5c 22 2c 0a 6f 72 20 5c 22 66 69 6e | fi-fi-at\",.or.\"FFA\",.or.\"fin |
| 6d20 | 64 2d 66 2d 61 5c 22 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 | d-f-a\"."...(let.((case-fold-sea |
| 6d40 | 72 63 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 65 78 70 72 20 28 69 66 20 77 69 74 68 2d | rch.nil).........(expr.(if.with- |
| 6d60 | 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5c 5c 62 25 | group..................."\\(\\b% |
| 6d80 | 73 5c 5c 29 5b 5e 5c 5c 2f 5d 2a 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c | s\\)[^\\/]*?"................."\ |
| 6da0 | 5c 62 25 73 5b 5e 5c 5c 2f 5d 2a 3f 22 29 29 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 | \b%s[^\\/]*?"))).....(replace-re |
| 6dc0 | 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 22 5b 5b 3a 75 70 70 65 72 3a 5d 5d | gexp-in-string......"[[:upper:]] |
| 6de0 | 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2a 5c 5c 7c 5c 5c 57 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2a 5c 5c | [[:lower:]]*\\|\\W[[:lower:]]*\\ |
| 6e00 | 7c 5b 5b 3a 6c 6f 77 65 72 3a 5d 5d 2b 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 29 20 | |[[:lower:]]+"......(lambda.(s). |
| 6e20 | 28 66 6f 72 6d 61 74 20 65 78 70 72 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 64 6f 77 6e | (format.expr.(regexp-quote.(down |
| 6e40 | 63 61 73 65 20 73 29 29 29 29 0a 20 20 20 20 20 71 75 65 72 79 0a 20 20 20 20 20 27 66 69 78 65 | case.s))))......query......'fixe |
| 6e60 | 64 2d 63 61 73 65 0a 20 20 20 20 20 27 6c 69 74 65 72 61 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | d-case......'literal)))..(cl-def |
| 6e80 | 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 66 75 7a 7a 79 2d 72 65 67 65 78 70 20 28 71 75 65 72 79 | un.prescient-fuzzy-regexp.(query |
| 6ea0 | 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .&key.with-group................ |
| 6ec0 | 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 26 61 6c 6c 6f 77 2d | .........................&allow- |
| 6ee0 | 6f 74 68 65 72 2d 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 66 | other-keys)..."Return.a.regexp.f |
| 6f00 | 6f 72 20 66 75 7a 7a 79 2d 6d 61 74 63 68 69 6e 67 20 51 55 45 52 59 2e 0a 54 68 69 73 20 6d 65 | or.fuzzy-matching.QUERY..This.me |
| 6f20 | 61 6e 73 20 74 68 61 74 20 74 68 65 20 72 65 67 65 78 70 20 77 69 6c 6c 20 6f 6e 6c 79 20 6d 61 | ans.that.the.regexp.will.only.ma |
| 6f40 | 74 63 68 20 61 20 67 69 76 65 6e 20 73 74 72 69 6e 67 20 69 66 20 61 6c 6c 0a 63 68 61 72 61 63 | tch.a.given.string.if.all.charac |
| 6f60 | 74 65 72 73 20 69 6e 20 51 55 45 52 59 20 61 72 65 20 70 72 65 73 65 6e 74 20 61 6e 79 77 68 65 | ters.in.QUERY.are.present.anywhe |
| 6f80 | 72 65 20 69 6e 20 74 68 65 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 0a 73 70 65 63 69 66 69 65 | re.in.the.string.in.the.specifie |
| 6fa0 | 64 20 6f 72 64 65 72 2e 0a 0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f 6e 2d 6e | d.order...If.WITH-GROUP.is.non-n |
| 6fc0 | 69 6c 2c 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 72 65 67 | il,.enclose.the.parts.of.the.reg |
| 6fe0 | 65 78 70 20 74 68 61 74 0a 6d 61 74 63 68 20 74 68 65 20 51 55 45 52 59 20 63 68 61 72 61 63 74 | exp.that.match.the.QUERY.charact |
| 7000 | 65 72 73 20 69 6e 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74 68 61 74 20 74 | ers.in.capture.groups,.so.that.t |
| 7020 | 68 65 20 6d 61 74 63 68 0a 64 61 74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 68 69 67 | he.match.data.can.be.used.to.hig |
| 7040 | 68 6c 69 67 68 74 20 74 68 65 20 6d 61 74 63 68 65 64 20 73 75 62 73 74 72 69 6e 67 73 2e 22 0a | hlight.the.matched.substrings.". |
| 7060 | 20 20 28 6c 65 74 20 28 28 63 68 61 72 73 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6c 69 73 74 20 71 | ..(let.((chars.(string-to-list.q |
| 7080 | 75 65 72 79 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 28 70 72 65 73 63 69 | uery))).....(concat......(presci |
| 70a0 | 65 6e 74 2d 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f | ent-with-group.......(regexp-quo |
| 70c0 | 74 65 0a 20 20 20 20 20 20 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 63 | te........(char-to-string.(car.c |
| 70e0 | 68 61 72 73 29 29 29 0a 20 20 20 20 20 20 77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 28 | hars))).......with-group)......( |
| 7100 | 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 68 61 72 29 0a 20 | mapconcat.......(lambda.(char).. |
| 7120 | 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5e 25 63 5c 6e 5d 2a 3f 25 73 22 20 63 68 61 | .......(format."[^%c\n]*?%s".cha |
| 7140 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 77 69 74 | r.................(prescient-wit |
| 7160 | 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 | h-group..................(regexp |
| 7180 | 2d 71 75 6f 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d 74 | -quote...................(char-t |
| 71a0 | 6f 2d 73 74 72 69 6e 67 20 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o-string.char))................. |
| 71c0 | 20 77 69 74 68 2d 67 72 6f 75 70 29 29 29 0a 20 20 20 20 20 20 28 63 64 72 20 63 68 61 72 73 29 | .with-group))).......(cdr.chars) |
| 71e0 | 20 22 22 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 70 72 65 | .""))))..(cl-defun.prescient-pre |
| 7200 | 66 69 78 2d 72 65 67 65 78 70 20 28 71 75 65 72 79 20 26 6b 65 79 20 77 69 74 68 2d 67 72 6f 75 | fix-regexp.(query.&key.with-grou |
| 7220 | 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p............................... |
| 7240 | 20 20 20 20 20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 0a 20 20 | ...........&allow-other-keys)... |
| 7260 | 22 52 65 74 75 72 6e 20 61 20 72 65 67 65 78 70 20 66 6f 72 20 6d 61 74 63 68 69 6e 67 20 74 68 | "Return.a.regexp.for.matching.th |
| 7280 | 65 20 62 65 67 69 6e 6e 69 6e 67 73 20 6f 66 20 77 6f 72 64 73 20 69 6e 20 51 55 45 52 59 2e 0a | e.beginnings.of.words.in.QUERY.. |
| 72a0 | 54 68 69 73 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 60 70 61 72 74 69 61 6c 2d | This.is.similar.to.the.`partial- |
| 72c0 | 63 6f 6d 70 6c 65 74 69 6f 6e 27 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 0a 70 72 6f | completion'.completion.style.pro |
| 72e0 | 76 69 64 65 64 20 62 79 20 45 6d 61 63 73 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 6e 6f 6e 2d | vided.by.Emacs,.except.that.non- |
| 7300 | 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 74 61 6b 65 6e 0a 6c 69 74 65 72 61 | word.characters.are.taken.litera |
| 7320 | 6c 6c 79 20 28 69 2e 65 2e 2c 20 6f 6e 65 20 63 61 6e 27 74 20 67 6c 6f 62 20 75 73 69 6e 67 20 | lly.(i.e.,.one.can't.glob.using. |
| 7340 | 5c 22 2a 5c 22 29 2e 20 20 50 72 65 73 63 69 65 6e 74 20 61 6c 72 65 61 64 79 0a 63 6f 76 65 72 | \"*\")...Prescient.already.cover |
| 7360 | 73 20 74 68 61 74 20 63 61 73 65 20 62 79 20 73 65 70 61 72 61 74 69 6e 67 20 71 75 65 72 69 65 | s.that.case.by.separating.querie |
| 7380 | 73 20 77 69 74 68 20 61 20 73 70 61 63 65 2e 0a 0a 49 66 20 51 55 45 52 59 20 63 6f 6e 74 61 69 | s.with.a.space...If.QUERY.contai |
| 73a0 | 6e 73 20 6e 6f 6e 2d 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 2c 20 74 68 65 6e 20 74 68 69 | ns.non-word.characters,.then.thi |
| 73c0 | 73 20 6d 61 74 63 68 65 73 0a 67 72 65 65 64 69 6c 79 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 69 | s.matches.greedily..Otherwise,.i |
| 73e0 | 74 20 6d 61 74 63 68 65 73 20 6e 6f 6e 2d 67 72 65 65 64 69 6c 79 2e 20 46 6f 72 20 65 78 61 6d | t.matches.non-greedily..For.exam |
| 7400 | 70 6c 65 2c 0a 0a 2d 20 5c 22 73 74 72 2d 72 5c 22 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 73 20 | ple,..-.\"str-r\".fully.matches. |
| 7420 | 5c 22 73 74 72 69 6e 67 2d 72 65 70 65 61 74 5c 22 0a 0a 2d 20 5c 22 72 65 5c 22 20 64 6f 65 73 | \"string-repeat\"..-.\"re\".does |
| 7440 | 20 6e 6f 74 20 66 75 6c 6c 79 20 6d 61 74 63 68 20 74 68 65 20 77 6f 72 64 20 5c 22 72 65 70 65 | .not.fully.match.the.word.\"repe |
| 7460 | 72 74 6f 69 72 65 5c 22 2c 20 6f 6e 6c 79 20 74 68 65 0a 20 20 5c 22 72 65 5c 22 20 61 74 20 74 | rtoire\",.only.the...\"re\".at.t |
| 7480 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 77 6f 72 64 0a 0a 2d 20 5c 22 2e 67 | he.beginning.of.the.word..-.\".g |
| 74a0 | 5c 22 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 73 20 5c 22 2e 67 69 74 5c 22 0a 0a 54 68 69 73 20 | \".fully.matches.\".git\"..This. |
| 74c0 | 62 65 68 61 76 69 6f 72 20 69 73 20 6d 65 61 6e 74 20 74 6f 20 77 6f 72 6b 20 62 65 74 74 65 72 | behavior.is.meant.to.work.better |
| 74e0 | 20 77 69 74 68 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 6f | .with.the.function.`prescient-so |
| 7500 | 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 20 61 6e 64 20 74 6f 20 61 76 | rt-full-matches-first'.and.to.av |
| 7520 | 6f 69 64 20 69 6e 74 65 72 70 72 65 74 69 6e 67 20 61 6e 0a 69 6e 69 74 69 61 6c 69 73 6d 20 61 | oid.interpreting.an.initialism.a |
| 7540 | 73 20 61 20 70 72 65 66 69 78 2e 0a 0a 49 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f | s.a.prefix...If.WITH-GROUP.is.no |
| 7560 | 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 | n-nil,.enclose.the.parts.of.the. |
| 7580 | 72 65 67 65 78 70 20 74 68 61 74 0a 6d 61 74 63 68 20 74 68 65 20 51 55 45 52 59 20 63 68 61 72 | regexp.that.match.the.QUERY.char |
| 75a0 | 61 63 74 65 72 73 20 69 6e 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2c 20 73 6f 20 74 68 61 | acters.in.capture.groups,.so.tha |
| 75c0 | 74 20 74 68 65 20 6d 61 74 63 68 0a 64 61 74 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 | t.the.match.data.can.be.used.to. |
| 75e0 | 68 69 67 68 6c 69 67 68 74 20 74 68 65 20 6d 61 74 63 68 65 64 20 73 75 62 73 74 72 69 6e 67 73 | highlight.the.matched.substrings |
| 7600 | 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 28 77 68 65 6e 20 28 65 71 6c 20 30 20 28 73 74 72 69 6e | ."...(concat.(when.(eql.0.(strin |
| 7620 | 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5b 3a 77 6f 72 64 3a 5d 5d 22 20 71 75 65 72 79 29 29 0a 20 | g-match-p."[[:word:]]".query)).. |
| 7640 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 51 55 45 52 59 20 62 65 67 69 6e 73 20 77 69 | ...........;;.If.QUERY.begins.wi |
| 7660 | 74 68 20 61 20 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 | th.a.word.character,.make.sure.t |
| 7680 | 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 74 75 72 6e 65 64 20 72 65 67 65 78 | he.............;;.returned.regex |
| 76a0 | 70 20 64 6f 65 73 6e 27 74 20 73 74 61 72 74 20 6d 61 74 63 68 69 6e 67 20 69 6e 20 74 68 65 20 | p.doesn't.start.matching.in.the. |
| 76c0 | 6d 69 64 64 6c 65 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 20 77 6f 72 64 2e | middle.of.............;;.a.word. |
| 76e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 3c 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 | ............."\\<")...........(r |
| 7700 | 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 20 20 20 20 20 | eplace-regexp-in-string......... |
| 7720 | 20 20 20 22 5b 5b 3a 77 6f 72 64 3a 5d 5d 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 | ..."[[:word:]]+"............;;.C |
| 7740 | 68 6f 6f 73 65 20 77 68 65 74 68 65 72 20 74 6f 20 77 72 61 70 20 73 65 71 75 65 6e 63 65 73 20 | hoose.whether.to.wrap.sequences. |
| 7760 | 6f 66 20 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 28 | of.word.characters.............( |
| 7780 | 63 6f 6e 63 61 74 20 28 69 66 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 | concat.(if.with-group........... |
| 77a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5c 5c 28 5c 5c 26 5c 5c 5c 5c 29 5b 5b 3a 77 6f | ............."\\\\(\\&\\\\)[[:wo |
| 77c0 | 72 64 3a 5d 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c | rd:]]*"......................"\\ |
| 77e0 | 26 5b 5b 3a 77 6f 72 64 3a 5d 5d 2a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | &[[:word:]]*").................. |
| 7800 | 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5e 5b 3a 77 | ..(unless.(string-match-p."[^[:w |
| 7820 | 6f 72 64 3a 5d 5d 22 20 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ord:]]".query).................. |
| 7840 | 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 51 75 6f 74 65 20 6e 6f | ...."?"))............;;.Quote.no |
| 7860 | 6e 2d 77 6f 72 64 20 63 68 61 72 61 63 74 65 72 73 20 73 6f 20 74 68 61 74 20 74 68 65 79 27 72 | n-word.characters.so.that.they'r |
| 7880 | 65 20 74 61 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61 6c 6c 79 2e | e.taken............;;.literally. |
| 78a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 | ............(replace-regexp-in-s |
| 78c0 | 74 72 69 6e 67 20 22 5b 5e 5b 3a 77 6f 72 64 3a 5d 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tring."[^[:word:]]"............. |
| 78e0 | 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 23 27 72 65 67 65 78 | .........................#'regex |
| 7900 | 70 2d 71 75 6f 74 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 | p-quote......................... |
| 7920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 71 75 65 72 79 20 27 66 69 78 65 64 2d 63 61 73 65 20 27 | .............query.'fixed-case.' |
| 7940 | 6c 69 74 65 72 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 66 69 78 65 64 2d 63 61 73 65 29 | literal)............'fixed-case) |
| 7960 | 29 29 0a 0a 3b 3b 3b 3b 20 53 6f 72 74 69 6e 67 20 61 6e 64 20 66 69 6c 74 65 72 69 6e 67 0a 0a | ))..;;;;.Sorting.and.filtering.. |
| 7980 | 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 72 65 67 65 78 70 73 20 | (defun.prescient-filter-regexps. |
| 79a0 | 28 71 75 65 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 77 69 74 68 2d 67 72 6f 75 70 20 73 65 70 61 | (query.&optional.with-group.sepa |
| 79c0 | 72 61 74 65 64 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 51 55 45 52 59 20 74 6f 20 6c 69 73 74 20 | rated)..."Convert.QUERY.to.list. |
| 79e0 | 6f 66 20 72 65 67 65 78 70 73 2e 0a 45 61 63 68 20 72 65 67 65 78 70 20 6d 75 73 74 20 6d 61 74 | of.regexps..Each.regexp.must.mat |
| 7a00 | 63 68 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20 61 20 | ch.the.candidate.in.order.for.a. |
| 7a20 | 63 61 6e 64 69 64 61 74 65 20 74 6f 0a 6d 61 74 63 68 20 74 68 65 20 51 55 45 52 59 2e 0a 0a 49 | candidate.to.match.the.QUERY...I |
| 7a40 | 66 20 57 49 54 48 2d 47 52 4f 55 50 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 65 6e 63 6c 6f 73 65 | f.WITH-GROUP.is.non-nil,.enclose |
| 7a60 | 20 74 68 65 20 69 6e 69 74 69 61 6c 73 20 69 6e 20 69 6e 69 74 69 61 6c 69 73 6d 73 0a 77 69 74 | .the.initials.in.initialisms.wit |
| 7a80 | 68 20 63 61 70 74 75 72 65 20 67 72 6f 75 70 73 2e 20 49 66 20 69 74 20 69 73 20 74 68 65 20 73 | h.capture.groups..If.it.is.the.s |
| 7aa0 | 79 6d 62 6f 6c 20 60 61 6c 6c 27 2c 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 0a 65 6e 63 6c 6f 73 | ymbol.`all',.additionally.enclos |
| 7ac0 | 65 20 6c 69 74 65 72 61 6c 20 73 75 62 73 74 72 69 6e 67 73 20 77 69 74 68 20 63 61 70 74 75 72 | e.literal.substrings.with.captur |
| 7ae0 | 65 20 67 72 6f 75 70 73 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 69 73 20 66 75 6e 63 | e.groups...By.default,.this.func |
| 7b00 | 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f | tion.returns.a.list.containing.o |
| 7b20 | 6e 65 20 72 65 67 65 78 70 0a 66 6f 72 20 65 61 63 68 20 73 70 61 63 65 2d 73 65 70 61 72 61 74 | ne.regexp.for.each.space-separat |
| 7b40 | 65 64 20 73 75 62 2d 71 75 65 72 79 20 69 6e 20 51 55 45 52 59 2c 20 69 6e 20 77 68 69 63 68 20 | ed.sub-query.in.QUERY,.in.which. |
| 7b60 | 65 61 63 68 0a 73 75 62 2d 71 75 65 72 79 27 73 20 72 65 67 65 78 70 20 69 73 20 61 20 63 6f 6d | each.sub-query's.regexp.is.a.com |
| 7b80 | 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 67 65 78 70 73 20 70 72 6f 64 75 63 65 64 | bination.of.the.regexps.produced |
| 7ba0 | 20 62 79 0a 74 68 65 20 66 69 6c 74 65 72 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 74 68 61 74 20 | .by.the.filter.methods.for.that. |
| 7bc0 | 73 75 62 2d 71 75 65 72 79 2c 20 6a 6f 69 6e 65 64 20 62 79 20 5c 22 5c 5c 7c 5c 22 2e 20 49 66 | sub-query,.joined.by.\"\\|\"..If |
| 7be0 | 0a 53 45 50 41 52 41 54 45 44 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 69 73 20 66 75 6e 63 | .SEPARATED.is.non-nil,.this.func |
| 7c00 | 74 69 6f 6e 20 69 6e 73 74 65 61 64 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 61 | tion.instead.returns.a.list.of.a |
| 7c20 | 6c 6c 0a 72 65 67 65 78 70 73 20 70 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 66 69 6c 74 65 | ll.regexps.produced.by.the.filte |
| 7c40 | 72 20 6d 65 74 68 6f 64 73 2c 20 77 69 74 68 6f 75 74 20 63 6f 6d 62 69 6e 69 6e 67 20 74 68 65 | r.methods,.without.combining.the |
| 7c60 | 6d 0a 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 20 72 65 67 65 78 70 20 66 6f 72 20 65 61 63 68 20 | m.into.a.single.regexp.for.each. |
| 7c80 | 73 75 62 2d 71 75 65 72 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 73 74 2d 6f 66 2d 6c 69 73 | sub-query."...(let.((list-of-lis |
| 7ca0 | 74 73 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 77 | ts..........(cl-loop...........w |
| 7cc0 | 69 74 68 20 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 20 20 20 20 3d 20 28 | ith.filter-methods...........=.( |
| 7ce0 | 70 63 61 73 65 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 65 73 63 69 65 6e 74 2d 66 | pcase.(if.(functionp.prescient-f |
| 7d00 | 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ilter-method)................... |
| 7d20 | 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d | .....(funcall.prescient-filter-m |
| 7d40 | 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73 | ethod)......................pres |
| 7d60 | 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | cient-filter-method)............ |
| 7d80 | 20 20 20 3b 3b 20 57 65 20 73 75 70 70 6f 72 74 20 60 6c 69 74 65 72 61 6c 2b 69 6e 69 74 69 61 | ...;;.We.support.`literal+initia |
| 7da0 | 6c 69 73 6d 27 20 66 6f 72 20 62 61 63 6b 77 61 72 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | lism'.for.backwards............. |
| 7dc0 | 20 20 3b 3b 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..;;.compatibility.............. |
| 7de0 | 20 20 28 60 6c 69 74 65 72 61 6c 2b 69 6e 69 74 69 61 6c 69 73 6d 20 27 28 6c 69 74 65 72 61 6c | ..(`literal+initialism.'(literal |
| 7e00 | 20 69 6e 69 74 69 61 6c 69 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e | .initialism))...............((an |
| 7e20 | 64 20 28 70 72 65 64 20 6c 69 73 74 70 29 20 78 29 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 | d.(pred.listp).x).x)............ |
| 7e40 | 20 20 20 28 78 20 28 6c 69 73 74 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 | ...(x.(list.x)))...........for.s |
| 7e60 | 75 62 71 75 65 72 79 20 69 6e 20 28 70 72 65 73 63 69 65 6e 74 2d 73 70 6c 69 74 2d 71 75 65 72 | ubquery.in.(prescient-split-quer |
| 7e80 | 79 20 71 75 65 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 75 62 71 75 65 72 79 2d | y.query)...........for.subquery- |
| 7ea0 | 6e 75 6d 62 65 72 20 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a | number.from.0...........collect. |
| 7ec0 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 74 65 6d 70 2d 72 65 67 | ..........(cl-loop.with.temp-reg |
| 7ee0 | 65 78 70 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | exp.=.nil....................for |
| 7f00 | 20 6d 65 74 68 6f 64 20 69 6e 20 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 | .method.in.filter-methods....... |
| 7f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 66 75 6e 63 20 3d 20 28 61 6c 69 73 74 2d 67 | .............for.func.=.(alist-g |
| 7f40 | 65 74 20 6d 65 74 68 6f 64 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 61 6c 69 73 74 | et.method.prescient-filter-alist |
| 7f60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20 66 75 | )....................if.(null.fu |
| 7f80 | 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 6d 65 73 73 61 | nc)....................do.(messa |
| 7fa0 | 67 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 22 4e 6f 20 66 75 | ge........................"No.fu |
| 7fc0 | 6e 63 74 69 6f 6e 20 69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 61 6c 69 73 | nction.in.`prescient-filter-alis |
| 7fe0 | 74 27 20 66 6f 72 20 6d 65 74 68 6f 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t'.for.method:.%s".............. |
| 8000 | 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........method)............... |
| 8020 | 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | .....else....................;;. |
| 8040 | 43 61 6e 27 74 20 75 73 65 20 22 66 6f 72 20 3d 22 20 68 65 72 65 2e 0a 20 20 20 20 20 20 20 20 | Can't.use."for.=".here.......... |
| 8060 | 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 74 65 6d 70 2d 72 65 67 65 78 70 0a | ...........do.(setq.temp-regexp. |
| 8080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e | ............................(fun |
| 80a0 | 63 61 6c 6c 20 66 75 6e 63 20 73 75 62 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | call.func.subquery.............. |
| 80c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 77 69 74 68 2d 67 72 | ........................:with-gr |
| 80e0 | 6f 75 70 20 77 69 74 68 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | oup.with-group.................. |
| 8100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 75 62 71 75 65 72 79 2d 6e 75 | ....................:subquery-nu |
| 8120 | 6d 62 65 72 20 73 75 62 71 75 65 72 79 2d 6e 75 6d 62 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 | mber.subquery-number)).......... |
| 8140 | 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 69 66 20 74 65 6d 70 2d 72 65 67 65 78 70 20 63 6f 6c | ..........and.if.temp-regexp.col |
| 8160 | 6c 65 63 74 20 74 65 6d 70 2d 72 65 67 65 78 70 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 | lect.temp-regexp.end............ |
| 8180 | 20 20 20 20 20 20 20 20 65 6e 64 29 29 29 29 0a 20 20 20 20 28 69 66 20 73 65 70 61 72 61 74 65 | ........end)))).....(if.separate |
| 81a0 | 64 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 20 6c 69 73 74 2d 6f | d.........(apply.#'append.list-o |
| 81c0 | 66 2d 6c 69 73 74 73 29 0a 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 | f-lists).......(mapcar.(lambda.( |
| 81e0 | 6c 69 73 74 29 20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 6c 69 73 74 20 22 5c 5c 7c 22 29 29 0a | list).(string-join.list."\\|")). |
| 8200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 2d 6f 66 2d 6c 69 73 74 73 29 29 29 29 0a | ..............list-of-lists)))). |
| 8220 | 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 | .;;;###autoload.(defun.prescient |
| 8240 | 2d 66 69 6c 74 65 72 20 28 71 75 65 72 79 20 63 61 6e 64 69 64 61 74 65 73 20 26 6f 70 74 69 6f | -filter.(query.candidates.&optio |
| 8260 | 6e 61 6c 20 70 72 65 64 29 0a 20 20 22 55 73 65 20 51 55 45 52 59 20 74 6f 20 66 69 6c 74 65 72 | nal.pred)..."Use.QUERY.to.filter |
| 8280 | 20 6c 69 73 74 20 6f 66 20 43 41 4e 44 49 44 41 54 45 53 2e 0a 0a 43 41 4e 44 49 44 41 54 45 53 | .list.of.CANDIDATES...CANDIDATES |
| 82a0 | 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 74 61 62 6c 65 2c 20 73 75 63 68 20 61 73 20 | .is.a.completion.table,.such.as. |
| 82c0 | 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 | a.list.of.strings.or.a.function. |
| 82e0 | 61 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 49 6e 66 6f 20 6e 6f 64 65 0a 60 28 65 6c | as.defined.in.the.Info.node.`(el |
| 8300 | 69 73 70 29 50 72 6f 67 72 61 6d 6d 65 64 20 43 6f 6d 70 6c 65 74 69 6f 6e 27 2e 0a 0a 51 55 45 | isp)Programmed.Completion'...QUE |
| 8320 | 52 59 20 69 73 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 73 75 | RY.is.a.string.containing.the.su |
| 8340 | 62 2d 71 75 65 72 69 65 73 2c 20 77 68 69 63 68 20 61 72 65 20 67 6f 74 74 65 6e 0a 75 73 69 6e | b-queries,.which.are.gotten.usin |
| 8360 | 67 20 60 70 72 65 73 63 69 65 6e 74 2d 73 70 6c 69 74 2d 71 75 65 72 79 27 2e 20 45 61 63 68 20 | g.`prescient-split-query'..Each. |
| 8380 | 73 75 62 2d 71 75 65 72 79 20 69 73 20 75 73 65 64 20 74 6f 20 70 72 6f 64 75 63 65 0a 61 20 72 | sub-query.is.used.to.produce.a.r |
| 83a0 | 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 | egular.expression.according.to.t |
| 83c0 | 68 65 20 66 69 6c 74 65 72 20 6d 65 74 68 6f 64 73 20 6c 69 73 74 65 64 20 69 6e 0a 60 70 72 65 | he.filter.methods.listed.in.`pre |
| 83e0 | 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 2e 20 41 20 63 61 6e 64 69 64 61 | scient-filter-method'..A.candida |
| 8400 | 74 65 20 6d 75 73 74 20 6d 61 74 63 68 20 65 76 65 72 79 20 72 65 67 75 6c 61 72 0a 65 78 70 72 | te.must.match.every.regular.expr |
| 8420 | 65 73 73 69 6f 6e 20 6d 61 64 65 20 66 72 6f 6d 20 74 68 65 20 73 75 62 2d 71 75 65 72 69 65 73 | ession.made.from.the.sub-queries |
| 8440 | 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6c 69 73 74 0a 6f 66 20 72 | .to.be.included.in.the.list.of.r |
| 8460 | 65 74 75 72 6e 65 64 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 0a 50 52 45 44 20 69 73 20 74 68 65 | eturned.candidates...PRED.is.the |
| 8480 | 20 70 72 65 64 69 63 61 74 65 20 75 73 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 6d 70 6c 65 74 | .predicate.used.with.the.complet |
| 84a0 | 69 6f 6e 20 74 61 62 6c 65 2c 20 61 73 0a 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 61 | ion.table,.as.described.in.the.a |
| 84c0 | 62 6f 76 65 20 49 6e 66 6f 20 6e 6f 64 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 64 | bove.Info.node...This.function.d |
| 84e0 | 6f 65 73 20 6e 6f 74 20 6d 6f 64 69 66 79 20 43 41 4e 44 49 44 41 54 45 53 3b 20 69 74 20 61 6c | oes.not.modify.CANDIDATES;.it.al |
| 8500 | 77 61 79 73 20 6d 61 6b 65 20 61 20 6e 65 77 0a 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69 73 74 | ways.make.a.new.copy.of.the.list |
| 8520 | 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 60 28 2c 70 72 65 66 | ."...(pcase-let*.......((`(,pref |
| 8540 | 69 78 20 2e 20 2c 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e | ix...,pattern).........(prescien |
| 8560 | 74 2d 2d 70 72 65 66 69 78 2d 61 6e 64 2d 70 61 74 74 65 72 6e 20 71 75 65 72 79 20 63 61 6e 64 | t--prefix-and-pattern.query.cand |
| 8580 | 69 64 61 74 65 73 20 70 72 65 64 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6f 6e | idates.pred))........(completion |
| 85a0 | 2d 72 65 67 65 78 70 2d 6c 69 73 74 20 28 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 72 | -regexp-list.(prescient-filter-r |
| 85c0 | 65 67 65 78 70 73 20 70 61 74 74 65 72 6e 29 29 0a 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 | egexps.pattern))........(complet |
| 85e0 | 69 6f 6e 2d 69 67 6e 6f 72 65 2d 63 61 73 65 20 28 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 | ion-ignore-case.(prescient-ignor |
| 8600 | 65 2d 63 61 73 65 2d 70 20 70 61 74 74 65 72 6e 29 29 29 0a 0a 20 20 20 20 3b 3b 20 41 64 64 20 | e-case-p.pattern)))......;;.Add. |
| 8620 | 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d | information.for.`prescient-sort- |
| 8640 | 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 2e 20 57 65 0a 20 20 20 20 3b 3b 20 77 | full-matches-first'..We.....;;.w |
| 8660 | 61 6e 74 20 74 6f 20 61 64 64 20 74 68 65 73 65 20 70 72 6f 70 65 72 74 69 65 73 20 65 76 65 6e | ant.to.add.these.properties.even |
| 8680 | 20 69 66 20 77 65 20 63 61 6e 27 74 20 6d 6f 64 69 66 79 20 74 61 62 6c 65 0a 20 20 20 20 3b 3b | .if.we.can't.modify.table.....;; |
| 86a0 | 20 6d 65 74 61 64 61 74 61 2c 20 73 69 6e 63 65 20 61 20 75 73 65 72 20 6d 69 67 68 74 20 62 65 | .metadata,.since.a.user.might.be |
| 86c0 | 20 61 62 6c 65 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 69 72 0a 20 20 20 20 3b 3b 20 | .able.to.configure.their.....;;. |
| 86e0 | 63 6f 6d 70 6c 65 74 69 6f 6e 20 55 49 20 77 69 74 68 20 61 20 63 75 73 74 6f 6d 20 73 6f 72 74 | completion.UI.with.a.custom.sort |
| 8700 | 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 6f 75 6c 64 20 75 73 65 0a 20 20 20 20 | ing.function.that.would.use..... |
| 8720 | 3b 3b 20 74 68 69 73 20 69 6e 66 6f 2e 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 54 68 65 72 | ;;.this.info......;;.....;;.Ther |
| 8740 | 65 20 69 73 20 61 20 71 75 65 73 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 6f 20 68 61 6e 64 6c 65 | e.is.a.question.of.how.to.handle |
| 8760 | 20 70 72 65 66 69 78 65 73 20 66 6f 72 20 69 64 65 6e 74 69 66 79 69 6e 67 0a 20 20 20 20 3b 3b | .prefixes.for.identifying.....;; |
| 8780 | 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64 20 63 61 6e 64 69 64 61 74 65 73 2e 20 50 72 65 66 69 | .fully.matched.candidates..Prefi |
| 87a0 | 78 65 73 20 61 72 65 20 75 73 65 64 20 69 6e 3a 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 2d | xes.are.used.in:.....;;.....;;.- |
| 87c0 | 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 27 2c 20 61 73 20 | .`completing-read-multiple',.as. |
| 87e0 | 74 68 65 20 63 61 6e 64 69 64 61 74 65 73 20 74 68 61 74 20 68 61 76 65 0a 20 20 20 20 3b 3b 20 | the.candidates.that.have.....;;. |
| 8800 | 20 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 73 65 6c 65 63 74 65 64 0a 20 20 20 20 3b 3b 0a 20 | ..already.been.selected.....;;.. |
| 8820 | 20 20 20 3b 3b 20 2d 20 66 69 6c 65 2d 6e 61 6d 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 61 73 | ...;;.-.file-name.completion,.as |
| 8840 | 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 70 72 65 63 65 65 64 69 6e 67 20 74 68 65 20 66 69 | .the.directory.preceeding.the.fi |
| 8860 | 6c 65 0a 20 20 20 20 3b 3b 20 20 20 6e 61 6d 65 2c 20 74 68 6f 75 67 68 20 74 68 69 73 20 73 65 | le.....;;...name,.though.this.se |
| 8880 | 65 6d 73 20 74 6f 20 6f 6e 6c 79 20 68 61 70 70 65 6e 20 77 68 65 6e 20 74 68 65 72 65 20 69 73 | ems.to.only.happen.when.there.is |
| 88a0 | 20 6e 6f 0a 20 20 20 20 3b 3b 20 20 20 6d 61 74 63 68 20 69 6e 20 73 6f 6d 65 20 55 49 73 20 28 | .no.....;;...match.in.some.UIs.( |
| 88c0 | 49 63 6f 6d 70 6c 65 74 65 2c 20 62 75 74 20 6e 6f 74 20 53 65 6c 65 63 74 72 75 6d 29 0a 20 20 | Icomplete,.but.not.Selectrum)... |
| 88e0 | 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 49 74 20 6d 69 67 68 74 20 74 75 72 6e 20 6f 75 74 20 74 68 | ..;;.....;;.It.might.turn.out.th |
| 8900 | 61 74 20 66 6f 72 20 66 69 6c 65 20 6e 61 6d 65 73 20 77 65 20 6e 65 65 64 20 74 6f 20 61 64 6a | at.for.file.names.we.need.to.adj |
| 8920 | 75 73 74 20 74 68 65 0a 20 20 20 20 3b 3b 20 72 65 67 65 78 70 73 20 74 6f 20 62 65 20 22 5c 28 | ust.the.....;;.regexps.to.be."\( |
| 8940 | 3f 3a 51 55 4f 54 45 44 2d 50 52 45 46 49 58 5c 29 4d 45 54 48 4f 44 2d 52 45 47 45 58 50 22 2c | ?:QUOTED-PREFIX\)METHOD-REGEXP", |
| 8960 | 20 62 75 74 20 74 68 69 73 0a 20 20 20 20 3b 3b 20 69 73 6e 27 74 20 65 76 69 64 65 6e 74 20 79 | .but.this.....;;.isn't.evident.y |
| 8980 | 65 74 2e 20 57 65 20 6a 75 73 74 20 64 6f 20 74 68 65 20 62 65 6c 6f 77 20 74 6f 20 62 65 20 70 | et..We.just.do.the.below.to.be.p |
| 89a0 | 72 6f 61 63 74 69 76 65 2e 0a 20 20 20 20 28 63 6c 2d 66 6c 65 74 20 28 28 6d 61 79 62 65 2d 61 | roactive......(cl-flet.((maybe-a |
| 89c0 | 64 64 2d 70 72 65 66 69 78 20 28 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | dd-prefix.(regexps)............. |
| 89e0 | 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d | ....(if.(and.(not.(string-empty- |
| 8a00 | 70 20 70 72 65 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.prefix))...................... |
| 8a20 | 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 66 69 6c 65 2d 6e | ....minibuffer-completing-file-n |
| 8a40 | 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f | ame).....................(cl-loo |
| 8a60 | 70 20 66 6f 72 20 72 65 67 65 78 70 20 69 6e 20 72 65 67 65 78 70 73 0a 20 20 20 20 20 20 20 20 | p.for.regexp.in.regexps......... |
| 8a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f | .....................collect.(co |
| 8aa0 | 6e 63 61 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 | ncat............................ |
| 8ac0 | 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........."\\(?:".............. |
| 8ae0 | 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 72 65 67 65 78 70 | .........................(regexp |
| 8b00 | 2d 71 75 6f 74 65 20 70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -quote.prefix).................. |
| 8b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 29 22 0a 20 20 20 20 20 | ....................."\\)"...... |
| 8b40 | 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 | ................................ |
| 8b60 | 20 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 65 | .regexp))...................rege |
| 8b80 | 78 70 73 29 29 29 0a 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 61 64 64 2d 73 6f 72 | xps))).......(prescient--add-sor |
| 8ba0 | 74 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 70 | t-info........(all-completions.p |
| 8bc0 | 72 65 66 69 78 20 63 61 6e 64 69 64 61 74 65 73 20 70 72 65 64 29 0a 20 20 20 20 20 20 20 3a 70 | refix.candidates.pred)........:p |
| 8be0 | 72 65 73 63 69 65 6e 74 2d 6d 61 74 63 68 2d 72 65 67 65 78 70 73 20 63 6f 6d 70 6c 65 74 69 6f | rescient-match-regexps.completio |
| 8c00 | 6e 2d 72 65 67 65 78 70 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 3a 70 72 65 73 63 69 65 6e 74 2d | n-regexp-list........:prescient- |
| 8c20 | 61 6c 6c 2d 72 65 67 65 78 70 73 20 28 6d 61 79 62 65 2d 61 64 64 2d 70 72 65 66 69 78 0a 20 20 | all-regexps.(maybe-add-prefix... |
| 8c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | .............................(pr |
| 8c60 | 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 72 65 67 65 78 70 73 20 70 61 74 74 65 72 6e 20 6e | escient-filter-regexps.pattern.n |
| 8c80 | 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 3a 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d | il.t))........:prescient-ignore- |
| 8ca0 | 63 61 73 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 69 67 6e 6f 72 65 2d 63 61 73 65 0a 20 20 20 20 | case.completion-ignore-case..... |
| 8cc0 | 20 20 20 3a 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79 20 71 75 65 72 79 29 29 29 29 0a 0a 28 | ...:prescient-query.query))))..( |
| 8ce0 | 64 65 66 6d 61 63 72 6f 20 70 72 65 73 63 69 65 6e 74 2d 2d 73 6f 72 74 2d 63 6f 6d 70 61 72 65 | defmacro.prescient--sort-compare |
| 8d00 | 20 28 29 0a 20 20 22 48 61 63 6b 20 75 73 65 64 20 74 6f 20 63 61 75 73 65 20 74 68 65 20 62 79 | .()..."Hack.used.to.cause.the.by |
| 8d20 | 74 65 2d 63 6f 6d 70 69 6c 65 72 20 74 6f 20 70 72 6f 64 75 63 65 20 66 61 73 74 65 72 20 63 6f | te-compiler.to.produce.faster.co |
| 8d40 | 64 65 2e 0a 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 6d 61 63 72 6f 20 6d 75 73 74 20 62 65 | de..Note.that.this.macro.must.be |
| 8d60 | 20 75 73 65 64 20 77 69 74 68 20 73 65 76 65 72 61 6c 20 76 61 72 69 61 62 6c 65 73 20 69 6e 0a | .used.with.several.variables.in. |
| 8d80 | 6c 65 78 69 63 61 6c 20 73 63 6f 70 65 2e 22 0a 20 20 60 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 | lexical.scope."...`(progn......( |
| 8da0 | 6c 65 74 2a 20 28 28 70 31 20 28 67 65 74 68 61 73 68 20 63 31 20 68 69 73 74 20 6c 65 6e 29 29 | let*.((p1.(gethash.c1.hist.len)) |
| 8dc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 32 20 28 67 65 74 68 61 73 68 20 63 32 20 68 69 73 | .............(p2.(gethash.c2.his |
| 8de0 | 74 20 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 28 6f 72 20 28 3c 20 70 31 20 70 32 29 0a 20 20 | t.len)))........(or.(<.p1.p2)... |
| 8e00 | 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 70 31 20 70 32 29 0a 20 20 20 20 20 20 20 | .........(and.(eq.p1.p2)........ |
| 8e20 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 66 31 20 28 67 65 74 68 61 73 68 20 63 31 20 | .........(let*.((f1.(gethash.c1. |
| 8e40 | 66 72 65 71 20 30 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 | freq.0))........................ |
| 8e60 | 28 66 32 20 28 67 65 74 68 61 73 68 20 63 32 20 66 72 65 71 20 30 29 29 29 0a 20 20 20 20 20 20 | (f2.(gethash.c2.freq.0)))....... |
| 8e80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 3e 20 66 31 20 66 32 29 0a 20 20 20 20 20 20 | ............(or.(>.f1.f2)....... |
| 8ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 66 31 20 66 32 29 0a | ................(and.(eq.f1.f2). |
| 8ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 74 | ...........................(if.t |
| 8ee0 | 69 65 62 72 65 61 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | iebreaker....................... |
| 8f00 | 20 20 20 20 20 20 20 20 20 28 3c 20 28 66 75 6e 63 61 6c 6c 20 74 69 65 62 72 65 61 6b 65 72 20 | .........(<.(funcall.tiebreaker. |
| 8f20 | 63 31 20 63 32 29 20 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 | c1.c2).0)....................... |
| 8f40 | 20 20 20 20 20 20 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 | .......(and..................... |
| 8f60 | 20 20 20 20 20 20 20 20 20 20 6c 65 6e 2d 65 6e 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........len-enable............ |
| 8f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 6c 65 6e 67 74 68 20 63 31 | ...................(<.(length.c1 |
| 8fa0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 8fc0 | 20 20 20 28 6c 65 6e 67 74 68 20 63 32 29 29 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 | ...(length.c2))))))))))))..(defu |
| 8fe0 | 6e 20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 63 6f 6d 70 61 72 65 20 28 63 31 20 63 32 29 | n.prescient-sort-compare.(c1.c2) |
| 9000 | 0a 20 20 22 43 6f 6d 70 61 72 65 20 63 61 6e 64 69 64 61 74 65 73 20 43 31 20 61 6e 64 20 43 32 | ..."Compare.candidates.C1.and.C2 |
| 9020 | 20 62 79 20 75 73 61 67 65 20 61 6e 64 20 6c 65 6e 67 74 68 2e 0a 0a 49 66 20 60 70 72 65 73 63 | .by.usage.and.length...If.`presc |
| 9040 | 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 27 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 74 | ient-persist-mode'.is.enabled,.t |
| 9060 | 68 65 6e 20 65 6e 73 75 72 65 20 74 68 61 74 20 75 73 61 67 65 0a 64 61 74 61 20 68 61 73 20 62 | hen.ensure.that.usage.data.has.b |
| 9080 | 65 65 6e 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 60 70 72 65 73 63 69 65 6e 74 2d 73 61 76 65 2d | een.loaded.from.`prescient-save- |
| 90a0 | 66 69 6c 65 27 20 62 65 66 6f 72 65 20 63 6f 6d 70 61 72 69 6e 67 2e 0a 4c 6f 61 64 69 6e 67 20 | file'.before.comparing..Loading. |
| 90c0 | 77 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 61 74 74 65 6d 70 74 65 64 20 6f 6e 63 65 2c 20 6e 6f 74 | will.only.be.attempted.once,.not |
| 90e0 | 20 62 65 66 6f 72 65 20 65 76 65 72 79 0a 63 6f 6d 70 61 72 69 73 6f 6e 2e 0a 0a 49 66 20 60 70 | .before.every.comparison...If.`p |
| 9100 | 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 27 20 69 73 20 | rescient-sort-length-enable'.is. |
| 9120 | 6e 69 6c 2c 20 74 68 65 6e 20 64 6f 20 6e 6f 74 20 73 6f 72 74 20 62 79 0a 6c 65 6e 67 74 68 2e | nil,.then.do.not.sort.by.length. |
| 9140 | 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 | "...(when.(and.prescient-persist |
| 9160 | 2d 6d 6f 64 65 20 28 6e 6f 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d 6c 6f 61 64 | -mode.(not.prescient--cache-load |
| 9180 | 65 64 29 29 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 29 29 0a 20 20 28 6c | ed)).....(prescient--load))...(l |
| 91a0 | 65 74 20 28 28 68 69 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 0a 20 20 | et.((hist.prescient--history)... |
| 91c0 | 20 20 20 20 20 20 28 6c 65 6e 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e | ......(len.prescient-history-len |
| 91e0 | 67 74 68 29 0a 20 20 20 20 20 20 20 20 28 66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 | gth).........(freq.prescient--fr |
| 9200 | 65 71 75 65 6e 63 79 29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 2d 65 6e 61 62 6c 65 20 70 72 65 | equency).........(len-enable.pre |
| 9220 | 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 29 0a 20 20 20 20 20 | scient-sort-length-enable)...... |
| 9240 | 20 20 20 28 74 69 65 62 72 65 61 6b 65 72 20 70 72 65 73 63 69 65 6e 74 2d 74 69 65 62 72 65 61 | ...(tiebreaker.prescient-tiebrea |
| 9260 | 6b 65 72 29 29 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 73 6f 72 74 2d 63 6f 6d 70 61 | ker)).....(prescient--sort-compa |
| 9280 | 72 65 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79 20 6e | re)))..(defvar.prescient-query.n |
| 92a0 | 69 6c 0a 20 20 22 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 71 75 65 72 79 20 66 72 6f 6d 20 74 68 | il..."The.original.query.from.th |
| 92c0 | 65 20 75 73 65 72 2c 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 59 6f 75 20 63 61 6e 20 75 73 | e.user,.if.available..You.can.us |
| 92e0 | 65 20 74 68 69 73 20 69 6e 20 79 6f 75 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 | e.this.in.your.implementation.of |
| 9300 | 20 60 70 72 65 73 63 69 65 6e 74 2d 74 69 65 62 72 65 61 6b 65 72 27 0a 74 6f 20 73 6f 72 74 20 | .`prescient-tiebreaker'.to.sort. |
| 9320 | 63 61 6e 64 69 64 61 74 65 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 75 73 65 72 | candidates.depending.on.the.user |
| 9340 | 27 73 20 71 75 65 72 79 2e 20 54 68 69 73 20 6d 69 67 68 74 20 62 65 0a 6e 69 6c 20 69 66 20 60 | 's.query..This.might.be.nil.if.` |
| 9360 | 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 63 6f 6d 70 61 72 65 27 20 69 73 20 69 6e 76 6f 6b | prescient-sort-compare'.is.invok |
| 9380 | 65 64 20 64 69 72 65 63 74 6c 79 2c 20 6f 72 20 69 66 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 6f | ed.directly,.or.if.`prescient-so |
| 93a0 | 72 74 27 20 69 73 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 6f 75 74 20 60 70 72 65 73 63 69 65 6e | rt'.is.invoked.without.`prescien |
| 93c0 | 74 2d 66 69 6c 74 65 72 27 20 68 61 76 69 6e 67 0a 62 65 65 6e 20 72 75 6e 20 66 69 72 73 74 2c | t-filter'.having.been.run.first, |
| 93e0 | 20 73 6f 20 79 6f 75 20 73 68 6f 75 6c 64 20 68 61 6e 64 6c 65 20 74 68 61 74 20 63 61 73 65 20 | .so.you.should.handle.that.case. |
| 9400 | 74 6f 6f 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 20 28 63 | too.")..(defun.prescient-sort.(c |
| 9420 | 61 6e 64 69 64 61 74 65 73 29 0a 20 20 22 53 6f 72 74 20 43 41 4e 44 49 44 41 54 45 53 20 75 73 | andidates)..."Sort.CANDIDATES.us |
| 9440 | 69 6e 67 20 66 72 65 71 75 65 6e 63 79 20 64 61 74 61 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 73 | ing.frequency.data..Return.the.s |
| 9460 | 6f 72 74 65 64 20 6c 69 73 74 2e 20 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 69 73 20 6d 6f 64 69 | orted.list..The.original.is.modi |
| 9480 | 66 69 65 64 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 74 68 | fied.destructively...See.also.th |
| 94a0 | 65 20 66 75 6e 63 74 69 6f 6e 73 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c | e.functions.`prescient-sort-full |
| 94c0 | 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 20 61 6e 64 0a 60 70 72 65 73 63 69 65 6e 74 2d 63 | -matches-first'.and.`prescient-c |
| 94e0 | 6f 6d 70 6c 65 74 69 6f 6e 2d 73 6f 72 74 27 2e 20 42 6f 74 68 20 61 72 65 20 6d 65 61 6e 74 20 | ompletion-sort'..Both.are.meant. |
| 9500 | 74 6f 20 62 65 20 75 73 65 64 20 61 66 74 65 72 0a 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 | to.be.used.after.`prescient-filt |
| 9520 | 65 72 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 65 73 63 69 65 6e 74 2d 70 65 72 | er'."...(when.(and.prescient-per |
| 9540 | 73 69 73 74 2d 6d 6f 64 65 20 28 6e 6f 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 61 63 68 65 2d | sist-mode.(not.prescient--cache- |
| 9560 | 6c 6f 61 64 65 64 29 29 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 6c 6f 61 64 29 29 0a | loaded)).....(prescient--load)). |
| 9580 | 20 20 3b 3b 20 50 65 72 66 6f 72 6d 61 6e 63 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 72 65 | ..;;.Performance.optimization.re |
| 95a0 | 76 65 61 6c 65 64 20 74 68 61 74 20 72 65 61 64 69 6e 67 20 64 79 6e 61 6d 69 63 20 76 61 72 69 | vealed.that.reading.dynamic.vari |
| 95c0 | 61 62 6c 65 73 0a 20 20 3b 3b 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 20 77 61 73 20 61 20 | ables...;;.multiple.times.was.a. |
| 95e0 | 62 6f 74 74 6c 65 6e 65 63 6b 20 28 79 65 73 2c 20 72 65 61 6c 6c 79 29 2c 20 61 6e 64 20 62 79 | bottleneck.(yes,.really),.and.by |
| 9600 | 20 72 65 61 64 69 6e 67 0a 20 20 3b 3b 20 74 68 65 6d 20 69 6e 74 6f 20 6c 65 78 69 63 61 6c 20 | .reading...;;.them.into.lexical. |
| 9620 | 76 61 72 69 61 62 6c 65 73 20 77 68 69 63 68 20 61 72 65 20 6d 75 63 68 20 66 61 73 74 65 72 20 | variables.which.are.much.faster. |
| 9640 | 74 6f 20 61 63 63 65 73 73 2c 20 77 65 0a 20 20 3b 3b 20 69 6d 70 72 6f 76 65 20 74 68 65 20 73 | to.access,.we...;;.improve.the.s |
| 9660 | 70 65 65 64 20 6f 66 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 27 20 6f 6e 20 6c 61 72 67 | peed.of.`prescient-sort'.on.larg |
| 9680 | 65 20 63 61 6e 64 69 64 61 74 65 20 6c 69 73 74 73 20 62 79 0a 20 20 3b 3b 20 32 78 2e 0a 20 20 | e.candidate.lists.by...;;.2x.... |
| 96a0 | 28 6c 65 74 20 28 28 68 69 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 0a | (let.((hist.prescient--history). |
| 96c0 | 20 20 20 20 20 20 20 20 28 6c 65 6e 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c | ........(len.prescient-history-l |
| 96e0 | 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 28 66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 2d | ength).........(freq.prescient-- |
| 9700 | 66 72 65 71 75 65 6e 63 79 29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 2d 65 6e 61 62 6c 65 20 70 | frequency).........(len-enable.p |
| 9720 | 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 6c 65 6e 67 74 68 2d 65 6e 61 62 6c 65 29 0a 20 20 20 | rescient-sort-length-enable).... |
| 9740 | 20 20 20 20 20 28 74 69 65 62 72 65 61 6b 65 72 20 70 72 65 73 63 69 65 6e 74 2d 74 69 65 62 72 | .....(tiebreaker.prescient-tiebr |
| 9760 | 65 61 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 71 75 65 72 79 20 | eaker).........(prescient-query. |
| 9780 | 28 70 6c 69 73 74 2d 67 65 74 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 67 65 74 2d 73 6f 72 74 2d | (plist-get.(prescient--get-sort- |
| 97a0 | 69 6e 66 6f 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.candidates)................ |
| 97c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 65 73 63 69 65 6e 74 2d | .....................:prescient- |
| 97e0 | 71 75 65 72 79 29 29 29 0a 20 20 20 20 28 73 6f 72 74 0a 20 20 20 20 20 63 61 6e 64 69 64 61 74 | query))).....(sort......candidat |
| 9800 | 65 73 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 31 20 63 32 29 0a 20 20 20 20 20 20 20 28 | es......(lambda.(c1.c2)........( |
| 9820 | 70 72 65 73 63 69 65 6e 74 2d 2d 73 6f 72 74 2d 63 6f 6d 70 61 72 65 29 29 29 29 29 0a 0a 28 64 | prescient--sort-compare)))))..(d |
| 9840 | 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 | efun.prescient-sort-full-matches |
| 9860 | 2d 66 69 72 73 74 20 28 63 61 6e 64 69 64 61 74 65 73 20 72 65 67 65 78 70 73 20 69 67 6e 6f 72 | -first.(candidates.regexps.ignor |
| 9880 | 65 2d 63 61 73 65 29 0a 20 20 22 53 6f 72 74 20 66 75 6c 6c 79 20 6d 61 74 63 68 65 64 20 73 74 | e-case)..."Sort.fully.matched.st |
| 98a0 | 72 69 6e 67 73 20 69 6e 20 43 41 4e 44 49 44 41 54 45 53 20 62 65 66 6f 72 65 20 6f 74 68 65 72 | rings.in.CANDIDATES.before.other |
| 98c0 | 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 0a 52 45 47 45 58 50 53 20 61 72 65 20 74 68 65 20 72 65 | .candidates...REGEXPS.are.the.re |
| 98e0 | 67 65 78 70 73 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 20 75 73 65 64 20 74 6f 20 66 69 6c 74 65 | gexps.prescient.el.used.to.filte |
| 9900 | 72 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 49 47 4e 4f 52 45 2d 43 41 53 45 20 69 73 | r.the.candidates..IGNORE-CASE.is |
| 9920 | 20 77 68 65 74 68 65 72 20 63 61 73 65 20 77 61 73 20 69 67 6e 6f 72 65 64 20 77 68 65 6e 20 66 | .whether.case.was.ignored.when.f |
| 9940 | 69 6c 74 65 72 69 6e 67 2e 0a 0a 41 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6d | iltering...As.this.function.is.m |
| 9960 | 65 61 6e 74 20 74 6f 20 62 65 20 75 73 65 64 20 61 66 74 65 72 20 66 69 6c 74 65 72 69 6e 67 2c | eant.to.be.used.after.filtering, |
| 9980 | 20 61 6c 6c 20 6f 66 20 74 68 65 0a 63 61 6e 64 69 64 61 74 65 73 20 69 6e 20 43 41 4e 44 49 44 | .all.of.the.candidates.in.CANDID |
| 99a0 | 41 54 45 53 20 73 68 6f 75 6c 64 20 6d 61 74 63 68 20 61 6c 6c 20 6f 66 20 74 68 65 20 72 65 67 | ATES.should.match.all.of.the.reg |
| 99c0 | 65 78 70 73 20 69 6e 0a 52 45 47 45 58 50 53 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e | exps.in.REGEXPS."...(cond....((n |
| 99e0 | 75 6c 6c 20 63 61 6e 64 69 64 61 74 65 73 29 20 6e 69 6c 29 0a 20 20 20 28 28 6e 75 6c 6c 20 72 | ull.candidates).nil)....((null.r |
| 9a00 | 65 67 65 78 70 73 29 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 28 74 20 28 73 61 76 65 2d | egexps).candidates)....(t.(save- |
| 9a20 | 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 | match-data.........(cl-loop..... |
| 9a40 | 20 20 20 20 20 77 69 74 68 20 70 72 69 6f 72 69 74 69 7a 65 64 2d 63 61 6e 64 69 64 61 74 65 73 | .....with.prioritized-candidates |
| 9a60 | 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 61 6e 64 20 72 65 6d 61 69 6e 69 6e 67 2d 63 61 | .=.nil..........and.remaining-ca |
| 9a80 | 6e 64 69 64 61 74 65 73 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 61 6e 64 20 63 61 73 65 | ndidates.=.nil..........and.case |
| 9aa0 | 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 3d 20 69 67 6e 6f 72 65 2d 63 61 73 65 0a 20 20 20 20 20 | -fold-search.=.ignore-case...... |
| 9ac0 | 20 20 20 20 66 6f 72 20 63 61 6e 64 20 69 6e 20 63 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 | ....for.cand.in.candidates...... |
| 9ae0 | 20 20 20 20 69 66 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 72 65 67 65 78 70 20 69 6e 20 72 65 | ....if.(cl-loop.for.regexp.in.re |
| 9b00 | 67 65 78 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 72 65 | gexps......................there |
| 9b20 | 69 73 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 65 67 65 78 70 20 63 61 6e | is.(and.(string-match.regexp.can |
| 9b40 | 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d).............................. |
| 9b60 | 20 20 20 20 20 28 3d 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 | .....(=.(length.cand)........... |
| 9b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 6d | ...........................(-.(m |
| 9ba0 | 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | atch-end.0)..................... |
| 9bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e | ....................(match-begin |
| 9be0 | 6e 69 6e 67 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 70 75 73 68 20 63 61 | ning.0)))))..........do.(push.ca |
| 9c00 | 6e 64 20 70 72 69 6f 72 69 74 69 7a 65 64 2d 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 | nd.prioritized-candidates)...... |
| 9c20 | 20 20 20 20 65 6c 73 65 20 64 6f 20 28 70 75 73 68 20 63 61 6e 64 20 72 65 6d 61 69 6e 69 6e 67 | ....else.do.(push.cand.remaining |
| 9c40 | 2d 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 | -candidates)..........finally.re |
| 9c60 | 74 75 72 6e 20 28 6e 63 6f 6e 63 20 28 6e 72 65 76 65 72 73 65 20 70 72 69 6f 72 69 74 69 7a 65 | turn.(nconc.(nreverse.prioritize |
| 9c80 | 64 2d 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d-candidates)................... |
| 9ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 6d 61 69 6e 69 6e 67 | .............(nreverse.remaining |
| 9cc0 | 2d 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 43 61 6e 64 69 64 61 | -candidates)))))))..;;;;.Candida |
| 9ce0 | 74 65 20 73 65 6c 65 63 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 72 | te.selection..(defun.prescient-r |
| 9d00 | 65 6d 65 6d 62 65 72 20 28 63 61 6e 64 69 64 61 74 65 29 0a 20 20 22 52 65 63 6f 72 64 20 43 41 | emember.(candidate)..."Record.CA |
| 9d20 | 4e 44 49 44 41 54 45 20 69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 27 20 | NDIDATE.in.`prescient--history'. |
| 9d40 | 61 6e 64 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 27 2e 22 0a 20 20 28 | and.`prescient--frequency'."...( |
| 9d60 | 73 65 74 71 20 63 61 6e 64 69 64 61 74 65 20 28 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f | setq.candidate.(substring-no-pro |
| 9d80 | 70 65 72 74 69 65 73 20 63 61 6e 64 69 64 61 74 65 29 29 0a 20 20 3b 3b 20 41 64 64 20 74 6f 20 | perties.candidate))...;;.Add.to. |
| 9da0 | 60 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 27 2e 0a 20 20 28 6c 65 74 20 28 28 74 | `prescient--history'....(let.((t |
| 9dc0 | 68 69 73 2d 70 6f 73 20 28 67 65 74 68 61 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | his-pos.(gethash................ |
| 9de0 | 20 20 20 20 63 61 6e 64 69 64 61 74 65 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 | ....candidate.prescient--history |
| 9e00 | 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 | .prescient-history-length))).... |
| 9e20 | 20 3b 3b 20 49 66 20 74 68 65 20 63 61 6e 64 69 64 61 74 65 20 77 61 73 20 61 6c 72 65 61 64 79 | .;;.If.the.candidate.was.already |
| 9e40 | 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 2c 20 74 68 65 6e 20 70 72 65 70 61 72 65 20 66 6f | .in.the.history,.then.prepare.fo |
| 9e60 | 72 0a 20 20 20 20 3b 3b 20 6d 6f 76 69 6e 67 20 69 74 20 74 6f 20 74 68 65 20 66 72 6f 6e 74 20 | r.....;;.moving.it.to.the.front. |
| 9e80 | 62 79 20 69 6e 63 72 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 69 6e 64 69 63 65 73 20 6f 66 20 6f | by.incrementing.the.indices.of.o |
| 9ea0 | 74 68 65 72 0a 20 20 20 20 3b 3b 20 63 61 6e 64 69 64 61 74 65 73 2e 0a 20 20 20 20 28 6d 61 70 | ther.....;;.candidates......(map |
| 9ec0 | 68 61 73 68 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 72 2d 63 61 6e 64 69 64 61 | hash......(lambda.(other-candida |
| 9ee0 | 74 65 20 6f 74 68 65 72 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | te.other-pos)........(cond...... |
| 9f00 | 20 20 20 3b 3b 20 49 66 20 74 68 65 20 6f 74 68 65 72 20 63 61 6e 64 69 64 61 74 65 20 63 61 6d | ...;;.If.the.other.candidate.cam |
| 9f20 | 65 20 65 61 72 6c 69 65 72 20 69 6e 20 74 68 65 20 68 69 73 74 6f 72 79 2c 20 74 68 65 6e 0a 20 | e.earlier.in.the.history,.then.. |
| 9f40 | 20 20 20 20 20 20 20 3b 3b 20 69 6e 63 72 65 6d 65 6e 74 20 69 74 73 20 69 6e 64 65 78 2e 0a 20 | .......;;.increment.its.index... |
| 9f60 | 20 20 20 20 20 20 20 28 28 3c 20 6f 74 68 65 72 2d 70 6f 73 20 74 68 69 73 2d 70 6f 73 29 0a 20 | .......((<.other-pos.this-pos).. |
| 9f80 | 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 6f 74 68 65 72 2d 63 61 6e 64 69 64 61 74 65 | ........(puthash.other-candidate |
| 9fa0 | 20 28 31 2b 20 6f 74 68 65 72 2d 70 6f 73 29 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f | .(1+.other-pos).prescient--histo |
| 9fc0 | 72 79 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 2c 20 69 66 20 69 74 27 73 20 61 6c | ry)).........;;.Else,.if.it's.al |
| 9fe0 | 72 65 61 64 79 20 70 61 73 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 68 69 73 74 6f 72 | ready.past.the.end.of.the.histor |
| a000 | 79 20 28 74 68 69 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 6f 75 6c 64 20 68 61 70 70 65 6e 20 | y.(this.........;;.would.happen. |
| a020 | 69 66 20 60 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 27 20 77 65 | if.`prescient-history-length'.we |
| a040 | 72 65 20 64 65 63 72 65 61 73 65 64 29 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 66 20 | re.decreased),.........;;.or.if. |
| a060 | 69 74 27 73 20 61 74 20 74 68 65 20 76 65 72 79 20 65 6e 64 20 61 6e 64 20 61 20 6e 65 77 20 63 | it's.at.the.very.end.and.a.new.c |
| a080 | 61 6e 64 69 64 61 74 65 20 77 61 73 20 61 64 64 65 64 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 | andidate.was.added,.........;;.t |
| a0a0 | 68 65 6e 20 72 65 6d 6f 76 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 68 69 73 74 6f 72 79 2e 0a | hen.remove.it.from.the.history.. |
| a0c0 | 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 3e 3d 20 6f 74 68 65 72 2d 70 6f 73 20 70 72 65 73 63 | ........((or.(>=.other-pos.presc |
| a0e0 | 69 65 6e 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ient-history-length)............ |
| a100 | 20 20 28 61 6e 64 20 28 3d 20 6f 74 68 65 72 2d 70 6f 73 20 28 31 2d 20 70 72 65 73 63 69 65 6e | ..(and.(=.other-pos.(1-.prescien |
| a120 | 74 2d 68 69 73 74 6f 72 79 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-history-length)).............. |
| a140 | 20 20 20 20 20 28 3d 20 74 68 69 73 2d 70 6f 73 20 70 72 65 73 63 69 65 6e 74 2d 68 69 73 74 6f | .....(=.this-pos.prescient-histo |
| a160 | 72 79 2d 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6d 68 61 73 68 20 6f | ry-length)))..........(remhash.o |
| a180 | 74 68 65 72 2d 63 61 6e 64 69 64 61 74 65 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 | ther-candidate.prescient--histor |
| a1a0 | 79 29 29 29 29 0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 0a 20 | y))))......prescient--history).. |
| a1c0 | 20 20 20 3b 3b 20 4e 6f 77 20 61 64 64 20 74 68 65 20 6e 65 77 20 63 61 6e 64 69 64 61 74 65 20 | ...;;.Now.add.the.new.candidate. |
| a1e0 | 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 2e 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 63 | to.the.beginning......(puthash.c |
| a200 | 61 6e 64 69 64 61 74 65 20 30 20 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 29 0a | andidate.0.prescient--history)). |
| a220 | 20 20 3b 3b 20 41 64 64 20 74 6f 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 | ..;;.Add.to.`prescient--frequenc |
| a240 | 79 27 2e 0a 20 20 28 70 75 74 68 61 73 68 20 63 61 6e 64 69 64 61 74 65 20 28 31 2b 20 28 67 65 | y'....(puthash.candidate.(1+.(ge |
| a260 | 74 68 61 73 68 20 63 61 6e 64 69 64 61 74 65 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 | thash.candidate.prescient--frequ |
| a280 | 65 6e 63 79 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 | ency.0))............prescient--f |
| a2a0 | 72 65 71 75 65 6e 63 79 29 0a 20 20 3b 3b 20 52 65 6d 6f 76 65 20 6f 6c 64 20 65 6e 74 72 69 65 | requency)...;;.Remove.old.entrie |
| a2c0 | 73 20 66 72 6f 6d 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 27 2e 0a 20 | s.from.`prescient--frequency'... |
| a2e0 | 20 28 6d 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 63 61 6e 64 20 6f 6c 64 2d 66 72 65 71 | .(maphash.(lambda.(cand.old-freq |
| a300 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 77 2d 66 72 65 71 20 28 | )..............(let.((new-freq.( |
| a320 | 2a 20 6f 6c 64 2d 66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 64 | *.old-freq.prescient-frequency-d |
| a340 | 65 63 61 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 6e 65 | ecay)))................(if.(<.ne |
| a360 | 77 2d 66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 66 72 65 71 75 65 6e 63 79 2d 74 68 72 65 73 | w-freq.prescient-frequency-thres |
| a380 | 68 6f 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 68 61 73 | hold)....................(remhas |
| a3a0 | 68 20 63 61 6e 64 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 0a 20 20 20 | h.cand.prescient--frequency).... |
| a3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 63 61 6e 64 20 6e 65 77 2d | ..............(puthash.cand.new- |
| a3e0 | 66 72 65 71 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 29 29 29 0a 20 20 | freq.prescient--frequency))))... |
| a400 | 20 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 66 72 65 71 75 65 6e 63 79 29 0a 20 | .........prescient--frequency).. |
| a420 | 20 3b 3b 20 55 70 64 61 74 65 20 73 65 72 69 61 6c 20 6e 75 6d 62 65 72 2e 0a 20 20 28 63 6c 2d | .;;.Update.serial.number....(cl- |
| a440 | 69 6e 63 66 20 70 72 65 73 63 69 65 6e 74 2d 2d 73 65 72 69 61 6c 2d 6e 75 6d 62 65 72 29 0a 20 | incf.prescient--serial-number).. |
| a460 | 20 3b 3b 20 53 61 76 65 20 74 68 65 20 63 61 63 68 65 20 64 61 74 61 2e 0a 20 20 28 77 68 65 6e | .;;.Save.the.cache.data....(when |
| a480 | 20 28 61 6e 64 20 70 72 65 73 63 69 65 6e 74 2d 70 65 72 73 69 73 74 2d 6d 6f 64 65 0a 20 20 20 | .(and.prescient-persist-mode.... |
| a4a0 | 20 20 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 61 67 67 72 65 73 73 69 76 65 2d 66 | ..........prescient-aggressive-f |
| a4c0 | 69 6c 65 2d 73 61 76 65 29 0a 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 73 61 76 65 29 29 | ile-save).....(prescient--save)) |
| a4e0 | 29 0a 0a 3b 3b 3b 3b 20 43 6f 6d 70 6c 65 74 69 6f 6e 20 53 74 79 6c 65 0a 0a 3b 3b 20 54 68 69 | )..;;;;.Completion.Style..;;.Thi |
| a500 | 73 20 73 65 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 | s.section.contains.functions.for |
| a520 | 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 65 20 60 70 72 65 73 63 69 65 6e 74 27 0a 3b 3b | .implementing.the.`prescient'.;; |
| a540 | 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 2e 20 54 68 69 73 20 66 65 61 74 75 72 65 20 | .completion.style..This.feature. |
| a560 | 69 73 20 62 61 73 65 64 20 6f 6e 20 4f 72 64 65 72 6c 65 73 73 2e 65 6c 2e 0a 3b 3b 20 53 65 65 | is.based.on.Orderless.el..;;.See |
| a580 | 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6f 61 6e 74 6f 6c 69 6e 2f 6f 72 | :.https://github.com/oantolin/or |
| a5a0 | 64 65 72 6c 65 73 73 0a 0a 28 64 65 66 76 61 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 | derless..(defvar.completion-lazy |
| a5c0 | 2d 68 69 6c 69 74 29 0a 28 64 65 66 76 61 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d | -hilit).(defvar.completion-lazy- |
| a5e0 | 68 69 6c 69 74 2d 66 6e 29 0a 0a 3b 3b 3b 3b 3b 20 53 6f 72 74 69 6e 67 20 66 75 6e 63 74 69 6f | hilit-fn)..;;;;;.Sorting.functio |
| a600 | 6e 73 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 | ns..;;;###autoload.(cl-defun.pre |
| a620 | 73 63 69 65 6e 74 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 6f 72 74 20 28 63 61 6e 64 69 64 61 74 | scient-completion-sort.(candidat |
| a640 | 65 73 29 0a 20 20 22 53 6f 72 74 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 43 41 4e 44 49 44 41 | es)..."Sort.the.filtered.CANDIDA |
| a660 | 54 45 53 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 | TES...This.function.will.always. |
| a680 | 73 6f 72 74 20 63 61 6e 64 69 64 61 74 65 73 20 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 | sort.candidates.using.the.functi |
| a6a0 | 6f 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 27 2e 20 57 68 65 6e 20 43 41 4e 44 49 44 | on.`prescient-sort'..When.CANDID |
| a6c0 | 41 54 45 53 20 68 61 73 20 62 65 65 6e 20 66 69 6c 74 65 72 65 64 20 75 73 69 6e 67 20 74 68 65 | ATES.has.been.filtered.using.the |
| a6e0 | 0a 60 70 72 65 73 63 69 65 6e 74 27 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 2c 20 69 | .`prescient'.completion.style,.i |
| a700 | 74 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 61 6c 73 6f 20 73 6f 72 74 20 74 68 65 6d 0a | t.can.optionally.also.sort.them. |
| a720 | 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f | using.the.function.`prescient-so |
| a740 | 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 2e 0a 0a 54 68 69 73 20 66 75 | rt-full-matches-first'...This.fu |
| a760 | 6e 63 74 69 6f 6e 20 63 68 65 63 6b 73 20 66 6f 72 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 | nction.checks.for.the.properties |
| a780 | 20 60 70 72 65 73 63 69 65 6e 74 2d 72 65 67 65 78 70 73 27 20 61 6e 64 0a 60 70 72 65 73 63 69 | .`prescient-regexps'.and.`presci |
| a7a0 | 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 27 20 6f 6e 20 61 6e 79 20 63 61 6e 64 69 64 61 74 | ent-ignore-case'.on.any.candidat |
| a7c0 | 65 20 69 6e 20 43 41 4e 44 49 44 41 54 45 53 20 28 74 68 6f 75 67 68 0a 74 68 65 79 20 61 72 65 | e.in.CANDIDATES.(though.they.are |
| a7e0 | 20 73 74 6f 72 65 64 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 63 61 6e 64 69 64 61 74 65 20 72 | .stored.on.the.first.candidate.r |
| a800 | 65 74 75 72 6e 65 64 20 62 79 0a 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 27 29 2e 20 | eturned.by.`prescient-filter').. |
| a820 | 54 68 65 73 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 69 6d | These.properties.are.used.for.im |
| a840 | 70 6c 65 6d 65 6e 74 69 6e 67 0a 74 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 60 70 72 65 73 | plementing.the.user.option.`pres |
| a860 | 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 27 2e 22 | cient-sort-full-matches-first'." |
| a880 | 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 6e | ...(if.(null.candidates).......n |
| a8a0 | 69 6c 0a 20 20 20 20 3b 3b 20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 27 20 61 64 64 | il.....;;.`prescient-filter'.add |
| a8c0 | 73 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6e 65 65 64 65 64 20 66 6f 72 0a 20 20 20 20 | s.the.properties.needed.for..... |
| a8e0 | 3b 3b 20 60 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d | ;;.`prescient-sort-full-matches- |
| a900 | 66 69 72 73 74 27 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 63 61 6e 64 69 64 61 74 65 20 69 6e | first'.to.the.first.candidate.in |
| a920 | 0a 20 20 20 20 3b 3b 20 74 68 65 20 6c 69 73 74 20 69 74 20 72 65 74 75 72 6e 73 2e 20 49 66 20 | .....;;.the.list.it.returns..If. |
| a940 | 77 65 27 72 65 20 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 63 61 6e | we're.receiving.the.filtered.can |
| a960 | 64 69 64 61 74 65 73 0a 20 20 20 20 3b 3b 20 64 69 72 65 63 74 6c 79 20 28 73 6f 2c 20 6e 6f 74 | didates.....;;.directly.(so,.not |
| a980 | 20 69 6e 20 60 63 6f 6d 70 61 6e 79 2d 70 72 65 73 63 69 65 6e 74 2d 74 72 61 6e 73 66 6f 72 6d | .in.`company-prescient-transform |
| a9a0 | 65 72 27 29 20 74 68 65 6e 20 77 65 0a 20 20 20 20 3b 3b 20 73 68 6f 75 6c 64 20 62 65 20 63 68 | er').then.we.....;;.should.be.ch |
| a9c0 | 65 63 6b 69 6e 67 20 66 6f 72 20 74 68 65 6d 20 62 65 66 6f 72 65 20 72 75 6e 6e 69 6e 67 20 60 | ecking.for.them.before.running.` |
| a9e0 | 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 27 2c 0a 20 20 20 20 3b 3b 20 77 68 69 63 68 20 64 65 | prescient-sort',.....;;.which.de |
| aa00 | 73 74 72 75 63 74 69 76 65 6c 79 20 6d 6f 64 69 66 69 65 73 20 43 41 4e 44 49 44 41 54 45 53 2e | structively.modifies.CANDIDATES. |
| aa20 | 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 | .....(let.((regexps)...........( |
| aa40 | 69 67 6e 6f 72 65 2d 63 61 73 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 65 73 63 69 | ignore-case)).......(when.presci |
| aa60 | 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 68 65 73 2d 66 69 72 73 74 0a 20 20 20 20 | ent-sort-full-matches-first..... |
| aa80 | 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 73 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 67 65 74 | ....(let.((props.(prescient--get |
| aaa0 | 2d 73 6f 72 74 2d 69 6e 66 6f 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 0a 20 20 20 20 20 20 20 | -sort-info.candidates)))........ |
| aac0 | 20 20 20 28 73 65 74 71 20 72 65 67 65 78 70 73 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 | ...(setq.regexps.(plist-get.prop |
| aae0 | 73 20 3a 70 72 65 73 63 69 65 6e 74 2d 61 6c 6c 2d 72 65 67 65 78 70 73 29 0a 20 20 20 20 20 20 | s.:prescient-all-regexps)....... |
| ab00 | 20 20 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 2d 63 61 73 65 20 28 70 6c 69 73 74 2d 67 65 74 | ..........ignore-case.(plist-get |
| ab20 | 20 70 72 6f 70 73 20 3a 70 72 65 73 63 69 65 6e 74 2d 69 67 6e 6f 72 65 2d 63 61 73 65 29 29 29 | .props.:prescient-ignore-case))) |
| ab40 | 29 0a 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 63 61 | ).......(thread-first.........ca |
| ab60 | 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 | ndidates.........(prescient-sort |
| ab80 | 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 60 72 65 67 65 78 70 73 27 20 69 73 20 6e 69 6c | ).........;;.If.`regexps'.is.nil |
| aba0 | 2c 20 74 68 69 73 20 6a 75 73 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 70 75 74 2e 0a 20 | ,.this.just.returns.the.input... |
| abc0 | 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 73 6f 72 74 2d 66 75 6c 6c 2d 6d 61 74 63 | .......(prescient-sort-full-matc |
| abe0 | 68 65 73 2d 66 69 72 73 74 20 72 65 67 65 78 70 73 20 69 67 6e 6f 72 65 2d 63 61 73 65 29 29 29 | hes-first.regexps.ignore-case))) |
| ac00 | 29 29 0a 0a 3b 3b 3b 3b 3b 20 46 69 6c 74 65 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 3b | ))..;;;;;.Filtering.functions..; |
| ac20 | 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 61 | ;;###autoload.(defun.prescient-a |
| ac40 | 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 73 74 72 69 6e 67 20 74 61 62 6c 65 20 26 6f 70 | ll-completions.(string.table.&op |
| ac60 | 74 69 6f 6e 61 6c 20 70 72 65 64 20 5f 70 6f 69 6e 74 29 0a 20 20 22 60 61 6c 6c 2d 63 6f 6d 70 | tional.pred._point)..."`all-comp |
| ac80 | 6c 65 74 69 6f 6e 73 27 20 75 73 69 6e 67 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 2e 0a 0a 53 54 | letions'.using.prescient.el...ST |
| aca0 | 52 49 4e 47 20 69 73 20 74 68 65 20 69 6e 70 75 74 2e 20 54 41 42 4c 45 20 69 73 20 61 20 63 6f | RING.is.the.input..TABLE.is.a.co |
| acc0 | 6d 70 6c 65 74 69 6f 6e 20 74 61 62 6c 65 2e 20 50 52 45 44 20 69 73 20 61 0a 70 72 65 64 69 63 | mpletion.table..PRED.is.a.predic |
| ace0 | 61 74 65 20 74 68 61 74 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 73 20 74 68 65 20 6d | ate.that.further.restricts.the.m |
| ad00 | 61 74 63 68 69 6e 67 20 63 61 6e 64 69 64 61 74 65 73 2e 20 50 4f 49 4e 54 0a 77 6f 75 6c 64 20 | atching.candidates..POINT.would. |
| ad20 | 62 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2c 20 62 75 74 20 69 74 20 69 73 20 | be.the.current.point,.but.it.is. |
| ad40 | 6e 6f 74 20 75 73 65 64 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 0a 53 65 65 20 74 | not.used.by.this.function..See.t |
| ad60 | 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 27 20 66 6f | he.function.`all-completions'.fo |
| ad80 | 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 | r.more.information...This.functi |
| ada0 | 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 | on.returns.a.list.of.completions |
| adc0 | 20 77 68 6f 73 65 20 66 69 6e 61 6c 20 60 63 64 72 27 20 69 73 0a 74 68 65 20 6c 65 6e 67 74 68 | .whose.final.`cdr'.is.the.length |
| ade0 | 20 6f 66 20 74 68 65 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 20 75 73 65 64 20 66 6f 72 20 63 | .of.the.prefix.string.used.for.c |
| ae00 | 6f 6d 70 6c 65 74 69 6f 6e 20 28 77 68 69 63 68 20 6d 69 67 68 74 0a 62 65 20 61 6c 6c 20 6f 72 | ompletion.(which.might.be.all.or |
| ae20 | 20 6a 75 73 74 20 70 61 72 74 20 6f 66 20 53 54 52 49 4e 47 29 2e 0a 0a 57 68 65 6e 20 60 63 6f | .just.part.of.STRING)...When.`co |
| ae40 | 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d 68 69 6c 69 74 27 20 69 73 20 62 6f 75 6e 64 20 61 6e | mpletion-lazy-hilit'.is.bound.an |
| ae60 | 64 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 6e 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 73 65 | d.non-nil,.then.this.function.se |
| ae80 | 74 73 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d 68 69 6c 69 74 2d 66 6e 27 2e 20 4f | ts.`completion-lazy-hilit-fn'..O |
| aea0 | 74 68 65 72 77 69 73 65 2c 20 69 66 0a 60 70 72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 6c 65 74 69 | therwise,.if.`prescient-completi |
| aec0 | 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 6d 61 74 63 68 65 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c | on-highlight-matches'.is.non-nil |
| aee0 | 2c 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 65 72 74 69 7a 65 73 20 61 6c 6c 20 | ,.this.function.propertizes.all. |
| af00 | 6f 66 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 75 73 69 6e | of.the.returned.completions.usin |
| af20 | 67 20 74 68 65 0a 66 61 63 65 20 60 70 72 65 73 63 69 65 6e 74 2d 70 72 69 6d 61 72 79 2d 68 69 | g.the.face.`prescient-primary-hi |
| af40 | 67 68 6c 69 67 68 74 27 20 61 6e 64 20 74 68 65 20 66 61 63 65 0a 60 70 72 65 73 63 69 65 6e 74 | ghlight'.and.the.face.`prescient |
| af60 | 2d 73 65 63 6f 6e 64 61 72 79 2d 68 69 67 68 6c 69 67 68 74 27 2e 22 0a 20 20 3b 3b 20 60 70 6f | -secondary-highlight'."...;;.`po |
| af80 | 69 6e 74 27 20 69 73 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e 74 2c 20 62 75 74 | int'.is.a.required.argument,.but |
| afa0 | 20 75 6e 6e 65 65 64 65 64 20 68 65 72 65 2e 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f | .unneeded.here....(when-let.((co |
| afc0 | 6d 70 6c 65 74 69 6f 6e 73 20 28 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 20 73 74 72 69 | mpletions.(prescient-filter.stri |
| afe0 | 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a | ng.table.pred))).....(pcase-let* |
| b000 | 20 28 28 60 28 2c 70 72 65 66 69 78 20 2e 20 2c 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 | .((`(,prefix...,pattern)........ |
| b020 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 70 72 65 66 69 78 2d 61 6e | ...........(prescient--prefix-an |
| b040 | 64 2d 70 61 74 74 65 72 6e 20 73 74 72 69 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 0a 20 20 | d-pattern.string.table.pred))... |
| b060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 79 62 65 2d 68 69 67 68 6c 69 67 68 74 65 | ...............(maybe-highlighte |
| b080 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 | d...................(cond....... |
| b0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 | .............((bound-and-true-p. |
| b0c0 | 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 2d 68 69 6c 69 74 29 0a 20 20 20 20 20 20 20 20 20 | completion-lazy-hilit).......... |
| b0e0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 61 7a 79 | ...........(setq.completion-lazy |
| b100 | 2d 68 69 6c 69 74 2d 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -hilit-fn....................... |
| b120 | 20 20 20 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 | ....(apply-partially............ |
| b140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 | ................#'prescient--hig |
| b160 | 68 6c 69 67 68 74 2d 63 61 6e 64 69 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | hlight-candidate................ |
| b180 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 72 65 | ............(prescient-filter-re |
| b1a0 | 67 65 78 70 73 20 70 61 74 74 65 72 6e 20 27 77 69 74 68 2d 67 72 6f 75 70 29 0a 20 20 20 20 20 | gexps.pattern.'with-group)...... |
| b1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 | ......................(prescient |
| b1e0 | 2d 69 67 6e 6f 72 65 2d 63 61 73 65 2d 70 20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 | -ignore-case-p.pattern)))....... |
| b200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 0a 20 20 20 20 20 | ..............completions)...... |
| b220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 6c 65 74 | ..............(prescient-complet |
| b240 | 69 6f 6e 2d 68 69 67 68 6c 69 67 68 74 2d 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 | ion-highlight-matches........... |
| b260 | 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 68 69 67 68 6c 69 67 68 74 2d | ..........(prescient--highlight- |
| b280 | 63 61 6e 64 69 64 61 74 65 73 20 70 61 74 74 65 72 6e 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 | candidates.pattern.completions)) |
| b2a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 | ....................(t.......... |
| b2c0 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 20 | ...........completions))))...... |
| b2e0 | 20 28 6e 63 6f 6e 63 20 6d 61 79 62 65 2d 68 69 67 68 6c 69 67 68 74 65 64 20 28 6c 65 6e 67 74 | .(nconc.maybe-highlighted.(lengt |
| b300 | 68 20 70 72 65 66 69 78 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 | h.prefix)))))..;;;###autoload.(d |
| b320 | 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20 28 73 | efun.prescient-try-completion.(s |
| b340 | 74 72 69 6e 67 20 74 61 62 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 65 64 20 70 6f 69 6e 74 | tring.table.&optional.pred.point |
| b360 | 29 0a 20 20 22 60 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 27 20 75 73 69 6e 67 20 50 72 65 73 | )..."`try-completion'.using.Pres |
| b380 | 63 69 65 6e 74 2e 0a 0a 53 54 52 49 4e 47 20 69 73 20 74 68 65 20 69 6e 70 75 74 2e 20 20 54 41 | cient...STRING.is.the.input...TA |
| b3a0 | 42 4c 45 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 74 61 62 6c 65 2e 20 20 50 52 45 44 | BLE.is.a.completion.table...PRED |
| b3c0 | 20 69 73 20 61 0a 70 72 65 64 69 63 61 74 65 2e 20 20 50 4f 49 4e 54 20 69 73 20 74 68 65 20 63 | .is.a.predicate...POINT.is.the.c |
| b3e0 | 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 20 20 53 65 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a | urrent.point...See.the.function. |
| b400 | 60 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d | `try-completion'.for.more.inform |
| b420 | 61 74 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 61 74 63 68 65 73 2c | ation...If.there.are.no.matches, |
| b440 | 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 49 66 20 74 | .this.function.returns.nil..If.t |
| b460 | 68 65 20 6f 6e 6c 79 0a 6d 61 74 63 68 20 65 71 75 61 6c 73 20 53 54 52 49 4e 47 2c 20 74 68 69 | he.only.match.equals.STRING,.thi |
| b480 | 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 2e 20 4f 74 68 65 72 77 69 73 65 2c | s.function.returns.t..Otherwise, |
| b4a0 | 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 63 6f 6e 73 20 63 65 | .this.function.returns.a.cons.ce |
| b4c0 | 6c 6c 20 6f 66 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 64 20 73 74 72 69 6e 67 20 61 6e 64 20 69 | ll.of.the.completed.string.and.i |
| b4e0 | 74 73 0a 6c 65 6e 67 74 68 2e 20 49 66 20 74 68 65 72 65 20 69 73 20 6d 6f 72 65 20 74 68 61 6e | ts.length..If.there.is.more.than |
| b500 | 20 6f 6e 65 20 6d 61 74 63 68 2c 20 74 68 61 74 20 63 6f 6d 70 6c 65 74 65 64 20 73 74 72 69 6e | .one.match,.that.completed.strin |
| b520 | 67 20 69 73 0a 61 63 74 75 61 6c 6c 79 20 6a 75 73 74 20 74 68 65 20 69 6e 70 75 74 2c 20 69 6e | g.is.actually.just.the.input,.in |
| b540 | 20 77 68 69 63 68 20 63 61 73 65 20 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e 73 2e 22 0a 20 20 | .which.case.nothing.happens."... |
| b560 | 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 70 72 65 73 63 69 65 | (when-let.((completions.(prescie |
| b580 | 6e 74 2d 66 69 6c 74 65 72 20 73 74 72 69 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 29 0a 20 | nt-filter.string.table.pred))).. |
| b5a0 | 20 20 20 28 69 66 20 28 63 64 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 | ...(if.(cdr.completions)........ |
| b5c0 | 20 28 63 6f 6e 73 20 73 74 72 69 6e 67 20 70 6f 69 6e 74 29 20 3b 20 4d 75 6c 74 69 70 6c 65 20 | .(cons.string.point).;.Multiple. |
| b5e0 | 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74 63 68 20 28 63 61 72 20 | matches.......(let.((match.(car. |
| b600 | 63 6f 6d 70 6c 65 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 | completions))).........(if.(equa |
| b620 | 6c 20 73 74 72 69 6e 67 20 6d 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3b 20 | l.string.match).............t.;. |
| b640 | 4c 69 74 65 72 61 6c 20 69 6e 70 75 74 20 65 71 75 61 6c 73 20 6f 6e 6c 79 20 6d 61 74 63 68 2e | Literal.input.equals.only.match. |
| b660 | 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 20 | ...........;;.Otherwise,.return. |
| b680 | 74 68 65 20 6d 61 74 63 68 20 61 6e 64 20 6d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 69 74 73 20 | the.match.and.move.point.to.its. |
| b6a0 | 65 6e 64 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 65 66 69 78 20 28 63 | end............(let*.((prefix.(c |
| b6c0 | 61 72 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 70 72 65 66 69 78 2d 61 6e 64 2d 70 61 74 74 65 72 | ar.(prescient--prefix-and-patter |
| b6e0 | 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 20 20 20 | n............................... |
| b700 | 20 73 74 72 69 6e 67 20 74 61 62 6c 65 20 70 72 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | .string.table.pred)))........... |
| b720 | 20 20 20 20 20 20 20 28 66 75 6c 6c 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 6d 61 74 63 | .......(full.(concat.prefix.matc |
| b740 | 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 66 75 6c 6c 20 28 6c 65 6e | h))).............(cons.full.(len |
| b760 | 67 74 68 20 66 75 6c 6c 29 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 3b 20 53 65 74 74 69 6e 67 20 | gth.full))))))))..;;;;;.Setting. |
| b780 | 75 70 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 6c 65 0a 0a 3b 3b 3b 23 23 23 61 | up.the.completion.style..;;;###a |
| b7a0 | 75 74 6f 6c 6f 61 64 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 0a 20 27 63 6f 6d 70 6c 65 74 69 6f | utoload.(add-to-list..'completio |
| b7c0 | 6e 2d 73 74 79 6c 65 73 2d 61 6c 69 73 74 0a 20 27 28 20 70 72 65 73 63 69 65 6e 74 20 70 72 65 | n-styles-alist..'(.prescient.pre |
| b7e0 | 73 63 69 65 6e 74 2d 74 72 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20 70 72 65 73 63 69 65 6e 74 2d | scient-try-completion.prescient- |
| b800 | 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 0a 20 20 20 20 22 46 69 6c 74 65 72 69 6e 67 20 75 | all-completions....."Filtering.u |
| b820 | 73 69 6e 67 20 70 72 65 73 63 69 65 6e 74 2e 65 6c 2e 0a 46 6f 72 20 73 6f 72 74 69 6e 67 2c 20 | sing.prescient.el..For.sorting,. |
| b840 | 73 65 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 63 6f 6d 70 | see.the.function.`prescient-comp |
| b860 | 6c 65 74 69 6f 6e 2d 73 6f 72 74 27 2e 22 29 29 0a 0a 3b 3b 3b 3b 3b 20 43 6f 6d 70 6f 6e 65 6e | letion-sort'."))..;;;;;.Componen |
| b880 | 74 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 | t.functions.for.completion-style |
| b8a0 | 20 6d 69 6e 6f 72 20 6d 6f 64 65 73 0a 0a 3b 3b 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 | .minor.modes..;;.These.functions |
| b8c0 | 20 61 72 65 20 75 73 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 69 6e 74 65 67 | .are.used.to.implement.the.integ |
| b8e0 | 72 61 74 69 6f 6e 20 70 61 63 6b 61 67 65 73 0a 3b 3b 20 66 6f 72 20 43 6f 72 66 75 20 61 6e 64 | ration.packages.;;.for.Corfu.and |
| b900 | 20 56 65 72 74 69 63 6f 2c 20 77 68 69 63 68 20 75 73 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 | .Vertico,.which.use.completion.s |
| b920 | 74 79 6c 65 73 2e 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d | tyles...(defconst.prescient--com |
| b940 | 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 73 74 79 6c 65 73 20 27 28 70 72 65 | pletion-recommended-styles.'(pre |
| b960 | 73 63 69 65 6e 74 20 62 61 73 69 63 29 0a 20 20 22 52 65 63 6f 6d 6d 65 6e 64 65 64 20 63 6f 6d | scient.basic)..."Recommended.com |
| b980 | 70 6c 65 74 69 6f 6e 73 20 73 74 79 6c 65 73 20 66 6f 72 20 75 73 69 6e 67 20 60 70 72 65 73 63 | pletions.styles.for.using.`presc |
| b9a0 | 69 65 6e 74 27 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 | ient'.")..(defconst.prescient--c |
| b9c0 | 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65 73 0a | ompletion-recommended-overrides. |
| b9e0 | 20 20 27 28 3b 3b 20 49 6e 63 6c 75 64 65 20 60 70 61 72 74 69 61 6c 2d 63 6f 6d 70 6c 65 74 69 | ..'(;;.Include.`partial-completi |
| ba00 | 6f 6e 27 20 74 6f 20 65 6e 61 62 6c 65 20 77 69 6c 64 63 61 72 64 73 20 61 6e 64 0a 20 20 20 20 | on'.to.enable.wildcards.and..... |
| ba20 | 3b 3b 20 70 61 72 74 69 61 6c 20 70 61 74 68 73 2e 0a 20 20 20 20 28 66 69 6c 65 20 28 73 74 79 | ;;.partial.paths......(file.(sty |
| ba40 | 6c 65 73 20 62 61 73 69 63 20 70 61 72 74 69 61 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 29 29 0a 20 | les.basic.partial-completion)).. |
| ba60 | 20 20 20 3b 3b 20 45 67 6c 6f 74 20 66 6f 72 63 65 73 20 60 66 6c 65 78 27 20 62 79 20 64 65 66 | ...;;.Eglot.forces.`flex'.by.def |
| ba80 | 61 75 6c 74 2e 0a 20 20 20 20 28 65 67 6c 6f 74 20 28 73 74 79 6c 65 73 20 70 72 65 73 63 69 65 | ault......(eglot.(styles.prescie |
| baa0 | 6e 74 20 62 61 73 69 63 29 29 29 0a 20 20 22 52 65 63 6f 6d 6d 65 6e 64 65 64 20 63 6f 6d 70 6c | nt.basic)))..."Recommended.compl |
| bac0 | 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 20 6f 76 65 72 72 69 64 65 73 20 66 6f 72 20 75 73 69 | etion-category.overrides.for.usi |
| bae0 | 6e 67 20 70 72 65 73 63 69 65 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 65 73 63 | ng.prescient.")..(defconst.presc |
| bb00 | 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73 2d 76 61 72 73 0a 20 | ient--completion-settings-vars.. |
| bb20 | 20 27 28 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 73 20 63 6f 6d 70 6c 65 74 69 6f 6e | .'(.completion-styles.completion |
| bb40 | 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 63 6f 6d 70 6c 65 74 | -category-overrides......complet |
| bb60 | 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 22 56 61 72 69 61 62 | ion-category-defaults)..."Variab |
| bb80 | 6c 65 73 20 74 68 61 74 20 61 72 65 20 63 68 61 6e 67 65 64 20 74 6f 20 63 6f 6e 66 69 67 75 72 | les.that.are.changed.to.configur |
| bba0 | 65 20 66 69 6c 74 65 72 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e | e.filtering.")..(defvar.prescien |
| bbc0 | 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 6c 65 73 20 6e 69 6c 0a 20 20 22 | t--completion-old-styles.nil..." |
| bbe0 | 50 72 65 76 69 6f 75 73 20 76 61 6c 75 65 20 6f 66 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 | Previous.value.of.`completion-st |
| bc00 | 79 6c 65 73 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d | yles'.")..(defvar.prescient--com |
| bc20 | 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 20 6e 69 6c 0a 20 20 22 50 72 65 | pletion-old-overrides.nil..."Pre |
| bc40 | 76 69 6f 75 73 20 76 61 6c 75 65 20 6f 66 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 | vious.value.of.`completion-categ |
| bc60 | 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 | ory-overrides'.")..(defvar.presc |
| bc80 | 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c 74 73 20 6e 69 | ient--completion-old-defaults.ni |
| bca0 | 6c 0a 20 20 22 50 72 65 76 69 6f 75 73 20 76 61 6c 75 65 20 6f 66 20 60 63 6f 6d 70 6c 65 74 69 | l..."Previous.value.of.`completi |
| bcc0 | 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 27 2e 22 29 0a 0a 28 64 65 66 63 6f | on-category-defaults'.")..(defco |
| bce0 | 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 76 61 | nst.prescient--completion-old-va |
| bd00 | 72 73 0a 20 20 27 28 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c | rs...'(.prescient--completion-ol |
| bd20 | 64 2d 73 74 79 6c 65 73 0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 | d-styles......prescient--complet |
| bd40 | 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 | ion-old-overrides......prescient |
| bd60 | 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 22 56 61 | --completion-old-defaults)..."Va |
| bd80 | 72 69 61 62 6c 65 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 6f 6c 64 20 73 65 74 74 69 6e | riables.used.to.store.old.settin |
| bda0 | 67 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 | gs.")..(cl-defun.prescient--comp |
| bdc0 | 6c 65 74 69 6f 6e 2d 61 70 70 6c 79 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73 | letion-apply-completion-settings |
| bde0 | 0a 20 20 20 20 28 26 6b 65 79 20 28 73 74 79 6c 65 73 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f | .....(&key.(styles.prescient--co |
| be00 | 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 73 74 79 6c 65 73 29 0a 20 20 20 | mpletion-recommended-styles).... |
| be20 | 20 20 20 20 20 20 20 28 6f 76 65 72 72 69 64 65 73 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d | .......(overrides.prescient--com |
| be40 | 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65 73 29 29 0a | pletion-recommended-overrides)). |
| be60 | 20 20 22 4d 6f 64 69 66 79 20 74 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 76 | .."Modify.the.user.options.and.v |
| be80 | 61 72 69 61 62 6c 65 73 2e 0a 0a 53 54 59 4c 45 53 20 69 73 20 74 68 65 20 6e 65 77 20 60 63 6f | ariables...STYLES.is.the.new.`co |
| bea0 | 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 73 27 2e 20 4f 56 45 52 52 49 44 45 53 20 69 73 20 6e | mpletion-styles'..OVERRIDES.is.n |
| bec0 | 65 77 0a 6f 76 65 72 72 69 64 65 73 20 66 6f 72 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 74 | ew.overrides.for.`completion-cat |
| bee0 | 65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 27 2e 0a 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 | egory-overrides'..`completion-ca |
| bf00 | 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 27 20 69 73 20 73 65 74 20 74 6f 20 6e 69 6c 2e 20 | tegory-defaults'.is.set.to.nil.. |
| bf20 | 54 68 65 73 65 20 76 61 72 69 61 62 6c 65 73 0a 61 72 65 20 6c 69 73 74 65 64 20 69 6e 20 60 70 | These.variables.are.listed.in.`p |
| bf40 | 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73 2d 76 61 | rescient--completion-settings-va |
| bf60 | 72 73 27 2e 0a 0a 57 68 69 6c 65 20 74 68 65 72 65 20 61 72 65 20 72 65 63 6f 6d 6d 65 6e 64 65 | rs'...While.there.are.recommende |
| bf80 | 64 20 73 65 74 74 69 6e 67 73 2c 20 74 68 65 73 65 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 | d.settings,.these.can.be.overrid |
| bfa0 | 64 65 6e 20 62 79 0a 75 73 65 72 20 6f 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 65 78 74 65 6e | den.by.user.options.in.the.exten |
| bfc0 | 73 69 6f 6e 20 70 61 63 6b 61 67 65 73 2e 22 0a 20 20 28 73 65 74 71 20 63 6f 6d 70 6c 65 74 69 | sion.packages."...(setq.completi |
| bfe0 | 6f 6e 2d 73 74 79 6c 65 73 20 73 74 79 6c 65 73 0a 20 20 20 20 20 20 20 20 63 6f 6d 70 6c 65 74 | on-styles.styles.........complet |
| c000 | 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 20 6e 69 6c 29 0a 0a 20 20 28 63 | ion-category-defaults.nil)....(c |
| c020 | 6c 2d 73 79 6d 62 6f 6c 2d 6d 61 63 72 6f 6c 65 74 0a 20 20 20 20 20 20 28 28 63 61 74 65 67 6f | l-symbol-macrolet.......((catego |
| c040 | 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 20 28 61 | ry-setting-overrides..........(a |
| c060 | 6c 69 73 74 2d 67 65 74 20 73 65 74 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list-get.setting................ |
| c080 | 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 63 6f 6d 70 6c 65 74 | .....(alist-get.category.complet |
| c0a0 | 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 29 29 29 29 0a 20 20 20 20 28 | ion-category-overrides)))).....( |
| c0c0 | 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 63 61 74 65 67 6f 72 79 20 2e 20 6f 76 65 72 72 69 64 65 | cl-loop.for.(category...override |
| c0e0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 20 6f 76 65 72 72 69 64 65 73 0a 20 20 20 | s)..............in.overrides.... |
| c100 | 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 73 65 74 74 69 | ..........do.(cl-loop.for.(setti |
| c120 | 6e 67 20 2e 20 76 61 6c 75 65 73 29 20 69 6e 20 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 | ng...values).in.overrides....... |
| c140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 66 20 63 61 74 65 | ...................do.(setf.cate |
| c160 | 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 20 76 61 6c 75 65 73 29 29 29 | gory-setting-overrides.values))) |
| c180 | 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e | ))..(defun.prescient--completion |
| c1a0 | 2d 73 61 76 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 74 69 6e 67 73 20 28 29 0a 20 20 22 | -save-completion-settings.()..." |
| c1c0 | 53 61 76 65 20 74 68 65 20 6f 6c 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 69 6c 74 65 72 69 6e | Save.the.old.completion.filterin |
| c1e0 | 67 20 73 65 74 74 69 6e 67 73 2e 0a 0a 56 61 6c 75 65 73 20 61 72 65 20 73 61 76 65 64 20 69 6e | g.settings...Values.are.saved.in |
| c200 | 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 6c | .`prescient--completion-old-styl |
| c220 | 65 73 27 2c 0a 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d | es',.`prescient--completion-old- |
| c240 | 64 65 66 61 75 6c 74 73 27 2c 20 61 6e 64 0a 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c | defaults',.and.`prescient--compl |
| c260 | 65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 27 2c 20 77 68 69 63 68 20 61 72 65 20 | etion-old-overrides',.which.are. |
| c280 | 6c 69 73 74 65 64 20 69 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e | listed.in.`prescient--completion |
| c2a0 | 2d 6f 6c 64 2d 76 61 72 73 27 2e 22 0a 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 2d | -old-vars'."...(setq.prescient-- |
| c2c0 | 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 6c 65 73 20 63 6f 6d 70 6c 65 74 69 6f 6e | completion-old-styles.completion |
| c2e0 | 2d 73 74 79 6c 65 73 0a 20 20 20 20 20 20 20 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c | -styles.........prescient--compl |
| c300 | 65 74 69 6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c 74 73 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 | etion-old-defaults.completion-ca |
| c320 | 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 29 0a 0a 20 20 28 63 6c 2d 73 79 6d 62 6f 6c 2d 6d | tegory-defaults)....(cl-symbol-m |
| c340 | 61 63 72 6f 6c 65 74 0a 20 20 20 20 20 20 28 28 63 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67 | acrolet.......((category-setting |
| c360 | 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 73 | -overrides..........(alist-get.s |
| c380 | 65 74 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 | etting.....................(alis |
| c3a0 | 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f | t-get.category.completion-catego |
| c3c0 | 72 79 2d 6f 76 65 72 72 69 64 65 73 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 65 73 63 | ry-overrides)))).....(setq.presc |
| c3e0 | 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 | ient--completion-old-overrides.. |
| c400 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | .........(cl-loop............for |
| c420 | 20 28 63 61 74 65 67 6f 72 79 20 2e 20 6f 76 65 72 72 69 64 65 73 29 0a 20 20 20 20 20 20 20 20 | .(category...overrides)......... |
| c440 | 20 20 20 69 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f | ...in.prescient--completion-reco |
| c460 | 6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c | mmended-overrides............col |
| c480 | 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 63 61 74 65 67 6f 72 79 20 2c 40 28 63 | lect............`(,category.,@(c |
| c4a0 | 6c 2d 6c 6f 6f 70 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 | l-loop.......................... |
| c4c0 | 20 66 6f 72 20 28 73 65 74 74 69 6e 67 20 2e 20 5f 29 20 69 6e 20 6f 76 65 72 72 69 64 65 73 0a | .for.(setting..._).in.overrides. |
| c4e0 | 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 63 6f 6c 6c 65 63 | ..........................collec |
| c500 | 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 60 28 2c 73 | t...........................`(,s |
| c520 | 65 74 74 69 6e 67 20 2c 40 63 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 | etting.,@category-setting-overri |
| c540 | 64 65 73 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d | des)))))))..(cl-defun.prescient- |
| c560 | 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 73 74 6f 72 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 | -completion-restore-completion-s |
| c580 | 65 74 74 69 6e 67 73 0a 20 20 20 20 28 26 6b 65 79 20 28 73 74 79 6c 65 73 20 70 72 65 73 63 69 | ettings.....(&key.(styles.presci |
| c5a0 | 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 73 74 79 6c | ent--completion-recommended-styl |
| c5c0 | 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 72 69 64 65 73 20 70 72 65 73 63 69 65 | es)...........(overrides.prescie |
| c5e0 | 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 72 65 63 6f 6d 6d 65 6e 64 65 64 2d 6f 76 65 72 72 | nt--completion-recommended-overr |
| c600 | 69 64 65 73 29 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 68 65 20 6f 6c 64 20 73 65 74 74 69 6e | ides))..."Restore.the.old.settin |
| c620 | 67 73 2e 0a 0a 53 54 59 4c 45 53 20 69 73 20 77 68 61 74 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d | gs...STYLES.is.what.`completion- |
| c640 | 73 74 79 6c 65 73 27 20 77 61 73 20 63 68 61 6e 67 65 64 20 74 6f 2e 20 4f 56 45 52 52 49 44 45 | styles'.was.changed.to..OVERRIDE |
| c660 | 53 20 61 72 65 0a 74 68 65 20 6f 76 65 72 72 69 64 65 73 20 74 68 61 74 20 77 65 72 65 20 63 68 | S.are.the.overrides.that.were.ch |
| c680 | 61 6e 67 65 64 20 69 6e 20 60 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 | anged.in.`completion-category-ov |
| c6a0 | 65 72 72 69 64 65 73 27 2e 0a 0a 49 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 73 | errides'...If.the.current.values |
| c6c0 | 20 6f 66 20 74 68 65 20 73 65 74 74 69 6e 67 73 20 76 61 72 69 61 62 6c 65 73 20 64 6f 20 6e 6f | .of.the.settings.variables.do.no |
| c6e0 | 74 20 6d 61 74 63 68 20 74 68 65 0a 63 68 61 6e 67 65 73 20 6d 61 64 65 20 62 79 20 60 70 72 65 | t.match.the.changes.made.by.`pre |
| c700 | 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 70 70 6c 79 2d 63 6f 6d 70 6c 65 74 | scient--completion-apply-complet |
| c720 | 69 6f 6e 2d 73 65 74 74 69 6e 67 73 27 2c 0a 74 68 65 6e 20 77 65 20 64 6f 6e 27 74 20 72 65 73 | ion-settings',.then.we.don't.res |
| c740 | 74 6f 72 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 61 6c 75 65 73 20 61 6e 64 20 69 6e 73 | tore.the.previous.values.and.ins |
| c760 | 74 65 61 64 20 6f 6e 6c 79 20 74 72 79 20 74 6f 0a 72 65 6d 6f 76 65 20 75 73 61 67 65 73 20 6f | tead.only.try.to.remove.usages.o |
| c780 | 66 20 74 68 65 20 60 70 72 65 73 63 69 65 6e 74 27 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 74 79 | f.the.`prescient'.completion.sty |
| c7a0 | 6c 65 2e 22 0a 20 20 3b 3b 20 54 72 79 20 74 6f 20 72 65 76 65 72 74 20 62 61 63 6b 20 74 6f 20 | le."...;;.Try.to.revert.back.to. |
| c7c0 | 6f 6c 64 20 73 65 74 74 69 6e 67 73 2c 20 6f 72 20 61 74 20 6c 65 61 73 74 20 6e 6f 74 20 75 73 | old.settings,.or.at.least.not.us |
| c7e0 | 65 20 74 68 65 0a 20 20 3b 3b 20 60 70 72 65 73 63 69 65 6e 74 27 20 73 74 79 6c 65 2e 0a 20 20 | e.the...;;.`prescient'.style.... |
| c800 | 28 69 66 20 28 65 71 75 61 6c 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 73 20 73 74 79 | (if.(equal.completion-styles.sty |
| c820 | 6c 65 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c | les).......(setq.completion-styl |
| c840 | 65 73 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 73 74 79 | es.prescient--completion-old-sty |
| c860 | 6c 65 73 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 32 20 72 65 6d 71 20 27 70 72 65 73 63 69 | les).....(cl-callf2.remq.'presci |
| c880 | 65 6e 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 74 79 6c 65 73 29 29 0a 0a 20 20 28 63 6c 2d 6c | ent.completion-styles))....(cl-l |
| c8a0 | 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 2e 20 76 61 6c 29 20 69 6e 20 70 72 65 73 63 69 65 6e 74 | oop.for.(key...val).in.prescient |
| c8c0 | 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 64 65 66 61 75 6c 74 73 0a 20 20 20 20 20 20 | --completion-old-defaults....... |
| c8e0 | 20 20 20 20 20 75 6e 6c 65 73 73 20 28 61 6c 69 73 74 2d 67 65 74 20 6b 65 79 20 63 6f 6d 70 6c | .....unless.(alist-get.key.compl |
| c900 | 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 20 20 20 20 20 | etion-category-defaults)........ |
| c920 | 20 20 20 20 64 6f 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6b 65 79 20 63 6f 6d 70 | ....do.(setf.(alist-get.key.comp |
| c940 | 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 64 65 66 61 75 6c 74 73 29 20 76 61 6c 29 29 0a | letion-category-defaults).val)). |
| c960 | 0a 20 20 28 63 6c 2d 73 79 6d 62 6f 6c 2d 6d 61 63 72 6f 6c 65 74 0a 20 20 20 20 20 20 28 28 63 | ...(cl-symbol-macrolet.......((c |
| c980 | 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 | ategory-setting-overrides....... |
| c9a0 | 20 20 20 28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 73 65 74 74 69 6e 67 0a | ...(alist-get...........setting. |
| c9c0 | 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 63 6f | ..........(alist-get.category.co |
| c9e0 | 6d 70 6c 65 74 69 6f 6e 2d 63 61 74 65 67 6f 72 79 2d 6f 76 65 72 72 69 64 65 73 29 29 29 29 0a | mpletion-category-overrides)))). |
| ca00 | 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 3b 3b 20 54 68 65 73 65 20 74 77 6f 20 74 | ....(cl-loop......;;.These.two.t |
| ca20 | 72 65 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 73 74 72 75 63 74 | rees.should.have.the.same.struct |
| ca40 | 75 72 65 20 62 79 20 74 68 69 73 0a 20 20 20 20 20 3b 3b 20 70 6f 69 6e 74 2e 20 57 65 20 77 61 | ure.by.this......;;.point..We.wa |
| ca60 | 6e 74 20 74 6f 20 74 72 79 20 74 6f 20 61 76 6f 69 64 20 75 6e 64 6f 69 6e 67 20 61 6e 79 20 63 | nt.to.try.to.avoid.undoing.any.c |
| ca80 | 68 61 6e 67 65 73 20 74 68 61 74 20 77 65 72 65 0a 20 20 20 20 20 3b 3b 20 6d 61 64 65 20 61 66 | hanges.that.were......;;.made.af |
| caa0 | 74 65 72 20 74 68 65 20 6d 6f 64 65 20 77 61 73 20 65 6e 61 62 6c 65 64 2e 0a 20 20 20 20 20 66 | ter.the.mode.was.enabled.......f |
| cac0 | 6f 72 20 28 63 61 74 65 67 6f 72 79 20 2e 20 6e 65 77 2d 6f 76 65 72 72 69 64 65 73 29 0a 20 20 | or.(category...new-overrides)... |
| cae0 | 20 20 20 69 6e 20 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 66 6f 72 20 28 5f 20 2e 20 6f 6c | ...in.overrides......for.(_...ol |
| cb00 | 64 2d 6f 76 65 72 72 69 64 65 73 29 0a 20 20 20 20 20 69 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d | d-overrides)......in.prescient-- |
| cb20 | 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 64 6f | completion-old-overrides......do |
| cb40 | 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 73 65 74 74 69 6e 67 20 | .(cl-loop..........for.(setting. |
| cb60 | 2e 20 6e 65 77 2d 76 61 6c 75 65 73 29 20 69 6e 20 6e 65 77 2d 6f 76 65 72 72 69 64 65 73 0a 20 | ..new-values).in.new-overrides.. |
| cb80 | 20 20 20 20 20 20 20 20 66 6f 72 20 28 5f 20 2e 20 6f 6c 64 2d 76 61 6c 75 65 73 29 20 69 6e 20 | ........for.(_...old-values).in. |
| cba0 | 6f 6c 64 2d 6f 76 65 72 72 69 64 65 73 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c | old-overrides..........if.(equal |
| cbc0 | 20 63 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 20 6e 65 77 2d | .category-setting-overrides.new- |
| cbe0 | 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 66 20 63 61 74 65 67 6f | values)..........do.(setf.catego |
| cc00 | 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 65 72 72 69 64 65 73 20 6f 6c 64 2d 76 61 6c 75 65 73 29 | ry-setting-overrides.old-values) |
| cc20 | 0a 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 63 6c 2d 63 61 6c 6c 66 32 20 72 65 6d | ..........else.do.(cl-callf2.rem |
| cc40 | 71 20 27 70 72 65 73 63 69 65 6e 74 20 63 61 74 65 67 6f 72 79 2d 73 65 74 74 69 6e 67 2d 6f 76 | q.'prescient.category-setting-ov |
| cc60 | 65 72 72 69 64 65 73 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 70 72 65 73 | errides)))))..(defvar-local.pres |
| cc80 | 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 79 2d 6c | cient--completion-vars-already-l |
| cca0 | 6f 63 61 6c 20 6e 69 6c 0a 20 20 22 56 61 72 69 61 62 6c 65 73 20 6f 66 20 69 6e 74 65 72 65 73 | ocal.nil..."Variables.of.interes |
| ccc0 | 74 20 74 68 61 74 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 62 75 66 66 65 72 20 6c 6f 63 61 6c | t.that.were.already.buffer.local |
| cce0 | 2e 0a 0a 45 78 74 65 6e 73 69 6f 6e 20 70 61 63 6b 61 67 65 73 20 6d 69 67 68 74 20 77 69 73 68 | ...Extension.packages.might.wish |
| cd00 | 20 74 6f 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 6c 69 73 74 | .to.configure.the.variables.list |
| cd20 | 65 64 0a 69 6e 20 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 | ed.in.`prescient--completion-set |
| cd40 | 74 69 6e 67 73 2d 76 61 72 73 27 20 62 75 66 66 65 72 20 6c 6f 63 61 6c 6c 79 2c 20 77 68 6f 73 | tings-vars'.buffer.locally,.whos |
| cd60 | 65 0a 6c 6f 63 61 6c 6e 65 73 73 20 73 68 6f 75 6c 64 20 62 65 20 75 6e 64 6f 6e 65 20 77 68 65 | e.localness.should.be.undone.whe |
| cd80 | 6e 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6d 6f 64 65 20 69 73 20 64 69 73 61 62 6c 65 64 | n.the.extension.mode.is.disabled |
| cda0 | 2e 0a 54 68 69 73 20 6c 69 73 74 20 69 73 20 74 6f 20 70 72 65 76 65 6e 74 20 65 78 74 65 6e 73 | ..This.list.is.to.prevent.extens |
| cdc0 | 69 6f 6e 20 6d 6f 64 65 73 20 66 72 6f 6d 20 6b 69 6c 6c 69 6e 67 20 76 61 72 69 61 62 6c 65 73 | ion.modes.from.killing.variables |
| cde0 | 0a 74 68 61 74 20 77 65 72 65 20 61 6c 72 65 61 64 79 20 6c 6f 63 61 6c 20 77 68 65 6e 20 74 68 | .that.were.already.local.when.th |
| ce00 | 65 20 6d 6f 64 65 20 77 61 73 20 65 6e 61 62 6c 65 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 | e.mode.was.enabled.")..(defun.pr |
| ce20 | 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6d 61 6b 65 2d 76 61 72 73 2d 6c 6f | escient--completion-make-vars-lo |
| ce40 | 63 61 6c 20 28 29 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 73 65 74 74 69 6e 67 73 20 61 6e 64 20 | cal.()..."Make.the.settings.and. |
| ce60 | 72 65 73 74 6f 72 61 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 20 62 75 66 66 65 72 20 6c 6f 63 | restoration.variables.buffer.loc |
| ce80 | 61 6c 2e 0a 0a 52 65 63 6f 72 64 20 77 68 65 74 68 65 72 20 61 20 73 65 74 74 69 6e 67 73 20 76 | al...Record.whether.a.settings.v |
| cea0 | 61 72 69 61 62 6c 65 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 60 63 6f 6d 70 6c 65 74 69 6f | ariable.(for.example,.`completio |
| cec0 | 6e 2d 73 74 79 6c 65 73 27 29 20 77 61 73 20 61 6c 72 65 61 64 79 20 6c 6f 63 61 6c 20 69 6e 0a | n-styles').was.already.local.in. |
| cee0 | 60 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 | `prescient--completion-vars-alre |
| cf00 | 61 64 79 2d 6c 6f 63 61 6c 27 2e 0a 0a 54 68 69 73 20 6d 75 73 74 20 68 61 70 70 65 6e 20 62 65 | ady-local'...This.must.happen.be |
| cf20 | 66 6f 72 65 20 73 74 6f 72 69 6e 67 20 6f 6c 64 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 6d 61 70 | fore.storing.old.values."...(map |
| cf40 | 63 20 23 27 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 70 72 65 73 63 69 65 6e | c.#'make-local-variable.prescien |
| cf60 | 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 6c 64 2d 76 61 72 73 29 0a 20 20 28 64 6f 6c 69 73 | t--completion-old-vars)...(dolis |
| cf80 | 74 20 28 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 74 | t.(var.prescient--completion-set |
| cfa0 | 74 69 6e 67 73 2d 76 61 72 73 29 0a 20 20 20 20 28 69 66 20 28 6c 6f 63 61 6c 2d 76 61 72 69 61 | tings-vars).....(if.(local-varia |
| cfc0 | 62 6c 65 2d 70 20 76 61 72 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 76 61 72 20 70 72 65 | ble-p.var).........(push.var.pre |
| cfe0 | 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 79 2d | scient--completion-vars-already- |
| d000 | 6c 6f 63 61 6c 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c | local).......(make-local-variabl |
| d020 | 65 20 76 61 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d | e.var))))..(defun.prescient--com |
| d040 | 70 6c 65 74 69 6f 6e 2d 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 73 20 28 29 0a 20 20 22 4b 69 | pletion-kill-local-vars.()..."Ki |
| d060 | 6c 6c 20 6c 6f 63 61 6c 20 73 65 74 74 69 6e 67 73 20 61 6e 64 20 72 65 73 74 6f 72 61 74 69 6f | ll.local.settings.and.restoratio |
| d080 | 6e 20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 44 6f 6e 27 74 20 6b 69 6c 6c 20 74 68 65 20 76 61 72 | n.variables...Don't.kill.the.var |
| d0a0 | 69 61 62 6c 65 73 20 69 66 20 74 68 65 79 20 61 72 65 20 6d 65 6d 62 65 72 73 20 6f 66 0a 60 70 | iables.if.they.are.members.of.`p |
| d0c0 | 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 | rescient--completion-vars-alread |
| d0e0 | 79 2d 6c 6f 63 61 6c 27 2e 0a 0a 54 68 69 73 20 6d 75 73 74 20 68 61 70 70 65 6e 20 61 66 74 65 | y-local'...This.must.happen.afte |
| d100 | 72 20 72 65 73 74 6f 72 69 6e 67 20 6f 6c 64 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 64 6f 6c 69 | r.restoring.old.values."...(doli |
| d120 | 73 74 20 28 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 65 | st.(var.prescient--completion-se |
| d140 | 74 74 69 6e 67 73 2d 76 61 72 73 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 76 | ttings-vars).....(unless.(memq.v |
| d160 | 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c | ar.prescient--completion-vars-al |
| d180 | 72 65 61 64 79 2d 6c 6f 63 61 6c 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 | ready-local).......(kill-local-v |
| d1a0 | 61 72 69 61 62 6c 65 20 76 61 72 29 29 29 0a 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 | ariable.var)))...(setq.prescient |
| d1c0 | 2d 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 76 61 72 73 2d 61 6c 72 65 61 64 79 2d 6c 6f 63 61 6c 20 | --completion-vars-already-local. |
| d1e0 | 6e 69 6c 29 29 0a 0a 3b 3b 3b 3b 20 54 6f 67 67 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 0a 3b 3b | nil))..;;;;.Toggling.commands.;; |
| d200 | 20 54 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 | .These.commands.are.meant.to.be. |
| d220 | 62 6f 75 6e 64 20 69 6e 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 55 49 2c 20 69 6e 20 77 68 69 | bound.in.a.completion.UI,.in.whi |
| d240 | 63 68 0a 3b 3b 20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 20 | ch.;;.`prescient-filter-method'. |
| d260 | 63 61 6e 20 62 65 20 62 6f 75 6e 64 20 62 75 66 66 65 72 20 6c 6f 63 61 6c 6c 79 2e 0a 0a 28 64 | can.be.bound.buffer.locally...(d |
| d280 | 65 66 63 6f 6e 73 74 20 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67 67 6c 65 2d 76 61 72 73 0a 20 | efconst.prescient--toggle-vars.. |
| d2a0 | 20 27 28 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 20 70 72 65 73 | .'(.prescient-filter-method.pres |
| d2c0 | 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 70 72 65 73 | cient-use-case-folding......pres |
| d2e0 | 63 69 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 29 0a 20 20 22 56 61 72 69 61 | cient-use-char-folding)..."Varia |
| d300 | 62 6c 65 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 63 68 61 6e 67 65 64 20 6c 6f 63 61 6c 6c 79 | bles.that.can.be.changed.locally |
| d320 | 20 62 79 20 74 6f 67 67 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 41 6e 20 65 78 70 6c 69 | .by.toggling.commands...An.expli |
| d340 | 63 69 74 20 6c 69 73 74 20 69 73 20 6e 65 65 64 65 64 20 66 6f 72 20 43 6f 72 66 75 2e 22 29 0a | cit.list.is.needed.for.Corfu."). |
| d360 | 0a 28 64 65 66 76 61 72 20 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67 67 6c 65 2d 72 65 66 72 65 | .(defvar.prescient--toggle-refre |
| d380 | 73 68 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 73 20 74 6f | sh-functions.nil..."Functions.to |
| d3a0 | 20 72 75 6e 20 74 6f 20 66 6f 72 63 65 20 72 65 66 72 65 73 68 69 6e 67 20 74 68 65 20 63 6f 6d | .run.to.force.refreshing.the.com |
| d3c0 | 70 6c 65 74 69 6f 6e 20 55 49 2e 0a 46 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 61 64 64 65 64 20 | pletion.UI..Functions.are.added. |
| d3e0 | 62 79 20 74 68 65 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 70 61 63 6b 61 67 65 73 2e 22 29 0a 0a | by.the.integration.packages.").. |
| d400 | 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 | (defun.prescient--toggle-refresh |
| d420 | 20 28 29 0a 20 20 22 52 75 6e 20 74 68 65 20 55 49 20 72 65 66 72 65 73 68 20 66 75 6e 63 74 69 | .()..."Run.the.UI.refresh.functi |
| d440 | 6f 6e 73 2e 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 65 73 63 69 65 6e 74 2d 2d 74 | ons."...(run-hooks.'prescient--t |
| d460 | 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 2d 66 75 6e 63 74 69 6f 6e 73 29 29 0a 0a 28 64 65 66 76 | oggle-refresh-functions))..(defv |
| d480 | 61 72 20 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d 61 70 20 28 6d 61 6b 65 2d 73 70 | ar.prescient-toggle-map.(make-sp |
| d4a0 | 61 72 73 65 2d 6b 65 79 6d 61 70 29 0a 20 20 22 54 6f 67 67 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64 | arse-keymap)..."Toggling.command |
| d4c0 | 73 20 66 6f 72 20 60 70 72 65 73 63 69 65 6e 74 2e 65 6c 27 20 66 69 6c 74 65 72 73 20 69 6e 20 | s.for.`prescient.el'.filters.in. |
| d4e0 | 6d 69 6e 69 62 75 66 66 65 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 54 68 69 73 20 6d 61 70 20 | minibuffer.completion..This.map. |
| d500 | 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 6f 75 6e 64 20 62 79 20 74 68 65 20 69 6e | is.automatically.bound.by.the.in |
| d520 | 74 65 67 72 61 74 69 6f 6e 20 70 61 63 6b 61 67 65 73 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 | tegration.packages.")..;;;###aut |
| d540 | 6f 6c 6f 61 64 0a 28 64 65 66 6d 61 63 72 6f 20 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61 74 65 | oload.(defmacro.prescient-create |
| d560 | 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 28 66 69 | -and-bind-toggle-command.....(fi |
| d580 | 6c 74 65 72 2d 74 79 70 65 20 6b 62 64 2d 73 74 72 69 6e 67 29 0a 20 20 22 43 72 65 61 74 65 20 | lter-type.kbd-string)..."Create. |
| d5a0 | 61 6e 64 20 62 69 6e 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 65 | and.bind.a.command.to.toggle.the |
| d5c0 | 20 75 73 65 20 6f 66 20 61 20 66 69 6c 74 65 72 20 6d 65 74 68 6f 64 2e 0a 0a 54 68 65 20 63 72 | .use.of.a.filter.method...The.cr |
| d5e0 | 65 61 74 65 64 20 63 6f 6d 6d 61 6e 64 20 74 6f 67 67 6c 65 73 20 74 68 65 20 46 49 4c 54 45 52 | eated.command.toggles.the.FILTER |
| d600 | 2d 54 59 50 45 20 6d 65 74 68 6f 64 20 6f 6e 0a 6f 72 20 6f 66 66 20 62 75 66 66 65 72 20 6c 6f | -TYPE.method.on.or.off.buffer.lo |
| d620 | 63 61 6c 6c 79 2c 20 61 6e 64 20 64 6f 65 73 6e 27 74 20 61 66 66 65 63 74 20 74 68 65 20 64 65 | cally,.and.doesn't.affect.the.de |
| d640 | 66 61 75 6c 74 0a 62 65 68 61 76 69 6f 72 20 28 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 60 70 | fault.behavior.(determined.by.`p |
| d660 | 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 29 2e 0a 0a 54 68 65 20 63 | rescient-filter-method')...The.c |
| d680 | 72 65 61 74 65 64 20 63 6f 6d 6d 61 6e 64 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 4b 42 44 2d 53 | reated.command.is.bound.to.KBD-S |
| d6a0 | 54 52 49 4e 47 20 69 6e 0a 60 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d 61 70 27 2e | TRING.in.`prescient-toggle-map'. |
| d6c0 | 20 54 68 69 73 20 6d 61 70 20 69 73 20 69 74 73 65 6c 66 20 62 6f 75 6e 64 20 74 6f 20 60 4d 2d | .This.map.is.itself.bound.to.`M- |
| d6e0 | 73 27 0a 69 6e 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 75 66 66 65 72 20 77 68 65 6e | s'.in.the.completion.buffer.when |
| d700 | 20 60 73 65 6c 65 63 74 72 75 6d 2d 70 72 65 73 63 69 65 6e 74 2d 6d 6f 64 65 27 20 6f 72 0a 60 | .`selectrum-prescient-mode'.or.` |
| d720 | 76 65 72 74 69 63 6f 2d 70 72 65 73 63 69 65 6e 74 2d 6d 6f 64 65 27 20 61 72 65 20 65 6e 61 62 | vertico-prescient-mode'.are.enab |
| d740 | 6c 65 64 2e 0a 0a 46 49 4c 54 45 52 2d 54 59 50 45 20 69 73 20 61 6e 20 75 6e 71 75 6f 74 65 64 | led...FILTER-TYPE.is.an.unquoted |
| d760 | 20 73 79 6d 62 6f 6c 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 0a 60 70 72 65 | .symbol.that.can.be.used.in.`pre |
| d780 | 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 2e 20 4b 42 44 2d 53 54 52 49 4e | scient-filter-method'..KBD-STRIN |
| d7a0 | 47 20 69 73 20 61 20 73 74 72 69 6e 67 20 74 68 61 74 20 63 61 6e 20 62 65 0a 70 61 73 73 65 64 | G.is.a.string.that.can.be.passed |
| d7c0 | 20 74 6f 20 60 6b 62 64 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 74 65 72 2d 74 79 70 | .to.`kbd'."...(let*.((filter-typ |
| d7e0 | 65 2d 6e 61 6d 65 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 66 69 6c 74 65 72 2d 74 79 70 65 29 | e-name.(symbol-name.filter-type) |
| d800 | 29 29 0a 20 20 20 20 60 28 64 65 66 69 6e 65 2d 6b 65 79 20 70 72 65 73 63 69 65 6e 74 2d 74 6f | )).....`(define-key.prescient-to |
| d820 | 67 67 6c 65 2d 6d 61 70 20 28 6b 62 64 20 2c 6b 62 64 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 | ggle-map.(kbd.,kbd-string)...... |
| d840 | 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 75 6e 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e | ............(defun.,(intern.(con |
| d860 | 63 61 74 20 22 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 22 20 66 69 6c 74 65 72 2d 74 | cat."prescient-toggle-".filter-t |
| d880 | 79 70 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ype-name))...................... |
| d8a0 | 28 61 72 67 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 72 67 20 6c | (arg)....................;.Arg.l |
| d8c0 | 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 0a | ist....................,(format. |
| d8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 54 6f 67 67 6c 65 20 74 68 65 | ....................."Toggle.the |
| d900 | 20 5c 22 25 73 5c 22 20 66 69 6c 74 65 72 20 6f 6e 20 6f 72 20 6f 66 66 2e 20 57 69 74 68 20 41 | .\"%s\".filter.on.or.off..With.A |
| d920 | 52 47 2c 20 75 73 65 20 6f 6e 6c 79 20 74 68 69 73 20 66 69 6c 74 65 72 2e 0a 54 68 69 73 20 74 | RG,.use.only.this.filter..This.t |
| d940 | 6f 67 67 6c 69 6e 67 20 6f 6e 6c 79 20 61 66 66 65 63 74 73 20 66 69 6c 74 65 72 69 6e 67 20 69 | oggling.only.affects.filtering.i |
| d960 | 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 0a 62 75 66 66 65 72 2e | n.the.current.completion.buffer. |
| d980 | 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 61 66 66 65 63 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 | .It.does.not.affect.the.default. |
| d9a0 | 62 65 68 61 76 69 6f 72 20 28 64 65 74 65 72 6d 69 6e 65 64 20 62 79 0a 60 70 72 65 73 63 69 65 | behavior.(determined.by.`prescie |
| d9c0 | 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 29 2e 22 20 20 66 69 6c 74 65 72 2d 74 79 70 | nt-filter-method')."..filter-typ |
| d9e0 | 65 2d 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 69 6e 74 65 | e-name)....................(inte |
| da00 | 72 61 63 74 69 76 65 20 22 50 22 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ractive."P").................... |
| da20 | 20 3b 3b 20 4d 61 6b 65 20 60 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f | .;;.Make.`prescient-filter-metho |
| da40 | 64 27 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 | d'.buffer-local.in.the.......... |
| da60 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 75 66 66 65 72 2e 20 | ..........;;.completion.buffer.. |
| da80 | 57 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 63 68 | We.don't.want.to.accidentally.ch |
| daa0 | 61 6e 67 65 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 | ange.the....................;;.u |
| dac0 | 73 65 72 27 73 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 20 20 | ser's.default.behavior.......... |
| dae0 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 | ...........(make-local-variable. |
| db00 | 27 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 0a 20 20 20 20 20 | 'prescient-filter-method)....... |
| db20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 | ..............(if.arg........... |
| db40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 75 73 65 72 20 70 72 6f 76 69 64 65 73 | .............;;.If.user.provides |
| db60 | 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 73 65 74 20 66 69 6c 74 65 72 69 6e | .a.prefix.argument,.set.filterin |
| db80 | 67 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 | g.to........................;;.b |
| dba0 | 65 20 61 20 6c 69 73 74 20 6f 66 20 6f 6e 6c 79 20 6f 6e 65 20 66 69 6c 74 65 72 20 74 79 70 65 | e.a.list.of.only.one.filter.type |
| dbc0 | 2e 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 73 65 74 71 20 70 | .........................(setq.p |
| dbe0 | 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 20 27 28 2c 66 69 6c 74 65 72 | rescient-filter-method.'(,filter |
| dc00 | 2d 74 79 70 65 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | -type)).......................;; |
| dc20 | 20 4f 74 68 65 72 77 69 73 65 2c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 | .Otherwise,.if.the.current.setti |
| dc40 | 6e 67 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng.is.a.function,............... |
| dc60 | 20 20 20 20 20 20 20 3b 3b 20 65 76 61 6c 75 61 74 65 20 69 74 20 74 6f 20 67 65 74 20 74 68 65 | .......;;.evaluate.it.to.get.the |
| dc80 | 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 | .value.......................(wh |
| dca0 | 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d | en.(functionp.prescient-filter-m |
| dcc0 | 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | ethod)........................(s |
| dce0 | 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 0a 20 20 20 20 | etq.prescient-filter-method..... |
| dd00 | 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 66 75 6e 63 61 6c | .........................(funcal |
| dd20 | 6c 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 29 29 0a 0a 20 20 | l.prescient-filter-method))).... |
| dd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 6e 65 65 64 | ...................;;.If.we.need |
| dd60 | 20 74 6f 20 61 64 64 20 6f 72 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 2c | .to.add.or.remove.from.the.list, |
| dd80 | 20 6d 61 6b 65 20 73 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .make.sure...................... |
| dda0 | 3b 3b 20 69 74 27 73 20 61 63 74 75 61 6c 6c 79 20 61 20 6c 69 73 74 20 61 6e 64 20 6e 6f 74 20 | ;;.it's.actually.a.list.and.not. |
| ddc0 | 6a 75 73 74 20 61 20 73 79 6d 62 6f 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | just.a.symbol................... |
| dde0 | 20 20 20 20 28 77 68 65 6e 20 28 73 79 6d 62 6f 6c 70 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c | ....(when.(symbolp.prescient-fil |
| de00 | 74 65 72 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ter-method)..................... |
| de20 | 20 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 | ...(setq.prescient-filter-method |
| de40 | 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 28 6c | ..............................(l |
| de60 | 69 73 74 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 29 29 0a 0a | ist.prescient-filter-method))).. |
| de80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 | .....................(if.(equal. |
| dea0 | 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 20 27 28 2c 66 69 6c 74 65 | prescient-filter-method.'(,filte |
| dec0 | 72 2d 74 79 70 65 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 | r-type))........................ |
| dee0 | 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 75 73 65 72 20 64 6f 65 73 6e 27 74 20 | ..;;.Make.sure.the.user.doesn't. |
| df00 | 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 64 69 73 61 62 6c 65 20 61 6c 6c 0a 20 20 20 20 20 20 20 | accidentally.disable.all........ |
| df20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 74 65 72 69 6e 67 2e 0a | ..................;;.filtering.. |
| df40 | 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 75 73 65 72 2d 65 | .........................(user-e |
| df60 | 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c | rror..........................., |
| df80 | 28 63 6f 6e 63 61 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 | (concat......................... |
| dfa0 | 20 20 20 20 22 50 72 65 73 63 69 65 6e 74 2e 65 6c 3a 20 43 61 6e 27 74 20 74 6f 67 67 6c 65 20 | ...."Prescient.el:.Can't.toggle. |
| dfc0 | 6f 66 66 20 6f 6e 6c 79 20 61 63 74 69 76 65 20 66 69 6c 74 65 72 20 6d 65 74 68 6f 64 3a 20 22 | off.only.active.filter.method:." |
| dfe0 | 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 66 69 6c | .............................fil |
| e000 | 74 65 72 2d 74 79 70 65 2d 6e 61 6d 65 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ter-type-name))................. |
| e020 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d | ........(setq.prescient-filter-m |
| e040 | 65 74 68 6f 64 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 | ethod........................... |
| e060 | 20 20 20 28 69 66 20 28 6d 65 6d 71 20 27 2c 66 69 6c 74 65 72 2d 74 79 70 65 20 70 72 65 73 63 | ...(if.(memq.',filter-type.presc |
| e080 | 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ient-filter-method)............. |
| e0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 76 65 6e 20 77 68 65 | .....................;;.Even.whe |
| e0c0 | 6e 20 72 75 6e 6e 69 6e 67 20 60 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 27 2c | n.running.`make-local-variable', |
| e0e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| e100 | 20 20 3b 3b 20 69 74 20 73 65 65 6d 73 20 60 64 65 6c 71 27 20 6d 69 67 68 74 20 73 74 69 6c 6c | ..;;.it.seems.`delq'.might.still |
| e120 | 20 6d 6f 64 69 66 79 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .modify.the..................... |
| e140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2c 20 73 6f | .............;;.global.value,.so |
| e160 | 20 77 65 20 75 73 65 20 60 72 65 6d 71 27 20 68 65 72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 | .we.use.`remq'.here............. |
| e180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 71 20 27 2c 66 69 | ......................(remq.',fi |
| e1a0 | 6c 74 65 72 2d 74 79 70 65 20 70 72 65 73 63 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f | lter-type.prescient-filter-metho |
| e1c0 | 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d).............................. |
| e1e0 | 20 20 28 63 6f 6e 73 20 27 2c 66 69 6c 74 65 72 2d 74 79 70 65 20 70 72 65 73 63 69 65 6e 74 2d | ..(cons.',filter-type.prescient- |
| e200 | 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 | filter-method))))).............. |
| e220 | 20 20 20 20 20 20 20 3b 3b 20 41 66 74 65 72 20 63 68 61 6e 67 69 6e 67 20 60 70 72 65 73 63 69 | .......;;.After.changing.`presci |
| e240 | 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 27 2c 20 74 65 6c 6c 20 74 68 65 20 75 73 65 | ent-filter-method',.tell.the.use |
| e260 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6e 65 77 20 | r....................;;.the.new. |
| e280 | 76 61 6c 75 65 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 55 49 27 73 20 64 69 73 70 6c 61 | value.and.update.the.UI's.displa |
| e2a0 | 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | y.....................(message." |
| e2c0 | 50 72 65 73 63 69 65 6e 74 2e 65 6c 20 66 69 6c 74 65 72 20 69 73 20 6e 6f 77 20 25 73 22 0a 20 | Prescient.el.filter.is.now.%s".. |
| e2e0 | 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 70 72 65 73 63 | ...........................presc |
| e300 | 69 65 6e 74 2d 66 69 6c 74 65 72 2d 6d 65 74 68 6f 64 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 | ient-filter-method)............. |
| e320 | 20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 20 22 65 78 68 69 62 69 74 22 20 66 75 6e 63 74 69 | ........;;.Call."exhibit".functi |
| e340 | 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 6e | on.....................(prescien |
| e360 | 74 2d 2d 74 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 29 29 29 29 29 0a 0a 28 70 72 65 73 63 69 65 | t--toggle-refresh)))))..(prescie |
| e380 | 6e 74 2d 63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e | nt-create-and-bind-toggle-comman |
| e3a0 | 64 20 61 6e 63 68 6f 72 65 64 20 22 61 22 29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61 74 | d.anchored."a").(prescient-creat |
| e3c0 | 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 66 75 7a 7a 79 20 | e-and-bind-toggle-command.fuzzy. |
| e3e0 | 22 66 22 29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d | "f").(prescient-create-and-bind- |
| e400 | 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 69 6e 69 74 69 61 6c 69 73 6d 20 22 69 22 29 0a 28 | toggle-command.initialism."i").( |
| e420 | 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 | prescient-create-and-bind-toggle |
| e440 | 2d 63 6f 6d 6d 61 6e 64 20 6c 69 74 65 72 61 6c 20 22 6c 22 29 0a 28 70 72 65 73 63 69 65 6e 74 | -command.literal."l").(prescient |
| e460 | 2d 63 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 | -create-and-bind-toggle-command. |
| e480 | 6c 69 74 65 72 61 6c 2d 70 72 65 66 69 78 20 22 50 22 29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 | literal-prefix."P").(prescient-c |
| e4a0 | 72 65 61 74 65 2d 61 6e 64 2d 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 70 72 | reate-and-bind-toggle-command.pr |
| e4c0 | 65 66 69 78 20 22 70 22 29 0a 28 70 72 65 73 63 69 65 6e 74 2d 63 72 65 61 74 65 2d 61 6e 64 2d | efix."p").(prescient-create-and- |
| e4e0 | 62 69 6e 64 2d 74 6f 67 67 6c 65 2d 63 6f 6d 6d 61 6e 64 20 72 65 67 65 78 70 20 22 72 22 29 0a | bind-toggle-command.regexp."r"). |
| e500 | 0a 28 64 65 66 75 6e 20 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 63 68 61 72 2d 66 6f | .(defun.prescient-toggle-char-fo |
| e520 | 6c 64 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 66 6f 6c 64 69 6e | ld.()..."Toggle.character.foldin |
| e540 | 67 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 75 66 66 | g.in.the.current.completion.buff |
| e560 | 65 72 2e 0a 0a 53 65 65 20 74 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 60 70 72 65 73 63 69 | er...See.the.user.option.`presci |
| e580 | 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 27 2e 22 0a 20 20 28 69 6e 74 65 72 | ent-use-char-folding'."...(inter |
| e5a0 | 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 70 72 65 73 63 69 65 6e 74 2d | active)...(setq-local.prescient- |
| e5c0 | 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | use-char-folding...............( |
| e5e0 | 6e 6f 74 20 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 29 29 | not.prescient-use-char-folding)) |
| e600 | 0a 20 20 28 6d 65 73 73 61 67 65 20 22 43 68 61 72 61 63 74 65 72 20 66 6f 6c 64 69 6e 67 20 74 | ...(message."Character.folding.t |
| e620 | 6f 67 67 6c 65 64 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 65 73 63 69 | oggled.%s"............(if.presci |
| e640 | 65 6e 74 2d 75 73 65 2d 63 68 61 72 2d 66 6f 6c 64 69 6e 67 20 22 6f 6e 22 20 22 6f 66 66 22 29 | ent-use-char-folding."on"."off") |
| e660 | 29 0a 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f 67 67 6c 65 2d 72 65 66 72 65 73 68 29 29 | )...(prescient--toggle-refresh)) |
| e680 | 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 62 69 6e 64 69 6e 67 20 75 73 | ..;;.This.is.the.same.binding.us |
| e6a0 | 65 64 20 62 79 20 60 69 73 65 61 72 63 68 2d 74 6f 67 67 6c 65 2d 63 68 61 72 2d 66 6f 6c 64 27 | ed.by.`isearch-toggle-char-fold' |
| e6c0 | 2e 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d | ..(define-key.prescient-toggle-m |
| e6e0 | 61 70 20 28 6b 62 64 20 22 27 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 65 73 63 | ap.(kbd."'").............#'presc |
| e700 | 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 63 68 61 72 2d 66 6f 6c 64 29 0a 0a 28 64 65 66 75 6e 20 70 | ient-toggle-char-fold)..(defun.p |
| e720 | 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 63 61 73 65 2d 66 6f 6c 64 20 28 29 0a 20 20 22 | rescient-toggle-case-fold.()..." |
| e740 | 54 6f 67 67 6c 65 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 20 69 6e 20 74 68 65 20 63 75 72 72 65 | Toggle.case.folding.in.the.curre |
| e760 | 6e 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 60 70 72 65 73 63 | nt.completion.buffer...If.`presc |
| e780 | 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 27 20 69 73 20 73 65 74 20 74 6f | ient-use-case-folding'.is.set.to |
| e7a0 | 20 60 73 6d 61 72 74 27 2c 20 74 68 65 6e 20 74 68 69 73 0a 74 6f 67 67 6c 65 73 20 77 68 65 74 | .`smart',.then.this.toggles.whet |
| e7c0 | 68 65 72 20 74 6f 20 75 73 65 20 73 6d 61 72 74 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 20 6f 72 | her.to.use.smart.case.folding.or |
| e7e0 | 20 6e 6f 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 74 68 69 | .no.case.folding..Otherwise,.thi |
| e800 | 73 20 74 6f 67 67 6c 65 73 20 62 65 74 77 65 65 6e 20 6e 6f 72 6d 61 6c 20 63 61 73 65 20 66 6f | s.toggles.between.normal.case.fo |
| e820 | 6c 64 69 6e 67 20 61 6e 64 20 6e 6f 20 63 61 73 65 0a 66 6f 6c 64 69 6e 67 2e 22 0a 20 20 28 69 | lding.and.no.case.folding."...(i |
| e840 | 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 70 72 65 73 63 69 | nteractive)...(setq-local.presci |
| e860 | 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | ent-use-case-folding............ |
| e880 | 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 63 69 65 | ...(cond................(prescie |
| e8a0 | 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f 6c 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 | nt-use-case-folding............. |
| e8c0 | 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 61 73 65 20 66 6f 6c 64 69 6e 67 20 74 6f 67 67 6c | ....(message."Case.folding.toggl |
| e8e0 | 65 64 20 6f 66 66 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 | ed.off").................nil)... |
| e900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 28 64 65 66 61 75 6c 74 2d 74 6f 70 6c 65 | .............((eq.(default-tople |
| e920 | 76 65 6c 2d 76 61 6c 75 65 20 27 70 72 65 73 63 69 65 6e 74 2d 75 73 65 2d 63 61 73 65 2d 66 6f | vel-value.'prescient-use-case-fo |
| e940 | 6c 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 6d 61 72 | lding).....................'smar |
| e960 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 6d 61 | t).................(message."Sma |
| e980 | 72 74 20 63 61 73 65 20 66 6f 6c 64 69 6e 67 20 74 6f 67 67 6c 65 64 20 6f 6e 22 29 0a 20 20 20 | rt.case.folding.toggled.on").... |
| e9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 6d 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .............'smart)............ |
| e9c0 | 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | ....(t.................(message. |
| e9e0 | 22 43 61 73 65 20 66 6f 6c 64 69 6e 67 20 74 6f 67 67 6c 65 64 20 6f 6e 22 29 0a 20 20 20 20 20 | "Case.folding.toggled.on")...... |
| ea00 | 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 70 72 65 73 63 69 65 6e 74 2d 2d 74 6f | ...........t)))...(prescient--to |
| ea20 | 67 67 6c 65 2d 72 65 66 72 65 73 68 29 29 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 74 68 65 20 73 | ggle-refresh))..;;.This.is.the.s |
| ea40 | 61 6d 65 20 62 69 6e 64 69 6e 67 20 75 73 65 64 20 62 79 20 60 69 73 65 61 72 63 68 2d 74 6f 67 | ame.binding.used.by.`isearch-tog |
| ea60 | 67 6c 65 2d 63 61 73 65 2d 66 6f 6c 64 27 2e 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 70 72 65 73 | gle-case-fold'..(define-key.pres |
| ea80 | 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 6d 61 70 20 28 6b 62 64 20 22 63 22 29 0a 20 20 20 20 20 | cient-toggle-map.(kbd."c")...... |
| eaa0 | 20 20 20 20 20 20 20 23 27 70 72 65 73 63 69 65 6e 74 2d 74 6f 67 67 6c 65 2d 63 61 73 65 2d 66 | .......#'prescient-toggle-case-f |
| eac0 | 6f 6c 64 29 0a 0a 0a 3b 3b 3b 3b 20 43 6c 6f 73 69 6e 67 20 72 65 6d 61 72 6b 73 0a 28 70 72 6f | old)...;;;;.Closing.remarks.(pro |
| eae0 | 76 69 64 65 20 27 70 72 65 73 63 69 65 6e 74 29 0a 0a 3b 3b 3b 20 70 72 65 73 63 69 65 6e 74 2e | vide.'prescient)..;;;.prescient. |
| eb00 | 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.ends.here.................... |
| eb20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eb40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eb60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eb80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ebc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ebe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ec00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ec20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ec40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ec60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ec80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ecc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ece0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ed00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ed20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ed40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ed60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ed80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| edc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ede0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ee00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ee20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ee40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ee60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ee80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| eee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ef00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ef20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ef40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ef60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ef80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| efa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| efc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| efe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |