summaryrefslogtreecommitdiff
path: root/.localrepo/projectile-2.9.1.tar
blob: 2b7d9ace1ff971fa2b2663d33732e8ca06a22260 (plain)
ofshex dumpascii
0000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 projectile-2.9.1/...............
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 33 32 32 00 20 35 00 00 00 0000000.00000000000.012322..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 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 00 00 00 00 00 00 00 projectile-2.9.1/.github/.......
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
0280 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 32 00 20 35 00 00 00 0000000.00000000000.013662..5...
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 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 49 53 53 55 45 5f 54 projectile-2.9.1/.github/ISSUE_T
0420 45 4d 50 4c 41 54 45 2e 6d 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EMPLATE.md......................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 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
0480 30 30 30 31 34 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 36 33 00 20 30 00 00 00 0001401.00000000000.016363..0...
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 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...................
0520 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...................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 2a 55 73 65 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 62 65 6c 6f 77 20 77 68 65 6e 20 72 65 70 *Use.the.template.below.when.rep
0620 6f 72 74 69 6e 67 20 62 75 67 73 2e 20 50 6c 65 61 73 65 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 orting.bugs..Please,.make.sure.t
0640 68 61 74 0a 79 6f 75 27 72 65 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 73 74 hat.you're.running.the.latest.st
0660 61 62 6c 65 20 50 72 6f 6a 65 63 74 69 6c 65 20 61 6e 64 20 74 68 61 74 20 74 68 65 20 70 72 6f able.Projectile.and.that.the.pro
0680 62 6c 65 6d 20 79 6f 75 27 72 65 20 72 65 70 6f 72 74 69 6e 67 0a 68 61 73 6e 27 74 20 62 65 65 blem.you're.reporting.hasn't.bee
06a0 6e 20 72 65 70 6f 72 74 65 64 20 28 61 6e 64 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 66 69 78 65 n.reported.(and.potentially.fixe
06c0 64 29 20 61 6c 72 65 61 64 79 2e 2a 0a 0a 2a 2a 52 65 6d 6f 76 65 20 61 6c 6c 20 6f 66 20 74 68 d).already.*..**Remove.all.of.th
06e0 65 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 74 65 78 74 20 69 6e 20 79 6f 75 72 20 66 69 6e 61 6c e.placeholder.text.in.your.final
0700 20 72 65 70 6f 72 74 21 2a 2a 0a 0a 23 23 20 45 78 70 65 63 74 65 64 20 62 65 68 61 76 69 6f 72 .report!**..##.Expected.behavior
0720 0a 0a 23 23 20 41 63 74 75 61 6c 20 62 65 68 61 76 69 6f 72 0a 0a 23 23 20 53 74 65 70 73 20 74 ..##.Actual.behavior..##.Steps.t
0740 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 70 72 6f 62 6c 65 6d 0a 0a 2a 54 68 69 73 20 69 o.reproduce.the.problem..*This.i
0760 73 20 65 78 74 72 65 6d 65 6c 79 20 69 6d 70 6f 72 74 61 6e 74 21 20 50 72 6f 76 69 64 69 6e 67 s.extremely.important!.Providing
0780 20 75 73 20 77 69 74 68 20 61 20 72 65 6c 69 61 62 6c 65 20 77 61 79 20 74 6f 20 72 65 70 72 6f .us.with.a.reliable.way.to.repro
07a0 64 75 63 65 0a 61 20 70 72 6f 62 6c 65 6d 20 77 69 6c 6c 20 65 78 70 65 64 69 74 65 20 69 74 73 duce.a.problem.will.expedite.its
07c0 20 73 6f 6c 75 74 69 6f 6e 2e 2a 0a 0a 23 23 20 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 26 20 56 65 .solution.*..##.Environment.&.Ve
07e0 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 23 23 23 20 50 72 6f 6a 65 63 74 69 6c rsion.information..###.Projectil
0800 65 20 76 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 2a 49 6e 63 6c 75 64 65 20 e.version.information..*Include.
0820 68 65 72 65 20 74 68 65 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 64 69 73 70 6c 61 79 65 here.the.version.string.displaye
0840 64 20 62 79 20 60 4d 2d 78 0a 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 69 6f 6e 60 2e 20 48 d.by.`M-x.projectile-version`..H
0860 65 72 65 27 73 20 61 6e 20 65 78 61 6d 70 6c 65 3a 2a 0a 0a 60 60 60 0a 50 72 6f 6a 65 63 74 69 ere's.an.example:*..```.Projecti
0880 6c 65 20 76 65 72 73 69 6f 6e 3a 20 30 2e 31 33 0a 60 60 60 0a 0a 23 23 23 20 45 6d 61 63 73 20 le.version:.0.13.```..###.Emacs.
08a0 76 65 72 73 69 6f 6e 0a 0a 2a 45 2e 67 2e 20 32 34 2e 35 2a 20 28 75 73 65 20 3c 6b 62 64 3e 43 version..*E.g..24.5*.(use.<kbd>C
08c0 2d 68 20 43 2d 61 3c 2f 6b 62 64 3e 20 74 6f 20 73 65 65 20 69 74 29 0a 0a 23 23 23 20 4f 70 65 -h.C-a</kbd>.to.see.it)..###.Ope
08e0 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 0a 2a 45 2e 67 2e 20 57 69 6e 64 6f 77 73 20 31 30 2a rating.system..*E.g..Windows.10*
0900 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 50 55 4c 4c 5f 52 45 projectile-2.9.1/.github/PULL_RE
0a20 51 55 45 53 54 5f 54 45 4d 50 4c 41 54 45 2e 6d 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 QUEST_TEMPLATE.md...............
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0a80 30 30 30 31 35 30 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 34 36 36 00 20 30 00 00 00 0001507.00000000000.017466..0...
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 2a 2a 52 65 70 6c 61 63 65 20 74 68 69 73 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 74 65 78 74 20 **Replace.this.placeholder.text.
0c20 77 69 74 68 20 61 20 73 75 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 73 20 69 6e with.a.summary.of.the.changes.in
0c40 20 79 6f 75 72 20 50 52 2e 0a 54 68 65 20 6d 6f 72 65 20 64 65 74 61 69 6c 65 64 20 79 6f 75 20 .your.PR..The.more.detailed.you.
0c60 61 72 65 2c 20 74 68 65 20 62 65 74 74 65 72 2e 2a 2a 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d are,.the.better.**..------------
0c80 2d 2d 2d 2d 2d 0a 0a 42 65 66 6f 72 65 20 73 75 62 6d 69 74 74 69 6e 67 20 61 20 50 52 20 6d 61 -----..Before.submitting.a.PR.ma
0ca0 6b 65 20 73 75 72 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 69 6e 67 73 20 68 61 76 ke.sure.the.following.things.hav
0cc0 65 20 62 65 65 6e 20 64 6f 6e 65 20 28 61 6e 64 20 64 65 6e 6f 74 65 20 74 68 69 73 0a 62 79 20 e.been.done.(and.denote.this.by.
0ce0 63 68 65 63 6b 69 6e 67 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 63 68 65 63 6b 62 6f 78 65 73 checking.the.relevant.checkboxes
0d00 29 3a 0a 0a 2d 20 5b 20 5d 20 54 68 65 20 63 6f 6d 6d 69 74 73 20 61 72 65 20 63 6f 6e 73 69 73 ):..-.[.].The.commits.are.consis
0d20 74 65 6e 74 20 77 69 74 68 20 6f 75 72 20 5b 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 67 75 69 64 tent.with.our.[contribution.guid
0d40 65 6c 69 6e 65 73 5d 28 2e 2e 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 43 4f 4e 54 52 49 42 55 54 elines](../blob/master/CONTRIBUT
0d60 49 4e 47 2e 6d 64 29 0a 2d 20 5b 20 5d 20 59 6f 75 27 76 65 20 61 64 64 65 64 20 74 65 73 74 73 ING.md).-.[.].You've.added.tests
0d80 20 28 69 66 20 70 6f 73 73 69 62 6c 65 29 20 74 6f 20 63 6f 76 65 72 20 79 6f 75 72 20 63 68 61 .(if.possible).to.cover.your.cha
0da0 6e 67 65 28 73 29 0a 2d 20 5b 20 5d 20 41 6c 6c 20 74 65 73 74 73 20 61 72 65 20 70 61 73 73 69 nge(s).-.[.].All.tests.are.passi
0dc0 6e 67 20 28 5b 60 65 6c 64 65 76 20 74 65 73 74 60 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ng.([`eldev.test`](https://githu
0de0 62 2e 63 6f 6d 2f 64 6f 75 62 6c 65 70 2f 65 6c 64 65 76 29 29 0a 2d 20 5b 20 5d 20 54 68 65 20 b.com/doublep/eldev)).-.[.].The.
0e00 6e 65 77 20 63 6f 64 65 20 69 73 20 6e 6f 74 20 67 65 6e 65 72 61 74 69 6e 67 20 62 79 74 65 63 new.code.is.not.generating.bytec
0e20 6f 64 65 20 6f 72 20 60 4d 2d 78 20 63 68 65 63 6b 64 6f 63 60 20 77 61 72 6e 69 6e 67 73 0a 2d ode.or.`M-x.checkdoc`.warnings.-
0e40 20 5b 20 5d 20 59 6f 75 27 76 65 20 75 70 64 61 74 65 64 20 74 68 65 20 5b 63 68 61 6e 67 65 6c .[.].You've.updated.the.[changel
0e60 6f 67 5d 28 2e 2e 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 29 og](../blob/master/CHANGELOG.md)
0e80 20 28 69 66 20 61 64 64 69 6e 67 2f 63 68 61 6e 67 69 6e 67 20 75 73 65 72 2d 76 69 73 69 62 6c .(if.adding/changing.user-visibl
0ea0 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 29 0a 2d 20 5b 20 5d 20 59 6f 75 27 76 65 20 75 70 e.functionality).-.[.].You've.up
0ec0 64 61 74 65 64 20 74 68 65 20 5b 64 6f 63 73 5d 28 2e 2e 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f dated.the.[docs](../blob/master/
0ee0 64 6f 63 2f 6d 6f 64 75 6c 65 73 2f 52 4f 4f 54 2f 70 61 67 65 73 29 20 28 77 68 65 6e 20 61 64 doc/modules/ROOT/pages).(when.ad
0f00 64 69 6e 67 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 2c 20 63 6f 6e 66 69 67 75 72 ding.new.project.types,.configur
0f20 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 2c 20 63 6f 6d 6d 61 6e 64 73 2c 20 65 74 63 29 0a 0a 54 ation.options,.commands,.etc)..T
0f40 68 61 6e 6b 73 21 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 hanks!..........................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 46 55 4e 44 49 4e 47 projectile-2.9.1/.github/FUNDING
1020 2e 79 6d 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 .yml............................
1040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 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
1080 30 30 30 30 32 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 37 32 00 20 30 00 00 00 0000230.00000000000.015472..0...
10a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1100 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...................
1120 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...................
1140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 23 20 54 68 65 73 65 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 20 66 75 6e 64 69 6e 67 20 6d 6f #.These.are.supported.funding.mo
1220 64 65 6c 20 70 6c 61 74 66 6f 72 6d 73 0a 0a 67 69 74 68 75 62 3a 20 62 62 61 74 73 6f 76 0a 70 del.platforms..github:.bbatsov.p
1240 61 74 72 65 6f 6e 3a 20 62 62 61 74 73 6f 76 0a 6b 6f 5f 66 69 3a 20 62 62 61 74 73 6f 76 0a 6c atreon:.bbatsov.ko_fi:.bbatsov.l
1260 69 62 65 72 61 70 61 79 3a 20 62 62 61 74 73 6f 76 0a 63 75 73 74 6f 6d 3a 20 68 74 74 70 73 3a iberapay:.bbatsov.custom:.https:
1280 2f 2f 77 77 77 2e 70 61 79 70 61 6c 2e 6d 65 2f 62 62 61 74 73 6f 76 0a 00 00 00 00 00 00 00 00 //www.paypal.me/bbatsov.........
12a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c 6f projectile-2.9.1/.github/workflo
1420 77 73 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ws/.............................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 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
1480 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 31 37 00 20 35 00 00 00 0000000.00000000000.015717..5...
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 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...................
1520 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...................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c 6f projectile-2.9.1/.github/workflo
1620 77 73 2f 73 74 61 6c 65 2e 79 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ws/stale.yml....................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 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
1680 30 30 30 33 30 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 35 34 37 00 20 30 00 00 00 0003031.00000000000.017547..0...
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1700 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...................
1720 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...................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 6e 61 6d 65 3a 20 43 6c 6f 73 65 20 69 6e 61 63 74 69 76 65 20 69 73 73 75 65 73 20 61 6e 64 20 name:.Close.inactive.issues.and.
1820 70 75 6c 6c 20 72 65 71 75 65 73 74 73 0a 6f 6e 3a 0a 20 20 73 63 68 65 64 75 6c 65 3a 0a 20 20 pull.requests.on:...schedule:...
1840 20 20 2d 20 63 72 6f 6e 3a 20 22 33 30 20 31 20 2a 20 2a 20 2a 22 0a 0a 6a 6f 62 73 3a 0a 20 20 ..-.cron:."30.1.*.*.*"..jobs:...
1860 63 6c 6f 73 65 2d 69 73 73 75 65 73 3a 0a 20 20 20 20 72 75 6e 73 2d 6f 6e 3a 20 75 62 75 6e 74 close-issues:.....runs-on:.ubunt
1880 75 2d 6c 61 74 65 73 74 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 73 3a 0a 20 20 20 20 20 20 u-latest.....permissions:.......
18a0 69 73 73 75 65 73 3a 20 77 72 69 74 65 0a 20 20 20 20 20 20 70 75 6c 6c 2d 72 65 71 75 65 73 74 issues:.write.......pull-request
18c0 73 3a 20 77 72 69 74 65 0a 20 20 20 20 73 74 65 70 73 3a 0a 20 20 20 20 20 20 2d 20 75 73 65 73 s:.write.....steps:.......-.uses
18e0 3a 20 61 63 74 69 6f 6e 73 2f 73 74 61 6c 65 40 76 39 0a 20 20 20 20 20 20 20 20 77 69 74 68 3a :.actions/stale@v9.........with:
1900 0a 20 20 20 20 20 20 20 20 20 20 64 61 79 73 2d 62 65 66 6f 72 65 2d 69 73 73 75 65 2d 73 74 61 ...........days-before-issue-sta
1920 6c 65 3a 20 39 30 0a 20 20 20 20 20 20 20 20 20 20 64 61 79 73 2d 62 65 66 6f 72 65 2d 69 73 73 le:.90...........days-before-iss
1940 75 65 2d 63 6c 6f 73 65 3a 20 39 30 0a 20 20 20 20 20 20 20 20 20 20 73 74 61 6c 65 2d 69 73 73 ue-close:.90...........stale-iss
1960 75 65 2d 6c 61 62 65 6c 3a 20 22 73 74 61 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 65 78 65 6d ue-label:."stale"...........exem
1980 70 74 2d 61 6c 6c 2d 6d 69 6c 65 73 74 6f 6e 65 73 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 pt-all-milestones:.true.........
19a0 20 20 65 78 65 6d 70 74 2d 69 73 73 75 65 2d 6c 61 62 65 6c 73 3a 20 22 62 75 67 2c 20 68 69 67 ..exempt-issue-labels:."bug,.hig
19c0 68 20 70 72 69 6f 72 69 74 79 2c 20 67 6f 6f 64 20 66 69 72 73 74 20 69 73 73 75 65 2c 20 70 69 h.priority,.good.first.issue,.pi
19e0 6e 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 73 74 61 6c 65 2d 69 73 73 75 65 2d 6d 65 73 73 nned"...........stale-issue-mess
1a00 61 67 65 3a 20 3e 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 73 75 65 20 68 age:.>-.............This.issue.h
1a20 61 73 20 62 65 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6d 61 72 6b 65 64 20 61 73 20 as.been.automatically.marked.as.
1a40 73 74 61 6c 65 20 62 65 63 61 75 73 65 20 69 74 20 68 61 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 stale.because.it.has.not........
1a60 20 20 20 20 20 68 61 64 20 61 6e 79 20 72 65 63 65 6e 74 20 61 63 74 69 76 69 74 79 2e 20 49 74 .....had.any.recent.activity..It
1a80 20 77 69 6c 6c 20 62 65 20 63 6c 6f 73 65 64 20 73 6f 6f 6e 20 69 66 20 6e 6f 20 66 75 72 74 68 .will.be.closed.soon.if.no.furth
1aa0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 63 74 69 76 69 74 79 20 6f 63 63 75 72 73 2e 20 er.............activity.occurs..
1ac0 54 68 61 6e 6b 20 79 6f 75 20 66 6f 72 20 79 6f 75 72 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 Thank.you.for.your.contribution.
1ae0 61 6e 64 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 21 0a 20 20 20 20 20 20 20 20 20 20 63 6c 6f and.understanding!...........clo
1b00 73 65 2d 69 73 73 75 65 2d 6d 65 73 73 61 67 65 3a 20 3e 2d 0a 20 20 20 20 20 20 20 20 20 20 20 se-issue-message:.>-............
1b20 20 54 68 69 73 20 69 73 73 75 65 20 62 65 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 63 .This.issue.been.automatically.c
1b40 6c 6f 73 65 64 20 64 75 65 20 74 6f 20 6c 61 63 6b 20 6f 66 20 61 63 74 69 76 69 74 79 2e 20 46 losed.due.to.lack.of.activity..F
1b60 65 65 6c 20 66 72 65 65 20 74 6f 20 72 65 2d 6f 70 65 6e 20 69 74 0a 20 20 20 20 20 20 20 20 20 eel.free.to.re-open.it..........
1b80 20 20 20 69 66 20 79 6f 75 20 65 76 65 72 20 63 6f 6d 65 20 62 61 63 6b 20 74 6f 20 69 74 2e 0a ...if.you.ever.come.back.to.it..
1ba0 20 20 20 20 20 20 20 20 20 20 64 61 79 73 2d 62 65 66 6f 72 65 2d 70 72 2d 73 74 61 6c 65 3a 20 ..........days-before-pr-stale:.
1bc0 39 30 0a 20 20 20 20 20 20 20 20 20 20 64 61 79 73 2d 62 65 66 6f 72 65 2d 70 72 2d 63 6c 6f 73 90...........days-before-pr-clos
1be0 65 3a 20 39 30 0a 20 20 20 20 20 20 20 20 20 20 65 78 65 6d 70 74 2d 70 72 2d 6c 61 62 65 6c 73 e:.90...........exempt-pr-labels
1c00 3a 20 22 68 69 67 68 20 70 72 69 6f 72 69 74 79 2c 20 67 6f 6f 64 20 66 69 72 73 74 20 69 73 73 :."high.priority,.good.first.iss
1c20 75 65 2c 20 70 69 6e 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 73 74 61 6c 65 2d 70 72 2d 6d ue,.pinned"...........stale-pr-m
1c40 65 73 73 61 67 65 3a 20 3e 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 70 75 6c 6c essage:.>-.............This.pull
1c60 20 72 65 71 75 65 73 74 20 68 61 73 20 62 65 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 .request.has.been.automatically.
1c80 6d 61 72 6b 65 64 20 61 73 20 73 74 61 6c 65 20 62 65 63 61 75 73 65 20 69 74 20 68 61 73 20 6e marked.as.stale.because.it.has.n
1ca0 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 68 61 64 20 61 6e 79 20 72 65 63 65 6e 74 20 61 63 ot.............had.any.recent.ac
1cc0 74 69 76 69 74 79 2e 20 49 74 20 77 69 6c 6c 20 62 65 20 63 6c 6f 73 65 64 20 73 6f 6f 6e 20 69 tivity..It.will.be.closed.soon.i
1ce0 66 20 6e 6f 20 66 75 72 74 68 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 63 74 69 76 69 74 f.no.further.............activit
1d00 79 20 6f 63 63 75 72 73 2e 20 54 68 61 6e 6b 20 79 6f 75 20 66 6f 72 20 79 6f 75 72 20 63 6f 6e y.occurs..Thank.you.for.your.con
1d20 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 21 0a 20 20 20 tribution.and.understanding!....
1d40 20 20 20 20 20 20 20 63 6c 6f 73 65 2d 70 72 2d 6d 65 73 73 61 67 65 3a 20 3e 2d 0a 20 20 20 20 .......close-pr-message:.>-.....
1d60 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 73 75 65 20 62 65 65 6e 20 61 75 74 6f 6d 61 74 69 ........This.issue.been.automati
1d80 63 61 6c 6c 79 20 63 6c 6f 73 65 64 20 64 75 65 20 74 6f 20 6c 61 63 6b 20 6f 66 20 61 63 74 69 cally.closed.due.to.lack.of.acti
1da0 76 69 74 79 2e 20 46 65 65 6c 20 66 72 65 65 20 74 6f 20 72 65 2d 6f 70 65 6e 20 69 74 0a 20 20 vity..Feel.free.to.re-open.it...
1dc0 20 20 20 20 20 20 20 20 20 20 69 66 20 79 6f 75 20 65 76 65 72 20 63 6f 6d 65 20 62 61 63 6b 20 ..........if.you.ever.come.back.
1de0 74 6f 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 72 65 70 6f 2d 74 6f 6b 65 6e 3a 20 24 7b 7b to.it............repo-token:.${{
1e00 20 73 65 63 72 65 74 73 2e 47 49 54 48 55 42 5f 54 4f 4b 45 4e 20 7d 7d 0a 00 00 00 00 00 00 00 .secrets.GITHUB_TOKEN.}}........
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c 6f projectile-2.9.1/.github/workflo
2020 77 73 2f 74 65 73 74 2e 79 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ws/test.yml.....................
2040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2060 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
2080 30 30 30 31 35 32 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 34 32 32 00 20 30 00 00 00 0001523.00000000000.017422..0...
20a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2100 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...................
2120 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...................
2140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 6e 61 6d 65 3a 20 43 49 0a 0a 6f 6e 3a 0a 20 20 70 75 73 68 3a 0a 20 20 20 20 70 61 74 68 73 2d name:.CI..on:...push:.....paths-
2220 69 67 6e 6f 72 65 3a 20 5b 27 2a 2a 2e 6d 64 27 2c 20 27 2a 2a 2e 61 64 6f 63 27 5d 0a 20 20 70 ignore:.['**.md',.'**.adoc']...p
2240 75 6c 6c 5f 72 65 71 75 65 73 74 3a 0a 20 20 20 20 70 61 74 68 73 2d 69 67 6e 6f 72 65 3a 20 5b ull_request:.....paths-ignore:.[
2260 27 2a 2a 2e 6d 64 27 2c 20 27 2a 2a 2e 61 64 6f 63 27 5d 0a 0a 6a 6f 62 73 3a 0a 20 20 74 65 73 '**.md',.'**.adoc']..jobs:...tes
2280 74 3a 0a 20 20 20 20 72 75 6e 73 2d 6f 6e 3a 20 75 62 75 6e 74 75 2d 6c 61 74 65 73 74 0a 20 20 t:.....runs-on:.ubuntu-latest...
22a0 20 20 63 6f 6e 74 69 6e 75 65 2d 6f 6e 2d 65 72 72 6f 72 3a 20 24 7b 7b 6d 61 74 72 69 78 2e 65 ..continue-on-error:.${{matrix.e
22c0 6d 61 63 73 5f 76 65 72 73 69 6f 6e 20 3d 3d 20 27 73 6e 61 70 73 68 6f 74 27 7d 7d 0a 0a 20 20 macs_version.==.'snapshot'}}....
22e0 20 20 73 74 72 61 74 65 67 79 3a 0a 20 20 20 20 20 20 6d 61 74 72 69 78 3a 0a 20 20 20 20 20 20 ..strategy:.......matrix:.......
2300 20 20 23 20 45 61 72 6c 69 65 73 74 20 73 75 70 70 6f 72 74 65 64 20 2b 20 6c 61 74 65 73 74 20 ..#.Earliest.supported.+.latest.
2320 69 6e 20 65 61 63 68 20 73 74 61 62 6c 65 20 62 72 61 6e 63 68 20 2b 20 73 6e 61 70 73 68 6f 74 in.each.stable.branch.+.snapshot
2340 2e 0a 20 20 20 20 20 20 20 20 65 6d 61 63 73 5f 76 65 72 73 69 6f 6e 3a 20 5b 27 32 36 2e 33 27 ..........emacs_version:.['26.3'
2360 2c 20 27 32 37 2e 31 27 2c 20 27 32 38 2e 31 27 2c 20 27 32 39 2e 31 27 2c 20 27 73 6e 61 70 73 ,.'27.1',.'28.1',.'29.1',.'snaps
2380 68 6f 74 27 5d 0a 0a 20 20 20 20 73 74 65 70 73 3a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 53 65 hot']......steps:.....-.name:.Se
23a0 74 20 75 70 20 45 6d 61 63 73 0a 20 20 20 20 20 20 75 73 65 73 3a 20 70 75 72 63 65 6c 6c 2f 73 t.up.Emacs.......uses:.purcell/s
23c0 65 74 75 70 2d 65 6d 61 63 73 40 6d 61 73 74 65 72 0a 20 20 20 20 20 20 77 69 74 68 3a 0a 20 20 etup-emacs@master.......with:...
23e0 20 20 20 20 20 20 76 65 72 73 69 6f 6e 3a 20 24 7b 7b 6d 61 74 72 69 78 2e 65 6d 61 63 73 5f 76 ......version:.${{matrix.emacs_v
2400 65 72 73 69 6f 6e 7d 7d 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 49 6e 73 74 61 6c 6c 20 45 6c ersion}}......-.name:.Install.El
2420 64 65 76 0a 20 20 20 20 20 20 72 75 6e 3a 20 63 75 72 6c 20 2d 66 73 53 4c 20 68 74 74 70 73 3a dev.......run:.curl.-fsSL.https:
2440 2f 2f 72 61 77 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 62 6c 65 70 2f 65 6c 64 65 76 2f 6d //raw.github.com/doublep/eldev/m
2460 61 73 74 65 72 2f 77 65 62 69 6e 73 74 61 6c 6c 2f 67 69 74 68 75 62 2d 65 6c 64 65 76 20 7c 20 aster/webinstall/github-eldev.|.
2480 73 68 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 43 68 65 63 6b 20 6f 75 74 20 74 68 65 20 73 6f sh......-.name:.Check.out.the.so
24a0 75 72 63 65 20 63 6f 64 65 0a 20 20 20 20 20 20 75 73 65 73 3a 20 61 63 74 69 6f 6e 73 2f 63 68 urce.code.......uses:.actions/ch
24c0 65 63 6b 6f 75 74 40 76 34 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 54 65 73 74 20 74 68 65 20 eckout@v4......-.name:.Test.the.
24e0 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 72 75 6e 3a 20 7c 0a 20 20 20 20 20 20 20 20 65 6c 64 project.......run:.|.........eld
2500 65 76 20 2d 70 20 2d 64 74 54 20 2d 43 20 74 65 73 74 20 2d 2d 65 78 70 65 63 74 20 31 30 30 0a ev.-p.-dtT.-C.test.--expect.100.
2520 20 20 20 20 20 20 20 20 65 6c 64 65 76 20 2d 64 74 54 20 2d 43 20 63 6f 6d 70 69 6c 65 20 2d 2d ........eldev.-dtT.-C.compile.--
2540 77 61 72 6e 69 6e 67 73 2d 61 73 2d 65 72 72 6f 72 73 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 warnings-as-errors..............
2560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2600 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 45 6c 64 65 76 00 00 00 00 00 00 00 00 00 00 projectile-2.9.1/Eldev..........
2620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2680 30 30 30 30 30 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 30 31 00 20 30 00 00 00 0000043.00000000000.013301..0...
26a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2800 28 65 6c 64 65 76 2d 75 73 65 2d 70 61 63 6b 61 67 65 2d 61 72 63 68 69 76 65 20 27 6d 65 6c 70 (eldev-use-package-archive.'melp
2820 61 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a)..............................
2840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 43 4f 4e 54 52 49 42 55 54 49 4e 47 2e 6d 64 projectile-2.9.1/CONTRIBUTING.md
2a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a60 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
2a80 30 30 30 33 31 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 36 31 00 20 30 00 00 00 0003166.00000000000.014561..0...
2aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b00 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...................
2b20 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...................
2b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c00 23 20 43 6f 6e 74 72 69 62 75 74 69 6e 67 0a 0a 49 66 20 79 6f 75 20 64 69 73 63 6f 76 65 72 20 #.Contributing..If.you.discover.
2c20 69 73 73 75 65 73 2c 20 68 61 76 65 20 69 64 65 61 73 20 66 6f 72 20 69 6d 70 72 6f 76 65 6d 65 issues,.have.ideas.for.improveme
2c40 6e 74 73 20 6f 72 20 6e 65 77 20 66 65 61 74 75 72 65 73 2c 20 70 6c 65 61 73 65 0a 72 65 70 6f nts.or.new.features,.please.repo
2c60 72 74 20 74 68 65 6d 20 74 6f 20 74 68 65 20 5b 69 73 73 75 65 20 74 72 61 63 6b 65 72 5d 5b 31 rt.them.to.the.[issue.tracker][1
2c80 5d 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 72 20 73 75 62 6d 69 74 20 61 20 ].of.the.repository.or.submit.a.
2ca0 70 75 6c 6c 0a 72 65 71 75 65 73 74 2e 20 50 6c 65 61 73 65 2c 20 74 72 79 20 74 6f 20 66 6f 6c pull.request..Please,.try.to.fol
2cc0 6c 6f 77 20 74 68 65 73 65 20 67 75 69 64 65 6c 69 6e 65 73 20 77 68 65 6e 20 79 6f 75 20 64 6f low.these.guidelines.when.you.do
2ce0 20 73 6f 2e 0a 0a 23 23 20 49 73 73 75 65 20 72 65 70 6f 72 74 69 6e 67 0a 0a 2a 20 43 68 65 63 .so...##.Issue.reporting..*.Chec
2d00 6b 20 74 68 61 74 20 74 68 65 20 69 73 73 75 65 20 68 61 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 k.that.the.issue.has.not.already
2d20 20 62 65 65 6e 20 72 65 70 6f 72 74 65 64 2e 0a 2a 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 .been.reported..*.Check.that.the
2d40 20 69 73 73 75 65 20 68 61 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 66 69 78 65 .issue.has.not.already.been.fixe
2d60 64 20 69 6e 20 74 68 65 20 6c 61 74 65 73 74 20 63 6f 64 65 0a 20 20 28 61 2e 6b 2e 61 2e 20 60 d.in.the.latest.code...(a.k.a..`
2d80 6d 61 73 74 65 72 60 29 2e 0a 2a 20 42 65 20 63 6c 65 61 72 2c 20 63 6f 6e 63 69 73 65 20 61 6e master`)..*.Be.clear,.concise.an
2da0 64 20 70 72 65 63 69 73 65 20 69 6e 20 79 6f 75 72 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 d.precise.in.your.description.of
2dc0 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 0a 2a 20 4f 70 65 6e 20 61 6e 20 69 73 73 75 65 20 77 69 .the.problem..*.Open.an.issue.wi
2de0 74 68 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 74 69 74 6c 65 20 61 6e 64 20 61 20 73 75 6d th.a.descriptive.title.and.a.sum
2e00 6d 61 72 79 20 69 6e 20 67 72 61 6d 6d 61 74 69 63 61 6c 6c 79 20 63 6f 72 72 65 63 74 2c 0a 20 mary.in.grammatically.correct,..
2e20 20 63 6f 6d 70 6c 65 74 65 20 73 65 6e 74 65 6e 63 65 73 2e 0a 2a 20 49 6e 63 6c 75 64 65 20 61 .complete.sentences..*.Include.a
2e40 6e 79 20 72 65 6c 65 76 61 6e 74 20 63 6f 64 65 20 74 6f 20 74 68 65 20 69 73 73 75 65 20 73 75 ny.relevant.code.to.the.issue.su
2e60 6d 6d 61 72 79 2e 0a 2a 20 49 66 20 79 6f 75 27 72 65 20 72 65 70 6f 72 74 69 6e 67 20 70 65 72 mmary..*.If.you're.reporting.per
2e80 66 6f 72 6d 61 6e 63 65 20 69 73 73 75 65 73 20 69 74 27 64 20 62 65 20 6e 69 63 65 20 69 66 20 formance.issues.it'd.be.nice.if.
2ea0 79 6f 75 20 61 64 64 65 64 20 73 6f 6d 65 20 70 72 6f 66 69 6c 69 6e 67 20 64 61 74 61 20 28 45 you.added.some.profiling.data.(E
2ec0 6d 61 63 73 20 68 61 73 20 61 20 62 75 69 6c 74 2d 69 6e 20 70 72 6f 66 69 6c 65 72 29 2e 0a 0a macs.has.a.built-in.profiler)...
2ee0 23 23 20 50 75 6c 6c 20 72 65 71 75 65 73 74 73 0a 0a 2a 20 52 65 61 64 20 5b 68 6f 77 20 74 6f ##.Pull.requests..*.Read.[how.to
2f00 20 70 72 6f 70 65 72 6c 79 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20 6f 70 65 6e 20 73 6f 75 .properly.contribute.to.open.sou
2f20 72 63 65 20 70 72 6f 6a 65 63 74 73 20 6f 6e 20 47 69 74 68 75 62 5d 5b 32 5d 2e 0a 2a 20 55 73 rce.projects.on.Github][2]..*.Us
2f40 65 20 61 20 74 6f 70 69 63 20 62 72 61 6e 63 68 20 74 6f 20 65 61 73 69 6c 79 20 61 6d 65 6e 64 e.a.topic.branch.to.easily.amend
2f60 20 61 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 6c 61 74 65 72 2c 20 69 66 20 6e 65 63 65 73 73 .a.pull.request.later,.if.necess
2f80 61 72 79 2e 0a 2a 20 57 72 69 74 65 20 5b 67 6f 6f 64 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 ary..*.Write.[good.commit.messag
2fa0 65 73 5d 5b 33 5d 2e 0a 2a 20 4d 65 6e 74 69 6f 6e 20 72 65 6c 61 74 65 64 20 74 69 63 6b 65 74 es][3]..*.Mention.related.ticket
2fc0 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 28 65 2e 67 2e 20 60 s.in.the.commit.messages.(e.g..`
2fe0 5b 46 69 78 20 23 4e 5d 20 41 64 64 20 6d 69 73 73 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 63 6f [Fix.#N].Add.missing.autoload.co
3000 6f 6b 69 65 73 60 29 0a 2a 20 55 70 64 61 74 65 20 74 68 65 20 5b 63 68 61 6e 67 65 6c 6f 67 5d okies`).*.Update.the.[changelog]
3020 5b 35 5d 2e 0a 2a 20 55 73 65 20 74 68 65 20 73 61 6d 65 20 63 6f 64 69 6e 67 20 63 6f 6e 76 65 [5]..*.Use.the.same.coding.conve
3040 6e 74 69 6f 6e 73 20 61 73 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 ntions.as.the.rest.of.the.projec
3060 74 2e 0a 2a 20 56 65 72 69 66 79 20 79 6f 75 72 20 45 6d 61 63 73 20 4c 69 73 70 20 63 6f 64 65 t..*.Verify.your.Emacs.Lisp.code
3080 20 77 69 74 68 20 60 63 68 65 63 6b 64 6f 63 60 20 28 3c 6b 62 64 3e 43 2d 63 20 3f 20 64 3c 2f .with.`checkdoc`.(<kbd>C-c.?.d</
30a0 6b 62 64 3e 29 2e 0a 2a 20 4f 70 65 6e 20 61 20 5b 70 75 6c 6c 20 72 65 71 75 65 73 74 5d 5b 34 kbd>)..*.Open.a.[pull.request][4
30c0 5d 20 74 68 61 74 20 72 65 6c 61 74 65 73 20 74 6f 20 2a 6f 6e 6c 79 2a 20 6f 6e 65 20 73 75 62 ].that.relates.to.*only*.one.sub
30e0 6a 65 63 74 20 77 69 74 68 20 61 20 63 6c 65 61 72 20 74 69 74 6c 65 0a 20 20 61 6e 64 20 64 65 ject.with.a.clear.title...and.de
3100 73 63 72 69 70 74 69 6f 6e 20 69 6e 20 67 72 61 6d 6d 61 74 69 63 61 6c 6c 79 20 63 6f 72 72 65 scription.in.grammatically.corre
3120 63 74 2c 20 63 6f 6d 70 6c 65 74 65 20 73 65 6e 74 65 6e 63 65 73 2e 0a 0a 5b 31 5d 3a 20 68 74 ct,.complete.sentences...[1]:.ht
3140 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
3160 69 6c 65 2f 69 73 73 75 65 73 0a 5b 32 5d 3a 20 68 74 74 70 3a 2f 2f 67 75 6e 2e 69 6f 2f 62 6c ile/issues.[2]:.http://gun.io/bl
3180 6f 67 2f 68 6f 77 2d 74 6f 2d 67 69 74 68 75 62 2d 66 6f 72 6b 2d 62 72 61 6e 63 68 2d 61 6e 64 og/how-to-github-fork-branch-and
31a0 2d 70 75 6c 6c 2d 72 65 71 75 65 73 74 0a 5b 33 5d 3a 20 68 74 74 70 3a 2f 2f 74 62 61 67 67 65 -pull-request.[3]:.http://tbagge
31c0 72 79 2e 63 6f 6d 2f 32 30 30 38 2f 30 34 2f 31 39 2f 61 2d 6e 6f 74 65 2d 61 62 6f 75 74 2d 67 ry.com/2008/04/19/a-note-about-g
31e0 69 74 2d 63 6f 6d 6d 69 74 2d 6d 65 73 73 61 67 65 73 2e 68 74 6d 6c 0a 5b 34 5d 3a 20 68 74 74 it-commit-messages.html.[4]:.htt
3200 70 73 3a 2f 2f 68 65 6c 70 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 61 72 74 69 63 6c 65 73 2f 75 73 ps://help.github.com/articles/us
3220 69 6e 67 2d 70 75 6c 6c 2d 72 65 71 75 65 73 74 73 0a 5b 35 5d 3a 20 68 74 74 70 73 3a 2f 2f 67 ing-pull-requests.[5]:.https://g
3240 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 62 6c 6f ithub.com/bbatsov/projectile/blo
3260 62 2f 6d 61 73 74 65 72 2f 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 0a 00 00 00 00 00 00 00 00 00 00 b/master/CHANGELOG.md...........
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3400 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 00 00 projectile-2.9.1/projectile.el..
3420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3460 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
3480 31 30 34 30 35 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 31 34 00 20 30 00 00 00 1040535.00000000000.015014..0...
34a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3500 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...................
3520 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...................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 3b 3b 3b 20 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 20 2d 2d 2d 20 4d 61 6e 61 67 65 20 61 6e 64 ;;;.projectile.el.---.Manage.and
3620 20 6e 61 76 69 67 61 74 65 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 45 6d 61 63 73 20 65 61 73 69 .navigate.projects.in.Emacs.easi
3640 6c 79 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b ly.-*-.lexical-binding:.t.-*-..;
3660 3b 20 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 31 31 2d 32 30 32 35 20 42 6f 7a 68 69 64 61 ;.Copyright....2011-2025.Bozhida
3680 72 20 42 61 74 73 6f 76 20 3c 62 6f 7a 68 69 64 61 72 40 62 61 74 73 6f 76 2e 64 65 76 3e 0a 0a r.Batsov.<bozhidar@batsov.dev>..
36a0 3b 3b 20 41 75 74 68 6f 72 3a 20 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 20 3c 62 6f 7a 68 ;;.Author:.Bozhidar.Batsov.<bozh
36c0 69 64 61 72 40 62 61 74 73 6f 76 2e 64 65 76 3e 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f idar@batsov.dev>.;;.URL:.https:/
36e0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 0a 3b /github.com/bbatsov/projectile.;
3700 3b 20 4b 65 79 77 6f 72 64 73 3a 20 70 72 6f 6a 65 63 74 2c 20 63 6f 6e 76 65 6e 69 65 6e 63 65 ;.Keywords:.project,.convenience
3720 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 32 2e 39 2e 31 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 .;;.Version:.2.9.1.;;.Package-Re
3740 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 36 2e 31 22 29 29 0a 0a 3b 3b 20 54 68 69 quires:.((emacs."26.1"))..;;.Thi
3760 73 20 66 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e s.file.is.NOT.part.of.GNU.Emacs.
3780 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 ..;;.This.program.is.free.softwa
37a0 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f re;.you.can.redistribute.it.and/
37c0 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 or.modify.;;.it.under.the.terms.
37e0 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 of.the.GNU.General.Public.Licens
3800 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f e.as.published.by.;;.the.Free.So
3820 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f ftware.Foundation;.either.versio
3840 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 n.3,.or.(at.your.option).;;.any.
3860 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 later.version..;;.;;.This.progra
3880 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 m.is.distributed.in.the.hope.tha
38a0 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 t.it.will.be.useful,.;;.but.WITH
38c0 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 OUT.ANY.WARRANTY;.without.even.t
38e0 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 he.implied.warranty.of.;;.MERCHA
3900 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NTABILITY.or.FITNESS.FOR.A.PARTI
3920 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 CULAR.PURPOSE...See.the.;;.GNU.G
3940 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 eneral.Public.License.for.more.d
3960 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 etails..;;.;;.You.should.have.re
3980 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c ceived.a.copy.of.the.GNU.General
39a0 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e .Public.License.;;.along.with.GN
39c0 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 U.Emacs;.see.the.file.COPYING...
39e0 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 If.not,.write.to.the.;;.Free.Sof
3a00 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b tware.Foundation,.Inc.,.51.Frank
3a20 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 lin.Street,.Fifth.Floor,.;;.Bost
3a40 6f 6e 2c 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d on,.MA.02110-1301,.USA...;;;.Com
3a60 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 50 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 61 20 70 mentary:.;;.;;.Projectile.is.a.p
3a80 72 6f 6a 65 63 74 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 6c 69 62 72 61 72 79 20 66 6f 72 20 45 roject.interaction.library.for.E
3aa0 6d 61 63 73 2e 0a 3b 3b 20 49 74 20 70 72 6f 76 69 64 65 73 20 61 20 70 6f 77 65 72 66 75 6c 20 macs..;;.It.provides.a.powerful.
3ac0 73 65 74 20 6f 66 20 66 65 61 74 75 72 65 73 20 6f 70 65 72 61 74 69 6e 67 20 61 74 20 74 68 65 set.of.features.operating.at.the
3ae0 20 70 72 6f 6a 65 63 74 0a 3b 3b 20 6c 65 76 65 6c 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 73 69 .project.;;.level,.as.well.as.si
3b00 6d 70 6c 65 20 68 65 75 72 69 73 74 69 63 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 70 72 6f 6a mple.heuristics.to.identify.proj
3b20 65 63 74 73 2e 0a 3b 3b 0a 3b 3b 20 53 65 65 20 74 68 65 20 52 45 41 44 4d 45 20 61 6e 64 20 68 ects..;;.;;.See.the.README.and.h
3b40 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 72 6f 6a 65 63 74 69 6c 65 2e 6d 78 20 66 6f 72 20 6d 6f ttps://docs.projectile.mx.for.mo
3b60 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 re.details..;;.;;;.Code:..(requi
3b80 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 74 68 69 6e 67 61 74 70 74 29 re.'cl-lib).(require.'thingatpt)
3ba0 0a 28 72 65 71 75 69 72 65 20 27 69 62 75 66 66 65 72 29 0a 28 72 65 71 75 69 72 65 20 27 69 62 .(require.'ibuffer).(require.'ib
3bc0 75 66 2d 65 78 74 29 0a 28 72 65 71 75 69 72 65 20 27 63 6f 6d 70 69 6c 65 29 0a 28 72 65 71 75 uf-ext).(require.'compile).(requ
3be0 69 72 65 20 27 67 72 65 70 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 ire.'grep).(eval-when-compile...
3c00 28 72 65 71 75 69 72 65 20 27 66 69 6e 64 2d 64 69 72 65 64 29 0a 20 20 28 72 65 71 75 69 72 65 (require.'find-dired)...(require
3c20 20 27 73 75 62 72 2d 78 29 29 0a 0a 3b 3b 3b 20 44 65 63 6c 61 72 61 74 69 6f 6e 73 0a 3b 3b 0a .'subr-x))..;;;.Declarations.;;.
3c40 3b 3b 20 41 20 62 75 6e 63 68 20 6f 66 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 66 75 6e 63 74 ;;.A.bunch.of.variable.and.funct
3c60 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 3b 3b 20 6e 65 65 64 65 64 20 74 6f 20 61 70 ion.declarations.;;.needed.to.ap
3c80 70 65 61 73 65 20 74 68 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 2e 0a 28 64 65 66 76 61 72 pease.the.byte-compiler..(defvar
3ca0 20 69 64 6f 2d 6d 6f 64 65 29 0a 28 64 65 66 76 61 72 20 69 76 79 2d 6d 6f 64 65 29 0a 28 64 65 .ido-mode).(defvar.ivy-mode).(de
3cc0 66 76 61 72 20 68 65 6c 6d 2d 6d 6f 64 65 29 0a 28 64 65 66 76 61 72 20 61 67 2d 69 67 6e 6f 72 fvar.helm-mode).(defvar.ag-ignor
3ce0 65 2d 6c 69 73 74 29 0a 28 64 65 66 76 61 72 20 67 67 74 61 67 73 2d 63 6f 6d 70 6c 65 74 69 6f e-list).(defvar.ggtags-completio
3d00 6e 2d 74 61 62 6c 65 29 0a 28 64 65 66 76 61 72 20 74 61 67 73 2d 63 6f 6d 70 6c 65 74 69 6f 6e n-table).(defvar.tags-completion
3d20 2d 74 61 62 6c 65 29 0a 28 64 65 66 76 61 72 20 74 61 67 73 2d 6c 6f 6f 70 2d 73 63 61 6e 29 0a -table).(defvar.tags-loop-scan).
3d40 28 64 65 66 76 61 72 20 74 61 67 73 2d 6c 6f 6f 70 2d 6f 70 65 72 61 74 65 29 0a 28 64 65 66 76 (defvar.tags-loop-operate).(defv
3d60 61 72 20 65 73 68 65 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 28 64 65 66 76 61 72 20 65 ar.eshell-buffer-name).(defvar.e
3d80 78 70 6c 69 63 69 74 2d 73 68 65 6c 6c 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 28 64 65 66 76 61 72 xplicit-shell-file-name).(defvar
3da0 20 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 29 0a 28 64 65 66 76 61 72 20 67 72 65 .grep-files-aliases).(defvar.gre
3dc0 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 0a 28 64 65 66 p-find-ignored-directories).(def
3de0 76 61 72 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 0a 28 64 var.grep-find-ignored-files)..(d
3e00 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 61 67 73 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d eclare-function.tags-completion-
3e20 74 61 62 6c 65 20 22 65 74 61 67 73 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e table."etags").(declare-function
3e40 20 6d 61 6b 65 2d 74 65 72 6d 20 22 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 .make-term."term").(declare-func
3e60 74 69 6f 6e 20 74 65 72 6d 2d 6d 6f 64 65 20 22 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d tion.term-mode."term").(declare-
3e80 66 75 6e 63 74 69 6f 6e 20 74 65 72 6d 2d 63 68 61 72 2d 6d 6f 64 65 20 22 74 65 72 6d 22 29 0a function.term-char-mode."term").
3ea0 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 72 6d 2d 61 6e 73 69 2d 6d 61 6b 65 (declare-function.term-ansi-make
3ec0 2d 74 65 72 6d 20 22 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 -term."term").(declare-function.
3ee0 65 73 68 65 6c 6c 2d 73 65 61 72 63 68 2d 70 61 74 68 20 22 65 73 68 2d 65 78 74 22 29 0a 28 64 eshell-search-path."esh-ext").(d
3f00 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 63 2d 64 69 72 20 22 76 63 2d 64 69 72 22 29 eclare-function.vc-dir."vc-dir")
3f20 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 63 2d 64 69 72 2d 62 75 73 79 20 22 .(declare-function.vc-dir-busy."
3f40 76 63 2d 64 69 72 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e vc-dir").(declare-function.strin
3f60 67 2d 74 72 69 6d 20 22 73 75 62 72 2d 78 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 g-trim."subr-x").(declare-functi
3f80 6f 6e 20 66 69 6c 65 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 20 22 66 69 6c 65 6c 6f 6f 70 22 29 on.fileloop-continue."fileloop")
3fa0 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 6c 6f 6f 70 2d 69 6e 69 74 .(declare-function.fileloop-init
3fc0 69 61 6c 69 7a 65 2d 72 65 70 6c 61 63 65 20 22 66 69 6c 65 6c 6f 6f 70 22 29 0a 28 64 65 63 6c ialize-replace."fileloop").(decl
3fe0 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 6d 70 2d 61 72 63 68 69 76 65 2d 66 69 6c 65 2d are-function.tramp-archive-file-
4000 6e 61 6d 65 2d 70 20 22 74 72 61 6d 70 2d 61 72 63 68 69 76 65 22 29 0a 28 64 65 63 6c 61 72 65 name-p."tramp-archive").(declare
4020 2d 66 75 6e 63 74 69 6f 6e 20 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 2d 66 69 6c 65 2d 65 78 74 -function.helm-grep-get-file-ext
4040 65 6e 73 69 6f 6e 73 20 22 68 65 6c 6d 2d 67 72 65 70 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 ensions."helm-grep")..(declare-f
4060 75 6e 63 74 69 6f 6e 20 67 67 74 61 67 73 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 20 22 65 unction.ggtags-ensure-project."e
4080 78 74 3a 67 67 74 61 67 73 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 67 xt:ggtags").(declare-function.gg
40a0 74 61 67 73 2d 75 70 64 61 74 65 2d 74 61 67 73 20 22 65 78 74 3a 67 67 74 61 67 73 22 29 0a 28 tags-update-tags."ext:ggtags").(
40c0 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 72 69 70 67 72 65 70 2d 72 65 67 65 78 70 20 declare-function.ripgrep-regexp.
40e0 22 65 78 74 3a 72 69 70 67 72 65 70 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e "ext:ripgrep").(declare-function
4100 20 72 67 2d 72 75 6e 20 22 65 78 74 3a 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 .rg-run."ext:rg").(declare-funct
4120 69 6f 6e 20 76 74 65 72 6d 20 22 65 78 74 3a 76 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d ion.vterm."ext:vterm").(declare-
4140 66 75 6e 63 74 69 6f 6e 20 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 22 65 78 74 function.vterm-other-window."ext
4160 3a 76 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 74 65 72 6d :vterm").(declare-function.vterm
4180 2d 73 65 6e 64 2d 72 65 74 75 72 6e 20 22 65 78 74 3a 76 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 -send-return."ext:vterm").(decla
41a0 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 74 65 72 6d 2d 73 65 6e 64 2d 73 74 72 69 6e 67 20 22 65 re-function.vterm-send-string."e
41c0 78 74 3a 76 74 65 72 6d 22 29 0a 0a 0c 0a 3b 3b 3b 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 0a xt:vterm")....;;;.Customization.
41e0 28 64 65 66 67 72 6f 75 70 20 70 72 6f 6a 65 63 74 69 6c 65 20 6e 69 6c 0a 20 20 22 4d 61 6e 61 (defgroup.projectile.nil..."Mana
4200 67 65 20 61 6e 64 20 6e 61 76 69 67 61 74 65 20 70 72 6f 6a 65 63 74 73 20 65 61 73 69 6c 79 2e ge.and.navigate.projects.easily.
4220 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 6f 6f 6c 73 0a 20 20 3a 67 72 6f 75 70 20 27 63 6f 6e 76 "...:group.'tools...:group.'conv
4240 65 6e 69 65 6e 63 65 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e 6b 20 3a 74 61 67 20 enience...:link.'(url-link.:tag.
4260 22 47 69 74 48 75 62 22 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 "GitHub"."https://github.com/bba
4280 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 22 29 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d tsov/projectile")...:link.'(url-
42a0 6c 69 6e 6b 20 3a 74 61 67 20 22 4f 6e 6c 69 6e 65 20 4d 61 6e 75 61 6c 22 20 22 68 74 74 70 73 link.:tag."Online.Manual"."https
42c0 3a 2f 2f 64 6f 63 73 2e 70 72 6f 6a 65 63 74 69 6c 65 2e 6d 78 2f 22 29 0a 20 20 3a 6c 69 6e 6b ://docs.projectile.mx/")...:link
42e0 20 27 28 65 6d 61 63 73 2d 63 6f 6d 6d 65 6e 74 61 72 79 2d 6c 69 6e 6b 20 3a 74 61 67 20 22 43 .'(emacs-commentary-link.:tag."C
4300 6f 6d 6d 65 6e 74 61 72 79 22 20 22 70 72 6f 6a 65 63 74 69 6c 65 22 29 29 0a 0a 28 64 65 66 63 ommentary"."projectile"))..(defc
4320 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 ustom.projectile-indexing-method
4340 0a 20 20 28 69 66 20 28 65 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 27 77 69 6e 64 6f 77 73 2d ...(if.(eq.system-type.'windows-
4360 6e 74 29 20 27 6e 61 74 69 76 65 20 27 61 6c 69 65 6e 29 0a 20 20 22 53 70 65 63 69 66 69 65 73 nt).'native.'alien)..."Specifies
4380 20 74 68 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 75 73 65 64 20 62 79 20 50 72 6f .the.indexing.method.used.by.Pro
43a0 6a 65 63 74 69 6c 65 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 69 6e 64 65 78 69 jectile...There.are.three.indexi
43c0 6e 67 20 6d 65 74 68 6f 64 73 20 2d 20 6e 61 74 69 76 65 2c 20 68 79 62 72 69 64 20 61 6e 64 20 ng.methods.-.native,.hybrid.and.
43e0 61 6c 69 65 6e 2e 0a 0a 54 68 65 20 6e 61 74 69 76 65 20 6d 65 74 68 6f 64 20 69 73 20 69 6d 70 alien...The.native.method.is.imp
4400 6c 65 6d 65 6e 74 65 64 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 28 74 68 65 72 65 66 6f 72 lemented.in.Emacs.Lisp.(therefor
4420 65 20 69 74 20 69 73 0a 6e 61 74 69 76 65 20 74 6f 20 45 6d 61 63 73 29 2e 20 20 49 74 73 20 61 e.it.is.native.to.Emacs)...Its.a
4440 64 76 61 6e 74 61 67 65 20 69 73 20 74 68 61 74 20 69 74 20 69 73 20 70 6f 72 74 61 62 6c 65 20 dvantage.is.that.it.is.portable.
4460 61 6e 64 20 77 69 6c 6c 0a 77 6f 72 6b 20 65 76 65 72 79 77 68 65 72 65 20 74 68 61 74 20 45 6d and.will.work.everywhere.that.Em
4480 61 63 73 20 64 6f 65 73 2e 20 20 49 74 73 20 64 69 73 61 64 76 61 6e 74 61 67 65 20 69 73 20 74 acs.does...Its.disadvantage.is.t
44a0 68 61 74 20 69 74 20 69 73 20 61 0a 62 69 74 20 73 6c 6f 77 20 28 65 73 70 65 63 69 61 6c 6c 79 hat.it.is.a.bit.slow.(especially
44c0 20 66 6f 72 20 6c 61 72 67 65 20 70 72 6f 6a 65 63 74 73 29 2e 20 20 47 65 6e 65 72 61 6c 6c 79 .for.large.projects)...Generally
44e0 20 69 74 27 73 20 61 20 67 6f 6f 64 0a 69 64 65 61 20 74 6f 20 70 61 69 72 20 74 68 65 20 6e 61 .it's.a.good.idea.to.pair.the.na
4500 74 69 76 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 77 69 74 68 20 63 61 63 68 69 6e tive.indexing.method.with.cachin
4520 67 2e 0a 0a 54 68 65 20 68 79 62 72 69 64 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 75 g...The.hybrid.indexing.method.u
4540 73 65 73 20 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 28 65 2e 67 2e 20 67 69 74 2c 20 66 69 ses.external.tools.(e.g..git,.fi
4560 6e 64 2c 0a 65 74 63 29 20 74 6f 20 73 70 65 65 64 20 75 70 20 74 68 65 20 69 6e 64 65 78 69 6e nd,.etc).to.speed.up.the.indexin
4580 67 20 70 72 6f 63 65 73 73 2e 20 20 53 74 69 6c 6c 2c 20 74 68 65 20 66 69 6c 65 73 20 77 69 6c g.process...Still,.the.files.wil
45a0 6c 20 62 65 0a 70 6f 73 74 2d 70 72 6f 63 65 73 73 65 64 20 62 79 20 50 72 6f 6a 65 63 74 69 6c l.be.post-processed.by.Projectil
45c0 65 20 66 6f 72 20 73 6f 72 74 69 6e 67 2f 66 69 6c 74 65 72 69 6e 67 20 70 75 72 70 6f 73 65 73 e.for.sorting/filtering.purposes
45e0 2e 0a 49 6e 20 74 68 69 73 20 73 65 6e 73 65 20 74 68 61 74 20 61 70 70 72 6f 61 63 68 20 69 73 ..In.this.sense.that.approach.is
4600 20 61 20 68 79 62 72 69 64 20 62 65 74 77 65 65 6e 20 6e 61 74 69 76 65 20 69 6e 64 65 78 69 6e .a.hybrid.between.native.indexin
4620 67 0a 61 6e 64 20 61 6c 69 65 6e 20 69 6e 64 65 78 69 6e 67 2e 0a 0a 54 68 65 20 61 6c 69 65 6e g.and.alien.indexing...The.alien
4640 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 6f 70 74 69 6d 69 7a 65 73 20 74 6f 20 74 68 .indexing.method.optimizes.to.th
4660 65 20 6c 69 6d 69 74 20 74 68 65 20 73 70 65 65 64 0a 6f 66 20 74 68 65 20 68 79 62 72 69 64 20 e.limit.the.speed.of.the.hybrid.
4680 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 2e 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 indexing.method...This.means.tha
46a0 74 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 0a 6e 6f 74 20 64 6f 20 61 6e 79 20 70 72 6f t.Projectile.will.not.do.any.pro
46c0 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 72 65 74 75 72 6e 65 64 20 62 79 cessing.of.the.files.returned.by
46e0 20 74 68 65 20 65 78 74 65 72 6e 61 6c 0a 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 79 6f 75 27 72 .the.external.commands.and.you'r
4700 65 20 67 6f 69 6e 67 20 74 6f 20 67 65 74 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 70 65 72 66 6f e.going.to.get.the.maximum.perfo
4720 72 6d 61 6e 63 65 0a 70 6f 73 73 69 62 6c 65 2e 20 20 54 68 69 73 20 62 65 68 61 76 69 6f 75 72 rmance.possible...This.behaviour
4740 20 6d 61 6b 65 73 20 61 20 6c 6f 74 20 6f 66 20 73 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 70 .makes.a.lot.of.sense.for.most.p
4760 65 6f 70 6c 65 2c 0a 61 73 20 74 68 65 79 27 64 20 74 79 70 69 63 61 6c 6c 79 20 62 65 20 70 75 eople,.as.they'd.typically.be.pu
4780 74 74 69 6e 67 20 69 67 6e 6f 72 65 73 20 69 6e 20 74 68 65 69 72 20 56 43 53 20 63 6f 6e 66 69 tting.ignores.in.their.VCS.confi
47a0 67 20 61 6e 64 0a 77 6f 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 61 6e 79 20 61 64 64 69 74 g.and.won't.care.about.any.addit
47c0 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 73 2f 75 6e 69 67 6e 6f 72 65 73 2f 73 6f 72 74 69 6e 67 20 ional.ignores/unignores/sorting.
47e0 74 68 61 74 0a 50 72 6f 6a 65 63 74 69 6c 65 20 6d 69 67 68 74 20 61 6c 73 6f 20 70 72 6f 76 69 that.Projectile.might.also.provi
4800 64 65 2e 0a 0a 54 68 65 20 64 69 73 61 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 68 79 62 de...The.disadvantage.of.the.hyb
4820 72 69 64 20 61 6e 64 20 61 6c 69 65 6e 20 6d 65 74 68 6f 64 73 20 69 73 20 74 68 61 74 20 74 68 rid.and.alien.methods.is.that.th
4840 65 79 20 61 72 65 20 6e 6f 74 20 77 65 6c 6c 0a 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 57 69 6e ey.are.not.well.supported.on.Win
4860 64 6f 77 73 20 73 79 73 74 65 6d 73 2e 20 20 54 68 61 74 27 73 20 77 68 79 20 62 79 20 64 65 66 dows.systems...That's.why.by.def
4880 61 75 6c 74 20 61 6c 69 65 6e 20 69 6e 64 65 78 69 6e 67 20 69 73 20 74 68 65 0a 64 65 66 61 75 ault.alien.indexing.is.the.defau
48a0 6c 74 20 6f 6e 20 61 6c 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 73 2c 20 65 78 63 lt.on.all.operating.systems,.exc
48c0 65 70 74 20 57 69 6e 64 6f 77 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 ept.Windows."...:group.'projecti
48e0 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f le...:type.'(radio...........(co
4900 6e 73 74 20 3a 74 61 67 20 22 4e 61 74 69 76 65 22 20 6e 61 74 69 76 65 29 0a 20 20 20 20 20 20 nst.:tag."Native".native).......
4920 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 48 79 62 72 69 64 22 20 68 79 62 72 69 64 29 ....(const.:tag."Hybrid".hybrid)
4940 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 69 65 6e 22 20 61 ...........(const.:tag."Alien".a
4960 6c 69 65 6e 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 lien)))..(defcustom.projectile-e
4980 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 nable-caching.(eq.projectile-ind
49a0 65 78 69 6e 67 2d 6d 65 74 68 6f 64 20 27 6e 61 74 69 76 65 29 0a 20 20 22 57 68 65 6e 20 74 20 exing-method.'native)..."When.t.
49c0 65 6e 61 62 6c 65 73 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 63 61 63 68 69 6e 67 2e 0a 0a enables.project.files.caching...
49e0 4e 6f 72 6d 61 6c 6c 79 20 74 68 65 20 63 61 63 68 65 20 6c 61 73 74 73 20 66 6f 72 20 74 68 65 Normally.the.cache.lasts.for.the
4a00 20 64 75 72 61 74 69 6f 6e 20 6f 66 20 79 6f 75 72 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 2e .duration.of.your.Emacs.session.
4a20 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 61 63 68 65 20 74 6f 20 70 65 72 73 69 73 74 .If.you.want.to.cache.to.persist
4a40 20 62 65 74 77 65 65 6e 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 20 79 6f 75 0a 73 68 6f 75 .between.Emacs.sessions.you.shou
4a60 6c 64 20 73 65 74 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 74 6f 20 60 27 70 65 72 73 69 73 74 65 ld.set.this.option.to.`'persiste
4a80 6e 74 27 2e 0a 0a 50 72 6f 6a 65 63 74 20 63 61 63 68 69 6e 67 20 69 73 20 61 75 74 6f 6d 61 74 nt'...Project.caching.is.automat
4aa0 69 63 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 69 66 20 79 6f 75 ically.enabled.by.default.if.you
4ac0 27 72 65 0a 75 73 69 6e 67 20 74 68 65 20 6e 61 74 69 76 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 're.using.the.native.indexing.me
4ae0 74 68 6f 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 thod."...:group.'projectile...:t
4b00 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 ype.'(radio...........(const.:ta
4b20 67 20 22 44 69 73 61 62 6c 65 64 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e g."Disabled".nil)...........(con
4b40 73 74 20 3a 74 61 67 20 22 54 72 61 6e 73 69 65 6e 74 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 st.:tag."Transient".t)..........
4b60 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 50 65 72 73 69 73 74 65 6e 74 22 20 70 65 72 73 69 73 .(const.:tag."Persistent".persis
4b80 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b tent)))..(defcustom.projectile-k
4ba0 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 20 27 6b 69 6c 6c 2d 61 6c 6c 0a 20 20 22 ill-buffers-filter.'kill-all..."
4bc0 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 62 75 66 66 65 72 73 20 61 72 65 20 6b 69 6c 6c Determine.which.buffers.are.kill
4be0 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 27 2e ed.by.`projectile-kill-buffers'.
4c00 0a 0a 57 68 65 6e 20 74 68 65 20 6b 69 6c 6c 2d 61 6c 6c 20 6f 70 74 69 6f 6e 20 69 73 20 73 65 ..When.the.kill-all.option.is.se
4c20 6c 65 63 74 65 64 2c 20 6b 69 6c 6c 73 20 65 61 63 68 20 62 75 66 66 65 72 2e 0a 0a 57 68 65 6e lected,.kills.each.buffer...When
4c40 20 74 68 65 20 6b 69 6c 6c 2d 6f 6e 6c 79 2d 66 69 6c 65 73 20 6f 70 74 69 6f 6e 20 69 73 20 73 .the.kill-only-files.option.is.s
4c60 65 6c 65 63 74 65 64 2c 20 6b 69 6c 6c 20 6f 6e 6c 79 20 74 68 65 20 62 75 66 66 65 72 0a 61 73 elected,.kill.only.the.buffer.as
4c80 73 6f 63 69 61 74 65 64 20 74 6f 20 61 20 66 69 6c 65 2e 0a 0a 4f 74 68 65 72 77 69 73 65 2c 20 sociated.to.a.file...Otherwise,.
4ca0 69 74 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 72 65 64 69 63 61 74 65 20 74 68 61 74 20 74 61 it.should.be.a.predicate.that.ta
4cc0 6b 65 73 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 3a 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 0a kes.one.argument:.the.buffer.to.
4ce0 62 65 20 6b 69 6c 6c 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 be.killed."...:group.'projectile
4d00 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 ...:type.'(radio...........(cons
4d20 74 20 3a 74 61 67 20 22 41 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 22 20 6b 69 6c t.:tag."All.project.buffers".kil
4d40 6c 2d 61 6c 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 50 72 l-all)...........(const.:tag."Pr
4d60 6f 6a 65 63 74 20 66 69 6c 65 20 62 75 66 66 65 72 73 22 20 6b 69 6c 6c 2d 6f 6e 6c 79 2d 66 69 oject.file.buffers".kill-only-fi
4d80 6c 65 73 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 50 les)...........(function.:tag."P
4da0 72 65 64 69 63 61 74 65 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 redicate")))..(defcustom.project
4dc0 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 6c 6f 63 61 6c 2d 63 61 63 68 65 2d 65 78 70 69 ile-file-exists-local-cache-expi
4de0 72 65 20 6e 69 6c 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 62 65 66 6f re.nil..."Number.of.seconds.befo
4e00 72 65 20 74 68 65 20 6c 6f 63 61 6c 20 66 69 6c 65 20 65 78 69 73 74 65 6e 63 65 20 63 61 63 68 re.the.local.file.existence.cach
4e20 65 20 65 78 70 69 72 65 73 2e 0a 4c 6f 63 61 6c 20 72 65 66 65 72 73 20 74 6f 20 61 20 66 69 6c e.expires..Local.refers.to.a.fil
4e40 65 20 6f 6e 20 61 20 6c 6f 63 61 6c 20 66 69 6c 65 20 73 79 73 74 65 6d 2e 0a 0a 41 20 76 61 6c e.on.a.local.file.system...A.val
4e60 75 65 20 6f 66 20 6e 69 6c 20 64 69 73 61 62 6c 65 73 20 74 68 69 73 20 63 61 63 68 65 2e 0a 53 ue.of.nil.disables.this.cache..S
4e80 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 27 20 66 6f ee.`projectile-file-exists-p'.fo
4ea0 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 r.details."...:group.'projectile
4ec0 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 ...:type.'(choice.(const.:tag."D
4ee0 69 73 61 62 6c 65 64 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 isabled".nil)..................(
4f00 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 53 65 63 6f 6e 64 73 22 29 29 29 0a 0a 28 64 65 66 63 integer.:tag."Seconds")))..(defc
4f20 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 72 65 6d ustom.projectile-file-exists-rem
4f40 6f 74 65 2d 63 61 63 68 65 2d 65 78 70 69 72 65 20 28 2a 20 35 20 36 30 29 0a 20 20 22 4e 75 6d ote-cache-expire.(*.5.60)..."Num
4f60 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 20 62 65 66 6f 72 65 20 74 68 65 20 72 65 6d 6f 74 65 ber.of.seconds.before.the.remote
4f80 20 66 69 6c 65 20 65 78 69 73 74 65 6e 63 65 20 63 61 63 68 65 20 65 78 70 69 72 65 73 2e 0a 52 .file.existence.cache.expires..R
4fa0 65 6d 6f 74 65 20 72 65 66 65 72 73 20 74 6f 20 61 20 66 69 6c 65 20 6f 6e 20 61 20 72 65 6d 6f emote.refers.to.a.file.on.a.remo
4fc0 74 65 20 66 69 6c 65 20 73 79 73 74 65 6d 20 73 75 63 68 20 61 73 20 74 72 61 6d 70 2e 0a 0a 41 te.file.system.such.as.tramp...A
4fe0 20 76 61 6c 75 65 20 6f 66 20 6e 69 6c 20 64 69 73 61 62 6c 65 73 20 74 68 69 73 20 63 61 63 68 .value.of.nil.disables.this.cach
5000 65 2e 0a 53 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 e..See.`projectile-file-exists-p
5020 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 '.for.details."...:group.'projec
5040 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 tile...:type.'(choice.(const.:ta
5060 67 20 22 44 69 73 61 62 6c 65 64 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g."Disabled".nil)...............
5080 20 20 20 28 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 53 65 63 6f 6e 64 73 22 29 29 29 0a 0a 28 ...(integer.:tag."Seconds")))..(
50a0 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 63 61 63 68 65 defcustom.projectile-files-cache
50c0 2d 65 78 70 69 72 65 20 6e 69 6c 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 73 65 63 6f 6e 64 73 -expire.nil..."Number.of.seconds
50e0 20 62 65 66 6f 72 65 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 6c 69 73 74 20 63 61 63 68 65 .before.project.files.list.cache
5100 20 65 78 70 69 72 65 73 2e 0a 0a 41 20 76 61 6c 75 65 20 6f 66 20 6e 69 6c 20 6d 65 61 6e 73 20 .expires...A.value.of.nil.means.
5120 74 68 65 20 63 61 63 68 65 20 6e 65 76 65 72 20 65 78 70 69 72 65 73 2e 22 0a 20 20 3a 67 72 6f the.cache.never.expires."...:gro
5140 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 up.'projectile...:type.'(choice.
5160 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 69 73 61 62 6c 65 64 22 20 6e 69 6c 29 0a 20 20 20 20 (const.:tag."Disabled".nil).....
5180 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 53 65 63 6f .............(integer.:tag."Seco
51a0 6e 64 73 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 nds")))..(defcustom.projectile-a
51c0 75 74 6f 2d 64 69 73 63 6f 76 65 72 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 uto-discover.t..."Whether.to.dis
51e0 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 77 68 65 6e 20 70 72 6f 6a 65 63 74 20 73 77 69 74 cover.projects.when.project.swit
5200 63 68 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 69 6e 76 6f 6b 65 64 2e 0a 0a 53 65 65 ching.commands.are.invoked...See
5220 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 65 61 72 63 68 .also.`projectile-project-search
5240 2d 70 61 74 68 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 -path'."...:group.'projectile...
5260 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f :type.'boolean...:package-versio
5280 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 33 2e 30 22 29 29 0a 0a 28 64 65 66 n.'(projectile..."2.3.0"))..(def
52a0 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 63 6c 65 61 6e 75 70 2d 6b custom.projectile-auto-cleanup-k
52c0 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 nown-projects.nil..."Whether.to.
52e0 63 6c 65 61 6e 75 70 20 70 72 6f 6a 65 63 74 73 20 77 68 65 6e 20 70 72 6f 6a 65 63 74 20 73 77 cleanup.projects.when.project.sw
5300 69 74 63 68 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 69 6e 76 6f 6b 65 64 2e 0a 0a 53 itching.commands.are.invoked...S
5320 65 65 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 ee.also.`projectile-cleanup-know
5340 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 n-projects'."...:group.'projecti
5360 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 le...:type.'boolean...:package-v
5380 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 39 2e 30 22 29 29 0a ersion.'(projectile..."2.9.0")).
53a0 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 75 70 64 61 .(defcustom.projectile-auto-upda
53c0 74 65 2d 63 61 63 68 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 63 61 63 68 65 20 69 73 20 61 te-cache.t..."Whether.cache.is.a
53e0 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 70 64 61 74 65 64 20 77 68 65 6e 20 66 69 6c 65 73 20 utomatically.updated.when.files.
5400 61 72 65 20 6f 70 65 6e 65 64 20 6f 72 20 64 65 6c 65 74 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 are.opened.or.deleted."...:group
5420 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a .'projectile...:type.'boolean)..
5440 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 71 75 69 72 65 2d 70 72 (defcustom.projectile-require-pr
5460 6f 6a 65 63 74 2d 72 6f 6f 74 20 27 70 72 6f 6d 70 74 0a 20 20 22 52 65 71 75 69 72 65 20 74 68 oject-root.'prompt..."Require.th
5480 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 74 6f 20 e.presence.of.a.project.root.to.
54a0 6f 70 65 72 61 74 65 20 77 68 65 6e 20 74 72 75 65 2e 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 60 operate.when.true..When.set.to.`
54c0 70 72 6f 6d 70 74 27 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 61 73 6b 20 79 6f 75 20 prompt'.Projectile.will.ask.you.
54e0 74 6f 20 73 65 6c 65 63 74 20 61 20 70 72 6f 6a 65 63 74 0a 64 69 72 65 63 74 6f 72 79 20 69 66 to.select.a.project.directory.if
5500 20 79 6f 75 27 72 65 20 6e 6f 74 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 0a 0a 57 68 65 6e 20 .you're.not.in.a.project...When.
5520 6e 69 6c 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 74 68 65 nil.Projectile.will.consider.the
5540 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 .current.directory.the.project.r
5560 6f 6f 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 oot."...:group.'projectile...:ty
5580 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 22 20 6e 69 6c pe.'(choice.(const.:tag."No".nil
55a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 )..................(const.:tag."
55c0 59 65 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 Yes".t)..................(const.
55e0 3a 74 61 67 20 22 50 72 6f 6d 70 74 20 66 6f 72 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6d 70 74 :tag."Prompt.for.project".prompt
5600 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c )))..(defcustom.projectile-compl
5620 65 74 69 6f 6e 2d 73 79 73 74 65 6d 20 27 61 75 74 6f 0a 20 20 22 54 68 65 20 63 6f 6d 70 6c 65 etion-system.'auto..."The.comple
5640 74 69 6f 6e 20 73 79 73 74 65 6d 20 74 6f 20 62 65 20 75 73 65 64 20 62 79 20 50 72 6f 6a 65 63 tion.system.to.be.used.by.Projec
5660 74 69 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 tile."...:group.'projectile...:t
5680 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 ype.'(radio...........(const.:ta
56a0 67 20 22 41 75 74 6f 2d 64 65 74 65 63 74 22 20 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 g."Auto-detect".auto)...........
56c0 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 64 6f 22 20 69 64 6f 29 0a 20 20 20 20 20 20 20 20 20 (const.:tag."Ido".ido)..........
56e0 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 48 65 6c 6d 22 20 68 65 6c 6d 29 0a 20 20 20 20 20 20 .(const.:tag."Helm".helm).......
5700 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 76 79 22 20 69 76 79 29 0a 20 20 20 20 20 ....(const.:tag."Ivy".ivy)......
5720 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 65 66 61 75 6c 74 22 20 64 65 66 61 75 .....(const.:tag."Default".defau
5740 6c 74 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 75 lt)...........(function.:tag."Cu
5760 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 72 stom.function")))..(defcustom.pr
5780 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 20 6e 69 6c 0a 20 20 22 50 72 ojectile-keymap-prefix.nil..."Pr
57a0 6f 6a 65 63 74 69 6c 65 20 6b 65 79 6d 61 70 20 70 72 65 66 69 78 2e 22 0a 20 20 3a 67 72 6f 75 ojectile.keymap.prefix."...:grou
57c0 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a p.'projectile...:type.'string)..
57e0 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 (defcustom.projectile-cache-file
5800 20 20 22 2e 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2e 65 6c 64 22 0a 20 20 22 54 68 65 ..".projectile-cache.eld"..."The
5820 20 6e 61 6d 65 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 63 61 63 68 65 2e 0a 49 74 27 .name.of.Projectile's.cache..It'
5840 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 s.relative.to.the.project.root."
5860 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 ...:group.'projectile...:type.'s
5880 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 tring)..(defcustom.projectile-ta
58a0 67 73 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 54 41 47 53 22 0a 20 20 22 54 68 65 20 74 61 67 73 20 gs-file-name."TAGS"..."The.tags.
58c0 66 69 6c 65 6e 61 6d 65 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 67 6f 69 6e 67 20 74 6f 20 75 filename.Projectile's.going.to.u
58e0 73 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 se."...:group.'projectile...:typ
5900 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c e.'string)..(defcustom.projectil
5920 65 2d 74 61 67 73 2d 63 6f 6d 6d 61 6e 64 20 22 63 74 61 67 73 20 2d 52 65 20 2d 66 20 5c 22 25 e-tags-command."ctags.-Re.-f.\"%
5940 73 5c 22 20 25 73 20 5c 22 25 73 5c 22 22 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 50 72 s\".%s.\"%s\""..."The.command.Pr
5960 6f 6a 65 63 74 69 6c 65 27 73 20 67 6f 69 6e 67 20 74 6f 20 75 73 65 20 74 6f 20 67 65 6e 65 72 ojectile's.going.to.use.to.gener
5980 61 74 65 20 61 20 54 41 47 53 20 66 69 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a ate.a.TAGS.file."...:group.'proj
59a0 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 ectile...:type.'string)..(defcus
59c0 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e 64 20 27 61 75 74 tom.projectile-tags-backend.'aut
59e0 6f 0a 20 20 22 54 68 65 20 74 61 67 20 62 61 63 6b 65 6e 64 20 74 68 61 74 20 50 72 6f 6a 65 63 o..."The.tag.backend.that.Projec
5a00 74 69 6c 65 20 73 68 6f 75 6c 64 20 75 73 65 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 60 61 75 74 tile.should.use...If.set.to.`aut
5a20 6f 27 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 27 20 77 69 6c 6c 20 61 o',.`projectile-find-tag'.will.a
5a40 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 63 68 6f 6f 73 65 0a 77 68 69 63 68 20 62 61 63 6b 65 6e utomatically.choose.which.backen
5a60 64 20 74 6f 20 75 73 65 2e 20 20 50 72 65 66 65 72 65 6e 63 65 20 6f 72 64 65 72 20 69 73 20 67 d.to.use...Preference.order.is.g
5a80 67 74 61 67 73 20 2d 3e 20 78 72 65 66 0a 2d 3e 20 65 74 61 67 73 2d 73 65 6c 65 63 74 20 2d 3e gtags.->.xref.->.etags-select.->
5aa0 20 60 66 69 6e 64 2d 74 61 67 27 2e 20 20 56 61 72 69 61 62 6c 65 20 63 61 6e 20 61 6c 73 6f 20 .`find-tag'...Variable.can.also.
5ac0 62 65 20 73 65 74 20 74 6f 20 73 70 65 63 69 66 79 20 77 68 69 63 68 0a 62 61 63 6b 65 6e 64 20 be.set.to.specify.which.backend.
5ae0 74 6f 20 75 73 65 2e 20 20 49 66 20 73 65 6c 65 63 74 65 64 20 62 61 63 6b 65 6e 64 20 69 73 20 to.use...If.selected.backend.is.
5b00 75 6e 61 76 61 69 6c 61 62 6c 65 2c 20 66 61 6c 6c 20 62 61 63 6b 20 74 6f 0a 60 66 69 6e 64 2d unavailable,.fall.back.to.`find-
5b20 74 61 67 27 2e 0a 0a 49 66 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 73 65 74 20 74 tag'...If.this.variable.is.set.t
5b40 6f 20 60 61 75 74 6f 27 20 61 6e 64 20 67 67 74 61 67 73 20 69 73 20 61 76 61 69 6c 61 62 6c 65 o.`auto'.and.ggtags.is.available
5b60 2c 20 6f 72 20 69 66 0a 73 65 74 20 74 6f 20 60 67 67 74 61 67 73 27 2c 20 74 68 65 6e 20 67 67 ,.or.if.set.to.`ggtags',.then.gg
5b80 74 61 67 73 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 66 6f 72 0a 60 70 72 6f 6a 65 63 74 69 6c tags.will.be.used.for.`projectil
5ba0 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 27 2e 20 20 46 6f 72 20 61 6c 6c 20 6f 74 68 e-regenerate-tags'...For.all.oth
5bc0 65 72 20 73 65 74 74 69 6e 67 73 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 63 6f 6d er.settings.`projectile-tags-com
5be0 6d 61 6e 64 27 20 77 69 6c 6c 20 62 65 20 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 mand'.will.be.used."...:group.'p
5c00 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 20 20 20 rojectile...:type.'(radio.......
5c20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 75 74 6f 22 20 61 75 74 6f 29 0a 20 20 20 ....(const.:tag."auto".auto)....
5c40 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 78 72 65 66 22 20 78 72 65 66 29 0a .......(const.:tag."xref".xref).
5c60 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 67 67 74 61 67 73 22 20 67 ..........(const.:tag."ggtags".g
5c80 67 74 61 67 73 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 65 74 gtags)...........(const.:tag."et
5ca0 61 67 73 22 20 65 74 61 67 73 2d 73 65 6c 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f ags".etags-select)...........(co
5cc0 6e 73 74 20 3a 74 61 67 20 22 73 74 61 6e 64 61 72 64 22 20 66 69 6e 64 2d 74 61 67 29 29 0a 20 nst.:tag."standard".find-tag))..
5ce0 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e .:package-version.'(projectile..
5d00 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 ."0.14.0"))..(defcustom.projecti
5d20 6c 65 2d 73 6f 72 74 2d 6f 72 64 65 72 20 27 64 65 66 61 75 6c 74 0a 20 20 22 54 68 65 20 73 6f le-sort-order.'default..."The.so
5d40 72 74 20 6f 72 64 65 72 20 75 73 65 64 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 rt.order.used.for.a.project's.fi
5d60 6c 65 73 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 73 6f 72 les...Note.that.files.aren't.sor
5d80 74 65 64 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 ted.if.`projectile-indexing-meth
5da0 6f 64 27 0a 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 67 72 6f 75 70 od'.is.set.to.`alien'."...:group
5dc0 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 0a 20 20 20 .'projectile...:type.'(radio....
5de0 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 65 66 61 75 6c 74 20 28 6e 6f 20 .......(const.:tag."Default.(no.
5e00 73 6f 72 74 69 6e 67 29 22 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f sorting)".default)...........(co
5e20 6e 73 74 20 3a 74 61 67 20 22 52 65 63 65 6e 74 6c 79 20 6f 70 65 6e 65 64 20 66 69 6c 65 73 22 nst.:tag."Recently.opened.files"
5e40 20 72 65 63 65 6e 74 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 .recentf)...........(const.:tag.
5e60 22 52 65 63 65 6e 74 6c 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 73 2c 20 74 68 65 6e 20 72 "Recently.active.buffers,.then.r
5e80 65 63 65 6e 74 6c 79 20 6f 70 65 6e 65 64 20 66 69 6c 65 73 22 20 72 65 63 65 6e 74 6c 79 2d 61 ecently.opened.files".recently-a
5ea0 63 74 69 76 65 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 41 63 ctive)...........(const.:tag."Ac
5ec0 63 65 73 73 20 74 69 6d 65 20 28 61 74 69 6d 65 29 22 20 61 63 63 65 73 73 2d 74 69 6d 65 29 0a cess.time.(atime)".access-time).
5ee0 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4d 6f 64 69 66 69 63 61 74 ..........(const.:tag."Modificat
5f00 69 6f 6e 20 74 69 6d 65 20 28 6d 74 69 6d 65 29 22 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 ion.time.(mtime)".modification-t
5f20 69 6d 65 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 ime)))..(defcustom.projectile-ve
5f40 72 62 6f 73 65 20 74 0a 20 20 22 45 63 68 6f 20 6d 65 73 73 61 67 65 73 20 74 68 61 74 20 61 72 rbose.t..."Echo.messages.that.ar
5f60 65 20 6e 6f 74 20 65 72 72 6f 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 e.not.errors."...:group.'project
5f80 69 6c 65 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 ile...:type.'boolean)..(defcusto
5fa0 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 2d 66 75 6e 63 m.projectile-buffers-filter-func
5fc0 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 66 tion.nil..."A.function.used.to.f
5fe0 69 6c 74 65 72 20 74 68 65 20 62 75 66 66 65 72 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 ilter.the.buffers.in.`projectile
6000 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 27 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e -project-buffers'...The.function
6020 20 73 68 6f 75 6c 64 20 61 63 63 65 70 74 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 .should.accept.and.return.a.list
6040 20 6f 66 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 2e 0a 54 77 6f 20 65 78 61 6d 70 6c 65 20 66 .of.Emacs.buffers..Two.example.f
6060 69 6c 74 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 73 68 69 70 70 65 64 20 62 79 20 64 ilter.functions.are.shipped.by.d
6080 65 66 61 75 6c 74 20 2d 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 77 69 74 efault.-.`projectile-buffers-wit
60a0 68 2d 66 69 6c 65 27 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d h-file'.and.`projectile-buffers-
60c0 77 69 74 68 2d 66 69 6c 65 2d 6f 72 2d 70 72 6f 63 65 73 73 27 2e 22 0a 20 20 3a 67 72 6f 75 70 with-file-or-process'."...:group
60e0 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a .'projectile...:type.'function).
6100 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e .(defcustom.projectile-project-n
6120 61 6d 65 20 6e 69 6c 0a 20 20 22 49 66 20 74 68 69 73 20 76 61 6c 75 65 20 69 73 20 6e 6f 6e 2d ame.nil..."If.this.value.is.non-
6140 6e 69 6c 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 61 73 20 70 72 6f 6a 65 63 74 20 nil,.it.will.be.used.as.project.
6160 6e 61 6d 65 2e 0a 0a 49 74 20 68 61 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 66 75 name...It.has.precedence.over.fu
6180 6e 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 2d nction.`projectile-project-name-
61a0 66 75 6e 63 74 69 6f 6e 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 function'."...:group.'projectile
61c0 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 ...:type.'string...:package-vers
61e0 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 ion.'(projectile..."0.14.0"))..(
6200 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d defcustom.projectile-project-nam
6220 65 2d 66 75 6e 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 70 e-function.'projectile-default-p
6240 72 6f 6a 65 63 74 2d 6e 61 6d 65 0a 20 20 22 41 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 roject-name..."A.function.that.r
6260 65 63 65 69 76 65 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 61 6e 64 20 72 65 74 eceives.the.project-root.and.ret
6280 75 72 6e 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 2e 0a 0a 49 66 20 76 61 72 69 61 urns.the.project.name...If.varia
62a0 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 27 20 69 73 ble.`projectile-project-name'.is
62c0 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 6e 6f 74 .non-nil,.this.function.will.not
62e0 20 62 65 0a 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a .be.used."...:group.'projectile.
6300 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 ..:type.'function...:package-ver
6320 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a sion.'(projectile..."0.14.0"))..
6340 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f (defcustom.projectile-project-ro
6360 6f 74 2d 66 69 6c 65 73 0a 20 20 27 28 0a 20 20 20 20 22 47 54 41 47 53 22 20 20 20 20 20 20 20 ot-files...'(....."GTAGS".......
6380 20 20 20 20 20 20 20 3b 20 47 4e 55 20 47 6c 6f 62 61 6c 20 74 61 67 73 0a 20 20 20 20 22 54 41 .......;.GNU.Global.tags....."TA
63a0 47 53 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 65 74 61 67 73 2f 63 74 61 67 73 20 GS"...............;.etags/ctags.
63c0 61 72 65 20 75 73 75 61 6c 6c 79 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 70 72 6f 6a 65 are.usually.in.the.root.of.proje
63e0 63 74 0a 20 20 20 20 22 63 6f 6e 66 69 67 75 72 65 2e 61 63 22 20 20 20 20 20 20 20 3b 20 61 75 ct....."configure.ac".......;.au
6400 74 6f 63 6f 6e 66 20 6e 65 77 20 73 74 79 6c 65 0a 20 20 20 20 22 63 6f 6e 66 69 67 75 72 65 2e toconf.new.style....."configure.
6420 69 6e 22 20 20 20 20 20 20 20 3b 20 61 75 74 6f 63 6f 6e 66 20 6f 6c 64 20 73 74 79 6c 65 0a 20 in".......;.autoconf.old.style..
6440 20 20 20 22 63 73 63 6f 70 65 2e 6f 75 74 22 20 20 20 20 20 20 20 20 20 3b 20 63 73 63 6f 70 65 ..."cscope.out".........;.cscope
6460 0a 20 20 20 20 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 63 6f 6e 73 69 64 .....)..."A.list.of.files.consid
6480 65 72 65 64 20 74 6f 20 6d 61 72 6b 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 20 70 72 6f 6a 65 ered.to.mark.the.root.of.a.proje
64a0 63 74 2e 0a 54 68 65 20 74 6f 70 6d 6f 73 74 20 6d 61 74 63 68 20 68 61 73 20 70 72 65 63 65 64 ct..The.topmost.match.has.preced
64c0 65 6e 63 65 2e 0a 53 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 ence..See.`projectile-register-p
64e0 72 6f 6a 65 63 74 2d 74 79 70 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 roject-type'."...:group.'project
6500 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 ile...:type.'(repeat.string))..(
6520 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f defcustom.projectile-project-roo
6540 74 2d 66 69 6c 65 73 2d 62 6f 74 74 6f 6d 2d 75 70 0a 20 20 27 28 22 2e 67 69 74 22 20 20 20 20 t-files-bottom-up...'(".git"....
6560 20 20 20 20 3b 20 47 69 74 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 2e 68 67 22 ....;.Git.VCS.root.dir.....".hg"
6580 20 20 20 20 20 20 20 20 20 3b 20 4d 65 72 63 75 72 69 61 6c 20 56 43 53 20 72 6f 6f 74 20 64 69 .........;.Mercurial.VCS.root.di
65a0 72 0a 20 20 20 20 22 2e 66 73 6c 63 6b 6f 75 74 22 20 20 20 3b 20 46 6f 73 73 69 6c 20 56 43 53 r.....".fslckout"...;.Fossil.VCS
65c0 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 5f 46 4f 53 53 49 4c 5f 22 20 20 20 20 3b 20 46 6f .root.dir....."_FOSSIL_"....;.Fo
65e0 73 73 69 6c 20 56 43 53 20 72 6f 6f 74 20 44 42 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 20 20 20 20 ssil.VCS.root.DB.on.Windows.....
6600 22 2e 62 7a 72 22 20 20 20 20 20 20 20 20 3b 20 42 61 7a 61 61 72 20 56 43 53 20 72 6f 6f 74 20 ".bzr"........;.Bazaar.VCS.root.
6620 64 69 72 0a 20 20 20 20 22 5f 64 61 72 63 73 22 20 20 20 20 20 20 3b 20 44 61 72 63 73 20 56 43 dir....."_darcs"......;.Darcs.VC
6640 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 2e 70 69 6a 75 6c 22 20 20 20 20 20 20 3b 20 50 S.root.dir.....".pijul"......;.P
6660 69 6a 75 6c 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 2e 73 6c 22 20 20 20 20 20 ijul.VCS.root.dir.....".sl".....
6680 20 20 20 20 3b 20 53 61 70 6c 69 6e 67 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 ....;.Sapling.VCS.root.dir....."
66a0 2e 6a 6a 22 20 20 20 20 20 20 20 20 20 3b 20 4a 75 6a 75 74 73 75 20 56 43 53 20 72 6f 6f 74 20 .jj".........;.Jujutsu.VCS.root.
66c0 64 69 72 0a 20 20 20 20 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 63 6f 6e dir.....)..."A.list.of.files.con
66e0 73 69 64 65 72 65 64 20 74 6f 20 6d 61 72 6b 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 20 70 72 sidered.to.mark.the.root.of.a.pr
6700 6f 6a 65 63 74 2e 0a 54 68 65 20 62 6f 74 74 6f 6d 6d 6f 73 74 20 28 70 61 72 65 6e 74 6d 6f 73 oject..The.bottommost.(parentmos
6720 74 29 20 6d 61 74 63 68 20 68 61 73 20 70 72 65 63 65 64 65 6e 63 65 2e 22 0a 20 20 3a 67 72 6f t).match.has.precedence."...:gro
6740 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 up.'projectile...:type.'(repeat.
6760 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d string))..(defcustom.projectile-
6780 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 project-root-files-top-down-recu
67a0 72 72 69 6e 67 0a 20 20 27 28 22 2e 73 76 6e 22 20 3b 20 53 76 6e 20 56 43 53 20 72 6f 6f 74 20 rring...'(".svn".;.Svn.VCS.root.
67c0 64 69 72 0a 20 20 20 20 22 43 56 53 22 20 20 3b 20 43 73 76 20 56 43 53 20 72 6f 6f 74 20 64 69 dir....."CVS"..;.Csv.VCS.root.di
67e0 72 0a 20 20 20 20 22 4d 61 6b 65 66 69 6c 65 22 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 r....."Makefile")..."A.list.of.f
6800 69 6c 65 73 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 6d 61 72 6b 20 74 68 65 20 72 6f 6f 74 iles.considered.to.mark.the.root
6820 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 2e 0a 54 68 65 20 73 65 61 72 63 68 20 73 74 61 72 74 73 .of.a.project..The.search.starts
6840 20 61 74 20 74 68 65 20 74 6f 70 20 61 6e 64 20 64 65 73 63 65 6e 64 73 20 64 6f 77 6e 20 74 69 .at.the.top.and.descends.down.ti
6860 6c 6c 20 61 20 64 69 72 65 63 74 6f 72 79 0a 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 6d ll.a.directory.that.contains.a.m
6880 61 74 63 68 20 66 69 6c 65 20 62 75 74 20 69 74 73 20 70 61 72 65 6e 74 20 64 6f 65 73 20 6e 6f atch.file.but.its.parent.does.no
68a0 74 2e 20 20 54 68 75 73 2c 20 69 74 27 73 20 61 0a 62 6f 74 74 6f 6d 6d 6f 73 74 20 6d 61 74 63 t...Thus,.it's.a.bottommost.matc
68c0 68 20 69 6e 20 74 68 65 20 74 6f 70 6d 6f 73 74 20 73 65 71 75 65 6e 63 65 20 6f 66 20 64 69 72 h.in.the.topmost.sequence.of.dir
68e0 65 63 74 6f 72 69 65 73 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 72 6f 6f 74 20 66 69 6c 65 2e ectories.containing.a.root.file.
6900 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 "...:group.'projectile...:type.'
6920 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 (repeat.string))..(define-obsole
6940 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 te-variable-alias.'projectile-pr
6960 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 66 75 6e 63 74 69 6f 6e 73 20 27 70 72 6f 6a oject-root-files-functions.'proj
6980 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 20 22 32 ectile-project-root-functions."2
69a0 2e 34 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a .4")..(defcustom.projectile-proj
69c0 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 28 70 72 6f 6a 65 63 74 69 6c ect-root-functions...'(projectil
69e0 65 2d 72 6f 6f 74 2d 6c 6f 63 61 6c 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 e-root-local.....projectile-root
6a00 2d 6d 61 72 6b 65 64 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 62 6f 74 74 -marked.....projectile-root-bott
6a20 6f 6d 2d 75 70 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f om-up.....projectile-root-top-do
6a40 77 6e 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f 77 6e 2d wn.....projectile-root-top-down-
6a60 72 65 63 75 72 72 69 6e 67 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e recurring)..."A.list.of.function
6a80 73 20 66 6f 72 20 66 69 6e 64 69 6e 67 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 6f 6c 64 65 s.for.finding.project.root.folde
6aa0 72 73 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 72 75 6e 20 75 6e rs..The.functions.will.be.run.un
6ac0 74 69 6c 20 6f 6e 65 20 6f 66 20 74 68 65 6d 20 72 65 74 75 72 6e 73 20 61 20 70 72 6f 6a 65 63 til.one.of.them.returns.a.projec
6ae0 74 20 66 6f 6c 64 65 72 2e 0a 52 65 6f 72 64 65 72 69 6e 67 20 74 68 65 20 64 65 66 61 75 6c 74 t.folder..Reordering.the.default
6b00 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 20 61 6c 74 65 72 20 74 68 65 20 70 72 6f 6a 65 63 .functions.will.alter.the.projec
6b20 74 20 64 69 73 63 6f 76 65 72 79 0a 61 6c 67 6f 72 69 74 68 6d 2e 22 0a 20 20 3a 67 72 6f 75 70 t.discovery.algorithm."...:group
6b40 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 66 75 .'projectile...:type.'(repeat.fu
6b60 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d nction))..(defcustom.projectile-
6b80 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 0a 20 20 22 2e 70 72 6f 6a 65 63 74 69 6c 65 22 0a 20 dirconfig-file...".projectile"..
6ba0 20 22 54 68 65 20 66 69 6c 65 20 77 68 69 63 68 20 73 65 72 76 65 73 20 62 6f 74 68 20 61 73 20 ."The.file.which.serves.both.as.
6bc0 61 20 70 72 6f 6a 65 63 74 20 6d 61 72 6b 65 72 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 a.project.marker.and.configurati
6be0 6f 6e 20 66 69 6c 65 2e 0a 54 68 69 73 20 73 68 6f 75 6c 64 20 5f 6e 6f 74 5f 20 62 65 20 73 65 on.file..This.should._not_.be.se
6c00 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 t.via..dir-locals.el."...:group.
6c20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 70 61 63 'projectile...:type.'file...:pac
6c40 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 37 kage-version.'(projectile..."2.7
6c60 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 .0"))..(defcustom.projectile-dir
6c80 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 2d 70 72 65 66 69 78 0a 20 20 6e 69 6c 0a 20 20 22 60 config-comment-prefix...nil..."`
6ca0 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 60 20 63 6f 6d 6d 65 projectile-dirconfig-file`.comme
6cc0 6e 74 20 73 74 61 72 74 20 6d 61 72 6b 65 72 2e 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 73 nt.start.marker..If.specified,.s
6ce0 74 61 72 74 69 6e 67 20 61 20 6c 69 6e 65 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 27 73 20 2e 70 tarting.a.line.in.a.project's..p
6d00 72 6f 6a 65 63 74 69 6c 65 20 66 69 6c 65 20 77 69 74 68 20 74 68 69 73 0a 63 68 61 72 61 63 74 rojectile.file.with.this.charact
6d20 65 72 20 6d 61 72 6b 73 20 74 68 61 74 20 6c 69 6e 65 20 61 73 20 61 20 63 6f 6d 6d 65 6e 74 20 er.marks.that.line.as.a.comment.
6d40 69 6e 73 74 65 61 64 20 6f 66 20 61 20 70 61 74 74 65 72 6e 2e 0a 53 69 6d 69 6c 61 72 20 74 6f instead.of.a.pattern..Similar.to
6d60 20 27 23 27 20 69 6e 20 2e 67 69 74 69 67 6e 6f 72 65 20 66 69 6c 65 73 2e 22 0a 20 20 3a 67 72 .'#'.in..gitignore.files."...:gr
6d80 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 63 68 61 72 61 63 74 oup.'projectile...:type.'charact
6da0 65 72 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 er...:package-version.'(projecti
6dc0 6c 65 20 2e 20 22 32 2e 32 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 le..."2.2.0"))..(defcustom.proje
6de0 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 28 ctile-globally-ignored-files...(
6e00 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a list.projectile-tags-file-name).
6e20 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 67 6c 6f 62 61 6c 6c 79 20 69 67 6e 6f .."A.list.of.files.globally.igno
6e40 72 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c red.by.projectile..Note.that.fil
6e60 65 73 20 61 72 65 6e 27 74 20 66 69 6c 74 65 72 65 64 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c es.aren't.filtered.if.`projectil
6e80 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 0a 69 73 20 73 65 74 20 74 6f 20 60 61 6c e-indexing-method'.is.set.to.`al
6ea0 69 65 6e 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 ien'."...:group.'projectile...:t
6ec0 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f ype.'(repeat.string))..(defcusto
6ee0 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 75 6e 69 67 6e 6f 72 65 64 2d m.projectile-globally-unignored-
6f00 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 67 6c 6f files.nil..."A.list.of.files.glo
6f20 62 61 6c 6c 79 20 75 6e 69 67 6e 6f 72 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a bally.unignored.by.projectile...
6f40 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 66 69 6c 74 65 72 65 64 20 Note.that.files.aren't.filtered.
6f60 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 0a if.`projectile-indexing-method'.
6f80 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 is.set.to.`alien'."...:group.'pr
6fa0 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 ojectile...:type.'(repeat.string
6fc0 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c )...:package-version.'(projectil
6fe0 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 e..."0.14.0"))..(defcustom.proje
7000 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 ctile-globally-ignored-file-suff
7020 69 78 65 73 0a 20 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 20 73 75 66 ixes...nil..."A.list.of.file.suf
7040 66 69 78 65 73 20 67 6c 6f 62 61 6c 6c 79 20 69 67 6e 6f 72 65 64 20 62 79 20 70 72 6f 6a 65 63 fixes.globally.ignored.by.projec
7060 74 69 6c 65 2e 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 66 69 6c tile..Note.that.files.aren't.fil
7080 74 65 72 65 64 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 tered.if.`projectile-indexing-me
70a0 74 68 6f 64 27 0a 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 67 72 6f thod'.is.set.to.`alien'."...:gro
70c0 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 up.'projectile...:type.'(repeat.
70e0 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d string))..(defcustom.projectile-
7100 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 27 globally-ignored-directories...'
7120 28 22 2e 69 64 65 61 22 0a 20 20 20 20 22 2e 76 73 63 6f 64 65 22 0a 20 20 20 20 22 2e 65 6e 73 (".idea".....".vscode".....".ens
7140 69 6d 65 5f 63 61 63 68 65 22 0a 20 20 20 20 22 2e 65 75 6e 69 74 22 0a 20 20 20 20 22 2e 67 69 ime_cache".....".eunit".....".gi
7160 74 22 0a 20 20 20 20 22 2e 68 67 22 0a 20 20 20 20 22 2e 66 73 6c 63 6b 6f 75 74 22 0a 20 20 20 t".....".hg".....".fslckout"....
7180 20 22 5f 46 4f 53 53 49 4c 5f 22 0a 20 20 20 20 22 2e 62 7a 72 22 0a 20 20 20 20 22 5f 64 61 72 ."_FOSSIL_".....".bzr"....."_dar
71a0 63 73 22 0a 20 20 20 20 22 2e 70 69 6a 75 6c 22 0a 20 20 20 20 22 2e 74 6f 78 22 0a 20 20 20 20 cs".....".pijul".....".tox".....
71c0 22 2e 73 76 6e 22 0a 20 20 20 20 22 2e 73 74 61 63 6b 2d 77 6f 72 6b 22 0a 20 20 20 20 22 2e 63 ".svn".....".stack-work".....".c
71e0 63 6c 73 2d 63 61 63 68 65 22 0a 20 20 20 20 22 2e 63 61 63 68 65 22 0a 20 20 20 20 22 2e 63 6c cls-cache".....".cache".....".cl
7200 61 6e 67 64 22 0a 20 20 20 20 22 2e 73 6c 22 0a 20 20 20 20 22 2e 6a 6a 22 29 0a 20 20 22 41 20 angd".....".sl".....".jj")..."A.
7220 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 20 69 67 6e list.of.directories.globally.ign
7240 6f 72 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 53 74 72 69 6e 67 73 20 74 68 61 ored.by.projectile...Strings.tha
7260 74 20 64 6f 6e 27 74 20 73 74 61 72 74 20 77 69 74 68 20 2a 20 61 72 65 20 6f 6e 6c 79 20 69 67 t.don't.start.with.*.are.only.ig
7280 6e 6f 72 65 64 20 61 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 0a 6f 66 20 74 68 65 20 70 72 nored.at.the.top.level.of.the.pr
72a0 6f 6a 65 63 74 2e 20 20 53 74 72 69 6e 67 73 20 74 68 61 74 20 73 74 61 72 74 20 77 69 74 68 20 oject...Strings.that.start.with.
72c0 2a 20 61 72 65 20 69 67 6e 6f 72 65 64 20 65 76 65 72 79 77 68 65 72 65 0a 69 6e 20 74 68 65 20 *.are.ignored.everywhere.in.the.
72e0 70 72 6f 6a 65 63 74 2c 20 61 73 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 2a 2e 20 20 project,.as.if.there.was.no.*...
7300 53 6f 20 6e 6f 74 65 20 74 68 61 74 20 2a 20 77 68 65 6e 20 75 73 65 64 20 61 73 0a 61 20 70 72 So.note.that.*.when.used.as.a.pr
7320 65 66 69 78 20 69 73 20 6e 6f 74 20 61 20 77 69 6c 64 63 61 72 64 3b 20 69 74 20 69 73 20 61 6e efix.is.not.a.wildcard;.it.is.an
7340 20 69 6e 64 69 63 61 74 6f 72 20 74 68 61 74 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 0a 73 68 .indicator.that.the.directory.sh
7360 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 20 61 74 20 61 6c 6c 20 6c 65 76 65 6c 73 2c 20 6e ould.be.ignored.at.all.levels,.n
7380 6f 74 20 6a 75 73 74 20 72 6f 6f 74 2e 0a 0a 45 78 61 6d 70 6c 65 73 3a 20 5c 22 74 6d 70 5c 22 ot.just.root...Examples:.\"tmp\"
73a0 20 69 67 6e 6f 72 65 73 20 6f 6e 6c 79 20 2e 2f 74 6d 70 20 61 74 20 74 68 65 20 74 6f 70 20 6c .ignores.only../tmp.at.the.top.l
73c0 65 76 65 6c 20 6f 66 20 74 68 65 0a 70 72 6f 6a 65 63 74 2c 20 62 75 74 20 6e 6f 74 20 2e 2f 73 evel.of.the.project,.but.not../s
73e0 72 63 2f 74 6d 70 2e 20 20 5c 22 2a 74 6d 70 5c 22 20 77 69 6c 6c 20 69 67 6e 6f 72 65 20 62 6f rc/tmp...\"*tmp\".will.ignore.bo
7400 74 68 20 2e 2f 74 6d 70 20 61 6e 64 0a 2e 2f 73 72 63 2f 74 6d 70 2c 20 62 75 74 20 6e 6f 74 20 th../tmp.and../src/tmp,.but.not.
7420 2e 2f 6e 6f 74 2d 61 2d 74 6d 70 20 6f 72 20 2e 2f 73 72 63 2f 6e 6f 74 2d 61 2d 74 6d 70 2e 0a ./not-a-tmp.or../src/not-a-tmp..
7440 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 66 69 6c 74 65 72 65 64 .Note.that.files.aren't.filtered
7460 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 .if.`projectile-indexing-method'
7480 0a 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 70 .is.set.to.`alien'...See.also.`p
74a0 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 69 67 6e 6f 72 65 2d 66 69 6c 65 2d 70 61 74 rojectile-global-ignore-file-pat
74c0 74 65 72 6e 73 27 2e 22 0a 20 20 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6e 6f terns'."...:safe.(lambda.(x).(no
74e0 74 20 28 72 65 6d 71 20 74 20 28 6d 61 70 63 61 72 20 23 27 73 74 72 69 6e 67 70 20 78 29 29 29 t.(remq.t.(mapcar.#'stringp.x)))
7500 29 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 )...:group.'projectile...:type.'
7520 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f (repeat.string))..(defcustom.pro
7540 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 jectile-globally-unignored-direc
7560 74 6f 72 69 65 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 tories.nil..."A.list.of.director
7580 69 65 73 20 67 6c 6f 62 61 6c 6c 79 20 75 6e 69 67 6e 6f 72 65 64 20 62 79 20 70 72 6f 6a 65 63 ies.globally.unignored.by.projec
75a0 74 69 6c 65 2e 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 66 69 6c tile..Note.that.files.aren't.fil
75c0 74 65 72 65 64 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 tered.if.`projectile-indexing-me
75e0 74 68 6f 64 27 0a 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 67 72 6f thod'.is.set.to.`alien'."...:gro
7600 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 up.'projectile...:type.'(repeat.
7620 73 74 72 69 6e 67 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f string)...:package-version.'(pro
7640 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d jectile..."0.14.0"))..(defcustom
7660 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 69 67 6e 6f 72 65 2d 66 69 6c 65 2d 70 .projectile-global-ignore-file-p
7680 61 74 74 65 72 6e 73 0a 20 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 20 atterns...nil..."A.list.of.file.
76a0 72 65 67 65 78 70 20 70 61 74 74 65 72 6e 73 20 69 67 6e 6f 72 65 64 20 62 79 20 50 72 6f 6a 65 regexp.patterns.ignored.by.Proje
76c0 63 74 69 6c 65 2e 0a 0a 49 74 20 63 6f 6d 70 6c 65 6d 65 6e 74 73 20 60 70 72 6f 6a 65 63 74 69 ctile...It.complements.`projecti
76e0 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 27 20 61 6e 64 0a 60 le-globally-ignored-files'.and.`
7700 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 projectile-globally-ignored-dire
7720 63 74 6f 72 69 65 73 27 2e 20 20 53 65 65 20 61 6c 73 6f 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d ctories'...See.also.`projectile-
7740 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 70 27 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d ignored-file-p'.and.`projectile-
7760 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 27 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 ignored-directory-p'...Note.that
7780 20 66 69 6c 65 73 20 61 72 65 6e 27 74 20 66 69 6c 74 65 72 65 64 20 69 66 20 60 70 72 6f 6a 65 .files.aren't.filtered.if.`proje
77a0 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 0a 69 73 20 73 65 74 20 74 6f ctile-indexing-method'.is.set.to
77c0 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 .`alien'."...:safe.(lambda.(x).(
77e0 6e 6f 74 20 28 72 65 6d 71 20 74 20 28 6d 61 70 63 61 72 20 23 27 73 74 72 69 6e 67 70 20 78 29 not.(remq.t.(mapcar.#'stringp.x)
7800 29 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 )))...:group.'projectile...:type
7820 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 .'(repeat.string)...:package-ver
7840 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 39 2e 30 22 29 29 0a 0a 28 sion.'(projectile..."2.9.0"))..(
7860 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 defcustom.projectile-globally-ig
7880 6e 6f 72 65 64 2d 6d 6f 64 65 73 0a 20 20 27 28 22 65 72 63 2d 6d 6f 64 65 22 0a 20 20 20 20 22 nored-modes...'("erc-mode"....."
78a0 68 65 6c 70 2d 6d 6f 64 65 22 0a 20 20 20 20 22 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6c 69 73 74 2d help-mode"....."completion-list-
78c0 6d 6f 64 65 22 0a 20 20 20 20 22 42 75 66 66 65 72 2d 6d 65 6e 75 2d 6d 6f 64 65 22 0a 20 20 20 mode"....."Buffer-menu-mode"....
78e0 20 22 67 6e 75 73 2d 2e 2a 2d 6d 6f 64 65 22 0a 20 20 20 20 22 6f 63 63 75 72 2d 6d 6f 64 65 22 ."gnus-.*-mode"....."occur-mode"
7900 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f )..."A.list.of.regular.expressio
7920 6e 73 20 66 6f 72 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 69 67 6e 6f 72 65 64 20 62 79 20 70 72 ns.for.major.modes.ignored.by.pr
7940 6f 6a 65 63 74 69 6c 65 2e 0a 0a 49 66 20 61 20 62 75 66 66 65 72 20 69 73 20 75 73 69 6e 67 20 ojectile...If.a.buffer.is.using.
7960 61 20 67 69 76 65 6e 20 6d 61 6a 6f 72 20 6d 6f 64 65 2c 20 70 72 6f 6a 65 63 74 69 6c 65 20 77 a.given.major.mode,.projectile.w
7980 69 6c 6c 20 69 67 6e 6f 72 65 0a 69 74 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 73 20 77 6f 72 6b ill.ignore.it.for.functions.work
79a0 69 6e 67 20 77 69 74 68 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f ing.with.buffers."...:group.'pro
79c0 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 jectile...:type.'(repeat.string)
79e0 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c )..(defcustom.projectile-globall
7a00 79 2d 69 67 6e 6f 72 65 64 2d 62 75 66 66 65 72 73 0a 20 20 27 28 22 2a 73 63 72 61 74 63 68 2a y-ignored-buffers...'("*scratch*
7a20 22 0a 20 20 20 20 22 2a 6c 73 70 2d 6c 6f 67 2a 22 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 "....."*lsp-log*")..."A.list.of.
7a40 62 75 66 66 65 72 2d 6e 61 6d 65 73 20 69 67 6e 6f 72 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 buffer-names.ignored.by.projecti
7a60 6c 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 65 69 74 68 65 72 20 65 78 61 63 74 20 62 75 le...You.can.use.either.exact.bu
7a80 66 66 65 72 20 6e 61 6d 65 73 20 6f 72 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e ffer.names.or.regular.expression
7aa0 73 2e 0a 49 66 20 61 20 62 75 66 66 65 72 20 69 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20 70 72 s..If.a.buffer.is.in.the.list.pr
7ac0 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 69 67 6e 6f 72 65 20 69 74 20 66 6f 72 0a 66 75 6e 63 ojectile.will.ignore.it.for.func
7ae0 74 69 6f 6e 73 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a tions.working.with.buffers."...:
7b00 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 group.'projectile...:type.'(repe
7b20 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 at.string)...:package-version.'(
7b40 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 32 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 projectile..."0.12.0"))..(defcus
7b60 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 6e 69 tom.projectile-find-file-hook.ni
7b80 6c 0a 20 20 22 48 6f 6f 6b 73 20 72 75 6e 20 77 68 65 6e 20 61 20 66 69 6c 65 20 69 73 20 6f 70 l..."Hooks.run.when.a.file.is.op
7ba0 65 6e 65 64 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 27 ened.with.`projectile-find-file'
7bc0 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 ."...:group.'projectile...:type.
7be0 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 'hook)..(defcustom.projectile-fi
7c00 6e 64 2d 64 69 72 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 72 75 6e 20 77 68 65 nd-dir-hook.nil..."Hooks.run.whe
7c20 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6f 70 65 6e 65 64 20 77 69 74 68 20 60 70 72 n.a.directory.is.opened.with.`pr
7c40 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 ojectile-find-dir'."...:group.'p
7c60 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 rojectile...:type.'hook)..(defcu
7c80 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 stom.projectile-switch-project-a
7ca0 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 0a 20 20 22 41 ction.'projectile-find-file..."A
7cc0 63 74 69 6f 6e 20 69 6e 76 6f 6b 65 64 20 61 66 74 65 72 20 73 77 69 74 63 68 69 6e 67 20 70 72 ction.invoked.after.switching.pr
7ce0 6f 6a 65 63 74 73 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 ojects.with.`projectile-switch-p
7d00 72 6f 6a 65 63 74 27 2e 0a 0a 41 6e 79 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 64 6f 65 73 roject'...Any.function.that.does
7d20 20 6e 6f 74 20 74 61 6b 65 20 61 72 67 75 6d 65 6e 74 73 20 77 69 6c 6c 20 64 6f 2e 22 0a 20 20 .not.take.arguments.will.do."...
7d40 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 :group.'projectile...:type.'func
7d60 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e tion)..(defcustom.projectile-fin
7d80 64 2d 64 69 72 2d 69 6e 63 6c 75 64 65 73 2d 74 6f 70 2d 6c 65 76 65 6c 20 6e 69 6c 0a 20 20 22 d-dir-includes-top-level.nil..."
7da0 49 66 20 74 72 75 65 2c 20 61 64 64 20 74 6f 70 2d 6c 65 76 65 6c 20 64 69 72 20 74 6f 20 6f 70 If.true,.add.top-level.dir.to.op
7dc0 74 69 6f 6e 73 20 6f 66 66 65 72 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e tions.offered.by.`projectile-fin
7de0 64 2d 64 69 72 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 d-dir'."...:group.'projectile...
7e00 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 6d 20 70 72 6f 6a :type.'boolean)..(defcustom.proj
7e20 65 63 74 69 6c 65 2d 75 73 65 2d 67 69 74 2d 67 72 65 70 20 6e 69 6c 0a 20 20 22 49 66 20 74 72 ectile-use-git-grep.nil..."If.tr
7e40 75 65 2c 20 75 73 65 20 60 76 63 2d 67 69 74 2d 67 72 65 70 27 20 69 6e 20 67 69 74 20 70 72 6f ue,.use.`vc-git-grep'.in.git.pro
7e60 6a 65 63 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a jects."...:group.'projectile...:
7e80 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 6f 6a 65 type.'boolean)..(defcustom.proje
7ea0 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 ctile-grep-finished-hook.nil..."
7ec0 48 6f 6f 6b 73 20 72 75 6e 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 27 Hooks.run.when.`projectile-grep'
7ee0 20 66 69 6e 69 73 68 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 .finishes."...:group.'projectile
7f00 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f ...:type.'hook...:package-versio
7f20 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 64 65 n.'(projectile..."0.14.0"))..(de
7f40 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 69 78 2d 66 fcustom.projectile-test-prefix-f
7f60 75 6e 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 69 78 0a unction.'projectile-test-prefix.
7f80 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 74 65 73 74 20 66 69 6c 65 73 20 70 .."Function.to.find.test.files.p
7fa0 72 65 66 69 78 20 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 refix.based.on.PROJECT-TYPE."...
7fc0 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 :group.'projectile...:type.'func
7fe0 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 tion)..(defcustom.projectile-tes
8000 74 2d 73 75 66 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 t-suffix-function.'projectile-te
8020 73 74 2d 73 75 66 66 69 78 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 74 65 st-suffix..."Function.to.find.te
8040 73 74 20 66 69 6c 65 73 20 73 75 66 66 69 78 20 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a 45 43 54 st.files.suffix.based.on.PROJECT
8060 2d 54 59 50 45 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a -TYPE."...:group.'projectile...:
8080 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a type.'function)..(defcustom.proj
80a0 65 63 74 69 6c 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 66 75 6e 63 74 69 6f 6e ectile-related-files-fn-function
80c0 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 0a 20 20 .'projectile-related-files-fn...
80e0 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 72 65 6c 61 74 65 64 20 66 69 6c 65 73 20 "Function.to.find.related.files.
8100 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 3a 67 72 6f 75 70 based.on.PROJECT-TYPE."...:group
8120 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a .'projectile...:type.'function).
8140 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 79 6e 61 6d 69 63 2d 6d .(defcustom.projectile-dynamic-m
8160 6f 64 65 2d 6c 69 6e 65 20 74 0a 20 20 22 49 66 20 74 72 75 65 2c 20 75 70 64 61 74 65 20 74 68 ode-line.t..."If.true,.update.th
8180 65 20 6d 6f 64 65 2d 6c 69 6e 65 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 0a 4f 6e 6c 79 20 66 69 e.mode-line.dynamically..Only.fi
81a0 6c 65 20 62 75 66 66 65 72 73 20 61 72 65 20 61 66 66 65 63 74 65 64 20 62 79 20 74 68 69 73 2c le.buffers.are.affected.by.this,
81c0 20 61 73 20 74 68 65 20 75 70 64 61 74 65 20 68 61 70 70 65 6e 73 20 76 69 61 0a 60 66 69 6e 64 .as.the.update.happens.via.`find
81e0 2d 66 69 6c 65 2d 68 6f 6f 6b 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 74 69 -file-hook'...See.also.`projecti
8200 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 60 70 72 6f 6a le-mode-line-function'.and.`proj
8220 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 6d 6f 64 65 2d 6c 69 6e 65 27 2e 22 0a 20 20 3a 67 72 ectile-update-mode-line'."...:gr
8240 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e oup.'projectile...:type.'boolean
8260 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 ...:package-version.'(projectile
8280 20 2e 20 22 32 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 ..."2.0.0"))..(defcustom.project
82a0 69 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 ile-mode-line-function.'projecti
82c0 6c 65 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 2d 6c 69 6e 65 0a 20 20 22 54 68 65 20 66 75 6e 63 le-default-mode-line..."The.func
82e0 74 69 6f 6e 20 74 6f 20 75 73 65 20 74 6f 20 67 65 6e 65 72 61 74 65 20 70 72 6f 6a 65 63 74 2d tion.to.use.to.generate.project-
8300 73 70 65 63 69 66 69 63 20 6d 6f 64 65 2d 6c 69 6e 65 2e 0a 54 68 65 20 64 65 66 61 75 6c 74 20 specific.mode-line..The.default.
8320 66 75 6e 63 74 69 6f 6e 20 61 64 64 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 61 function.adds.the.project.name.a
8340 6e 64 20 74 79 70 65 20 74 6f 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 2e 0a 53 65 65 20 61 6c nd.type.to.the.mode-line..See.al
8360 73 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 6d 6f 64 65 2d 6c 69 6e 65 27 so.`projectile-update-mode-line'
8380 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 ."...:group.'projectile...:type.
83a0 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 'function...:package-version.'(p
83c0 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f rojectile..."2.0.0"))..(defcusto
83e0 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 2d 64 69 72 65 63 74 6f m.projectile-default-src-directo
8400 72 79 20 22 73 72 63 2f 22 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f ry."src/"..."The.default.value.o
8420 66 20 61 20 70 72 6f 6a 65 63 74 27 73 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2e 0a f.a.project's.src-dir.property..
8440 0a 49 74 27 73 20 75 73 65 64 20 61 73 20 61 20 66 61 6c 6c 62 61 63 6b 20 69 6e 20 74 68 65 20 .It's.used.as.a.fallback.in.the.
8460 63 61 73 65 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 69 73 20 6e 6f 74 20 73 65 74 20 66 6f 72 case.the.property.is.not.set.for
8480 20 61 20 70 72 6f 6a 65 63 74 0a 74 79 70 65 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 .a.project.type.when.`projectile
84a0 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 61 -toggle-between-implementation-a
84c0 6e 64 2d 74 65 73 74 27 20 69 73 20 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f nd-test'.is.used."...:group.'pro
84e0 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 jectile...:type.'string)..(defcu
8500 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 64 69 72 stom.projectile-default-test-dir
8520 65 63 74 6f 72 79 20 22 74 65 73 74 2f 22 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 76 61 ectory."test/"..."The.default.va
8540 6c 75 65 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 27 73 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 lue.of.a.project's.test-dir.prop
8560 65 72 74 79 2e 0a 0a 49 74 27 73 20 75 73 65 64 20 61 73 20 61 20 66 61 6c 6c 62 61 63 6b 20 69 erty...It's.used.as.a.fallback.i
8580 6e 20 74 68 65 20 63 61 73 65 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 69 73 20 6e 6f 74 20 73 n.the.case.the.property.is.not.s
85a0 65 74 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 0a 74 79 70 65 20 77 68 65 6e 20 60 70 72 6f 6a et.for.a.project.type.when.`proj
85c0 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d 65 6e 74 61 ectile-toggle-between-implementa
85e0 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 27 20 69 73 20 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 tion-and-test'.is.used."...:grou
8600 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a p.'projectile...:type.'string)..
8620 0c 0a 3b 3b 3b 20 49 64 6c 65 20 54 69 6d 65 72 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 ..;;;.Idle.Timer.(defvar.project
8640 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 74 69 6d 65 72 20 ile-idle-timer.nil..."The.timer.
8660 6f 62 6a 65 63 74 20 63 72 65 61 74 65 64 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d object.created.when.`projectile-
8680 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 29 enable-idle-timer'.is.non-nil.")
86a0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d ..(defcustom.projectile-idle-tim
86c0 65 72 2d 73 65 63 6f 6e 64 73 20 33 30 0a 20 20 22 54 68 65 20 69 64 6c 65 20 70 65 72 69 6f 64 er-seconds.30..."The.idle.period
86e0 20 74 6f 20 75 73 65 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d .to.use.when.`projectile-enable-
8700 69 64 6c 65 2d 74 69 6d 65 72 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 3a 67 72 6f 75 idle-timer'.is.non-nil."...:grou
8720 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a p.'projectile...:type.'number)..
8740 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 (defcustom.projectile-idle-timer
8760 2d 68 6f 6f 6b 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 -hook.'(projectile-regenerate-ta
8780 67 73 29 0a 20 20 22 54 68 65 20 68 6f 6f 6b 20 72 75 6e 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 gs)..."The.hook.run.when.`projec
87a0 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 27 20 69 73 20 6e 6f 6e 2d 6e tile-enable-idle-timer'.is.non-n
87c0 69 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 il."...:group.'projectile...:typ
87e0 65 20 27 28 72 65 70 65 61 74 20 73 79 6d 62 6f 6c 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 e.'(repeat.symbol))..(defcustom.
8800 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 20 6e 69 6c projectile-enable-idle-timer.nil
8820 0a 20 20 22 45 6e 61 62 6c 65 73 20 69 64 6c 65 20 74 69 6d 65 72 20 68 6f 6f 6b 20 60 70 72 6f ..."Enables.idle.timer.hook.`pro
8840 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 0a jectile-idle-timer-functions'...
8860 57 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d When.`projectile-enable-idle-tim
8880 65 72 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 68 6f 6f 6b 0a 60 70 72 6f 6a 65 63 er'.is.non-nil,.the.hook.`projec
88a0 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 68 6f 6f 6b 27 20 69 73 20 72 75 6e 20 65 61 63 tile-idle-timer-hook'.is.run.eac
88c0 68 20 74 69 6d 65 20 45 6d 61 63 73 20 68 61 73 20 62 65 65 6e 20 69 64 6c 65 0a 66 6f 72 20 60 h.time.Emacs.has.been.idle.for.`
88e0 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 73 65 63 6f 6e 64 73 27 20 73 projectile-idle-timer-seconds'.s
8900 65 63 6f 6e 64 73 20 61 6e 64 20 77 65 27 72 65 20 69 6e 20 61 0a 70 72 6f 6a 65 63 74 2e 22 0a econds.and.we're.in.a.project.".
8920 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 73 65 74 20 28 6c 61 6d ..:group.'projectile...:set.(lam
8940 62 64 61 20 28 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 bda.(symbol.value)..........(set
8960 20 73 79 6d 62 6f 6c 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 .symbol.value)..........(when.pr
8980 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 ojectile-idle-timer............(
89a0 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d cancel-timer.projectile-idle-tim
89c0 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 er))..........(setq.projectile-i
89e0 64 6c 65 2d 74 69 6d 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 dle-timer.nil)..........(when.pr
8a00 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 ojectile-enable-idle-timer......
8a20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 ......(setq.projectile-idle-time
8a40 72 20 28 72 75 6e 2d 77 69 74 68 2d 69 64 6c 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 r.(run-with-idle-timer..........
8a60 20 20 20 20 20 20 20 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 ...............................p
8a80 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 73 65 63 6f 6e 64 73 20 74 0a 20 rojectile-idle-timer-seconds.t..
8aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8ac0 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(lambda.()...............
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 20 20 20 28 77 68 65 ............................(whe
8b00 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 0a 20 20 20 20 20 20 20 n.(projectile-project-p)........
8b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8b40 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 .....(run-hooks.'projectile-idle
8b60 2d 74 69 6d 65 72 2d 68 6f 6f 6b 29 29 29 29 29 29 29 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c -timer-hook)))))))...:type.'bool
8b80 65 61 6e 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 ean)..(defvar.projectile-project
8ba0 73 2d 63 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 s-cache.(make-hash-table.:test.'
8bc0 65 71 75 61 6c 29 0a 20 20 22 41 20 68 61 73 68 6d 61 70 20 75 73 65 64 20 74 6f 20 63 61 63 68 equal)..."A.hashmap.used.to.cach
8be0 65 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 20 6e 61 6d 65 73 20 74 6f 20 73 70 65 65 64 20 75 70 e.project.file.names.to.speed.up
8c00 20 72 65 6c 61 74 65 64 20 6f 70 65 72 61 74 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 .related.operations.")..(defvar.
8c20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 2d 74 69 6d 65 20 28 projectile-projects-cache-time.(
8c40 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 make-hash-table.:test.'equal)...
8c60 22 41 20 68 61 73 68 6d 61 70 20 75 73 65 64 20 74 6f 20 72 65 63 6f 72 64 20 77 68 65 6e 20 77 "A.hashmap.used.to.record.when.w
8c80 65 20 70 6f 70 75 6c 61 74 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 e.populated.`projectile-projects
8ca0 2d 63 61 63 68 65 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 -cache'.")..(defvar.projectile-p
8cc0 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 roject-root-cache.(make-hash-tab
8ce0 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 43 61 63 68 65 64 20 76 61 6c 75 65 le.:test.'equal)..."Cached.value
8d00 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 .of.function.`projectile-project
8d20 2d 72 6f 6f 74 60 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 -root`.")..(defvar.projectile-pr
8d40 6f 6a 65 63 74 2d 74 79 70 65 2d 63 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c oject-type-cache.(make-hash-tabl
8d60 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 41 20 68 61 73 68 6d 61 70 20 75 73 65 e.:test.'equal)..."A.hashmap.use
8d80 64 20 74 6f 20 63 61 63 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 74 6f 20 73 70 65 65 64 d.to.cache.project.type.to.speed
8da0 20 75 70 20 72 65 6c 61 74 65 64 20 6f 70 65 72 61 74 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 76 .up.related.operations.")..(defv
8dc0 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 6e 69 6c ar.projectile-known-projects.nil
8de0 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 6f 63 61 74 69 6f 6e 73 20 77 68 65 72 65 20 77 65 20 68 ..."List.of.locations.where.we.h
8e00 61 76 65 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 65 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 54 68 ave.previously.seen.projects..Th
8e20 65 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 73 20 69 73 20 6f 72 64 65 72 65 64 20 62 79 e.list.of.projects.is.ordered.by
8e40 20 74 68 65 20 74 69 6d 65 20 74 68 65 79 20 68 61 76 65 20 62 65 65 6e 20 61 63 63 65 73 73 65 .the.time.they.have.been.accesse
8e60 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d d...See.also.`projectile-remove-
8e80 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 27 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 known-project',.`projectile-clea
8ea0 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 nup-known-projects'.and.`project
8ec0 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 29 0a 0a 28 64 ile-clear-known-projects'.")..(d
8ee0 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d efvar.projectile-known-projects-
8f00 6f 6e 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f on-file.nil..."List.of.known.pro
8f20 6a 65 63 74 73 20 72 65 66 65 72 65 6e 63 65 20 70 6f 69 6e 74 2e 0a 0a 43 6f 6e 74 61 69 6e 73 jects.reference.point...Contains
8f40 20 61 20 63 6f 70 79 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f .a.copy.of.`projectile-known-pro
8f60 6a 65 63 74 73 27 20 77 68 65 6e 20 69 74 20 77 61 73 20 6c 61 73 74 0a 73 79 6e 63 68 72 6f 6e jects'.when.it.was.last.synchron
8f80 69 7a 65 64 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a ized.with.`projectile-known-proj
8fa0 65 63 74 73 2d 66 69 6c 65 27 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 ects-file'.")..(defcustom.projec
8fc0 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 0a 20 20 28 65 78 70 61 tile-known-projects-file...(expa
8fe0 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 72 6f 6a 65 63 74 69 6c 65 2d 62 6f 6f 6b 6d 61 72 nd-file-name."projectile-bookmar
9000 6b 73 2e 65 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 ks.eld".....................user
9020 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 4e 61 6d 65 20 61 6e 64 20 6c 6f -emacs-directory)..."Name.and.lo
9040 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 6b 6e 6f 77 6e cation.of.the.Projectile's.known
9060 20 70 72 6f 6a 65 63 74 73 20 66 69 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 .projects.file."...:group.'proje
9080 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 ctile...:type.'string)..(defcust
90a0 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 73 20 6e om.projectile-ignored-projects.n
90c0 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 73 20 6e 6f 74 20 74 6f 20 il..."A.list.of.projects.not.to.
90e0 62 65 20 61 64 64 65 64 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 be.added.to.`projectile-known-pr
9100 6f 6a 65 63 74 73 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 ojects'."...:group.'projectile..
9120 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 3a 74 61 67 20 22 50 72 6f 6a 65 63 74 20 6c 69 .:type.'(repeat.:tag."Project.li
9140 73 74 22 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f st".directory)...:package-versio
9160 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 31 2e 30 22 29 29 0a 0a 28 64 65 n.'(projectile..."0.11.0"))..(de
9180 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 fcustom.projectile-ignored-proje
91a0 63 74 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 64 ct-function.nil..."Function.to.d
91c0 65 63 69 64 65 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 69 73 20 61 64 64 65 64 20 74 6f 20 60 ecide.if.a.project.is.added.to.`
91e0 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 0a 0a 43 61 6e projectile-known-projects'...Can
9200 20 62 65 20 65 69 74 68 65 72 20 6e 69 6c 2c 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 .be.either.nil,.or.a.function.th
9220 61 74 20 74 61 6b 65 73 20 74 68 65 20 74 72 75 65 6e 61 6d 65 20 6f 66 20 74 68 65 0a 70 72 6f at.takes.the.truename.of.the.pro
9240 6a 65 63 74 20 72 6f 6f 74 20 61 73 20 61 72 67 75 6d 65 6e 74 20 61 6e 64 20 72 65 74 75 72 6e ject.root.as.argument.and.return
9260 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 69 73 20 74 6f 0a 62 s.non-nil.if.the.project.is.to.b
9280 65 20 69 67 6e 6f 72 65 64 20 6f 72 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 0a 0a 54 68 69 e.ignored.or.nil.otherwise...Thi
92a0 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 63 61 6c 6c 65 64 20 69 66 20 74 68 65 s.function.is.only.called.if.the
92c0 20 70 72 6f 6a 65 63 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 65 64 20 69 6e 0a 74 68 65 20 76 61 .project.is.not.listed.in.the.va
92e0 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 riable.`projectile-ignored-proje
9300 63 74 73 27 2e 0a 0a 41 20 73 75 69 74 61 62 6c 65 20 63 61 6e 64 69 64 61 74 65 20 77 6f 75 6c cts'...A.suitable.candidate.woul
9320 64 20 62 65 20 60 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 27 20 74 6f 20 69 67 6e 6f 72 65 20 72 d.be.`file-remote-p'.to.ignore.r
9340 65 6d 6f 74 65 0a 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 emote.projects."...:group.'proje
9360 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 ctile...:type.'(choice..........
9380 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 74 68 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 .(const.:tag."Nothing".nil).....
93a0 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 52 65 6d 6f 74 65 20 66 69 6c 65 73 22 ......(const.:tag."Remote.files"
93c0 20 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 .file-remote-p)...........functi
93e0 6f 6e 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 on)...:package-version.'(project
9400 69 6c 65 20 2e 20 22 30 2e 31 33 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f ile..."0.13.0"))..(defcustom.pro
9420 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 61 75 74 jectile-track-known-projects-aut
9440 6f 6d 61 74 69 63 61 6c 6c 79 20 74 0a 20 20 22 43 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 omatically.t..."Controls.whether
9460 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 .Projectile.will.automatically.r
9480 65 67 69 73 74 65 72 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 0a 57 68 65 6e 20 73 65 egister.known.projects...When.se
94a0 74 20 74 6f 20 6e 69 6c 20 79 6f 75 27 6c 6c 20 68 61 76 65 20 61 6c 77 61 79 73 20 61 64 64 20 t.to.nil.you'll.have.always.add.
94c0 70 72 6f 6a 65 63 74 73 20 65 78 70 6c 69 63 69 74 6c 79 20 77 69 74 68 0a 60 70 72 6f 6a 65 63 projects.explicitly.with.`projec
94e0 74 69 6c 65 2d 61 64 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 27 2e 22 0a 20 20 3a 67 72 6f tile-add-known-project'."...:gro
9500 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a up.'projectile...:type.'boolean.
9520 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 ..:package-version.'(projectile.
9540 2e 20 22 31 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 .."1.0.0"))..(defcustom.projecti
9560 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 20 6e 69 6c 0a 20 20 22 4c 69 le-project-search-path.nil..."Li
9580 73 74 20 6f 66 20 66 6f 6c 64 65 72 73 20 77 68 65 72 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 69 st.of.folders.where.projectile.i
95a0 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 6f 69 6e 67 20 74 6f 20 6c 6f 6f 6b 20 66 6f s.automatically.going.to.look.fo
95c0 72 20 70 72 6f 6a 65 63 74 73 2e 0a 59 6f 75 20 63 61 6e 20 74 68 69 6e 6b 20 6f 66 20 73 6f 6d r.projects..You.can.think.of.som
95e0 65 74 68 69 6e 67 20 6c 69 6b 65 20 24 50 41 54 48 2c 20 62 75 74 20 66 6f 72 20 70 72 6f 6a 65 ething.like.$PATH,.but.for.proje
9600 63 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 65 78 65 63 75 74 61 62 6c 65 73 2e 0a 45 78 61 6d cts.instead.of.executables..Exam
9620 70 6c 65 73 20 6f 66 20 73 75 63 68 20 70 61 74 68 73 20 6d 69 67 68 74 20 62 65 20 7e 2f 70 72 ples.of.such.paths.might.be.~/pr
9640 6f 6a 65 63 74 73 2c 20 7e 2f 77 6f 72 6b 2c 20 28 7e 2f 67 69 74 68 75 62 20 2e 20 31 29 20 65 ojects,.~/work,.(~/github...1).e
9660 74 63 2e 0a 0a 46 6f 72 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 66 6f 72 6d 20 28 44 49 52 45 43 tc...For.elements.of.form.(DIREC
9680 54 4f 52 59 20 2e 20 44 45 50 54 48 29 2c 20 44 49 52 45 43 54 4f 52 59 20 68 61 73 20 74 6f 20 TORY...DEPTH),.DIRECTORY.has.to.
96a0 62 65 20 61 0a 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 44 45 50 54 48 20 61 6e 20 69 6e 74 65 be.a.directory.and.DEPTH.an.inte
96c0 67 65 72 20 74 68 61 74 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 64 65 70 74 68 20 61 74 20 ger.that.specifies.the.depth.at.
96e0 77 68 69 63 68 20 74 6f 0a 6c 6f 6f 6b 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 2e 20 20 41 20 44 which.to.look.for.projects...A.D
9700 45 50 54 48 20 6f 66 20 30 20 6d 65 61 6e 73 20 63 68 65 63 6b 20 44 49 52 45 43 54 4f 52 59 2e EPTH.of.0.means.check.DIRECTORY.
9720 20 20 41 20 64 65 70 74 68 20 6f 66 20 31 0a 6d 65 61 6e 73 20 63 68 65 63 6b 20 61 6c 6c 20 74 ..A.depth.of.1.means.check.all.t
9740 68 65 20 73 75 62 64 69 72 65 63 74 6f 72 69 65 73 20 6f 66 20 44 49 52 45 43 54 4f 52 59 2e 20 he.subdirectories.of.DIRECTORY..
9760 20 45 74 63 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 .Etc."...:group.'projectile...:t
9780 79 70 65 20 27 28 72 65 70 65 61 74 20 28 63 68 6f 69 63 65 20 64 69 72 65 63 74 6f 72 79 20 28 ype.'(repeat.(choice.directory.(
97a0 63 6f 6e 73 20 64 69 72 65 63 74 6f 72 79 20 28 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 44 65 cons.directory.(integer.:tag."De
97c0 70 74 68 22 29 29 29 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 pth"))))...:package-version.'(pr
97e0 6f 6a 65 63 74 69 6c 65 20 2e 20 22 31 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ojectile..."1.0.0"))..(defcustom
9800 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 0a 20 20 28 63 6f 6e .projectile-fd-executable...(con
9820 64 0a 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 66 64 66 69 6e 64 22 29 d....((executable-find."fdfind")
9840 20 22 66 64 66 69 6e 64 22 29 0a 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 ."fdfind")....((executable-find.
9860 22 66 64 22 29 20 22 66 64 22 29 29 0a 20 20 22 50 61 74 68 20 6f 72 20 6e 61 6d 65 20 6f 66 20 "fd")."fd"))..."Path.or.name.of.
9880 66 64 20 65 78 65 63 75 74 61 62 6c 65 20 75 73 65 64 20 62 79 20 50 72 6f 6a 65 63 74 69 6c 65 fd.executable.used.by.Projectile
98a0 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a 4e 69 6c 20 6d 65 61 6e 73 20 66 64 20 69 73 20 6e 6f 74 .if.enabled..Nil.means.fd.is.not
98c0 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 75 73 65 64 .installed.or.should.not.be.used
98e0 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 ."...:type.'string...:package-ve
9900 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 38 2e 30 22 29 29 0a 0a rsion.'(projectile..."2.8.0"))..
9920 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 75 73 65 2d 66 64 (defcustom.projectile-git-use-fd
9940 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 20 .(when.projectile-fd-executable.
9960 74 29 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 75 73 65 20 66 64 20 74 6f 20 69 6d t)..."Non-nil.means.use.fd.to.im
9980 70 6c 65 6d 65 6e 74 20 67 69 74 20 6c 73 2d 66 69 6c 65 73 2e 0a 54 68 69 73 20 6d 61 79 20 63 plement.git.ls-files..This.may.c
99a0 68 61 6e 67 65 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 hange.Projectile's.performance.i
99c0 6e 20 6c 61 72 67 65 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 69 65 73 0a 64 65 70 65 6e 64 69 n.large.Git.repositories.dependi
99e0 6e 67 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 62 75 74 20 69 74 20 77 69 6c 6c 20 61 ng.on.your.system,.but.it.will.a
9a00 6c 73 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 74 68 65 20 47 69 74 20 62 65 68 61 76 69 6f 72 lso.work.around.the.Git.behavior
9a20 0a 74 68 61 74 20 63 61 75 73 65 73 20 64 65 6c 65 74 65 64 20 66 69 6c 65 73 20 74 6f 20 73 74 .that.causes.deleted.files.to.st
9a40 69 6c 6c 20 62 65 20 73 68 6f 77 6e 20 69 6e 20 50 72 6f 6a 65 63 74 69 6c 65 20 6c 69 73 74 69 ill.be.shown.in.Projectile.listi
9a60 6e 67 73 20 75 6e 74 69 6c 0a 74 68 65 69 72 20 64 65 6c 65 74 69 6f 6e 73 20 61 72 65 20 73 74 ngs.until.their.deletions.are.st
9a80 61 67 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 aged."...:type.'boolean...:packa
9aa0 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 38 2e 30 ge-version.'(projectile..."2.8.0
9ac0 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 63 "))..(defcustom.projectile-git-c
9ae0 6f 6d 6d 61 6e 64 20 22 67 69 74 20 6c 73 2d 66 69 6c 65 73 20 2d 7a 63 6f 20 2d 2d 65 78 63 6c ommand."git.ls-files.-zco.--excl
9b00 75 64 65 2d 73 74 61 6e 64 61 72 64 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 ude-standard"..."Command.used.by
9b20 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 .projectile.to.get.the.files.in.
9b40 61 20 67 69 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 a.git.project."...:group.'projec
9b60 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f tile...:type.'string)..(defcusto
9b80 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 66 64 2d 61 72 67 73 20 22 2d 48 20 2d 30 20 m.projectile-git-fd-args."-H.-0.
9ba0 2d 45 20 2e 67 69 74 20 2d 74 66 20 2d 2d 73 74 72 69 70 2d 63 77 64 2d 70 72 65 66 69 78 20 2d -E..git.-tf.--strip-cwd-prefix.-
9bc0 63 20 6e 65 76 65 72 22 0a 20 20 22 41 72 67 75 6d 65 6e 74 73 20 74 6f 20 66 64 20 75 73 65 64 c.never"..."Arguments.to.fd.used
9be0 20 74 6f 20 72 65 2d 69 6d 70 6c 65 6d 65 6e 74 20 60 67 69 74 20 6c 73 2d 66 69 6c 65 73 27 2e .to.re-implement.`git.ls-files'.
9c00 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 .This.is.used.with.`projectile-f
9c20 64 2d 65 78 65 63 75 74 61 62 6c 65 27 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 d-executable'.when.`projectile-g
9c40 69 74 2d 75 73 65 2d 66 64 27 0a 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 it-use-fd'.is.non-nil."...:group
9c60 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a .'projectile...:type.'string...:
9c80 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 package-version.'(projectile..."
9ca0 32 2e 38 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2.8.0"))..(defcustom.projectile-
9cc0 67 69 74 2d 73 75 62 6d 6f 64 75 6c 65 2d 63 6f 6d 6d 61 6e 64 20 22 67 69 74 20 73 75 62 6d 6f git-submodule-command."git.submo
9ce0 64 75 6c 65 20 2d 2d 71 75 69 65 74 20 66 6f 72 65 61 63 68 20 27 65 63 68 6f 20 24 64 69 73 70 dule.--quiet.foreach.'echo.$disp
9d00 6c 61 79 70 61 74 68 27 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 20 22 43 6f laypath'.|.tr.'\\n'.'\\0'"..."Co
9d20 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 6c 69 73 74 mmand.used.by.projectile.to.list
9d40 20 73 75 62 6d 6f 64 75 6c 65 73 20 6f 66 20 61 20 67 69 76 65 6e 20 67 69 74 20 72 65 70 6f 73 .submodules.of.a.given.git.repos
9d60 69 74 6f 72 79 2e 0a 53 65 74 20 74 6f 20 6e 69 6c 20 74 6f 20 64 69 73 61 62 6c 65 20 6c 69 73 itory..Set.to.nil.to.disable.lis
9d80 74 69 6e 67 20 73 75 62 6d 6f 64 75 6c 65 73 20 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 3a 67 72 ting.submodules.contents."...:gr
9da0 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 oup.'projectile...:type.'string)
9dc0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 69 67 6e 6f ..(defcustom.projectile-git-igno
9de0 72 65 64 2d 63 6f 6d 6d 61 6e 64 20 22 67 69 74 20 6c 73 2d 66 69 6c 65 73 20 2d 7a 63 6f 69 20 red-command."git.ls-files.-zcoi.
9e00 2d 2d 65 78 63 6c 75 64 65 2d 73 74 61 6e 64 61 72 64 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 --exclude-standard"..."Command.u
9e20 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 69 67 6e sed.by.projectile.to.get.the.ign
9e40 6f 72 65 64 20 66 69 6c 65 73 20 69 6e 20 61 20 67 69 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 ored.files.in.a.git.project."...
9e60 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 :group.'projectile...:type.'stri
9e80 6e 67 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 ng...:package-version.'(projecti
9ea0 6c 65 20 2e 20 22 30 2e 31 34 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a le..."0.14.0"))..(defcustom.proj
9ec0 65 63 74 69 6c 65 2d 68 67 2d 63 6f 6d 6d 61 6e 64 20 22 68 67 20 6c 6f 63 61 74 65 20 2d 66 20 ectile-hg-command."hg.locate.-f.
9ee0 2d 30 20 2d 49 20 2e 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a -0.-I.."..."Command.used.by.proj
9f00 65 63 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 68 67 20 ectile.to.get.the.files.in.a.hg.
9f20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 project."...:group.'projectile..
9f40 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a .:type.'string)..(defcustom.proj
9f60 65 63 74 69 6c 65 2d 6a 6a 2d 63 6f 6d 6d 61 6e 64 20 22 6a 6a 20 66 69 6c 65 20 6c 69 73 74 20 ectile-jj-command."jj.file.list.
9f80 2d 2d 6e 6f 2d 70 61 67 65 72 20 2e 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 --no-pager...|.tr.'\\n'.'\\0'"..
9fa0 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 ."Command.used.by.projectile.to.
9fc0 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 4a 75 6a 75 74 73 75 20 70 72 6f 6a 65 get.the.files.in.a.Jujutsu.proje
9fe0 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 ct."...:group.'projectile...:typ
a000 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 e.'string...:package-version.'(p
a020 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 39 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f rojectile..."2.9.0"))..(defcusto
a040 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 70 6c 69 6e 67 2d 63 6f 6d 6d 61 6e 64 20 22 73 6c m.projectile-sapling-command."sl
a060 20 6c 6f 63 61 74 65 20 2d 30 20 2d 49 20 2e 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 .locate.-0.-I.."..."Command.used
a080 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 .by.projectile.to.get.the.files.
a0a0 69 6e 20 61 20 53 61 70 6c 69 6e 67 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 in.a.Sapling.project."...:group.
a0c0 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 70 'projectile...:type.'string...:p
a0e0 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 ackage-version.'(projectile..."2
a100 2e 39 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 .9.0"))..(defcustom.projectile-f
a120 6f 73 73 69 6c 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6e 63 61 74 20 22 66 6f 73 73 69 6c 20 6c 73 ossil-command.(concat."fossil.ls
a140 20 7c 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 20 .|."............................
a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d ..................(when.(string-
a180 65 71 75 61 6c 20 73 79 73 74 65 6d 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 equal.system-type...............
a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6e 64 6f 77 73 2d 6e 74 22 29 ..................."windows-nt")
a1e0 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 ................................
a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 6f 73 32 75 6e 69 78 20 7c 20 22 29 0a 20 ................"dos2unix.|.")..
a220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a240 20 20 20 20 20 20 20 20 20 20 20 20 22 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 29 0a 20 20 ............"tr.'\\n'.'\\0'")...
a260 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 "Command.used.by.projectile.to.g
a280 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 66 6f 73 73 69 6c 20 70 72 6f 6a 65 63 74 et.the.files.in.a.fossil.project
a2a0 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 ."...:group.'projectile...:type.
a2c0 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 'string)..(defcustom.projectile-
a2e0 62 7a 72 2d 63 6f 6d 6d 61 6e 64 20 22 62 7a 72 20 6c 73 20 2d 52 20 2d 2d 76 65 72 73 69 6f 6e bzr-command."bzr.ls.-R.--version
a300 65 64 20 2d 30 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 ed.-0"..."Command.used.by.projec
a320 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 62 61 7a 61 61 tile.to.get.the.files.in.a.bazaa
a340 72 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 r.project."...:group.'projectile
a360 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 ...:type.'string)..(defcustom.pr
a380 6f 6a 65 63 74 69 6c 65 2d 64 61 72 63 73 2d 63 6f 6d 6d 61 6e 64 20 22 64 61 72 63 73 20 73 68 ojectile-darcs-command."darcs.sh
a3a0 6f 77 20 66 69 6c 65 73 20 2d 30 20 2e 20 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 ow.files.-0..."..."Command.used.
a3c0 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 by.projectile.to.get.the.files.i
a3e0 6e 20 61 20 64 61 72 63 73 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 n.a.darcs.project."...:group.'pr
a400 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 ojectile...:type.'string)..(defc
a420 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 69 6a 75 6c 2d 63 6f 6d 6d 61 6e 64 20 22 ustom.projectile-pijul-command."
a440 70 69 6a 75 6c 20 6c 69 73 74 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 20 20 pijul.list.|.tr.'\\n'.'\\0'"....
a460 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 "Command.used.by.projectile.to.g
a480 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 70 69 6a 75 6c 20 70 72 6f 6a 65 63 74 2e et.the.files.in.a.pijul.project.
a4a0 22 0a 20 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 20 3a 74 79 70 65 "....:group.'projectile....:type
a4c0 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 .'string)..(defcustom.projectile
a4e0 2d 73 76 6e 2d 63 6f 6d 6d 61 6e 64 20 22 73 76 6e 20 6c 69 73 74 20 2d 52 20 2e 20 7c 20 67 72 -svn-command."svn.list.-R...|.gr
a500 65 70 20 2d 76 20 27 24 2f 27 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 20 22 ep.-v.'$/'.|.tr.'\\n'.'\\0'"..."
a520 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 67 65 Command.used.by.projectile.to.ge
a540 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 73 76 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 t.the.files.in.a.svn.project."..
a560 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 .:group.'projectile...:type.'str
a580 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 ing)..(defcustom.projectile-gene
a5a0 72 69 63 2d 63 6f 6d 6d 61 6e 64 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 77 65 20 70 72 65 ric-command...(cond....;;.we.pre
a5c0 66 65 72 20 66 64 20 6f 76 65 72 20 66 69 6e 64 0a 20 20 20 3b 3b 20 6e 6f 74 65 20 74 68 61 74 fer.fd.over.find....;;.note.that
a5e0 20 2d 2d 73 74 72 69 70 2d 63 77 64 2d 70 72 65 66 69 78 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 .--strip-cwd-prefix.is.only.avai
a600 6c 61 62 6c 65 20 69 6e 20 76 65 72 73 69 6f 6e 20 38 2e 33 2e 30 2b 0a 20 20 20 28 70 72 6f 6a lable.in.version.8.3.0+....(proj
a620 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 0a 20 20 20 20 28 66 6f 72 6d 61 74 ectile-fd-executable.....(format
a640 20 22 25 73 20 2e 20 2d 30 20 2d 2d 74 79 70 65 20 66 20 2d 2d 63 6f 6c 6f 72 3d 6e 65 76 65 72 ."%s...-0.--type.f.--color=never
a660 20 2d 2d 73 74 72 69 70 2d 63 77 64 2d 70 72 65 66 69 78 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d .--strip-cwd-prefix".projectile-
a680 66 64 2d 65 78 65 63 75 74 61 62 6c 65 29 29 0a 20 20 20 3b 3b 20 77 69 74 68 20 66 69 6e 64 20 fd-executable))....;;.with.find.
a6a0 77 65 20 68 61 76 65 20 74 6f 20 62 65 20 63 61 72 65 66 75 6c 20 74 6f 20 73 74 72 69 70 20 74 we.have.to.be.careful.to.strip.t
a6c0 68 65 20 2e 2f 20 66 72 6f 6d 20 74 68 65 20 70 61 74 68 73 0a 20 20 20 3b 3b 20 73 65 65 20 68 he../.from.the.paths....;;.see.h
a6e0 74 74 70 73 3a 2f 2f 73 74 61 63 6b 6f 76 65 72 66 6c 6f 77 2e 63 6f 6d 2f 71 75 65 73 74 69 6f ttps://stackoverflow.com/questio
a700 6e 73 2f 32 35 39 36 34 36 32 2f 68 6f 77 2d 74 6f 2d 73 74 72 69 70 2d 6c 65 61 64 69 6e 67 2d ns/2596462/how-to-strip-leading-
a720 69 6e 2d 75 6e 69 78 2d 66 69 6e 64 0a 20 20 20 28 74 20 22 66 69 6e 64 20 2e 20 2d 74 79 70 65 in-unix-find....(t."find...-type
a740 20 66 20 7c 20 63 75 74 20 2d 63 33 2d 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 29 .f.|.cut.-c3-.|.tr.'\\n'.'\\0'")
a760 29 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 20 )..."Command.used.by.projectile.
a780 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 67 65 6e 65 72 69 63 20 70 72 to.get.the.files.in.a.generic.pr
a7a0 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a oject."...:group.'projectile...:
a7c0 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 type.'string)..(defcustom.projec
a7e0 74 69 6c 65 2d 76 63 73 2d 64 69 72 74 79 2d 73 74 61 74 65 20 27 28 22 65 64 69 74 65 64 22 20 tile-vcs-dirty-state.'("edited".
a800 22 75 6e 72 65 67 69 73 74 65 72 65 64 22 20 22 6e 65 65 64 73 2d 75 70 64 61 74 65 22 20 22 6e "unregistered"."needs-update"."n
a820 65 65 64 73 2d 6d 65 72 67 65 22 20 22 75 6e 6c 6f 63 6b 65 64 2d 63 68 61 6e 67 65 73 22 20 22 eeds-merge"."unlocked-changes"."
a840 63 6f 6e 66 6c 69 63 74 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 74 61 74 65 73 20 63 68 65 conflict")..."List.of.states.che
a860 63 6b 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f 77 73 65 2d 64 69 72 74 79 cked.by.`projectile-browse-dirty
a880 2d 70 72 6f 6a 65 63 74 73 27 2e 0a 50 6f 73 73 69 62 6c 65 20 63 68 65 63 6b 65 64 20 73 74 61 -projects'..Possible.checked.sta
a8a0 74 65 73 20 61 72 65 3a 0a 5c 22 65 64 69 74 65 64 5c 22 2c 20 5c 22 75 6e 72 65 67 69 73 74 65 tes.are:.\"edited\",.\"unregiste
a8c0 72 65 64 5c 22 2c 20 5c 22 6e 65 65 64 73 2d 75 70 64 61 74 65 5c 22 2c 20 5c 22 6e 65 65 64 73 red\",.\"needs-update\",.\"needs
a8e0 2d 6d 65 72 67 65 5c 22 2c 0a 5c 22 75 6e 6c 6f 63 6b 65 64 2d 63 68 61 6e 67 65 73 5c 22 20 61 -merge\",.\"unlocked-changes\".a
a900 6e 64 20 5c 22 63 6f 6e 66 6c 69 63 74 5c 22 2c 0a 61 73 20 64 65 66 69 6e 65 64 20 69 6e 20 60 nd.\"conflict\",.as.defined.in.`
a920 76 63 2e 65 6c 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 vc.el'."...:group.'projectile...
a940 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 28 73 74 72 69 6e 67 29 29 0a 20 20 3a 70 61 63 6b :type.'(repeat.(string))...:pack
a960 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 31 2e 30 2e age-version.'(projectile..."1.0.
a980 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 0"))..(defcustom.projectile-othe
a9a0 72 2d 66 69 6c 65 2d 61 6c 69 73 74 0a 20 20 27 28 20 3b 3b 20 68 61 6e 64 6c 65 20 43 2f 43 2b r-file-alist...'(.;;.handle.C/C+
a9c0 2b 20 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 20 20 28 22 63 70 70 22 20 2e 20 28 22 68 22 20 22 +.extensions.....("cpp"...("h"."
a9e0 68 70 70 22 20 22 69 70 70 22 29 29 0a 20 20 20 20 28 22 69 70 70 22 20 2e 20 28 22 68 22 20 22 hpp"."ipp")).....("ipp"...("h"."
aa00 68 70 70 22 20 22 63 70 70 22 29 29 0a 20 20 20 20 28 22 68 70 70 22 20 2e 20 28 22 68 22 20 22 hpp"."cpp")).....("hpp"...("h"."
aa20 69 70 70 22 20 22 63 70 70 22 20 22 63 63 22 29 29 0a 20 20 20 20 28 22 63 78 78 22 20 2e 20 28 ipp"."cpp"."cc")).....("cxx"...(
aa40 22 68 22 20 22 68 78 78 22 20 22 69 78 78 22 29 29 0a 20 20 20 20 28 22 69 78 78 22 20 2e 20 28 "h"."hxx"."ixx")).....("ixx"...(
aa60 22 68 22 20 22 68 78 78 22 20 22 63 78 78 22 29 29 0a 20 20 20 20 28 22 68 78 78 22 20 2e 20 28 "h"."hxx"."cxx")).....("hxx"...(
aa80 22 68 22 20 22 69 78 78 22 20 22 63 78 78 22 29 29 0a 20 20 20 20 28 22 63 22 20 20 20 2e 20 28 "h"."ixx"."cxx")).....("c".....(
aaa0 22 68 22 29 29 0a 20 20 20 20 28 22 6d 22 20 20 20 2e 20 28 22 68 22 29 29 0a 20 20 20 20 28 22 "h")).....("m".....("h")).....("
aac0 6d 6d 22 20 20 2e 20 28 22 68 22 29 29 0a 20 20 20 20 28 22 68 22 20 20 20 2e 20 28 22 63 22 20 mm"....("h")).....("h".....("c".
aae0 22 63 63 22 20 22 63 70 70 22 20 22 69 70 70 22 20 22 68 70 70 22 20 22 63 78 78 22 20 22 69 78 "cc"."cpp"."ipp"."hpp"."cxx"."ix
ab00 78 22 20 22 68 78 78 22 20 22 6d 22 20 22 6d 6d 22 29 29 0a 20 20 20 20 28 22 63 63 22 20 20 2e x"."hxx"."m"."mm")).....("cc"...
ab20 20 28 22 68 22 20 22 68 68 22 20 22 68 70 70 22 29 29 0a 20 20 20 20 28 22 68 68 22 20 20 2e 20 .("h"."hh"."hpp")).....("hh"....
ab40 28 22 63 63 22 29 29 0a 0a 20 20 20 20 3b 3b 20 4f 43 61 6d 6c 20 65 78 74 65 6e 73 69 6f 6e 73 ("cc"))......;;.OCaml.extensions
ab60 0a 20 20 20 20 28 22 6d 6c 22 20 2e 20 28 22 6d 6c 69 22 29 29 0a 20 20 20 20 28 22 6d 6c 69 22 .....("ml"...("mli")).....("mli"
ab80 20 2e 20 28 22 6d 6c 22 20 22 6d 6c 6c 22 20 22 6d 6c 79 22 29 29 0a 20 20 20 20 28 22 6d 6c 6c ...("ml"."mll"."mly")).....("mll
aba0 22 20 2e 20 28 22 6d 6c 69 22 29 29 0a 20 20 20 20 28 22 6d 6c 79 22 20 2e 20 28 22 6d 6c 69 22 "...("mli")).....("mly"...("mli"
abc0 29 29 0a 20 20 20 20 28 22 65 6c 69 6f 6d 69 22 20 2e 20 28 22 65 6c 69 6f 6d 22 29 29 0a 20 20 )).....("eliomi"...("eliom"))...
abe0 20 20 28 22 65 6c 69 6f 6d 22 20 2e 20 28 22 65 6c 69 6f 6d 69 22 29 29 0a 0a 20 20 20 20 3b 3b ..("eliom"...("eliomi"))......;;
ac00 20 76 65 72 74 65 78 20 73 68 61 64 65 72 20 61 6e 64 20 66 72 61 67 6d 65 6e 74 20 73 68 61 64 .vertex.shader.and.fragment.shad
ac20 65 72 20 65 78 74 65 6e 73 69 6f 6e 73 20 69 6e 20 67 6c 73 6c 0a 20 20 20 20 28 22 76 65 72 74 er.extensions.in.glsl.....("vert
ac40 22 20 2e 20 28 22 66 72 61 67 22 29 29 0a 20 20 20 20 28 22 66 72 61 67 22 20 2e 20 28 22 76 65 "...("frag")).....("frag"...("ve
ac60 72 74 22 29 29 0a 0a 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 20 66 69 6c 65 73 20 77 69 74 68 20 rt"))......;;.handle.files.with.
ac80 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 28 6e 69 6c 20 20 20 20 2e 20 28 22 6c 6f 63 no.extension.....(nil......("loc
aca0 6b 22 20 22 67 70 67 22 29 29 0a 20 20 20 20 28 22 6c 6f 63 6b 22 20 2e 20 28 22 22 29 29 0a 20 k"."gpg")).....("lock"...(""))..
acc0 20 20 20 28 22 67 70 67 22 20 20 2e 20 28 22 22 29 29 0a 20 20 20 20 29 0a 20 20 22 41 6c 69 73 ...("gpg"....("")).....)..."Alis
ace0 74 20 6f 66 20 65 78 74 65 6e 73 69 6f 6e 73 20 66 6f 72 20 73 77 69 74 63 68 69 6e 67 20 74 6f t.of.extensions.for.switching.to
ad00 20 66 69 6c 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 2c 0a 20 20 75 73 69 6e .file.with.the.same.name,...usin
ad20 67 20 6f 74 68 65 72 20 65 78 74 65 6e 73 69 6f 6e 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 g.other.extensions.based.on.the.
ad40 65 78 74 65 6e 73 69 6f 6e 20 6f 66 20 63 75 72 72 65 6e 74 0a 20 20 66 69 6c 65 2e 22 0a 20 20 extension.of.current...file."...
ad60 3a 74 79 70 65 20 27 61 6c 69 73 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 :type.'alist)..(defcustom.projec
ad80 74 69 6c 65 2d 63 72 65 61 74 65 2d 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c 65 73 20 6e tile-create-missing-test-files.n
ada0 69 6c 0a 20 20 22 44 75 72 69 6e 67 20 74 6f 67 67 6c 69 6e 67 2c 20 69 66 20 6e 6f 6e 2d 6e 69 il..."During.toggling,.if.non-ni
adc0 6c 20 65 6e 61 62 6c 65 73 20 63 72 65 61 74 69 6e 67 20 74 65 73 74 20 66 69 6c 65 73 20 69 66 l.enables.creating.test.files.if
ade0 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 0a 57 68 65 6e 20 6e 6f 74 2d 6e 69 6c 2c 20 65 76 65 72 79 .not.found...When.not-nil,.every
ae00 20 63 61 6c 6c 20 74 6f 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 .call.to.projectile-find-impleme
ae20 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 2a 0a 63 72 65 61 74 65 73 20 74 65 73 74 20 66 ntation-or-test-*.creates.test.f
ae40 69 6c 65 73 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 73 79 iles.if.not.found.on.the.file.sy
ae60 73 74 65 6d 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 6e 69 6c 2e 0a 49 74 20 61 73 73 75 6d stem...Defaults.to.nil..It.assum
ae80 65 73 20 74 68 65 20 74 65 73 74 2f 20 66 6f 6c 64 65 72 20 69 73 20 61 74 20 74 68 65 20 73 61 es.the.test/.folder.is.at.the.sa
aea0 6d 65 20 6c 65 76 65 6c 20 61 73 20 73 72 63 2f 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f me.level.as.src/."...:group.'pro
aec0 6a 65 63 74 69 6c 65 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 jectile...:type.'boolean)..(defc
aee0 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 65 72 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d ustom.projectile-per-project-com
af00 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d pilation-buffer.nil..."When.non-
af20 6e 69 6c 2c 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 6d 61 6b nil,.the.compilation.command.mak
af40 65 73 20 74 68 65 20 70 65 72 2d 70 72 6f 6a 65 63 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 62 es.the.per-project.compilation.b
af60 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a uffer."...:group.'projectile...:
af80 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e type.'boolean...:package-version
afa0 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 36 2e 30 22 29 29 0a 0a 28 64 65 66 63 .'(projectile..."2.6.0"))..(defc
afc0 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 66 74 65 72 2d 73 77 69 74 63 68 2d 70 72 ustom.projectile-after-switch-pr
afe0 6f 6a 65 63 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 72 75 6e 20 72 69 67 68 oject-hook.nil..."Hooks.run.righ
b000 74 20 61 66 74 65 72 20 70 72 6f 6a 65 63 74 20 69 73 20 73 77 69 74 63 68 65 64 2e 22 0a 20 20 t.after.project.is.switched."...
b020 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b :group.'projectile...:type.'hook
b040 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 65 66 6f 72 65 2d )..(defcustom.projectile-before-
b060 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 73 switch-project-hook.nil..."Hooks
b080 20 72 75 6e 20 77 68 65 6e 20 72 69 67 68 74 20 62 65 66 6f 72 65 20 70 72 6f 6a 65 63 74 20 69 .run.when.right.before.project.i
b0a0 73 20 73 77 69 74 63 68 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c s.switched."...:group.'projectil
b0c0 65 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f e...:type.'hook)..(defcustom.pro
b0e0 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 6f 6e 2d 73 77 69 74 63 jectile-current-project-on-switc
b100 68 20 27 72 65 6d 6f 76 65 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 73 20 77 68 65 74 68 65 72 20 h.'remove..."Determines.whether.
b120 74 6f 20 64 69 73 70 6c 61 79 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 77 68 65 6e 20 to.display.current.project.when.
b140 73 77 69 74 63 68 69 6e 67 20 70 72 6f 6a 65 63 74 73 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f switching.projects...When.set.to
b160 20 60 72 65 6d 6f 76 65 27 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 69 73 20 6e 6f 74 .`remove'.current.project.is.not
b180 20 69 6e 63 6c 75 64 65 64 2c 20 60 6d 6f 76 65 2d 74 6f 2d 65 6e 64 27 0a 77 69 6c 6c 20 64 69 .included,.`move-to-end'.will.di
b1a0 73 70 6c 61 79 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 74 68 65 20 65 6e splay.current.project.and.the.en
b1c0 64 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 0a 70 72 6f 6a 65 63 74 73 2c d.of.the.list.of.known.projects,
b1e0 20 60 6b 65 65 70 27 20 77 69 6c 6c 20 6c 65 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 .`keep'.will.leave.the.current.p
b200 72 6f 6a 65 63 74 20 61 74 20 74 68 65 20 64 65 66 61 75 6c 74 0a 70 6f 73 69 74 69 6f 6e 2e 22 roject.at.the.default.position."
b220 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 28 ...:group.'projectile...:type.'(
b240 72 61 64 69 6f 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 52 65 6d radio...........(const.:tag."Rem
b260 6f 76 65 22 20 72 65 6d 6f 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 ove".remove)...........(const.:t
b280 61 67 20 22 4d 6f 76 65 20 74 6f 20 65 6e 64 22 20 6d 6f 76 65 2d 74 6f 2d 65 6e 64 29 0a 20 20 ag."Move.to.end".move-to-end)...
b2a0 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4b 65 65 70 22 20 6b 65 65 70 29 ........(const.:tag."Keep".keep)
b2c0 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 78 2d 66 69 ))..(defcustom.projectile-max-fi
b2e0 6c 65 2d 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 6e 69 6c 0a 20 20 22 4d 61 78 69 6d 75 6d 20 6e le-buffer-count.nil..."Maximum.n
b300 75 6d 62 65 72 20 6f 66 20 66 69 6c 65 20 62 75 66 66 65 72 73 20 70 65 72 20 70 72 6f 6a 65 63 umber.of.file.buffers.per.projec
b320 74 20 74 68 61 74 20 61 72 65 20 6b 65 70 74 20 6f 70 65 6e 2e 0a 0a 49 66 20 74 68 65 20 76 61 t.that.are.kept.open...If.the.va
b340 6c 75 65 20 69 73 20 6e 69 6c 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6c 69 6d 69 74 20 74 6f lue.is.nil,.there.is.no.limit.to
b360 20 74 68 65 20 6f 70 65 6e 64 20 62 75 66 66 65 72 73 20 63 6f 75 6e 74 2e 22 0a 20 20 3a 67 72 .the.opend.buffers.count."...:gr
b380 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 oup.'projectile...:type.'integer
b3a0 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 ...:package-version.'(projectile
b3c0 20 2e 20 22 32 2e 32 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 ..."2.2.0"))..(defcustom.project
b3e0 69 6c 65 2d 63 6d 64 2d 68 69 73 74 2d 69 67 6e 6f 72 65 64 75 70 73 20 74 0a 20 20 22 43 6f 6e ile-cmd-hist-ignoredups.t..."Con
b400 74 72 6f 6c 73 20 77 68 65 6e 20 69 6e 70 75 74 73 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 70 trols.when.inputs.are.added.to.p
b420 72 6f 6a 65 63 74 69 6c 65 27 73 20 63 6f 6d 6d 61 6e 64 20 68 69 73 74 6f 72 79 2e 0a 0a 41 20 rojectile's.command.history...A.
b440 76 61 6c 75 65 20 6f 66 20 74 20 6d 65 61 6e 73 20 63 6f 6e 73 65 63 75 74 69 76 65 20 64 75 70 value.of.t.means.consecutive.dup
b460 6c 69 63 61 74 65 73 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 41 20 76 61 6c 75 65 20 6f 66 20 licates.are.ignored..A.value.of.
b480 60 65 72 61 73 65 27 20 6d 65 61 6e 73 20 6f 6e 6c 79 20 74 68 65 20 6c 61 73 74 20 64 75 70 6c `erase'.means.only.the.last.dupl
b4a0 69 63 61 74 65 20 69 73 20 6b 65 70 74 2e 0a 41 20 76 61 6c 75 65 20 6f 66 20 6e 69 6c 20 6d 65 icate.is.kept..A.value.of.nil.me
b4c0 61 6e 73 20 6e 6f 74 68 69 6e 67 20 69 73 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 ans.nothing.is.ignored."...:type
b4e0 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 69 67 6e .'(choice.(const.:tag."Don't.ign
b500 6f 72 65 20 61 6e 79 74 68 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ore.anything".nil)..............
b520 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 67 6e 6f 72 65 20 63 6f 6e 73 65 63 75 74 ....(const.:tag."Ignore.consecut
b540 69 76 65 20 64 75 70 6c 69 63 61 74 65 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ive.duplicates".t)..............
b560 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4f 6e 6c 79 20 6b 65 65 70 20 6c 61 73 74 20 ....(const.:tag."Only.keep.last.
b580 64 75 70 6c 69 63 61 74 65 22 20 65 72 61 73 65 29 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 duplicate".erase))...:package-ve
b5a0 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 39 2e 30 22 29 29 0a 0a rsion.'(projectile..."2.9.0"))..
b5c0 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d (defvar.projectile-project-test-
b5e0 73 75 66 66 69 78 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 suffix.nil..."Use.this.variable.
b600 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 to.override.the.current.project'
b620 73 20 74 65 73 74 2d 73 75 66 66 69 78 20 70 72 6f 70 65 72 74 79 2e 0a 49 74 20 74 61 6b 65 73 s.test-suffix.property..It.takes
b640 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 74 65 73 74 2d 73 75 66 66 69 78 .precedence.over.the.test-suffix
b660 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a .for.the.project.type.when.set..
b680 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c Should.be.set.via..dir-locals.el
b6a0 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d .")..(defvar.projectile-project-
b6c0 74 65 73 74 2d 70 72 65 66 69 78 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 69 73 20 76 61 72 69 test-prefix.nil..."Use.this.vari
b6e0 61 62 6c 65 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f able.to.override.the.current.pro
b700 6a 65 63 74 27 73 20 74 65 73 74 2d 70 72 65 66 69 78 20 70 72 6f 70 65 72 74 79 2e 0a 49 74 20 ject's.test-prefix.property..It.
b720 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 74 65 73 74 2d 70 takes.precedence.over.the.test-p
b740 72 65 66 69 78 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 refix.for.the.project.type.when.
b760 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 set..Should.be.set.via..dir-loca
b780 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f ls.el.")..(defvar.projectile-pro
b7a0 6a 65 63 74 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 6e 69 6c 0a 20 20 22 55 73 65 ject-related-files-fn.nil..."Use
b7c0 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 .this.variable.to.override.the.c
b7e0 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 urrent.project's.related-files-f
b800 6e 20 70 72 6f 70 65 72 74 79 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 n.property..It.takes.precedence.
b820 6f 76 65 72 20 74 68 65 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 61 74 74 72 69 62 over.the.related-files-fn.attrib
b840 75 74 65 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 0a 77 68 65 6e 20 73 65 ute.for.the.project.type.when.se
b860 74 2e 20 20 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c t...Should.be.set.via..dir-local
b880 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a s.el.")..(defvar.projectile-proj
b8a0 65 63 74 2d 73 72 63 2d 64 69 72 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 69 73 20 76 61 72 69 ect-src-dir.nil..."Use.this.vari
b8c0 61 62 6c 65 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f able.to.override.the.current.pro
b8e0 6a 65 63 74 27 73 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2e 0a 49 74 20 74 61 6b 65 ject's.src-dir.property..It.take
b900 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 73 72 63 2d 64 69 72 20 66 6f s.precedence.over.the.src-dir.fo
b920 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f r.the.project.type.when.set..Sho
b940 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 uld.be.set.via..dir-locals.el.")
b960 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 ..(defvar.projectile-project-tes
b980 74 2d 64 69 72 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 t-dir.nil..."Use.this.variable.t
b9a0 6f 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 o.override.the.current.project's
b9c0 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 .test-dir.property..It.takes.pre
b9e0 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 74 65 73 74 2d 64 69 72 20 66 6f 72 20 74 68 cedence.over.the.test-dir.for.th
ba00 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 e.project.type.when.set..Should.
ba20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 0c 0a be.set.via..dir-locals.el.")....
ba40 3b 3b 3b 20 56 65 72 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 0a 28 64 65 66 63 6f 6e ;;;.Version.information..(defcon
ba60 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 69 6f 6e 20 22 32 2e 39 2e 31 22 0a 20 20 st.projectile-version."2.9.1"...
ba80 22 54 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 72 6f 6a 65 63 74 69 "The.current.version.of.Projecti
baa0 6c 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 70 6b 67 2d 76 65 le.")..(defun.projectile--pkg-ve
bac0 72 73 69 6f 6e 20 28 29 0a 20 20 22 45 78 74 72 61 63 74 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 rsion.()..."Extract.Projectile's
bae0 20 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 69 74 73 20 70 61 63 6b 61 67 .package.version.from.its.packag
bb00 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 3b 3b 20 55 73 65 20 60 63 6f 6e 64 27 20 62 65 6c e.metadata."...;;.Use.`cond'.bel
bb20 6f 77 20 74 6f 20 61 76 6f 69 64 20 61 20 63 6f 6d 70 69 6c 65 72 20 75 6e 75 73 65 64 20 72 65 ow.to.avoid.a.compiler.unused.re
bb40 74 75 72 6e 20 76 61 6c 75 65 20 77 61 72 6e 69 6e 67 0a 20 20 3b 3b 20 77 68 65 6e 20 60 70 61 turn.value.warning...;;.when.`pa
bb60 63 6b 61 67 65 2d 67 65 74 2d 76 65 72 73 69 6f 6e 27 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 ckage-get-version'.returns.nil..
bb80 53 65 65 20 23 33 31 38 31 2e 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 49 6e 6c 69 6e 65 20 74 68 See.#3181....;;.FIXME:.Inline.th
bba0 65 20 6c 6f 67 69 63 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 2d 67 65 74 2d 76 65 72 73 69 6f 6e e.logic.from.package-get-version
bbc0 20 61 6e 64 20 61 64 61 70 74 20 69 74 0a 20 20 28 63 6f 6e 64 20 28 28 66 62 6f 75 6e 64 70 20 .and.adapt.it...(cond.((fboundp.
bbe0 27 70 61 63 6b 61 67 65 2d 67 65 74 2d 76 65 72 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 28 'package-get-version)..........(
bc00 70 61 63 6b 61 67 65 2d 67 65 74 2d 76 65 72 73 69 6f 6e 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 package-get-version))))..;;;###a
bc20 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 69 6f utoload.(defun.projectile-versio
bc40 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 68 6f 77 2d 76 65 72 73 69 6f 6e 29 0a 20 20 22 47 65 n.(&optional.show-version)..."Ge
bc60 74 20 74 68 65 20 50 72 6f 6a 65 63 74 69 6c 65 20 76 65 72 73 69 6f 6e 20 61 73 20 73 74 72 69 t.the.Projectile.version.as.stri
bc80 6e 67 2e 0a 0a 49 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 72 20 ng...If.called.interactively.or.
bca0 69 66 20 53 48 4f 57 2d 56 45 52 53 49 4f 4e 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 68 6f 77 if.SHOW-VERSION.is.non-nil,.show
bcc0 20 74 68 65 0a 76 65 72 73 69 6f 6e 20 69 6e 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 20 61 6e .the.version.in.the.echo.area.an
bce0 64 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 62 75 66 66 65 72 2e 0a 0a 54 68 65 20 72 65 74 75 d.the.messages.buffer...The.retu
bd00 72 6e 65 64 20 73 74 72 69 6e 67 20 69 6e 63 6c 75 64 65 73 20 62 6f 74 68 2c 20 74 68 65 20 76 rned.string.includes.both,.the.v
bd20 65 72 73 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 2e 65 6c 0a 61 6e 64 20 74 68 65 20 6c ersion.from.package.el.and.the.l
bd40 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 2c 20 69 66 20 62 6f 74 68 20 61 20 70 72 65 73 65 6e ibrary.version,.if.both.a.presen
bd60 74 20 61 6e 64 20 64 69 66 66 65 72 65 6e 74 2e 0a 0a 49 66 20 74 68 65 20 76 65 72 73 69 6f 6e t.and.different...If.the.version
bd80 20 6e 75 6d 62 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 2c .number.could.not.be.determined,
bda0 20 73 69 67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 2c 0a 69 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 .signal.an.error,.if.called.inte
bdc0 72 61 63 74 69 76 65 6c 79 2c 20 6f 72 20 69 66 20 53 48 4f 57 2d 56 45 52 53 49 4f 4e 20 69 73 ractively,.or.if.SHOW-VERSION.is
bde0 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 74 68 65 72 77 69 73 65 0a 6a 75 73 74 20 72 65 74 75 72 6e 20 .non-nil,.otherwise.just.return.
be00 6e 69 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 74 29 29 0a 20 nil."...(interactive.(list.t))..
be20 20 28 6c 65 74 20 28 28 76 65 72 73 69 6f 6e 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d .(let.((version.(or.(projectile-
be40 2d 70 6b 67 2d 76 65 72 73 69 6f 6e 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 69 6f 6e -pkg-version).projectile-version
be60 29 29 29 0a 20 20 20 28 69 66 20 73 68 6f 77 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 28 )))....(if.show-version........(
be80 6d 65 73 73 61 67 65 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 25 73 22 20 76 65 72 73 69 6f 6e 29 message."Projectile.%s".version)
bea0 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 29 29 29 0a 0a 3b 3b 3b 20 4d 69 73 63 20 75 74 69 6c 69 ......version)))..;;;.Misc.utili
bec0 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 ty.functions.(defun.projectile-d
bee0 69 66 66 65 72 65 6e 63 65 20 28 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 28 63 6c 2d 72 65 ifference.(list1.list2)...(cl-re
bf00 6d 6f 76 65 2d 69 66 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6d 65 6d 62 65 72 20 78 move-if....(lambda.(x).(member.x
bf20 20 6c 69 73 74 32 29 29 0a 20 20 20 6c 69 73 74 31 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a .list2))....list1))..(defun.proj
bf40 65 63 74 69 6c 65 2d 75 6e 69 78 79 2d 73 79 73 74 65 6d 2d 70 20 28 29 0a 20 20 22 43 68 65 63 ectile-unixy-system-p.()..."Chec
bf60 6b 20 74 6f 20 73 65 65 20 69 66 20 75 6e 69 78 79 20 74 65 78 74 20 75 74 69 6c 69 74 69 65 73 k.to.see.if.unixy.text.utilities
bf80 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 2e 22 0a 20 20 28 63 6c 2d 65 76 65 72 79 0a 20 20 20 .are.installed."...(cl-every....
bfa0 28 6c 61 6d 62 64 61 20 28 78 29 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 78 29 29 (lambda.(x).(executable-find.x))
bfc0 0a 20 20 20 27 28 22 67 72 65 70 22 20 22 63 75 74 22 20 22 75 6e 69 71 22 29 29 29 0a 0a 28 64 ....'("grep"."cut"."uniq")))..(d
bfe0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 6f 72 2d 73 65 6c 65 63 74 efun.projectile-symbol-or-select
c000 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 73 79 6d 62 6f ion-at-point.()..."Get.the.symbo
c020 6c 20 6f 72 20 73 65 6c 65 63 74 65 64 20 74 65 78 74 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 l.or.selected.text.at.point."...
c040 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 (if.(use-region-p).......(buffer
c060 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 72 65 67 69 6f 6e -substring-no-properties.(region
c080 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 28 70 -beginning).(region-end)).....(p
c0a0 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 28 64 rojectile-symbol-at-point)))..(d
c0c0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 20 efun.projectile-symbol-at-point.
c0e0 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 20 61 6e ()..."Get.the.symbol.at.point.an
c100 64 20 73 74 72 69 70 20 69 74 73 20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20 28 73 75 62 73 d.strip.its.properties."...(subs
c120 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6f 72 20 28 74 68 69 6e 67 2d 61 tring-no-properties.(or.(thing-a
c140 74 2d 70 6f 69 6e 74 20 27 73 79 6d 62 6f 6c 29 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 t-point.'symbol)."")))..(defun.p
c160 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 rojectile-generate-process-name.
c180 28 70 72 6f 63 65 73 73 20 6d 61 6b 65 2d 6e 65 77 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a (process.make-new.&optional.proj
c1a0 65 63 74 29 0a 20 20 22 49 6e 66 65 72 20 74 68 65 20 62 75 66 66 65 72 20 6e 61 6d 65 20 66 6f ect)..."Infer.the.buffer.name.fo
c1c0 72 20 50 52 4f 43 45 53 53 20 6f 72 20 67 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 20 r.PROCESS.or.generate.a.new.one.
c1e0 69 66 20 4d 41 4b 45 2d 4e 45 57 20 69 73 20 74 72 75 65 2e 0a 54 68 65 20 66 75 6e 63 74 69 6f if.MAKE-NEW.is.true..The.functio
c200 6e 20 6f 70 65 72 61 74 65 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 n.operates.on.the.current.projec
c220 74 20 62 79 20 64 65 66 61 75 6c 74 2c 20 62 75 74 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 0a 73 t.by.default,.but.you.can.also.s
c240 70 65 63 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 65 78 70 6c 69 63 69 74 6c 79 20 76 69 61 20 pecify.a.project.explicitly.via.
c260 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 50 52 4f 4a 45 43 54 20 70 61 72 61 6d 2e 22 0a 20 20 28 the.optional.PROJECT.param."...(
c280 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 6f 72 20 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a let*.((project.(or.project.(proj
c2a0 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 ectile-acquire-root)))..........
c2c0 28 62 61 73 65 2d 6e 61 6d 65 20 28 66 6f 72 6d 61 74 20 22 2a 25 73 20 25 73 2a 22 20 70 72 6f (base-name.(format."*%s.%s*".pro
c2e0 63 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 70 72 cess.(projectile-project-name.pr
c300 6f 6a 65 63 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 6d 61 6b 65 2d 6e 65 77 0a 20 20 20 20 20 oject)))).....(if.make-new......
c320 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 61 73 ...(generate-new-buffer-name.bas
c340 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 62 61 73 65 2d 6e 61 6d 65 29 29 29 0a 0a 0c 0a 3b 3b e-name).......base-name)))....;;
c360 3b 20 53 65 72 69 61 6c 69 7a 61 74 69 6f 6e 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c ;.Serialization.(defun.projectil
c380 65 2d 73 65 72 69 61 6c 69 7a 65 20 28 64 61 74 61 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 53 e-serialize.(data.filename)..."S
c3a0 65 72 69 61 6c 69 7a 65 20 44 41 54 41 20 74 6f 20 46 49 4c 45 4e 41 4d 45 2e 0a 0a 54 68 65 20 erialize.DATA.to.FILENAME...The.
c3c0 73 61 76 65 64 20 64 61 74 61 20 63 61 6e 20 62 65 20 72 65 73 74 6f 72 65 64 20 77 69 74 68 20 saved.data.can.be.restored.with.
c3e0 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 73 65 72 69 61 6c 69 7a 65 27 2e 22 0a 20 20 28 69 66 `projectile-unserialize'."...(if
c400 20 28 66 69 6c 65 2d 77 72 69 74 61 62 6c 65 2d 70 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 .(file-writable-p.filename).....
c420 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 28 (with-temp-file.filename.......(
c440 69 6e 73 65 72 74 20 28 6c 65 74 20 28 70 72 69 6e 74 2d 6c 65 6e 67 74 68 29 20 28 70 72 69 6e insert.(let.(print-length).(prin
c460 31 2d 74 6f 2d 73 74 72 69 6e 67 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 1-to-string.data)))).....(messag
c480 65 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 63 61 63 68 65 20 27 25 73 27 20 6e 6f 74 20 77 72 69 e."Projectile.cache.'%s'.not.wri
c4a0 74 65 61 62 6c 65 22 20 66 69 6c 65 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a teable".filename)))..(defun.proj
c4c0 65 63 74 69 6c 65 2d 75 6e 73 65 72 69 61 6c 69 7a 65 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 ectile-unserialize.(filename)...
c4e0 22 52 65 61 64 20 64 61 74 61 20 73 65 72 69 61 6c 69 7a 65 64 20 62 79 20 60 70 72 6f 6a 65 63 "Read.data.serialized.by.`projec
c500 74 69 6c 65 2d 73 65 72 69 61 6c 69 7a 65 27 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 22 0a tile-serialize'.from.FILENAME.".
c520 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 22 45 72 ..(with-demoted-errors......."Er
c540 72 6f 72 20 64 75 72 69 6e 67 20 66 69 6c 65 20 64 65 73 65 72 69 61 6c 69 7a 61 74 69 6f 6e 3a ror.during.file.deserialization:
c560 20 25 53 22 0a 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 .%S".....(when.(file-exists-p.fi
c580 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a lename).......(with-temp-buffer.
c5a0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 ........(insert-file-contents.fi
c5c0 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 77 69 6c 6c 20 62 6c 6f lename).........;;.this.will.blo
c5e0 77 20 75 70 20 69 66 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 w.up.if.the.contents.of.the.file
c600 20 61 72 65 6e 27 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 73 70 20 64 61 74 61 20 73 74 72 .aren't.........;;.lisp.data.str
c620 75 63 74 75 72 65 73 0a 20 20 20 20 20 20 20 20 28 72 65 61 64 20 28 62 75 66 66 65 72 2d 73 74 uctures.........(read.(buffer-st
c640 72 69 6e 67 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 43 61 63 68 69 6e 67 0a 28 64 65 66 76 61 ring))))))....;;;.Caching.(defva
c660 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 0a 20 r.projectile-file-exists-cache..
c680 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a .(make-hash-table.:test.'equal).
c6a0 20 20 22 43 61 63 68 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 .."Cached.`projectile-file-exist
c6c0 73 2d 70 27 20 72 65 73 75 6c 74 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 s-p'.results.")..(defvar.project
c6e0 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 2d 74 69 6d 65 72 20 6e 69 6c 0a ile-file-exists-cache-timer.nil.
c700 20 20 22 54 69 6d 65 72 20 66 6f 72 20 73 63 68 65 64 75 6c 69 6e 67 60 70 72 6f 6a 65 63 74 69 .."Timer.for.scheduling`projecti
c720 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 2d 63 6c 65 61 6e 75 70 27 2e 22 29 le-file-exists-cache-cleanup'.")
c740 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d ..(defun.projectile-file-exists-
c760 63 61 63 68 65 2d 63 6c 65 61 6e 75 70 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 69 6d 65 64 cache-cleanup.()..."Remove.timed
c780 20 6f 75 74 20 63 61 63 68 65 20 65 6e 74 72 69 65 73 2e 0a 41 6c 73 6f 20 72 65 73 63 68 65 64 .out.cache.entries..Also.resched
c7a0 75 6c 65 20 6f 72 20 72 65 6d 6f 76 65 20 74 68 65 20 74 69 6d 65 72 20 69 66 20 6e 6f 20 6d 6f ule.or.remove.the.timer.if.no.mo
c7c0 72 65 20 69 74 65 6d 73 20 61 72 65 20 69 6e 20 74 68 65 20 63 61 63 68 65 2e 22 0a 20 20 28 6c re.items.are.in.the.cache."...(l
c7e0 65 74 20 28 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 28 6d et.((now.(current-time))).....(m
c800 61 70 68 61 73 68 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c 75 65 29 0a 20 20 20 20 20 aphash.(lambda.(key.value)......
c820 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 28 63 64 72 20 ..........(if.(time-less-p.(cdr.
c840 76 61 6c 75 65 29 20 6e 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 value).now)....................(
c860 72 65 6d 68 61 73 68 20 6b 65 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 remhash.key.projectile-file-exis
c880 74 73 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 ts-cache)))..............project
c8a0 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 29 0a 20 20 20 20 28 73 65 74 71 ile-file-exists-cache).....(setq
c8c0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 2d 74 69 .projectile-file-exists-cache-ti
c8e0 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 68 61 73 68 2d 74 61 62 6c 65 mer...........(if.(>.(hash-table
c900 2d 63 6f 75 6e 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 -count.projectile-file-exists-ca
c920 63 68 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d che).0)...............(run-with-
c940 74 69 6d 65 72 20 31 30 20 6e 69 6c 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 timer.10.nil.'projectile-file-ex
c960 69 73 74 73 2d 63 61 63 68 65 2d 63 6c 65 61 6e 75 70 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ists-cache-cleanup)))))..(defun.
c980 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 66 69 6c 65 6e 61 projectile-file-exists-p.(filena
c9a0 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 66 69 6c 65 20 46 49 4c 45 4e 41 4d 45 me)..."Return.t.if.file.FILENAME
c9c0 20 65 78 69 73 74 2e 0a 41 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 60 66 69 6c 65 2d 65 .exist..A.wrapper.around.`file-e
c9e0 78 69 73 74 73 2d 70 27 20 77 69 74 68 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 61 63 68 69 6e 67 xists-p'.with.additional.caching
ca00 20 73 75 70 70 6f 72 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 2d 72 65 6d 6f 74 65 .support."...(let*.((file-remote
ca20 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 .(file-remote-p.filename))......
ca40 20 20 20 20 28 65 78 70 69 72 65 2d 73 65 63 6f 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 28 69 ....(expire-seconds...........(i
ca60 66 20 66 69 6c 65 2d 72 65 6d 6f 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 f.file-remote...............(and
ca80 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 72 65 6d 6f 74 65 2d 63 .projectile-file-exists-remote-c
caa0 61 63 68 65 2d 65 78 70 69 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ache-expire....................(
cac0 3e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 72 65 6d 6f 74 65 2d >.projectile-file-exists-remote-
cae0 63 61 63 68 65 2d 65 78 70 69 72 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cache-expire.0).................
cb00 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 72 65 6d 6f 74 65 ...projectile-file-exists-remote
cb20 2d 63 61 63 68 65 2d 65 78 70 69 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 -cache-expire).............(and.
cb40 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 6c 6f 63 61 6c 2d 63 61 63 projectile-file-exists-local-cac
cb60 68 65 2d 65 78 70 69 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 70 72 he-expire..................(>.pr
cb80 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 6c 6f 63 61 6c 2d 63 61 63 68 65 ojectile-file-exists-local-cache
cba0 2d 65 78 70 69 72 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a -expire.0)..................proj
cbc0 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 6c 6f 63 61 6c 2d 63 61 63 68 65 2d 65 ectile-file-exists-local-cache-e
cbe0 78 70 69 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 74 65 2d 66 69 6c 65 2d 6e xpire)))..........(remote-file-n
cc00 61 6d 65 2d 69 6e 68 69 62 69 74 2d 63 61 63 68 65 20 28 69 66 20 65 78 70 69 72 65 2d 73 65 63 ame-inhibit-cache.(if.expire-sec
cc20 6f 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onds............................
cc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 69 72 65 2d 73 65 63 6f 6e 64 73 ..................expire-seconds
cc60 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 ................................
cc80 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6d 6f 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 69 6e 68 ............remote-file-name-inh
cca0 69 62 69 74 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 65 78 70 69 72 ibit-cache))).....(if.(not.expir
ccc0 65 2d 73 65 63 6f 6e 64 73 29 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d e-seconds).........(file-exists-
cce0 70 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e p.filename).......(let*.((curren
cd00 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 t-time.(current-time))..........
cd20 20 20 20 20 28 63 61 63 68 65 64 20 28 67 65 74 68 61 73 68 20 66 69 6c 65 6e 61 6d 65 20 70 72 ....(cached.(gethash.filename.pr
cd40 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 ojectile-file-exists-cache))....
cd60 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 65 64 2d 76 61 6c 75 65 20 28 69 66 20 63 61 63 68 ..........(cached-value.(if.cach
cd80 65 64 20 28 63 61 72 20 63 61 63 68 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ed.(car.cached)))..............(
cda0 63 61 63 68 65 64 2d 65 78 70 69 72 65 20 28 69 66 20 63 61 63 68 65 64 20 28 63 64 72 20 63 61 cached-expire.(if.cached.(cdr.ca
cdc0 63 68 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 65 64 2d 65 78 70 ched)))..............(cached-exp
cde0 69 72 65 64 20 28 69 66 20 63 61 63 68 65 64 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 63 61 63 ired.(if.cached.(time-less-p.cac
ce00 68 65 64 2d 65 78 70 69 72 65 20 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 74 29 29 0a 20 20 20 hed-expire.current-time).t))....
ce20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 63 ..........(value.(or.(and.(not.c
ce40 61 63 68 65 64 2d 65 78 70 69 72 65 64 29 20 63 61 63 68 65 64 2d 76 61 6c 75 65 29 0a 20 20 20 ached-expired).cached-value)....
ce60 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 66 69 6c 65 2d 65 .....................(if.(file-e
ce80 78 69 73 74 73 2d 70 20 66 69 6c 65 6e 61 6d 65 29 20 27 66 6f 75 6e 64 20 27 6e 6f 74 66 6f 75 xists-p.filename).'found.'notfou
cea0 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 63 61 nd)))).........(when.(or.(not.ca
cec0 63 68 65 64 29 20 63 61 63 68 65 64 2d 65 78 70 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 ched).cached-expired)...........
cee0 28 70 75 74 68 61 73 68 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (puthash.filename...............
cf00 20 20 20 20 20 28 63 6f 6e 73 20 76 61 6c 75 65 20 28 74 69 6d 65 2d 61 64 64 20 63 75 72 72 65 .....(cons.value.(time-add.curre
cf20 6e 74 2d 74 69 6d 65 20 28 73 65 63 6f 6e 64 73 2d 74 6f 2d 74 69 6d 65 20 65 78 70 69 72 65 2d nt-time.(seconds-to-time.expire-
cf40 73 65 63 6f 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 seconds)))....................pr
cf60 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 ojectile-file-exists-cache))....
cf80 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 .....(unless.projectile-file-exi
cfa0 73 74 73 2d 63 61 63 68 65 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 sts-cache-timer...........(setq.
cfc0 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 63 61 63 68 65 2d 74 69 6d projectile-file-exists-cache-tim
cfe0 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d 74 69 6d er.................(run-with-tim
d000 65 72 20 31 30 20 6e 69 6c 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 er.10.nil.'projectile-file-exist
d020 73 2d 63 61 63 68 65 2d 63 6c 65 61 6e 75 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 71 75 61 s-cache-cleanup))).........(equa
d040 6c 20 76 61 6c 75 65 20 27 66 6f 75 6e 64 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 70 l.value.'found)))))..(defsubst.p
d060 72 6f 6a 65 63 74 69 6c 65 2d 70 65 72 73 69 73 74 65 6e 74 2d 63 61 63 68 65 2d 70 20 28 29 0a rojectile-persistent-cache-p.().
d080 20 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 20 ..(eq.projectile-enable-caching.
d0a0 27 70 65 72 73 69 73 74 65 6e 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 'persistent))..;;;###autoload.(d
d0c0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 efun.projectile-invalidate-cache
d0e0 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 .(prompt)..."Remove.the.current.
d100 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 73 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 project's.files.from.`projectile
d120 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 27 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 -projects-cache'...With.a.prefix
d140 20 61 72 67 75 6d 65 6e 74 20 50 52 4f 4d 50 54 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 74 68 65 .argument.PROMPT.prompts.for.the
d160 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 68 6f 73 65 20 63 61 63 68 65 .name.of.the.project.whose.cache
d180 0a 74 6f 20 69 6e 76 61 6c 69 64 61 74 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 .to.invalidate."...(interactive.
d1a0 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 20 "P")...(let.((project-root......
d1c0 20 20 20 20 28 69 66 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d ....(if.prompt..............(com
d1e0 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 52 65 6d 6f 76 65 20 63 61 63 68 65 20 66 6f 72 3a 20 pleting-read."Remove.cache.for:.
d200 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
d220 28 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 79 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a (hash-table-keys.projectile-proj
d240 65 63 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 ects-cache))............(project
d260 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 3b 3b 20 72 65 73 65 ile-acquire-root)))).....;;.rese
d280 74 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20 63 61 63 68 65 0a 20 20 20 20 28 73 65 74 71 20 t.the.in-memory.cache.....(setq.
d2a0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 20 28 6d projectile-project-root-cache.(m
d2c0 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 0a 20 20 ake-hash-table.:test.'equal))...
d2e0 20 20 28 72 65 6d 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 ..(remhash.project-root.projecti
d300 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 63 61 63 68 65 29 0a 20 20 20 20 28 72 65 6d 68 le-project-type-cache).....(remh
d320 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ash.project-root.projectile-proj
d340 65 63 74 73 2d 63 61 63 68 65 29 0a 20 20 20 20 28 72 65 6d 68 61 73 68 20 70 72 6f 6a 65 63 74 ects-cache).....(remhash.project
d360 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 2d -root.projectile-projects-cache-
d380 74 69 6d 65 29 0a 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 time).....;;.reset.the.project's
d3a0 20 63 61 63 68 65 20 66 69 6c 65 0a 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c .cache.file.....(when.(projectil
d3c0 65 2d 70 65 72 73 69 73 74 65 6e 74 2d 63 61 63 68 65 2d 70 29 0a 20 20 20 20 20 20 3b 3b 20 54 e-persistent-cache-p).......;;.T
d3e0 4f 44 4f 3a 20 50 65 72 68 61 70 73 20 69 74 27 73 20 62 65 74 74 65 72 20 74 6f 20 64 65 6c 65 ODO:.Perhaps.it's.better.to.dele
d400 74 65 20 74 68 65 20 63 61 63 68 65 20 66 69 6c 65 20 69 6e 20 73 75 63 68 20 63 61 73 65 73 3f te.the.cache.file.in.such.cases?
d420 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 72 69 61 6c 69 7a 65 20 6e 69 6c .......(projectile-serialize.nil
d440 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 20 .(projectile-project-cache-file.
d460 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 project-root))).....(when.projec
d480 74 69 6c 65 2d 76 65 72 62 6f 73 65 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 6e 76 tile-verbose.......(message."Inv
d4a0 61 6c 69 64 61 74 65 64 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 61 63 68 65 20 66 6f 72 20 25 73 alidated.Projectile.cache.for.%s
d4c0 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 70 72 ."................(propertize.pr
d4e0 6f 6a 65 63 74 2d 72 6f 6f 74 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 oject-root.'face.'font-lock-keyw
d500 6f 72 64 2d 66 61 63 65 29 29 29 29 0a 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 72 ord-face))))...(when.(fboundp.'r
d520 65 63 65 6e 74 66 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 28 72 65 63 65 6e 74 66 2d 63 6c 65 ecentf-cleanup).....(recentf-cle
d540 61 6e 75 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 69 6d 65 2d anup)))..(defun.projectile-time-
d560 73 65 63 6f 6e 64 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 seconds.()..."Return.the.number.
d580 6f 66 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 74 68 65 20 75 6e 69 78 20 65 70 6f 63 68 2e of.seconds.since.the.unix.epoch.
d5a0 22 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 74 69 6d 65 2d 63 6f 6e 76 65 72 74 29 0a "...(if.(fboundp.'time-convert).
d5c0 20 20 20 20 20 20 28 74 69 6d 65 2d 63 6f 6e 76 65 72 74 20 6e 69 6c 20 27 69 6e 74 65 67 65 72 ......(time-convert.nil.'integer
d5e0 29 0a 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 68 69 ).....(cl-destructuring-bind.(hi
d600 67 68 20 6c 6f 77 20 5f 75 73 65 63 20 5f 70 73 65 63 29 20 28 63 75 72 72 65 6e 74 2d 74 69 6d gh.low._usec._psec).(current-tim
d620 65 29 0a 20 20 20 20 20 20 28 2b 20 28 61 73 68 20 68 69 67 68 20 31 36 29 20 6c 6f 77 29 29 29 e).......(+.(ash.high.16).low)))
d640 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 70 72 6f 6a 65 )..(defun.projectile-cache-proje
d660 63 74 20 28 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 29 0a 20 20 22 43 61 63 68 65 20 50 52 4f 4a ct.(project.files)..."Cache.PROJ
d680 45 43 54 73 20 46 49 4c 45 53 2e 0a 54 68 65 20 63 61 63 68 65 20 69 73 20 63 72 65 61 74 65 64 ECTs.FILES..The.cache.is.created
d6a0 20 62 6f 74 68 20 69 6e 20 6d 65 6d 6f 72 79 20 61 6e 64 20 6f 6e 20 74 68 65 20 68 61 72 64 20 .both.in.memory.and.on.the.hard.
d6c0 64 72 69 76 65 2e 22 0a 20 20 28 70 75 74 68 61 73 68 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 drive."...(puthash.project.files
d6e0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 0a 20 20 28 70 .projectile-projects-cache)...(p
d700 75 74 68 61 73 68 20 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 69 6d 65 2d uthash.project.(projectile-time-
d720 73 65 63 6f 6e 64 73 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 seconds).projectile-projects-cac
d740 68 65 2d 74 69 6d 65 29 0a 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 65 72 he-time)...(when.(projectile-per
d760 73 69 73 74 65 6e 74 2d 63 61 63 68 65 2d 70 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 sistent-cache-p).....(projectile
d780 2d 73 65 72 69 61 6c 69 7a 65 20 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f -serialize.files.(projectile-pro
d7a0 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 29 29 29 29 0a 0a 28 64 65 ject-cache-file.project))))..(de
d7c0 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 61 64 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 fun.projectile-load-project-cach
d7e0 65 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 4c 6f 61 64 20 74 68 65 20 63 61 63 e.(project-root)..."Load.the.cac
d800 68 65 20 66 69 6c 65 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 69 6e 20 6d 65 6d 6f he.file.for.PROJECT-ROOT.in.memo
d820 72 79 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 61 63 68 65 2d 66 69 6c 65 20 28 ry."...(when-let*.((cache-file.(
d840 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 20 70 72 projectile-project-cache-file.pr
d860 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 oject-root))).....(when.(file-ex
d880 69 73 74 73 2d 70 20 63 61 63 68 65 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 ists-p.cache-file).......(puthas
d8a0 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 73 65 72 h.project-root.(projectile-unser
d8c0 69 61 6c 69 7a 65 20 63 61 63 68 65 2d 66 69 6c 65 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 ialize.cache-file).projectile-pr
d8e0 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 ojects-cache))))..;;;###autoload
d900 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 75 72 67 65 2d 66 69 6c 65 2d 66 72 .(defun.projectile-purge-file-fr
d920 6f 6d 2d 63 61 63 68 65 20 28 66 69 6c 65 29 0a 20 20 22 50 75 72 67 65 20 46 49 4c 45 20 66 72 om-cache.(file)..."Purge.FILE.fr
d940 6f 6d 20 74 68 65 20 63 61 63 68 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a om.the.cache.of.the.current.proj
d960 65 63 74 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 70 ect."...(interactive....(list.(p
d980 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 rojectile-completing-read.......
d9a0 20 20 20 20 22 52 65 6d 6f 76 65 20 66 69 6c 65 20 66 72 6f 6d 20 63 61 63 68 65 3a 20 22 0a 20 ...."Remove.file.from.cache:."..
d9c0 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f .........(projectile-current-pro
d9e0 6a 65 63 74 2d 66 69 6c 65 73 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 ject-files))))...(let*.((project
da00 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 -root.(projectile-project-root))
da20 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 20 28 67 65 74 68 61 73 ..........(project-cache.(gethas
da40 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 h.project-root.projectile-projec
da60 74 73 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ts-cache))).....(if.(projectile-
da80 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 file-cached-p.file.project-root)
daa0 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 .........(progn...........(putha
dac0 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 72 65 6d 6f 76 65 20 66 69 6c 65 20 70 72 6f sh.project-root.(remove.file.pro
dae0 6a 65 63 74 2d 63 61 63 68 65 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d ject-cache).projectile-projects-
db00 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 cache)...........(when.(projecti
db20 6c 65 2d 70 65 72 73 69 73 74 65 6e 74 2d 63 61 63 68 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 le-persistent-cache-p)..........
db40 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 ...(projectile-serialize.project
db60 2d 63 61 63 68 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 -cache.(projectile-project-cache
db80 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 -file.project-root)))...........
dba0 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 62 6f 73 65 0a 20 20 20 20 20 20 20 (when.projectile-verbose........
dbc0 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 .....(message."%s.removed.from.c
dbe0 61 63 68 65 22 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 25 73 20 69 ache".file))).......(error."%s.i
dc00 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 63 61 63 68 65 22 20 66 69 6c 65 29 29 29 29 0a 0a 3b 3b s.not.in.the.cache".file))))..;;
dc20 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 ;###autoload.(defun.projectile-p
dc40 75 72 67 65 2d 64 69 72 2d 66 72 6f 6d 2d 63 61 63 68 65 20 28 64 69 72 29 0a 20 20 22 50 75 72 urge-dir-from-cache.(dir)..."Pur
dc60 67 65 20 44 49 52 20 66 72 6f 6d 20 74 68 65 20 63 61 63 68 65 20 6f 66 20 74 68 65 20 63 75 72 ge.DIR.from.the.cache.of.the.cur
dc80 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 rent.project."...(interactive...
dca0 20 28 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 .(list.(projectile-completing-re
dcc0 61 64 0a 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 64 69 72 65 63 74 6f 72 79 20 66 ad..........."Remove.directory.f
dce0 72 6f 6d 20 63 61 63 68 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 rom.cache:."...........(projecti
dd00 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 73 29 29 29 29 0a 20 20 28 6c le-current-project-dirs))))...(l
dd20 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 et*.((project-root.(projectile-p
dd40 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d roject-root))..........(project-
dd60 63 61 63 68 65 20 28 67 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a cache.(gethash.project-root.proj
dd80 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 28 70 75 ectile-projects-cache))).....(pu
dda0 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 thash.project-root..............
ddc0 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 20 28 73 74 72 (cl-remove-if.(lambda.(str).(str
dde0 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 64 69 72 20 73 74 72 29 29 20 70 72 6f 6a 65 63 74 2d 63 ing-prefix-p.dir.str)).project-c
de00 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 ache)..............projectile-pr
de20 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 ojects-cache)))..(defun.projecti
de40 6c 65 2d 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 28 66 69 6c 65 20 70 72 6f 6a 65 63 74 29 0a le-file-cached-p.(file.project).
de60 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 69 73 20 61 6c 72 65 61 64 79 20 69 6e 20 50 .."Check.if.FILE.is.already.in.P
de80 52 4f 4a 45 43 54 20 63 61 63 68 65 2e 22 0a 20 20 28 6d 65 6d 62 65 72 20 66 69 6c 65 20 28 67 ROJECT.cache."...(member.file.(g
dea0 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 ethash.project.projectile-projec
dec0 74 73 2d 63 61 63 68 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 ts-cache)))..;;;###autoload.(def
dee0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 un.projectile-cache-current-file
df00 20 28 29 0a 20 20 22 41 64 64 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 76 69 73 69 74 65 64 .()..."Add.the.currently.visited
df20 20 66 69 6c 65 20 74 6f 20 74 68 65 20 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 .file.to.the.cache."...(interact
df40 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 28 70 ive)...(let.((current-project.(p
df60 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 77 rojectile-project-root))).....(w
df80 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 28 67 65 74 hen.(and.(buffer-file-name).(get
dfa0 68 61 73 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 20 70 hash.(projectile-project-root).p
dfc0 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 rojectile-projects-cache))......
dfe0 20 28 6c 65 74 2a 20 28 28 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 66 69 6c 65 2d .(let*.((abs-current-file.(file-
e000 74 72 75 65 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 truename.(buffer-file-name)))...
e020 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 66 69 6c 65 2d 72 ...........(current-file.(file-r
e040 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 63 75 elative-name.abs-current-file.cu
e060 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 rrent-project))).........(unless
e080 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 63 .(or.(projectile-file-cached-p.c
e0a0 75 72 72 65 6e 74 2d 66 69 6c 65 20 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 urrent-file.current-project)....
e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e .................(projectile-ign
e0e0 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 ored-directory-p.(file-name-dire
e100 63 74 6f 72 79 20 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 ctory.abs-current-file))........
e120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 .............(projectile-ignored
e140 2d 66 69 6c 65 2d 70 20 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 -file-p.abs-current-file))......
e160 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 63 6f 6e 73 20 .....(let.((project-files.(cons.
e180 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 67 65 74 68 61 73 68 20 63 75 72 72 65 6e 74 2d 70 72 current-file.(gethash.current-pr
e1a0 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 oject.projectile-projects-cache)
e1c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 65 2d 66 69 6c 65 20 28 )).................(cache-file.(
e1e0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 20 63 75 projectile-project-cache-file.cu
e200 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 rrent-project))).............(pu
e220 74 68 61 73 68 20 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 2d 66 69 thash.current-project.project-fi
e240 6c 65 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 0a 20 les.projectile-projects-cache)..
e260 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 73 65 72 69 61 6c 69 7a 65 20 74 68 65 20 63 ...........;;.we.serialize.the.c
e280 61 63 68 65 20 77 69 74 68 20 61 6e 20 69 64 6c 65 20 74 69 6d 65 20 74 6f 20 61 76 6f 69 64 20 ache.with.an.idle.time.to.avoid.
e2a0 66 72 65 65 7a 69 6e 67 20 74 68 65 20 55 49 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 freezing.the.UI.............;;.i
e2c0 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 74 68 65 20 6e 65 77 20 66 69 6c 65 20 77 61 mmediately.after.the.new.file.wa
e2e0 73 20 63 72 65 61 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f s.created.............(when.(pro
e300 6a 65 63 74 69 6c 65 2d 70 65 72 73 69 73 74 65 6e 74 2d 63 61 63 68 65 2d 70 29 0a 20 20 20 20 jectile-persistent-cache-p).....
e320 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d 69 64 6c 65 2d 74 69 6d 65 72 0a 20 ..........(run-with-idle-timer..
e340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 33 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............30................
e360 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 nil................'projectile-s
e380 65 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 63 61 63 68 65 2d 66 69 6c erialize.project-files.cache-fil
e3a0 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 25 73 e)))...........(message."File.%s
e3c0 20 61 64 64 65 64 20 74 6f 20 70 72 6f 6a 65 63 74 20 25 73 20 63 61 63 68 65 2e 22 0a 20 20 20 .added.to.project.%s.cache."....
e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 63 75 72 72 ................(propertize.curr
e400 65 6e 74 2d 66 69 6c 65 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 ent-file.'face.'font-lock-keywor
e420 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 d-face)....................(prop
e440 65 72 74 69 7a 65 20 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 27 66 61 63 65 20 27 66 6f ertize.current-project.'face.'fo
e460 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 29 29 29 29 29 0a 0a 3b 3b 20 nt-lock-keyword-face)))))))..;;.
e480 63 61 63 68 65 20 6f 70 65 6e 65 64 20 66 69 6c 65 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 cache.opened.files.automatically
e4a0 20 74 6f 20 72 65 64 75 63 65 20 74 68 65 20 6e 65 65 64 20 66 6f 72 20 63 61 63 68 65 20 69 6e .to.reduce.the.need.for.cache.in
e4c0 76 61 6c 69 64 61 74 69 6f 6e 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 validation.(defun.projectile-cac
e4e0 68 65 2d 66 69 6c 65 73 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 28 29 0a 20 20 22 46 75 he-files-find-file-hook.()..."Fu
e500 6e 63 74 69 6f 6e 20 66 6f 72 20 63 61 63 68 69 6e 67 20 66 69 6c 65 73 20 77 69 74 68 20 60 66 nction.for.caching.files.with.`f
e520 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 ind-file-hook'."...(let.((projec
e540 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 29 29 0a t-root.(projectile-project-p))).
e560 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 ....(when.(and.projectile-enable
e580 2d 63 61 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d -caching................project-
e5a0 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 72 6f 6a 65 63 root................(not.(projec
e5c0 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 2d 72 tile-ignored-project-p.project-r
e5e0 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 63 oot))).......(projectile-cache-c
e600 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 urrent-file))))..(defun.projecti
e620 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6e 64 2d 66 69 6c le-track-known-projects-find-fil
e640 65 2d 68 6f 6f 6b 20 28 29 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 63 61 63 68 69 6e e-hook.()..."Function.for.cachin
e660 67 20 70 72 6f 6a 65 63 74 73 20 77 69 74 68 20 60 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 27 g.projects.with.`find-file-hook'
e680 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b ."...(when.(and.projectile-track
e6a0 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 28 70 -known-projects-automatically.(p
e6c0 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 rojectile-project-p)).....(proje
e6e0 63 74 69 6c 65 2d 61 64 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 ctile-add-known-project.(project
e700 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f ile-project-root))))..(defun.pro
e720 6a 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 28 jectile-maybe-invalidate-cache.(
e740 66 6f 72 63 65 29 0a 20 20 22 49 6e 76 61 6c 69 64 61 74 65 20 69 66 20 46 4f 52 43 45 20 6f 72 force)..."Invalidate.if.FORCE.or
e760 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 63 6f 6e 66 69 67 20 6e 65 77 65 72 20 74 68 61 6e 20 .project's.dirconfig.newer.than.
e780 63 61 63 68 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 66 6f 72 63 65 20 28 66 69 6c 65 2d cache."...(when.(or.force.(file-
e7a0 6e 65 77 65 72 2d 74 68 61 6e 2d 66 69 6c 65 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 newer-than-file-p.(projectile-di
e7c0 72 63 6f 6e 66 69 67 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rconfig-file)...................
e7e0 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 6f 6a 65 63 74 ........................(project
e800 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 70 ile-project-cache-file))).....(p
e820 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 6e 69 6c 29 29 rojectile-invalidate-cache.nil))
e840 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 )..;;;###autoload.(defun.project
e860 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f ile-discover-projects-in-directo
e880 72 79 20 28 64 69 72 65 63 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 70 74 68 29 0a 20 ry.(directory.&optional.depth)..
e8a0 20 22 44 69 73 63 6f 76 65 72 20 61 6e 79 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 44 49 52 45 43 ."Discover.any.projects.in.DIREC
e8c0 54 4f 52 59 20 61 6e 64 20 61 64 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 TORY.and.add.them.to.the.project
e8e0 69 6c 65 20 63 61 63 68 65 2e 0a 0a 49 66 20 44 45 50 54 48 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 ile.cache...If.DEPTH.is.non-nil.
e900 72 65 63 75 72 73 69 76 65 6c 79 20 64 65 73 63 65 6e 64 20 65 78 61 63 74 6c 79 20 44 45 50 54 recursively.descend.exactly.DEPT
e920 48 20 6c 65 76 65 6c 73 20 62 65 6c 6f 77 20 44 49 52 45 43 54 4f 52 59 20 61 6e 64 0a 64 69 73 H.levels.below.DIRECTORY.and.dis
e940 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 74 68 65 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 cover.projects.there."...(intera
e960 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e ctive....(list.(read-directory-n
e980 61 6d 65 20 22 53 74 61 72 74 69 6e 67 20 64 69 72 65 63 74 6f 72 79 3a 20 22 29 29 29 0a 0a 20 ame."Starting.directory:.")))...
e9a0 20 3b 3b 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 64 65 70 74 .;;.set.a.default.value.for.dept
e9c0 68 0a 20 20 28 73 65 74 71 20 64 65 70 74 68 20 28 6f 72 20 64 65 70 74 68 20 31 29 29 0a 0a 20 h...(setq.depth.(or.depth.1))...
e9e0 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 .(if.(file-directory-p.directory
ea00 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 64 65 70 74 68 29 ).......(if.(and.(numberp.depth)
ea20 20 28 3e 20 64 65 70 74 68 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 .(>.depth.0))...........;;.Ignor
ea40 65 20 65 72 72 6f 72 73 20 77 68 65 6e 20 6c 69 73 74 69 6e 67 20 66 69 6c 65 73 20 69 6e 20 74 e.errors.when.listing.files.in.t
ea60 68 65 20 64 69 72 65 63 74 6f 72 79 2c 20 62 65 63 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 he.directory,.because...........
ea80 3b 3b 20 73 6f 6d 65 74 69 6d 65 73 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 61 ;;.sometimes.that.directory.is.a
eaa0 6e 20 75 6e 72 65 61 64 61 62 6c 65 20 6f 6e 65 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 n.unreadable.one.at.the.root.of.
eac0 61 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76 6f 6c 75 6d 65 2e 20 54 68 69 73 20 69 73 20 74 a...........;;.volume..This.is.t
eae0 68 65 20 63 61 73 65 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 20 6d 61 63 4f 53 20 77 he.case,.for.example,.on.macOS.w
eb00 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2e 53 70 6f 74 6c 69 67 68 74 2d ith.the...........;;..Spotlight-
eb20 56 31 30 30 20 64 69 72 65 63 74 6f 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 V100.directory............(let.(
eb40 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (progress-reporter..............
eb60 20 20 20 20 28 6d 61 6b 65 2d 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 ....(make-progress-reporter.....
eb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 50 72 6f 6a 65 63 74 69 6c ..............(format."Projectil
eba0 65 20 69 73 20 64 69 73 63 6f 76 65 72 69 6e 67 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 25 73 2e e.is.discovering.projects.in.%s.
ebc0 2e 2e 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 28 70 .."...........................(p
ebe0 72 6f 70 65 72 74 69 7a 65 20 64 69 72 65 63 74 6f 72 79 20 27 66 61 63 65 20 27 66 6f 6e 74 2d ropertize.directory.'face.'font-
ec00 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 lock-keyword-face)))))..........
ec20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 2d 75 70 64 61 74 65 20 70 72 6f ...(progress-reporter-update.pro
ec40 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c gress-reporter).............(dol
ec60 69 73 74 20 28 64 69 72 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 64 69 72 65 63 74 6f ist.(dir.(ignore-errors.(directo
ec80 72 79 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 ry-files.directory.t))).........
eca0 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 ......(when.(and.(file-directory
ecc0 2d 70 20 64 69 72 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 -p.dir).........................
ece0 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 .(not.(member.(file-name-nondire
ed00 63 74 6f 72 79 20 64 69 72 29 20 27 28 22 2e 2e 22 20 22 2e 22 29 29 29 29 0a 20 20 20 20 20 20 ctory.dir).'("..".".")))).......
ed20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 ..........(projectile-discover-p
ed40 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 20 28 31 2d 20 64 65 70 rojects-in-directory.dir.(1-.dep
ed60 74 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 th)))).............(progress-rep
ed80 6f 72 74 65 72 2d 64 6f 6e 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 0a 20 orter-done.progress-reporter))..
eda0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 .......(when.(projectile-project
edc0 2d 70 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 -p.directory)...........(let.((d
ede0 69 72 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 ir.(abbreviate-file-name.(projec
ee00 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 0a tile-project-root.directory)))).
ee20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 64 69 72 20 ............(unless.(member.dir.
ee40 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 20 projectile-known-projects)......
ee60 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 6b 6e 6f 77 6e 2d 70 .........(projectile-add-known-p
ee80 72 6f 6a 65 63 74 20 64 69 72 29 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 50 72 roject.dir))))).....(message."Pr
eea0 6f 6a 65 63 74 20 73 65 61 72 63 68 20 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 25 73 20 64 oject.search.path.directory.%s.d
eec0 6f 65 73 6e 27 74 20 65 78 69 73 74 22 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 3b 3b 3b 23 oesn't.exist".directory)))..;;;#
eee0 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 ##autoload.(defun.projectile-dis
ef00 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 20 28 29 cover-projects-in-search-path.()
ef20 0a 20 20 22 44 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 60 70 72 6f 6a 65 63 ..."Discover.projects.in.`projec
ef40 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 27 2e 0a 49 6e 76 6f 6b tile-project-search-path'..Invok
ef60 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c ed.automatically.when.`projectil
ef80 65 2d 6d 6f 64 65 27 20 69 73 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 e-mode'.is.enabled."...(interact
efa0 69 76 65 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 70 61 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2d ive)...(dolist.(path.projectile-
efc0 70 72 6f 6a 65 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 29 0a 20 20 20 20 28 69 66 20 28 63 6f project-search-path).....(if.(co
efe0 6e 73 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 nsp.path).........(projectile-di
f000 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 28 63 61 scover-projects-in-directory.(ca
f020 72 20 70 61 74 68 29 20 28 63 64 72 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 r.path).(cdr.path)).......(proje
f040 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 ctile-discover-projects-in-direc
f060 74 6f 72 79 20 70 61 74 68 20 31 29 29 29 29 0a 0a 0c 0a 28 64 65 66 75 6e 20 64 65 6c 65 74 65 tory.path.1))))....(defun.delete
f080 2d 66 69 6c 65 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 66 72 6f 6d 2d 63 61 63 -file-projectile-remove-from-cac
f0a0 68 65 20 28 66 69 6c 65 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 74 72 61 73 68 29 0a 20 he.(filename.&optional._trash)..
f0c0 20 28 69 66 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 .(if.(and.projectile-enable-cach
f0e0 69 6e 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 75 70 64 61 74 65 2d 63 61 63 68 65 ing.projectile-auto-update-cache
f100 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 29 0a 20 20 20 20 20 20 28 .(projectile-project-p)).......(
f120 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d let*.((project-root.(projectile-
f140 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 project-root))..............(tru
f160 65 2d 66 69 6c 65 6e 61 6d 65 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 66 69 6c 65 6e 61 e-filename.(file-truename.filena
f180 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 me))..............(relative-file
f1a0 6e 61 6d 65 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 74 72 75 65 2d 66 69 name.(file-relative-name.true-fi
f1c0 6c 65 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 lename.project-root))).........(
f1e0 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 72 65 6c if.(projectile-file-cached-p.rel
f200 61 74 69 76 65 2d 66 69 6c 65 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 ative-filename.project-root)....
f220 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 75 72 67 65 2d 66 69 6c 65 2d .........(projectile-purge-file-
f240 66 72 6f 6d 2d 63 61 63 68 65 20 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 from-cache.relative-filename))))
f260 29 0a 0a 0c 0a 3b 3b 3b 20 50 72 6f 6a 65 63 74 20 72 6f 6f 74 20 72 65 6c 61 74 65 64 20 75 74 )....;;;.Project.root.related.ut
f280 69 6c 69 74 69 65 73 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 65 6e 74 ilities.(defun.projectile-parent
f2a0 20 28 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 .(path)..."Return.the.parent.dir
f2c0 65 63 74 6f 72 79 20 6f 66 20 50 41 54 48 2e 0a 50 41 54 48 20 6d 61 79 20 62 65 20 61 20 66 69 ectory.of.PATH..PATH.may.be.a.fi
f2e0 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 70 61 le.or.directory.and.directory.pa
f300 74 68 73 20 6d 61 79 20 65 6e 64 20 77 69 74 68 20 61 20 73 6c 61 73 68 2e 22 0a 20 20 28 64 69 ths.may.end.with.a.slash."...(di
f320 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 rectory-file-name.(file-name-dir
f340 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 65 78 70 ectory.(directory-file-name.(exp
f360 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 and-file-name.path)))))..(defun.
f380 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c projectile-locate-dominating-fil
f3a0 65 20 28 66 69 6c 65 20 6e 61 6d 65 29 0a 20 20 22 4c 6f 6f 6b 20 75 70 20 74 68 65 20 64 69 72 e.(file.name)..."Look.up.the.dir
f3c0 65 63 74 6f 72 79 20 68 69 65 72 61 72 63 68 79 20 66 72 6f 6d 20 46 49 4c 45 20 66 6f 72 20 61 ectory.hierarchy.from.FILE.for.a
f3e0 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 41 4d 45 2e 0a 53 74 6f 70 .directory.containing.NAME..Stop
f400 20 61 74 20 74 68 65 20 66 69 72 73 74 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 63 .at.the.first.parent.directory.c
f420 6f 6e 74 61 69 6e 69 6e 67 20 61 20 66 69 6c 65 20 4e 41 4d 45 2c 0a 61 6e 64 20 72 65 74 75 72 ontaining.a.file.NAME,.and.retur
f440 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 n.the.directory...Return.nil.if.
f460 6e 6f 74 20 66 6f 75 6e 64 2e 0a 49 6e 73 74 65 61 64 20 6f 66 20 61 20 73 74 72 69 6e 67 2c 20 not.found..Instead.of.a.string,.
f480 4e 41 4d 45 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 70 72 65 64 69 63 61 74 65 20 74 61 6b NAME.can.also.be.a.predicate.tak
f4a0 69 6e 67 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 0a 5c 28 61 20 64 69 72 65 63 74 6f 72 79 29 20 ing.one.argument.\(a.directory).
f4c0 61 6e 64 20 72 65 74 75 72 6e 69 6e 67 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 20 69 66 and.returning.a.non-nil.value.if
f4e0 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 74 68 65 20 6f 6e 65 20 66 6f 72 0a 77 .that.directory.is.the.one.for.w
f500 68 69 63 68 20 77 65 27 72 65 20 6c 6f 6f 6b 69 6e 67 2e 22 0a 20 20 3b 3b 20 63 6f 70 69 65 64 hich.we're.looking."...;;.copied
f520 20 66 72 6f 6d 20 66 69 6c 65 73 2e 65 6c 20 28 73 74 72 69 70 70 65 64 20 63 6f 6d 6d 65 6e 74 .from.files.el.(stripped.comment
f540 73 29 20 65 6d 61 63 73 2d 32 34 20 62 7a 72 20 62 72 61 6e 63 68 20 32 30 31 34 2d 30 33 2d 32 s).emacs-24.bzr.branch.2014-03-2
f560 38 20 31 30 3a 32 30 0a 20 20 28 73 65 74 71 20 66 69 6c 65 20 28 61 62 62 72 65 76 69 61 74 65 8.10:20...(setq.file.(abbreviate
f580 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 -file-name.file))...(let.((root.
f5a0 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 74 72 79 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f nil).........try).....(while.(no
f5c0 74 20 28 6f 72 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 t.(or.root.....................(
f5e0 6e 75 6c 6c 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 null.file).....................(
f600 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 73 string-match.locate-dominating-s
f620 74 6f 70 2d 64 69 72 2d 72 65 67 65 78 70 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 top-dir-regexp.file))).......(se
f640 74 71 20 74 72 79 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 tq.try.(if.(stringp.name).......
f660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 ..............(projectile-file-e
f680 78 69 73 74 73 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 66 69 6c 65 2d xists-p.(projectile-expand-file-
f6a0 6e 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 name-wildcard.name.file)).......
f6c0 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6e 61 6d 65 20 66 69 6c 65 29 29 ............(funcall.name.file))
f6e0 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 74 72 79 20 28 73 65 74 71 20 72 6f 6f 74 20 66 69 ).......(cond.(try.(setq.root.fi
f700 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 6c 65 20 28 73 le)).............((equal.file.(s
f720 65 74 71 20 66 69 6c 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 etq.file.(file-name-directory...
f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
f760 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 29 ...(directory-file-name.file))))
f780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 20 6e 69 6c 29 29 29 29 ..............(setq.file.nil))))
f7a0 0a 20 20 20 20 28 61 6e 64 20 72 6f 6f 74 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 .....(and.root.(expand-file-name
f7c0 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 72 6f 6f 74 29 29 29 .(file-name-as-directory.root)))
f7e0 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f ))..(defvar-local.projectile-pro
f800 6a 65 63 74 2d 72 6f 6f 74 20 6e 69 6c 0a 20 20 22 44 65 66 69 6e 65 73 20 61 20 63 75 73 74 6f ject-root.nil..."Defines.a.custo
f820 6d 20 50 72 6f 6a 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 54 68 69 73 20 m.Projectile.project.root..This.
f840 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 20 66 69 6c 65 is.intended.to.be.used.as.a.file
f860 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 .local.variable.")..(defun.proje
f880 63 74 69 6c 65 2d 72 6f 6f 74 2d 6c 6f 63 61 6c 20 28 5f 64 69 72 29 0a 20 20 22 41 20 73 69 6d ctile-root-local.(_dir)..."A.sim
f8a0 70 6c 65 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 ple.wrapper.around.the.variable.
f8c0 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 27 2e 22 0a 20 20 70 72 `projectile-project-root'."...pr
f8e0 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 0a 28 64 65 66 75 6e 20 70 ojectile-project-root)..(defun.p
f900 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f 77 6e 20 28 64 69 72 20 26 6f 70 rojectile-root-top-down.(dir.&op
f920 74 69 6f 6e 61 6c 20 6c 69 73 74 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 61 20 70 72 6f 6a 65 tional.list)..."Identify.a.proje
f940 63 74 20 72 6f 6f 74 20 69 6e 20 44 49 52 20 62 79 20 74 6f 70 2d 64 6f 77 6e 20 73 65 61 72 63 ct.root.in.DIR.by.top-down.searc
f960 68 20 66 6f 72 20 66 69 6c 65 73 20 69 6e 20 4c 49 53 54 2e 0a 49 66 20 4c 49 53 54 20 69 73 20 h.for.files.in.LIST..If.LIST.is.
f980 6e 69 6c 2c 20 75 73 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f nil,.use.`projectile-project-roo
f9a0 74 2d 66 69 6c 65 73 27 20 69 6e 73 74 65 61 64 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 t-files'.instead..Return.the.fir
f9c0 73 74 20 28 74 6f 70 6d 6f 73 74 29 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f 72 79 20 6f st.(topmost).matched.directory.o
f9e0 72 20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 r.nil.if.not.found."...(projecti
fa00 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 0a 20 20 20 64 69 72 le-locate-dominating-file....dir
fa20 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d ....(lambda.(dir)......(cl-find-
fa40 69 66 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d if.(lambda.(f).(projectile-file-
fa60 65 78 69 73 74 73 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 66 69 6c 65 exists-p.(projectile-expand-file
fa80 2d 6e 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 66 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 -name-wildcard.f.dir))).........
faa0 20 20 20 20 20 20 20 20 20 28 6f 72 20 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f .........(or.list.projectile-pro
fac0 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f ject-root-files)))))..(defun.pro
fae0 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 6d 61 72 6b 65 64 20 28 64 69 72 29 0a 20 20 22 49 64 65 jectile-root-marked.(dir)..."Ide
fb00 6e 74 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 44 49 52 20 62 79 20 73 ntify.a.project.root.in.DIR.by.s
fb20 65 61 72 63 68 20 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d earch.for.`projectile-dirconfig-
fb40 66 69 6c 65 60 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 62 6f 74 74 6f file`."...(projectile-root-botto
fb60 6d 2d 75 70 20 64 69 72 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e m-up.dir.(list.projectile-dircon
fb80 66 69 67 2d 66 69 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 fig-file)))..(defun.projectile-r
fba0 6f 6f 74 2d 62 6f 74 74 6f 6d 2d 75 70 20 28 64 69 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 73 oot-bottom-up.(dir.&optional.lis
fbc0 74 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e t)..."Identify.a.project.root.in
fbe0 20 44 49 52 20 62 79 20 62 6f 74 74 6f 6d 2d 75 70 20 73 65 61 72 63 68 20 66 6f 72 20 66 69 6c .DIR.by.bottom-up.search.for.fil
fc00 65 73 20 69 6e 20 4c 49 53 54 2e 0a 49 66 20 4c 49 53 54 20 69 73 20 6e 69 6c 2c 20 75 73 65 20 es.in.LIST..If.LIST.is.nil,.use.
fc20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 62 `projectile-project-root-files-b
fc40 6f 74 74 6f 6d 2d 75 70 27 20 69 6e 73 74 65 61 64 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 66 69 ottom-up'.instead..Return.the.fi
fc60 72 73 74 20 28 62 6f 74 74 6f 6d 6d 6f 73 74 29 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f rst.(bottommost).matched.directo
fc80 72 79 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 0a 20 20 28 70 72 6f 6a ry.or.nil.if.not.found."...(proj
fca0 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 0a 20 20 ectile-locate-dominating-file...
fcc0 20 64 69 72 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 .dir....(lambda.(directory).....
fce0 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 .(let.((files.(mapcar.(lambda.(f
fd00 69 6c 65 29 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 69 72 65 ile).(expand-file-name.file.dire
fd20 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctory)).........................
fd40 20 20 28 6f 72 20 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f ..(or.list.projectile-project-ro
fd60 6f 74 2d 66 69 6c 65 73 2d 62 6f 74 74 6f 6d 2d 75 70 29 29 29 29 0a 20 20 20 20 20 20 20 28 63 ot-files-bottom-up))))........(c
fd80 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 61 6e 64 20 66 69 6c 65 20 l-some.(lambda.(file).(and.file.
fda0 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 29 20 66 69 6c 65 73 29 29 29 29 (file-exists-p.file))).files))))
fdc0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f )..(defun.projectile-root-top-do
fde0 77 6e 2d 72 65 63 75 72 72 69 6e 67 20 28 64 69 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 73 74 wn-recurring.(dir.&optional.list
fe00 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 )..."Identify.a.project.root.in.
fe20 44 49 52 20 62 79 20 72 65 63 75 72 72 69 6e 67 20 74 6f 70 2d 64 6f 77 6e 20 73 65 61 72 63 68 DIR.by.recurring.top-down.search
fe40 20 66 6f 72 20 66 69 6c 65 73 20 69 6e 20 4c 49 53 54 2e 0a 49 66 20 4c 49 53 54 20 69 73 20 6e .for.files.in.LIST..If.LIST.is.n
fe60 69 6c 2c 20 75 73 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 il,.use.`projectile-project-root
fe80 2d 66 69 6c 65 73 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 27 0a 69 6e 73 74 65 -files-top-down-recurring'.inste
fea0 61 64 2e 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 28 62 6f 74 74 6f 6d 6d 6f 73 74 ad...Return.the.last.(bottommost
fec0 29 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 74 68 65 0a 74 6f 70 6d 6f ).matched.directory.in.the.topmo
fee0 73 74 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f 72 69 st.sequence.of.matched.directori
ff00 65 73 2e 20 20 4e 69 6c 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d 65 0a es...Nil.otherwise."...(cl-some.
ff20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ...(lambda.(f)......(projectile-
ff40 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 0a 20 20 20 20 20 20 64 69 72 locate-dominating-file.......dir
ff60 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 20 20 28 61 6e .......(lambda.(dir).........(an
ff80 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 70 72 6f d.(projectile-file-exists-p.(pro
ffa0 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 2d 77 69 6c 64 63 61 72 jectile-expand-file-name-wildcar
ffc0 64 20 66 20 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 d.f.dir))..............(or.(stri
ffe0 6e 67 2d 6d 61 74 63 68 20 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 73 74 6f 70 2d ng-match.locate-dominating-stop-
10000 64 69 72 2d 72 65 67 65 78 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 65 6e 74 20 64 69 dir-regexp.(projectile-parent.di
10020 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 72 6f 6a 65 r))..................(not.(proje
10040 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ctile-file-exists-p.(projectile-
10060 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 66 20 28 70 72 6f expand-file-name-wildcard.f.(pro
10080 6a 65 63 74 69 6c 65 2d 70 61 72 65 6e 74 20 64 69 72 29 29 29 29 29 29 29 29 29 0a 20 20 20 28 jectile-parent.dir)))))))))....(
100a0 6f 72 20 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d or.list.projectile-project-root-
100c0 66 69 6c 65 73 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 29 29 29 0a 0a 28 64 65 files-top-down-recurring)))..(de
100e0 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 26 6f 70 fun.projectile-project-root.(&op
10100 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 73 20 74 68 65 20 72 6f 6f tional.dir)..."Retrieves.the.roo
10120 74 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 20 69 66 20 61 76 61 69 t.directory.of.a.project.if.avai
10140 6c 61 62 6c 65 2e 0a 49 66 20 44 49 52 20 69 73 20 6e 6f 74 20 73 75 70 70 6c 69 65 64 20 69 74 lable..If.DIR.is.not.supplied.it
10160 73 20 73 65 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 62 s.set.to.the.current.directory.b
10180 79 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 6f 72 20 64 69 72 y.default."...(let.((dir.(or.dir
101a0 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 3b 3b 20 42 61 63 .default-directory))).....;;.Bac
101c0 6b 20 6f 75 74 20 6f 66 20 61 6e 79 20 61 72 63 68 69 76 65 73 2c 20 74 68 65 20 70 72 6f 6a 65 k.out.of.any.archives,.the.proje
101e0 63 74 20 77 69 6c 6c 20 6c 69 76 65 20 6f 6e 20 74 68 65 20 6f 75 74 73 69 64 65 20 61 6e 64 0a ct.will.live.on.the.outside.and.
10200 20 20 20 20 3b 3b 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 6d 20 69 73 20 73 6c 6f 77 2e 0a 20 ....;;.searching.them.is.slow...
10220 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 74 72 61 6d 70 2d 61 72 ...(when.(and.(fboundp.'tramp-ar
10240 63 68 69 76 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 61 72 63 68 69 76 65 29 0a 20 20 20 20 20 20 20 chive-file-name-archive)........
10260 20 20 20 20 20 20 20 20 28 74 72 61 6d 70 2d 61 72 63 68 69 76 65 2d 66 69 6c 65 2d 6e 61 6d 65 ........(tramp-archive-file-name
10280 2d 70 20 64 69 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 20 28 66 69 6c 65 2d 6e -p.dir)).......(setq.dir.(file-n
102a0 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 28 74 72 61 6d 70 2d 61 72 63 68 69 76 65 2d 66 69 6c ame-directory.(tramp-archive-fil
102c0 65 2d 6e 61 6d 65 2d 61 72 63 68 69 76 65 20 64 69 72 29 29 29 29 0a 20 20 20 20 3b 3b 20 74 68 e-name-archive.dir)))).....;;.th
102e0 65 20 63 61 63 68 65 64 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 27 6e 6f 6e 65 20 69 6e 20 e.cached.value.will.be.'none.in.
10300 74 68 65 20 63 61 73 65 20 6f 66 20 6e 6f 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 28 74 68 69 the.case.of.no.project.root.(thi
10320 73 20 69 73 20 74 6f 0a 20 20 20 20 3b 3b 20 65 6e 73 75 72 65 20 69 74 20 69 73 20 6e 6f 74 20 s.is.to.....;;.ensure.it.is.not.
10340 72 65 65 76 61 6c 75 61 74 65 64 20 65 61 63 68 20 74 69 6d 65 20 77 68 65 6e 20 6e 6f 74 20 69 reevaluated.each.time.when.not.i
10360 6e 73 69 64 65 20 61 20 70 72 6f 6a 65 63 74 29 20 73 6f 20 75 73 65 0a 20 20 20 20 3b 3b 20 63 nside.a.project).so.use.....;;.c
10380 6c 2d 73 75 62 73 74 20 74 6f 20 72 65 70 6c 61 63 65 20 74 68 69 73 20 27 6e 6f 6e 65 20 76 61 l-subst.to.replace.this.'none.va
103a0 6c 75 65 20 77 69 74 68 20 6e 69 6c 20 73 6f 20 61 20 6e 69 6c 20 76 61 6c 75 65 20 69 73 20 75 lue.with.nil.so.a.nil.value.is.u
103c0 73 65 64 0a 20 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 0a 20 20 20 20 28 63 6c 2d 73 75 62 73 74 sed.....;;.instead.....(cl-subst
103e0 20 6e 69 6c 20 27 6e 6f 6e 65 0a 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 3b 3b 20 69 .nil.'none.......(or........;;.i
10400 66 20 77 65 27 76 65 20 61 6c 72 65 61 64 79 20 66 61 69 6c 65 64 20 74 6f 20 66 69 6e 64 20 61 f.we've.already.failed.to.find.a
10420 20 70 72 6f 6a 65 63 74 20 64 69 72 20 66 6f 72 20 74 68 69 73 0a 20 20 20 20 20 20 20 3b 3b 20 .project.dir.for.this........;;.
10440 64 69 72 2c 20 61 6e 64 20 63 61 63 68 65 64 20 74 68 61 74 20 66 61 69 6c 75 72 65 2c 20 64 6f dir,.and.cached.that.failure,.do
10460 6e 27 74 20 72 65 63 6f 6d 70 75 74 65 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 61 63 n't.recompute........(let*.((cac
10480 68 65 2d 6b 65 79 20 28 66 6f 72 6d 61 74 20 22 70 72 6f 6a 65 63 74 69 6c 65 72 6f 6f 74 6c 65 he-key.(format."projectilerootle
104a0 73 73 2d 25 73 22 20 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 ss-%s".dir))...............(cach
104c0 65 2d 76 61 6c 75 65 20 28 67 65 74 68 61 73 68 20 63 61 63 68 65 2d 6b 65 79 20 70 72 6f 6a 65 e-value.(gethash.cache-key.proje
104e0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 ctile-project-root-cache))).....
10500 20 20 20 20 20 63 61 63 68 65 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 .....cache-value)........;;.if.t
10520 68 65 20 66 69 6c 65 20 69 73 6e 27 74 20 6c 6f 63 61 6c 2c 20 61 6e 64 20 77 65 27 72 65 20 6e he.file.isn't.local,.and.we're.n
10540 6f 74 20 63 6f 6e 6e 65 63 74 65 64 2c 20 64 6f 6e 27 74 20 74 72 79 20 74 6f 0a 20 20 20 20 20 ot.connected,.don't.try.to......
10560 20 20 3b 3b 20 66 69 6e 64 20 61 20 72 6f 6f 74 20 6e 6f 77 20 6e 6f 77 2c 20 62 75 74 20 64 6f ..;;.find.a.root.now.now,.but.do
10580 6e 27 74 20 63 61 63 68 65 20 66 61 69 6c 75 72 65 2c 20 61 73 20 77 65 20 6d 69 67 68 74 0a 20 n't.cache.failure,.as.we.might..
105a0 20 20 20 20 20 20 3b 3b 20 72 65 2d 63 6f 6e 6e 65 63 74 2e 20 20 54 68 65 20 60 69 73 2d 6c 6f ......;;.re-connect...The.`is-lo
105c0 63 61 6c 27 20 61 6e 64 20 60 69 73 2d 63 6f 6e 6e 65 63 74 65 64 27 20 76 61 72 69 61 62 6c 65 cal'.and.`is-connected'.variable
105e0 73 20 61 72 65 0a 20 20 20 20 20 20 20 3b 3b 20 75 73 65 64 20 74 6f 20 66 69 78 20 74 68 65 20 s.are........;;.used.to.fix.the.
10600 62 65 68 61 76 69 6f 72 20 77 68 65 72 65 20 45 6d 61 63 73 20 68 61 6e 67 73 20 62 65 63 61 75 behavior.where.Emacs.hangs.becau
10620 73 65 20 6f 66 0a 20 20 20 20 20 20 20 3b 3b 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 68 65 6e 20 se.of........;;.Projectile.when.
10640 79 6f 75 20 6f 70 65 6e 20 61 20 66 69 6c 65 20 6f 76 65 72 20 54 52 41 4d 50 2e 20 49 74 20 62 you.open.a.file.over.TRAMP..It.b
10660 61 73 69 63 61 6c 6c 79 0a 20 20 20 20 20 20 20 3b 3b 20 70 72 65 76 65 6e 74 73 20 50 72 6f 6a asically........;;.prevents.Proj
10680 65 63 74 69 6c 65 20 66 72 6f 6d 20 74 72 79 69 6e 67 20 74 6f 20 66 69 6e 64 20 69 6e 66 6f 72 ectile.from.trying.to.find.infor
106a0 6d 61 74 69 6f 6e 20 61 62 6f 75 74 0a 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 65 73 20 66 6f 72 mation.about........;;.files.for
106c0 20 77 68 69 63 68 20 69 74 27 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 .which.it's.not.possible.to.get.
106e0 74 68 61 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 3b 3b 20 72 69 67 68 74 that.information........;;.right
10700 20 6e 6f 77 2e 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 73 2d 6c 6f 63 61 6c 20 28 6e 6f .now.........(let.((is-local.(no
10720 74 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 64 69 72 29 29 29 20 20 20 20 20 20 3b 3b 20 t.(file-remote-p.dir)))......;;.
10740 60 74 72 75 65 27 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 6c 6f 63 61 6c 0a 20 20 20 20 `true'.if.the.file.is.local.....
10760 20 20 20 20 20 20 20 20 20 28 69 73 2d 63 6f 6e 6e 65 63 74 65 64 20 28 66 69 6c 65 2d 72 65 6d .........(is-connected.(file-rem
10780 6f 74 65 2d 70 20 64 69 72 20 6e 69 6c 20 74 29 29 29 20 3b 3b 20 60 74 72 75 65 27 20 69 66 20 ote-p.dir.nil.t))).;;.`true'.if.
107a0 74 68 65 20 66 69 6c 65 20 69 73 20 72 65 6d 6f 74 65 20 41 4e 44 20 77 65 20 61 72 65 20 63 6f the.file.is.remote.AND.we.are.co
107c0 6e 6e 65 63 74 65 64 20 74 6f 20 74 68 65 20 72 65 6d 6f 74 65 0a 20 20 20 20 20 20 20 20 20 28 nnected.to.the.remote..........(
107e0 75 6e 6c 65 73 73 20 28 6f 72 20 69 73 2d 6c 6f 63 61 6c 20 69 73 2d 63 6f 6e 6e 65 63 74 65 64 unless.(or.is-local.is-connected
10800 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 6e 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 69 )............'none))........;;.i
10820 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 6c 6f 63 61 6c 20 6f 72 20 77 65 27 72 65 20 63 6f 6e f.the.file.is.local.or.we're.con
10840 6e 65 63 74 65 64 20 74 6f 20 69 74 20 76 69 61 20 54 52 41 4d 50 2c 20 72 75 6e 0a 20 20 20 20 nected.to.it.via.TRAMP,.run.....
10860 20 20 20 3b 3b 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 ...;;.through.the.project.root.f
10880 75 6e 63 74 69 6f 6e 73 20 75 6e 74 69 6c 20 77 65 20 66 69 6e 64 20 61 20 70 72 6f 6a 65 63 74 unctions.until.we.find.a.project
108a0 20 64 69 72 0a 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 28 6c 61 .dir........(cl-some.........(la
108c0 6d 62 64 61 20 28 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 61 mbda.(func)...........(let*.((ca
108e0 63 68 65 2d 6b 65 79 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 20 66 75 6e 63 20 64 69 72 che-key.(format."%s-%s".func.dir
10900 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 65 2d 76 61 6c 75 65 ))..................(cache-value
10920 20 28 67 65 74 68 61 73 68 20 63 61 63 68 65 2d 6b 65 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 .(gethash.cache-key.projectile-p
10940 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 roject-root-cache)))............
10960 20 28 69 66 20 28 61 6e 64 20 63 61 63 68 65 2d 76 61 6c 75 65 20 28 66 69 6c 65 2d 65 78 69 73 .(if.(and.cache-value.(file-exis
10980 74 73 2d 70 20 63 61 63 68 65 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ts-p.cache-value))..............
109a0 20 20 20 63 61 63 68 65 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 ...cache-value...............(le
109c0 74 20 28 28 76 61 6c 75 65 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 28 66 69 6c 65 2d 74 72 t.((value.(funcall.func.(file-tr
109e0 75 65 6e 61 6d 65 20 64 69 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 uename.dir)))).................(
10a00 70 75 74 68 61 73 68 20 63 61 63 68 65 2d 6b 65 79 20 76 61 6c 75 65 20 70 72 6f 6a 65 63 74 69 puthash.cache-key.value.projecti
10a20 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 le-project-root-cache)..........
10a40 20 20 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 .......value)))).........project
10a60 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 ile-project-root-functions).....
10a80 20 20 20 3b 3b 20 69 66 20 77 65 20 67 65 74 20 68 65 72 65 2c 20 77 65 20 68 61 76 65 20 66 61 ...;;.if.we.get.here,.we.have.fa
10aa0 69 6c 65 64 20 74 6f 20 66 69 6e 64 20 61 20 72 6f 6f 74 20 62 79 20 61 6c 6c 0a 20 20 20 20 20 iled.to.find.a.root.by.all......
10ac0 20 20 3b 3b 20 63 6f 6e 76 65 6e 74 69 6f 6e 61 6c 20 6d 65 61 6e 73 2c 20 61 6e 64 20 77 65 20 ..;;.conventional.means,.and.we.
10ae0 61 73 73 75 6d 65 20 74 68 65 20 66 61 69 6c 75 72 65 20 69 73 6e 27 74 20 74 72 61 6e 73 69 65 assume.the.failure.isn't.transie
10b00 6e 74 0a 20 20 20 20 20 20 20 3b 3b 20 2f 20 6e 65 74 77 6f 72 6b 20 72 65 6c 61 74 65 64 2c 20 nt........;;./.network.related,.
10b20 73 6f 20 63 61 63 68 65 20 74 68 65 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 28 6c 65 74 so.cache.the.failure........(let
10b40 20 28 28 63 61 63 68 65 2d 6b 65 79 20 28 66 6f 72 6d 61 74 20 22 70 72 6f 6a 65 63 74 69 6c 65 .((cache-key.(format."projectile
10b60 72 6f 6f 74 6c 65 73 73 2d 25 73 22 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 rootless-%s".dir)))..........(pu
10b80 74 68 61 73 68 20 63 61 63 68 65 2d 6b 65 79 20 27 6e 6f 6e 65 20 70 72 6f 6a 65 63 74 69 6c 65 thash.cache-key.'none.projectile
10ba0 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 27 6e -project-root-cache)..........'n
10bc0 6f 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 73 75 one)))))..(defun.projectile-ensu
10be0 72 65 2d 70 72 6f 6a 65 63 74 20 28 64 69 72 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 61 74 20 re-project.(dir)..."Ensure.that.
10c00 44 49 52 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 55 73 65 66 75 6c 20 66 6f 72 20 63 6f 6d 6d 61 DIR.is.non-nil..Useful.for.comma
10c20 6e 64 73 20 74 68 61 74 20 65 78 70 65 63 74 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 nds.that.expect.the.presence.of.
10c40 61 20 70 72 6f 6a 65 63 74 2e 0a 43 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 60 70 72 6f 6a 65 63 a.project..Controlled.by.`projec
10c60 74 69 6c 65 2d 72 65 71 75 69 72 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 27 2e 0a 0a 53 65 65 tile-require-project-root'...See
10c80 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 27 2e .also.`projectile-acquire-root'.
10ca0 22 0a 20 20 28 69 66 20 64 69 72 0a 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 28 63 6f 6e 64 0a "...(if.dir.......dir.....(cond.
10cc0 20 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 71 75 69 72 65 2d 70 72 6f .....((eq.projectile-require-pro
10ce0 6a 65 63 74 2d 72 6f 6f 74 20 27 70 72 6f 6d 70 74 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 ject-root.'prompt).(projectile-c
10d00 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ompleting-read..................
10d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10d40 20 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 3a 20 22 20 70 72 6f 6a 65 63 74 ..."Switch.to.project:.".project
10d60 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 ile-known-projects))......(proje
10d80 63 74 69 6c 65 2d 72 65 71 75 69 72 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 65 72 72 6f ctile-require-project-root.(erro
10da0 72 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 63 61 6e 6e 6f 74 20 66 69 6e 64 20 61 20 70 72 6f 6a r."Projectile.cannot.find.a.proj
10dc0 65 63 74 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 20 25 73 22 20 64 65 66 61 75 6c 74 2d 64 69 ect.definition.in.%s".default-di
10de0 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 28 74 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 rectory))......(t.default-direct
10e00 6f 72 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 ory))))..(defun.projectile-acqui
10e20 72 65 2d 72 6f 6f 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 46 69 6e 64 20 re-root.(&optional.dir)..."Find.
10e40 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2c 20 61 6e 64 20 70 72 the.current.project.root,.and.pr
10e60 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 69 74 20 69 66 20 74 68 61 74 20 66 61 ompts.the.user.for.it.if.that.fa
10e80 69 6c 73 2e 0a 50 72 6f 76 69 64 65 73 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 69 64 69 6f 6d 20 28 ils..Provides.the.common.idiom.(
10ea0 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 projectile-ensure-project.(proje
10ec0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 2e 0a 53 74 61 72 74 73 20 74 68 65 ctile-project-root))..Starts.the
10ee0 20 73 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 69 74 68 20 44 49 52 .search.for.the.project.with.DIR
10f00 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 20 ."...(projectile-ensure-project.
10f20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 29 29 0a (projectile-project-root.dir))).
10f40 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 20 28 26 6f .(defun.projectile-project-p.(&o
10f60 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 44 49 52 20 69 73 20 ptional.dir)..."Check.if.DIR.is.
10f80 61 20 70 72 6f 6a 65 63 74 2e 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 a.project..Defaults.to.the.curre
10fa0 6e 74 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 0a 65 78 70 nt.directory.if.not.provided.exp
10fc0 6c 69 63 69 74 6c 79 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d licitly."...(projectile-project-
10fe0 72 6f 6f 74 20 28 6f 72 20 64 69 72 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 root.(or.dir.default-directory))
11000 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 70 72 6f )..(defun.projectile-default-pro
11020 6a 65 63 74 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 44 65 66 61 ject-name.(project-root)..."Defa
11040 75 6c 74 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 ult.function.used.to.create.the.
11060 70 72 6f 6a 65 63 74 20 6e 61 6d 65 2e 0a 54 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 69 project.name..The.project.name.i
11080 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 50 52 4f 4a 45 43 54 2d s.based.on.the.value.of.PROJECT-
110a0 52 4f 4f 54 2e 22 0a 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 ROOT."...(file-name-nondirectory
110c0 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 72 6f .(directory-file-name.project-ro
110e0 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 ot)))..(defun.projectile-project
11100 2d 6e 61 6d 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a 20 20 22 52 65 74 -name.(&optional.project)..."Ret
11120 75 72 6e 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 2e 0a 49 66 20 50 52 4f 4a 45 43 54 20 69 73 20 urn.project.name..If.PROJECT.is.
11140 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e not.specified.acts.on.the.curren
11160 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f t.project."...(or.projectile-pro
11180 6a 65 63 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 ject-name.......(let.((project-r
111a0 6f 6f 74 20 28 6f 72 20 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a oot.(or.project.(projectile-proj
111c0 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 ect-root)))).........(if.project
111e0 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 -root.............(funcall.proje
11200 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a ctile-project-name-function.proj
11220 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 22 2d 22 29 29 29 29 0a 0a 0c 0a 3b ect-root)..........."-"))))....;
11240 3b 3b 20 50 72 6f 6a 65 63 74 20 69 6e 64 65 78 69 6e 67 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 ;;.Project.indexing.(defun.proje
11260 63 74 69 6c 65 2d 67 65 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 ctile-get-project-directories.(p
11280 72 6f 6a 65 63 74 2d 64 69 72 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 50 roject-dir)..."Get.the.list.of.P
112a0 52 4f 4a 45 43 54 2d 44 49 52 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 61 72 65 20 ROJECT-DIR.directories.that.are.
112c0 6f 66 20 69 6e 74 65 72 65 73 74 20 74 6f 20 74 68 65 20 75 73 65 72 2e 22 0a 20 20 28 6d 61 70 of.interest.to.the.user."...(map
112e0 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 75 62 64 69 72 29 20 28 63 6f 6e 63 61 74 20 70 72 6f car.(lambda.(subdir).(concat.pro
11300 6a 65 63 74 2d 64 69 72 20 73 75 62 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 ject-dir.subdir))...........(or.
11320 28 6e 74 68 20 30 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 63 6f 6e 66 (nth.0.(projectile-parse-dirconf
11340 69 67 2d 66 69 6c 65 29 29 20 27 28 22 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 ig-file)).'(""))))..(defun.proje
11360 63 74 69 6c 65 2d 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 ctile--directory-p.(directory)..
11380 20 22 43 68 65 63 6b 73 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 69 73 20 61 20 73 74 72 69 6e ."Checks.if.DIRECTORY.is.a.strin
113a0 67 20 64 65 73 69 67 6e 61 74 69 6e 67 20 61 20 76 61 6c 69 64 20 64 69 72 65 63 74 6f 72 79 2e g.designating.a.valid.directory.
113c0 22 0a 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 64 69 72 65 63 74 6f 72 79 29 20 28 66 69 "...(and.(stringp.directory).(fi
113e0 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 64 65 le-directory-p.directory)))..(de
11400 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 20 28 64 69 72 65 63 74 fun.projectile-dir-files.(direct
11420 6f 72 79 29 0a 20 20 22 4c 69 73 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 44 49 52 45 43 54 ory)..."List.the.files.in.DIRECT
11440 4f 52 59 20 61 6e 64 20 69 6e 20 69 74 73 20 73 75 62 2d 64 69 72 65 63 74 6f 72 69 65 73 2e 0a ORY.and.in.its.sub-directories..
11460 46 69 6c 65 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 61 73 20 72 65 6c 61 74 69 76 65 20 70 Files.are.returned.as.relative.p
11480 61 74 68 73 20 74 6f 20 44 49 52 45 43 54 4f 52 59 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 aths.to.DIRECTORY."...(unless.(p
114a0 72 6f 6a 65 63 74 69 6c 65 2d 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 rojectile--directory-p.directory
114c0 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 44 69 72 65 63 74 6f 72 79 20 25 53 20 64 6f 65 73 20 ).....(error."Directory.%S.does.
114e0 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 3b 3b 20 63 68 65 63 not.exist".directory))...;;.chec
11500 6b 20 66 6f 72 20 61 20 63 61 63 68 65 20 68 69 74 20 66 69 72 73 74 20 69 66 20 63 61 63 68 69 k.for.a.cache.hit.first.if.cachi
11520 6e 67 20 69 73 20 65 6e 61 62 6c 65 64 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 2d 6c 69 73 ng.is.enabled...(let.((files-lis
11540 74 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 t.(and.projectile-enable-caching
11560 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 28 67 65 74 68 61 ..........................(getha
11580 73 68 20 64 69 72 65 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 sh.directory.projectile-projects
115a0 2d 63 61 63 68 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 63 61 63 68 65 20 64 69 73 61 62 6c 65 64 -cache)))).....;;.cache.disabled
115c0 20 6f 72 20 63 61 63 68 65 20 6d 69 73 73 0a 20 20 20 20 28 6f 72 20 66 69 6c 65 73 2d 6c 69 73 .or.cache.miss.....(or.files-lis
115e0 74 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 t.........(let.((vcs.(projectile
11600 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 -project-vcs.directory))).......
11620 20 20 20 20 28 70 63 61 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d ....(pcase.projectile-indexing-m
11640 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 61 74 69 76 65 20 28 70 72 6f 6a ethod.............('native.(proj
11660 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 2d 6e 61 74 69 76 65 20 64 69 72 65 63 74 6f 72 ectile-dir-files-native.director
11680 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 20 65 78 74 65 72 6e 61 6c 20 y)).............;;.use.external.
116a0 74 6f 6f 6c 73 20 74 6f 20 67 65 74 20 74 68 65 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 0a 20 tools.to.get.the.project.files..
116c0 20 20 20 20 20 20 20 20 20 20 20 28 27 68 79 62 72 69 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ...........('hybrid.(projectile-
116e0 61 64 6a 75 73 74 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 20 76 63 73 20 28 70 72 6f 6a adjust-files.directory.vcs.(proj
11700 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 2d 61 6c 69 65 6e 20 64 69 72 65 63 74 6f 72 79 ectile-dir-files-alien.directory
11720 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 61 6c 69 65 6e 20 28 70 72 6f 6a 65 63 74 ))).............('alien.(project
11740 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 2d 61 6c 69 65 6e 20 64 69 72 65 63 74 6f 72 79 29 29 0a ile-dir-files-alien.directory)).
11760 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 55 6e 73 75 ............(_.(user-error."Unsu
11780 70 70 6f 72 74 65 64 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 60 25 53 27 22 20 70 72 pported.indexing.method.`%S'".pr
117a0 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 29 29 29 29 29 29 29 0a ojectile-indexing-method))))))).
117c0 0a 3b 3b 3b 20 4e 61 74 69 76 65 20 50 72 6f 6a 65 63 74 20 49 6e 64 65 78 69 6e 67 0a 3b 3b 0a .;;;.Native.Project.Indexing.;;.
117e0 3b 3b 20 54 68 69 73 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 ;;.This.corresponds.to.`projecti
11800 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 20 62 65 69 6e 67 20 73 65 74 20 74 6f le-indexing-method'.being.set.to
11820 20 6e 61 74 69 76 65 2e 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 .native..(defun.projectile-dir-f
11840 69 6c 65 73 2d 6e 61 74 69 76 65 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 47 65 74 20 74 iles-native.(directory)..."Get.t
11860 68 65 20 66 69 6c 65 73 20 66 6f 72 20 52 4f 4f 54 20 75 6e 64 65 72 20 44 49 52 45 43 54 4f 52 he.files.for.ROOT.under.DIRECTOR
11880 59 20 75 73 69 6e 67 20 6a 75 73 74 20 45 6d 61 63 73 20 4c 69 73 70 2e 22 0a 20 20 28 6c 65 74 Y.using.just.Emacs.Lisp."...(let
118a0 20 28 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 28 6d .((progress-reporter..........(m
118c0 61 6b 65 2d 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 ake-progress-reporter...........
118e0 28 66 6f 72 6d 61 74 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 69 6e 64 65 78 69 6e 67 20 (format."Projectile.is.indexing.
11900 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a %s"...................(propertiz
11920 65 20 64 69 72 65 63 74 6f 72 79 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 e.directory.'face.'font-lock-key
11940 77 6f 72 64 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 6e 65 65 64 20 74 68 word-face))))).....;;.we.need.th
11960 65 20 66 69 6c 65 73 20 77 69 74 68 20 70 61 74 68 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 e.files.with.paths.relative.to.t
11980 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d he.project.root.....(mapcar.(lam
119a0 62 64 61 20 28 66 69 6c 65 29 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 bda.(file).(file-relative-name.f
119c0 69 6c 65 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f ile.directory)).............(pro
119e0 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 jectile-index-directory.director
11a00 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 74 65 72 69 6e 67 2d 70 61 74 74 65 72 6e 73 y.(projectile-filtering-patterns
11a20 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 )...............................
11a40 20 20 20 20 20 20 20 20 20 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 29 29 0a ..........progress-reporter)))).
11a60 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 2d 64 69 72 65 63 74 6f .(defun.projectile-index-directo
11a80 72 79 20 28 64 69 72 65 63 74 6f 72 79 20 70 61 74 74 65 72 6e 73 20 70 72 6f 67 72 65 73 73 2d ry.(directory.patterns.progress-
11aa0 72 65 70 6f 72 74 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 reporter.&optional.ignored-files
11ac0 20 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 .ignored-directories.globally-ig
11ae0 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 0a 20 20 22 49 6e 64 65 78 20 44 49 52 45 nored-directories)..."Index.DIRE
11b00 43 54 4f 52 59 20 74 61 6b 69 6e 67 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 20 50 41 54 54 45 52 CTORY.taking.into.account.PATTER
11b20 4e 53 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 69 74 73 65 6c 66 20 72 NS...The.function.calls.itself.r
11b40 65 63 75 72 73 69 76 65 6c 79 20 75 6e 74 69 6c 20 61 6c 6c 20 73 75 62 2d 64 69 72 65 63 74 6f ecursively.until.all.sub-directo
11b60 72 69 65 73 0a 68 61 76 65 20 62 65 65 6e 20 69 6e 64 65 78 65 64 2e 20 20 54 68 65 20 50 52 4f ries.have.been.indexed...The.PRO
11b80 47 52 45 53 53 2d 52 45 50 4f 52 54 45 52 20 69 73 20 75 70 64 61 74 65 64 20 77 68 69 6c 65 20 GRESS-REPORTER.is.updated.while.
11ba0 74 68 65 0a 66 75 6e 63 74 69 6f 6e 20 69 73 20 65 78 65 63 75 74 69 6e 67 2e 20 20 54 68 65 20 the.function.is.executing...The.
11bc0 6c 69 73 74 20 6f 66 20 49 47 4e 4f 52 45 44 2d 46 49 4c 45 53 20 61 6e 64 0a 49 47 4e 4f 52 45 list.of.IGNORED-FILES.and.IGNORE
11be0 44 2d 44 49 52 45 43 54 4f 52 49 45 53 20 6d 61 79 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 62 65 20 D-DIRECTORIES.may.optionally.be.
11c00 70 72 6f 76 69 64 65 64 2e 22 0a 20 20 3b 3b 20 77 65 20 63 6f 6d 70 75 74 65 20 74 68 65 20 69 provided."...;;.we.compute.the.i
11c20 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 6c gnored.files.and.directories.onl
11c40 79 20 6f 6e 63 65 20 61 6e 64 20 74 68 65 6e 20 77 65 20 72 65 75 73 65 20 74 68 65 0a 20 20 3b y.once.and.then.we.reuse.the...;
11c60 3b 20 70 72 65 2d 63 6f 6d 70 75 74 65 64 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 73 75 62 ;.pre-computed.values.in.the.sub
11c80 73 65 71 75 65 6e 74 20 72 65 63 75 72 73 69 76 65 20 69 6e 76 6f 63 61 74 69 6f 6e 73 20 6f 66 sequent.recursive.invocations.of
11ca0 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 28 6c 65 74 20 28 28 69 67 6e 6f 72 65 64 2d 66 .the.function...(let.((ignored-f
11cc0 69 6c 65 73 20 28 6f 72 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 iles.(or.ignored-files.(projecti
11ce0 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 67 6e le-ignored-files))).........(ign
11d00 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 6f 72 20 69 67 6e 6f 72 65 64 2d 64 69 72 ored-directories.(or.ignored-dir
11d20 65 63 74 6f 72 69 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 ectories.(projectile-ignored-dir
11d40 65 63 74 6f 72 69 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 6c 79 2d 69 67 ectories))).........(globally-ig
11d60 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 6f 72 20 67 6c 6f 62 61 6c 6c 79 2d 69 nored-directories.(or.globally-i
11d80 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 gnored-directories.(projectile-g
11da0 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 73 29 lobally-ignored-directory-names)
11dc0 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 ))).....(apply.#'append.........
11de0 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 ...(mapcar.............(lambda.(
11e00 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 66 20 f)...............(let.((local-f.
11e20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f (file-name-nondirectory.(directo
11e40 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ry-file-name.f))))..............
11e60 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 61 6e 64 20 70 61 74 74 65 72 6e 73 20 28 70 72 ...(unless.(or.(and.patterns.(pr
11e80 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 72 65 6c 2d 70 20 66 20 64 69 72 65 63 74 6f ojectile-ignored-rel-p.f.directo
11ea0 72 79 20 70 61 74 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ry.patterns))...................
11ec0 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 6c 6f 63 61 6c 2d 66 20 27 28 22 2e 22 20 ..........(member.local-f.'(".".
11ee0 22 2e 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 72 "..")))...................(progr
11f00 65 73 73 2d 72 65 70 6f 72 74 65 72 2d 75 70 64 61 74 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 ess-reporter-update.progress-rep
11f20 6f 72 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 orter)...................(if.(fi
11f40 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-directory-p.f)...............
11f60 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f ........(unless.(projectile-igno
11f80 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 red-directory-p.................
11fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 ...............(file-name-as-dir
11fc0 65 63 74 6f 72 79 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ectory.f).......................
11fe0 20 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 .........ignored-directories....
12000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 ............................loca
12020 6c 2d 66 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 l-f.............................
12040 20 20 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 ...globally-ignored-directories)
12060 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 28 70 72 6f 6a 65 63 .........................(projec
12080 74 69 6c 65 2d 69 6e 64 65 78 2d 64 69 72 65 63 74 6f 72 79 20 66 20 70 61 74 74 65 72 6e 73 20 tile-index-directory.f.patterns.
120a0 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 progress-reporter.ignored-files.
120c0 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e ignored-directories.globally-ign
120e0 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ored-directories))..............
12100 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 .......(unless.(projectile-ignor
12120 65 64 2d 66 69 6c 65 2d 70 20 66 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 ed-file-p.f.ignored-files)......
12140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 29 29 29 29 29 29 0a 20 .................(list.f))))))..
12160 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 65 ...........(directory-files.dire
12180 63 74 6f 72 79 20 74 29 29 29 29 29 0a 0a 3b 3b 3b 20 41 6c 69 65 6e 20 50 72 6f 6a 65 63 74 20 ctory.t)))))..;;;.Alien.Project.
121a0 49 6e 64 65 78 69 6e 67 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 Indexing.;;.;;.This.corresponds.
121c0 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 27 20 to.`projectile-indexing-method'.
121e0 62 65 69 6e 67 20 73 65 74 20 74 6f 20 68 79 62 72 69 64 20 6f 72 20 61 6c 69 65 6e 2e 0a 3b 3b being.set.to.hybrid.or.alien..;;
12200 20 54 68 65 20 6f 6e 6c 79 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 .The.only.difference.between.the
12220 20 74 77 6f 20 6d 65 74 68 6f 64 73 20 69 73 20 74 68 61 74 20 61 6c 69 65 6e 20 64 6f 65 73 6e .two.methods.is.that.alien.doesn
12240 27 74 20 64 6f 0a 3b 3b 20 61 6e 79 20 70 6f 73 74 2d 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 't.do.;;.any.post-processing.of.
12260 74 68 65 20 66 69 6c 65 73 20 6f 62 74 61 69 6e 65 64 20 76 69 61 20 74 68 65 20 65 78 74 65 72 the.files.obtained.via.the.exter
12280 6e 61 6c 20 63 6f 6d 6d 61 6e 64 2e 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 nal.command..(defun.projectile-d
122a0 69 72 2d 66 69 6c 65 73 2d 61 6c 69 65 6e 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 47 65 ir-files-alien.(directory)..."Ge
122c0 74 20 74 68 65 20 66 69 6c 65 73 20 66 6f 72 20 44 49 52 45 43 54 4f 52 59 20 75 73 69 6e 67 20 t.the.files.for.DIRECTORY.using.
122e0 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 63 73 20 28 70 external.tools."...(let.((vcs.(p
12300 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 64 69 72 65 63 74 6f 72 79 29 rojectile-project-vcs.directory)
12320 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 76 63 73 20 27 67 69 74 29 )).....(cond......((eq.vcs.'git)
12340 0a 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d .......(nconc.(projectile-files-
12360 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 via-ext-command.directory.(proje
12380 63 74 69 6c 65 2d 67 65 74 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 0a 20 20 20 20 ctile-get-ext-command.vcs)).....
123a0 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 73 75 62 2d 70 72 6f .........(projectile-get-sub-pro
123c0 6a 65 63 74 73 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 20 76 63 73 29 29 29 0a 20 20 20 jects-files.directory.vcs)))....
123e0 20 20 28 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 ..(t.(projectile-files-via-ext-c
12400 6f 6d 6d 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 ommand.directory.(projectile-get
12420 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 -ext-command.vcs))))))..(defun.p
12440 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 28 76 63 73 29 0a rojectile-get-ext-command.(vcs).
12460 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 65 78 74 65 72 6e 61 6c 20 63 6f 6d 6d .."Determine.which.external.comm
12480 61 6e 64 20 74 6f 20 69 6e 76 6f 6b 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 70 72 6f 6a 65 and.to.invoke.based.on.the.proje
124a0 63 74 27 73 20 56 43 53 2e 0a 46 61 6c 6c 62 61 63 6b 20 74 6f 20 61 20 67 65 6e 65 72 69 63 20 ct's.VCS..Fallback.to.a.generic.
124c0 63 6f 6d 6d 61 6e 64 20 77 68 65 6e 20 6e 6f 74 20 69 6e 20 61 20 56 43 53 2d 63 6f 6e 74 72 6f command.when.not.in.a.VCS-contro
124e0 6c 6c 65 64 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 63 61 73 65 20 76 63 73 0a 20 20 20 20 lled.project."...(pcase.vcs.....
12500 28 27 67 69 74 20 28 69 66 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 75 73 ('git.(if.(and.projectile-git-us
12520 65 2d 66 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 29 0a 20 e-fd.projectile-fd-executable)..
12540 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 .............(concat............
12560 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 0a 20 20 20 ....projectile-fd-executable....
12580 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 ............"."................p
125a0 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 66 64 2d 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 rojectile-git-fd-args)..........
125c0 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 ...projectile-git-command)).....
125e0 28 27 68 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 68 67 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 ('hg.projectile-hg-command).....
12600 28 27 66 6f 73 73 69 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6f 73 73 69 6c 2d 63 6f 6d 6d 61 ('fossil.projectile-fossil-comma
12620 6e 64 29 0a 20 20 20 20 28 27 62 7a 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 7a 72 2d 63 6f 6d nd).....('bzr.projectile-bzr-com
12640 6d 61 6e 64 29 0a 20 20 20 20 28 27 64 61 72 63 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 61 72 mand).....('darcs.projectile-dar
12660 63 73 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 27 70 69 6a 75 6c 20 70 72 6f 6a 65 63 74 69 cs-command).....('pijul.projecti
12680 6c 65 2d 70 69 6a 75 6c 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 27 73 76 6e 20 70 72 6f 6a le-pijul-command).....('svn.proj
126a0 65 63 74 69 6c 65 2d 73 76 6e 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 27 73 61 70 6c 69 6e ectile-svn-command).....('saplin
126c0 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 70 6c 69 6e 67 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 g.projectile-sapling-command)...
126e0 20 20 28 27 6a 6a 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6a 6a 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 ..('jj.projectile-jj-command)...
12700 20 20 28 5f 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 29 ..(_.projectile-generic-command)
12720 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 73 75 62 2d 70 72 ))..(defun.projectile-get-sub-pr
12740 6f 6a 65 63 74 73 2d 63 6f 6d 6d 61 6e 64 20 28 76 63 73 29 0a 20 20 22 47 65 74 20 74 68 65 20 ojects-command.(vcs)..."Get.the.
12760 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 56 43 53 2e 0a 43 75 sub-projects.command.for.VCS..Cu
12780 72 72 65 6e 74 6c 79 20 74 68 61 74 27 73 20 73 75 70 70 6f 72 74 65 64 20 6a 75 73 74 20 66 6f rrently.that's.supported.just.fo
127a0 72 20 47 69 74 20 28 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 62 65 69 6e 67 20 47 69 74 0a 73 75 r.Git.(sub-projects.being.Git.su
127c0 62 2d 6d 6f 64 75 6c 65 73 20 74 68 65 72 65 29 2e 22 0a 20 20 28 70 63 61 73 65 20 76 63 73 0a b-modules.there)."...(pcase.vcs.
127e0 20 20 20 20 28 27 67 69 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 73 75 62 6d 6f 64 75 ....('git.projectile-git-submodu
12800 6c 65 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 5f 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e le-command).....(_."")))..(defun
12820 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 65 78 74 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d .projectile-get-ext-ignored-comm
12840 61 6e 64 20 28 76 63 73 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 65 78 74 and.(vcs)..."Determine.which.ext
12860 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e 76 6f 6b 65 20 62 61 73 65 64 20 6f 6e ernal.command.to.invoke.based.on
12880 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 56 43 53 2e 22 0a 20 20 28 70 63 61 73 65 20 76 63 .the.project's.VCS."...(pcase.vc
128a0 73 0a 20 20 20 20 28 27 67 69 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 69 67 6e 6f 72 s.....('git.projectile-git-ignor
128c0 65 64 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 73 75 70 ed-command).....;;.TODO:.Add.sup
128e0 70 6f 72 74 20 66 6f 72 20 6f 74 68 65 72 20 56 43 53 0a 20 20 20 20 28 5f 20 6e 69 6c 29 29 29 port.for.other.VCS.....(_.nil)))
12900 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 28 6c 73 74 ..(defun.projectile-flatten.(lst
12920 29 0a 20 20 22 54 61 6b 65 20 61 20 6e 65 73 74 65 64 20 6c 69 73 74 20 4c 53 54 20 61 6e 64 20 )..."Take.a.nested.list.LST.and.
12940 72 65 74 75 72 6e 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 61 73 20 61 20 73 69 6e 67 6c 65 2c return.its.contents.as.a.single,
12960 20 66 6c 61 74 20 6c 69 73 74 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 6c 69 73 74 70 20 6c .flat.list."...(if.(and.(listp.l
12980 73 74 29 20 28 6c 69 73 74 70 20 28 63 64 72 20 6c 73 74 29 29 29 0a 20 20 20 20 20 20 28 63 6c st).(listp.(cdr.lst))).......(cl
129a0 2d 6d 61 70 63 61 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 6c 73 74 29 -mapcan.'projectile-flatten.lst)
129c0 0a 20 20 20 20 28 6c 69 73 74 20 6c 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 .....(list.lst)))..(defun.projec
129e0 74 69 6c 65 2d 67 65 74 2d 61 6c 6c 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 28 70 72 6f 6a 65 tile-get-all-sub-projects.(proje
12a00 63 74 29 0a 20 20 22 47 65 74 20 61 6c 6c 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 ct)..."Get.all.sub-projects.for.
12a20 61 20 67 69 76 65 6e 20 70 72 6f 6a 65 63 74 2e 0a 0a 50 52 4f 4a 45 43 54 20 69 73 20 62 61 73 a.given.project...PROJECT.is.bas
12a40 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 73 74 61 72 74 20 73 65 61 72 63 68 20 72 65 63 75 e.directory.to.start.search.recu
12a60 72 73 69 76 65 6c 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 75 62 6d 6f 64 75 6c 65 73 20 28 70 rsively."...(let.((submodules.(p
12a80 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 69 6d 6d 65 64 69 61 74 65 2d 73 75 62 2d 70 72 6f 6a rojectile-get-immediate-sub-proj
12aa0 65 63 74 73 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 ects.project))).....(cond......(
12ac0 28 6e 75 6c 6c 20 73 75 62 6d 6f 64 75 6c 65 73 29 0a 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 (null.submodules).......nil)....
12ae0 20 20 28 74 0a 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 73 75 62 6d 6f 64 75 6c 65 73 20 28 70 72 ..(t.......(nconc.submodules.(pr
12b00 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ojectile-flatten................
12b20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 63 75 72 73 69 76 65 6c 79 20 67 65 74 20 73 75 62 ..........;;.recursively.get.sub
12b40 2d 70 72 6f 6a 65 63 74 73 20 6f 66 20 65 61 63 68 20 73 75 62 2d 70 72 6f 6a 65 63 74 0a 20 20 -projects.of.each.sub-project...
12b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 .......................(mapcar.(
12b80 6c 61 6d 62 64 61 20 28 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(s)......................
12ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 61 6c ..............(projectile-get-al
12bc0 6c 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 73 29 29 20 73 75 62 6d 6f 64 75 6c 65 73 29 29 29 l-sub-projects.s)).submodules)))
12be0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 69 6d 6d 65 ))))..(defun.projectile-get-imme
12c00 64 69 61 74 65 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 28 70 61 74 68 29 0a 20 20 22 47 65 74 diate-sub-projects.(path)..."Get
12c20 20 69 6d 6d 65 64 69 61 74 65 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 61 20 67 69 .immediate.sub-projects.for.a.gi
12c40 76 65 6e 20 70 72 6f 6a 65 63 74 20 77 69 74 68 6f 75 74 20 72 65 63 75 72 73 69 6e 67 2e 0a 0a ven.project.without.recursing...
12c60 50 41 54 48 20 69 73 20 74 68 65 20 76 63 73 20 72 6f 6f 74 20 6f 72 20 70 72 6f 6a 65 63 74 20 PATH.is.the.vcs.root.or.project.
12c80 72 6f 6f 74 20 66 72 6f 6d 20 77 68 69 63 68 20 74 6f 20 73 74 61 72 74 0a 73 65 61 72 63 68 69 root.from.which.to.start.searchi
12ca0 6e 67 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 65 6e 64 20 77 69 74 68 20 61 6e 20 61 70 70 72 6f ng,.and.should.end.with.an.appro
12cc0 70 72 69 61 74 65 20 70 61 74 68 20 64 65 6c 69 6d 69 74 65 72 2c 20 73 75 63 68 20 61 73 0a 27 priate.path.delimiter,.such.as.'
12ce0 2f 27 20 6f 72 20 61 20 27 5c 5c 27 2e 0a 0a 49 66 20 74 68 65 20 76 63 73 20 67 65 74 2d 73 75 /'.or.a.'\\'...If.the.vcs.get-su
12d00 62 2d 70 72 6f 6a 65 63 74 73 20 71 75 65 72 79 20 72 65 74 75 72 6e 73 20 72 65 73 75 6c 74 73 b-projects.query.returns.results
12d20 20 6f 75 74 73 69 64 65 20 6f 66 20 70 61 74 68 2c 0a 74 68 65 79 20 61 72 65 20 65 78 63 6c 75 .outside.of.path,.they.are.exclu
12d40 64 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 20 74 68 69 73 20 66 75 6e ded.from.the.results.of.this.fun
12d60 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c ction."...(let*.((vcs.(projectil
12d80 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b e-project-vcs.path))..........;;
12da0 20 73 65 61 72 63 68 20 66 6f 72 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 75 6e 64 65 72 20 63 .search.for.sub-projects.under.c
12dc0 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 60 70 72 6f 6a 65 63 74 27 0a 20 20 20 20 20 20 20 urrent.project.`project'........
12de0 20 20 28 73 75 62 6d 6f 64 75 6c 65 73 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 ..(submodules.(mapcar...........
12e00 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 29 0a 20 20 20 20 20 20 20 20 ............(lambda.(s).........
12e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 ................(file-name-as-di
12e40 72 65 63 74 6f 72 79 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 20 70 61 74 68 rectory.(expand-file-name.s.path
12e60 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 ))).......................(proje
12e80 63 74 69 6c 65 2d 66 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 70 61 74 68 ctile-files-via-ext-command.path
12ea0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 2d 63 6f .(projectile-get-sub-projects-co
12ec0 6d 6d 61 6e 64 20 76 63 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d mmand.vcs))))..........(project-
12ee0 63 68 69 6c 64 2d 66 6f 6c 64 65 72 2d 72 65 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f child-folder-regex...........(co
12f00 6e 63 61 74 20 22 5c 5c 60 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 ncat."\\`"...................(re
12f20 67 65 78 70 2d 71 75 6f 74 65 20 70 61 74 68 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 66 20 70 gexp-quote.path))))......;;.If.p
12f40 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 73 20 69 6e 73 69 64 65 20 6f 66 20 61 6e 20 56 43 53 20 roject.root.is.inside.of.an.VCS.
12f60 66 6f 6c 64 65 72 2c 20 62 75 74 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 61 6e 0a 20 20 20 20 folder,.but.not.actually.an.....
12f80 3b 3b 20 56 43 53 20 72 6f 6f 74 20 69 74 73 65 6c 66 2c 20 73 75 62 6d 6f 64 75 6c 65 73 20 65 ;;.VCS.root.itself,.submodules.e
12fa0 78 74 65 72 6e 61 6c 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 69 6c 6c 20 62 65 0a 20 xternal.to.the.project.will.be..
12fc0 20 20 20 3b 3b 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 56 43 53 20 67 65 74 20 73 75 ...;;.included.in.the.VCS.get.su
12fe0 62 2d 70 72 6f 6a 65 63 74 73 20 72 65 73 75 6c 74 2e 20 4c 65 74 27 73 20 72 65 6d 6f 76 65 20 b-projects.result..Let's.remove.
13000 74 68 65 6d 2e 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 them......(cl-remove-if-not.....
13020 20 28 6c 61 6d 62 64 61 20 28 73 75 62 6d 6f 64 75 6c 65 29 0a 20 20 20 20 20 20 20 28 73 74 72 .(lambda.(submodule)........(str
13040 69 6e 67 2d 6d 61 74 63 68 2d 70 20 70 72 6f 6a 65 63 74 2d 63 68 69 6c 64 2d 66 6f 6c 64 65 72 ing-match-p.project-child-folder
13060 2d 72 65 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 -regex........................su
13080 62 6d 6f 64 75 6c 65 29 29 0a 20 20 20 20 20 73 75 62 6d 6f 64 75 6c 65 73 29 29 29 0a 0a 28 64 bmodule))......submodules)))..(d
130a0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 efun.projectile-get-sub-projects
130c0 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 5f 76 63 73 29 0a 20 20 22 47 65 -files.(project-root._vcs)..."Ge
130e0 74 20 66 69 6c 65 73 20 66 72 6f 6d 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 50 52 t.files.from.sub-projects.for.PR
13100 4f 4a 45 43 54 2d 52 4f 4f 54 20 72 65 63 75 72 73 69 76 65 6c 79 2e 22 0a 20 20 28 70 72 6f 6a OJECT-ROOT.recursively."...(proj
13120 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 0a 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 ectile-flatten....(mapcar.(lambd
13140 61 20 28 73 75 62 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 a.(sub-project)..............(le
13160 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 65 6c 61 74 69 76 65 2d 70 61 74 68 0a 20 20 20 20 20 20 t.((project-relative-path.......
13180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 ..............(file-name-as-dire
131a0 63 74 6f 72 79 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 ctory.(file-relative-name.......
131c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
131e0 20 20 20 20 20 20 20 73 75 62 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 .......sub-project.project-root)
13200 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 )))................(mapcar.(lamb
13220 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 da.(file).......................
13240 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6a 65 63 74 2d 72 65 6c 61 74 69 76 65 2d 70 61 74 68 ...(concat.project-relative-path
13260 20 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 20 20 20 20 20 3b .file))........................;
13280 3b 20 54 4f 44 4f 3a 20 53 65 65 6d 73 20 77 65 20 66 6f 72 67 6f 74 20 67 69 74 20 68 61 72 64 ;.TODO:.Seems.we.forgot.git.hard
132a0 63 6f 64 65 64 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 coded.here......................
132c0 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d ..(projectile-files-via-ext-comm
132e0 61 6e 64 20 73 75 62 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 63 and.sub-project.projectile-git-c
13300 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c ommand))))............(projectil
13320 65 2d 67 65 74 2d 61 6c 6c 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 70 72 6f 6a 65 63 74 2d 72 e-get-all-sub-projects.project-r
13340 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 72 oot))))..(defun.projectile-get-r
13360 65 70 6f 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 20 76 63 73 29 0a epo-ignored-files.(project.vcs).
13380 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 69 67 6e 6f 72 .."Get.a.list.of.the.files.ignor
133a0 65 64 20 69 6e 20 74 68 65 20 50 52 4f 4a 45 43 54 20 75 73 69 6e 67 20 56 43 53 2e 22 0a 20 20 ed.in.the.PROJECT.using.VCS."...
133c0 28 6c 65 74 20 28 28 63 6d 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 65 78 74 2d 69 (let.((cmd.(projectile-get-ext-i
133e0 67 6e 6f 72 65 64 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 gnored-command.vcs))).....(when.
13400 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 76 69 61 2d cmd.......(projectile-files-via-
13420 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 ext-command.project.cmd))))..(de
13440 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 72 65 70 6f 2d 69 67 6e 6f 72 65 64 2d fun.projectile-get-repo-ignored-
13460 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 20 64 69 72 20 76 63 73 29 0a 20 20 22 47 directory.(project.dir.vcs)..."G
13480 65 74 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 69 67 6e 6f 72 65 64 20 69 et.a.list.of.the.files.ignored.i
134a0 6e 20 74 68 65 20 50 52 4f 4a 45 43 54 20 69 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 44 n.the.PROJECT.in.the.directory.D
134c0 49 52 2e 0a 56 43 53 20 69 73 20 74 68 65 20 56 43 53 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 IR..VCS.is.the.VCS.of.the.projec
134e0 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6d 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 t."...(let.((cmd.(projectile-get
13500 2d 65 78 74 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 29 0a 20 20 20 20 -ext-ignored-command.vcs))).....
13520 28 77 68 65 6e 20 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 (when.cmd.......(projectile-file
13540 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 20 28 63 6f 6e 63 61 s-via-ext-command.project.(conca
13560 74 20 63 6d 64 20 22 20 22 20 64 69 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 t.cmd.".".dir)))))..(defun.proje
13580 63 74 69 6c 65 2d 66 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 28 72 6f 6f ctile-files-via-ext-command.(roo
135a0 74 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 72 65 6c 61 t.command)..."Get.a.list.of.rela
135c0 74 69 76 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 20 52 tive.file.names.in.the.project.R
135e0 4f 4f 54 20 62 79 20 65 78 65 63 75 74 69 6e 67 20 43 4f 4d 4d 41 4e 44 2e 0a 0a 49 66 20 60 63 OOT.by.executing.COMMAND...If.`c
13600 6f 6d 6d 61 6e 64 27 20 69 73 20 6e 69 6c 20 6f 72 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e ommand'.is.nil.or.an.empty.strin
13620 67 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 63 6f 6d 6d 61 g,.return.nil..This.allows.comma
13640 6e 64 73 20 74 6f 20 62 65 20 64 69 73 61 62 6c 65 64 2e 0a 0a 4f 6e 6c 79 20 74 65 78 74 20 73 nds.to.be.disabled...Only.text.s
13660 65 6e 74 20 74 6f 20 73 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 20 69 73 20 74 61 6b 65 6e 20 ent.to.standard.output.is.taken.
13680 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 into.account."...(when.(stringp.
136a0 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 command).....(let.((default-dire
136c0 63 74 6f 72 79 20 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 ctory.root)).......(with-temp-bu
136e0 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d ffer.........(shell-command.comm
13700 61 6e 64 20 74 20 22 2a 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 65 72 72 6f 72 73 2a and.t."*projectile-files-errors*
13720 22 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 68 65 6c 6c 2d 6f 75 74 70 75 74 20 28 ").........(let.((shell-output.(
13740 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f buffer-substring.(point-min).(po
13760 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 int-max))))...........(split-str
13780 69 6e 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 29 20 22 ing.(string-trim.shell-output)."
137a0 5c 30 22 20 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 \0".t))))))..(defun.projectile-a
137c0 64 6a 75 73 74 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 20 76 63 73 20 66 69 6c 65 73 29 0a djust-files.(project.vcs.files).
137e0 20 20 22 46 69 72 73 74 20 72 65 6d 6f 76 65 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 66 72 .."First.remove.ignored.files.fr
13800 6f 6d 20 46 49 4c 45 53 2c 20 74 68 65 6e 20 61 64 64 20 62 61 63 6b 20 75 6e 69 67 6e 6f 72 65 om.FILES,.then.add.back.unignore
13820 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 75 6e 69 67 d.files."...(projectile-add-unig
13840 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 nored.project.vcs.(projectile-re
13860 6d 6f 76 65 2d 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 move-ignored.files)))..(defun.pr
13880 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 69 67 6e 6f 72 65 64 20 28 66 69 6c 65 73 29 0a ojectile-remove-ignored.(files).
138a0 20 20 22 52 65 6d 6f 76 65 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 6e 64 20 66 6f 6c 64 .."Remove.ignored.files.and.fold
138c0 65 72 73 20 66 72 6f 6d 20 46 49 4c 45 53 2e 0a 0a 49 66 20 69 67 6e 6f 72 65 64 20 64 69 72 65 ers.from.FILES...If.ignored.dire
138e0 63 74 6f 72 79 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 27 2a 27 2c 20 74 68 65 6e 20 69 67 ctory.prefixed.with.'*',.then.ig
13900 6e 6f 72 65 20 61 6c 6c 0a 64 69 72 65 63 74 6f 72 69 65 73 2f 73 75 62 64 69 72 65 63 74 6f 72 nore.all.directories/subdirector
13920 69 65 73 20 77 69 74 68 20 6d 61 74 63 68 69 6e 67 20 66 69 6c 65 6e 61 6d 65 2c 0a 6f 74 68 65 ies.with.matching.filename,.othe
13940 72 77 69 73 65 20 6f 70 65 72 61 74 65 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 70 72 6f 6a 65 rwise.operates.relative.to.proje
13960 63 74 20 72 6f 6f 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 ct.root."...(let.((ignored-files
13980 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 29 29 .(projectile-ignored-files-rel))
139a0 0a 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 64 2d 64 69 72 73 20 28 70 72 6f 6a 65 63 74 69 .........(ignored-dirs.(projecti
139c0 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 2d 72 65 6c 29 29 29 0a 20 20 le-ignored-directories-rel)))...
139e0 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 ..(cl-remove-if......(lambda.(fi
13a00 6c 65 29 0a 20 20 20 20 20 20 20 28 6f 72 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 le)........(or.(cl-some.........
13a20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ....(lambda.(f)...............(s
13a40 74 72 69 6e 67 3d 20 66 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 tring=.f.(file-name-nondirectory
13a60 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2d 66 69 6c .file))).............ignored-fil
13a80 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 es)............(cl-some.........
13aa0 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(lambda.(dir)...............
13ac0 3b 3b 20 69 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 70 72 65 66 69 78 65 64 20 ;;.if.the.directory.is.prefixed.
13ae0 77 69 74 68 20 27 2a 27 20 74 68 65 6e 20 69 67 6e 6f 72 65 20 61 6c 6c 20 64 69 72 65 63 74 6f with.'*'.then.ignore.all.directo
13b00 72 69 65 73 20 6d 61 74 63 68 69 6e 67 20 74 68 61 74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 ries.matching.that.name.........
13b20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2a 22 20 64 ......(if.(string-prefix-p."*".d
13b40 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 ir)...................;;.remove.
13b60 27 2a 27 20 61 6e 64 20 74 72 61 69 6c 69 6e 67 20 73 6c 61 73 68 20 66 72 6f 6d 20 69 67 6e 6f '*'.and.trailing.slash.from.igno
13b80 72 65 64 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 red.directory.name..............
13ba0 20 20 20 20 20 28 6c 65 74 20 28 28 64 20 28 73 75 62 73 74 72 69 6e 67 20 64 69 72 20 31 20 28 .....(let.((d.(substring.dir.1.(
13bc0 69 66 20 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 64 69 72 20 2d 31 29 20 22 2f 22 if.(equal.(substring.dir.-1)."/"
13be0 29 20 2d 31 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).-1.nil))))....................
13c00 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .(cl-some......................(
13c20 6c 61 6d 62 64 61 20 28 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(p)......................
13c40 20 20 28 73 74 72 69 6e 67 3d 20 64 20 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(string=.d.p))................
13c60 20 20 20 20 20 20 3b 3b 20 73 70 6c 69 74 20 70 61 74 68 20 62 79 20 27 2f 27 2c 20 72 65 6d 6f ......;;.split.path.by.'/',.remo
13c80 76 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 73 2c 20 61 6e 64 20 63 68 65 63 6b 20 69 66 20 61 ve.empty.strings,.and.check.if.a
13ca0 6e 79 20 73 75 62 64 69 72 73 20 6d 61 74 63 68 20 6e 61 6d 65 20 27 64 27 0a 20 20 20 20 20 20 ny.subdirs.match.name.'d'.......
13cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 20 22 22 20 28 73 70 6c 69 74 ...............(delete."".(split
13ce0 2d 73 74 72 69 6e 67 20 28 6f 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 -string.(or.(file-name-directory
13d00 20 66 69 6c 65 29 20 22 22 29 20 22 2f 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .file)."")."/"))))..............
13d20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 64 69 72 20 66 69 6c 65 29 29 29 0a ...(string-prefix-p.dir.file))).
13d40 20 20 20 20 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2d 64 69 72 73 29 0a 20 20 20 20 20 20 ............ignored-dirs).......
13d60 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 .....(cl-some.............(lambd
13d80 61 20 28 73 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 73 75 a.(suf)...............(string-su
13da0 66 66 69 78 2d 70 20 73 75 66 20 66 69 6c 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ffix-p.suf.file.t)).............
13dc0 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 projectile-globally-ignored-file
13de0 2d 73 75 66 66 69 78 65 73 29 29 29 0a 20 20 20 20 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 -suffixes)))......files)))..(def
13e00 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 un.projectile-keep-ignored-files
13e20 20 28 70 72 6f 6a 65 63 74 20 76 63 73 20 66 69 6c 65 73 29 0a 20 20 22 46 69 6c 74 65 72 20 46 .(project.vcs.files)..."Filter.F
13e40 49 4c 45 53 20 74 6f 20 72 65 74 61 69 6e 20 6f 6e 6c 79 20 74 68 6f 73 65 20 74 68 61 74 20 61 ILES.to.retain.only.those.that.a
13e60 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 66 69 6c 65 73 0a 20 20 20 20 28 re.ignored."...(when.files.....(
13e80 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 cl-remove-if-not......(lambda.(f
13ea0 69 6c 65 29 0a 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 66 29 ile)........(cl-some.(lambda.(f)
13ec0 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 66 20 66 69 6c 65 29 29 20 66 69 6c 65 73 .(string-prefix-p.f.file)).files
13ee0 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 72 65 70 6f 2d 69 67 6e ))......(projectile-get-repo-ign
13f00 6f 72 65 64 2d 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 20 76 63 73 29 29 29 29 0a 0a 28 64 65 66 ored-files.project.vcs))))..(def
13f20 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 un.projectile-keep-ignored-direc
13f40 74 6f 72 69 65 73 20 28 70 72 6f 6a 65 63 74 20 76 63 73 20 64 69 72 65 63 74 6f 72 69 65 73 29 tories.(project.vcs.directories)
13f60 0a 20 20 22 47 65 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 77 69 74 68 69 6e 20 65 61 63 ..."Get.ignored.files.within.eac
13f80 68 20 6f 66 20 44 49 52 45 43 54 4f 52 49 45 53 2e 22 0a 20 20 28 77 68 65 6e 20 64 69 72 65 63 h.of.DIRECTORIES."...(when.direc
13fa0 74 6f 72 69 65 73 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 28 tories.....(let.(result).......(
13fc0 64 6f 6c 69 73 74 20 28 64 69 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 72 65 73 75 6c 74 29 0a dolist.(dir.directories.result).
13fe0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 61 70 70 65 6e 64 20 72 65 73 ........(setq.result.(append.res
14000 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ult.............................
14020 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 72 65 70 6f 2d 69 67 6e 6f 72 65 64 2d 64 69 .(projectile-get-repo-ignored-di
14040 72 65 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 20 64 69 72 20 76 63 73 29 29 29 29 0a 20 20 20 20 rectory.project.dir.vcs)))).....
14060 20 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 ..result)))..(defun.projectile-a
14080 64 64 2d 75 6e 69 67 6e 6f 72 65 64 20 28 70 72 6f 6a 65 63 74 20 76 63 73 20 66 69 6c 65 73 29 dd-unignored.(project.vcs.files)
140a0 0a 20 20 22 54 68 69 73 20 61 64 64 73 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 74 6f ..."This.adds.unignored.files.to
140c0 20 46 49 4c 45 53 2e 0a 0a 55 73 65 66 75 6c 20 62 65 63 61 75 73 65 20 74 68 65 20 56 43 53 20 .FILES...Useful.because.the.VCS.
140e0 6d 61 79 20 6e 6f 74 20 72 65 74 75 72 6e 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 74 20 may.not.return.ignored.files.at.
14100 61 6c 6c 2e 20 20 49 6e 0a 74 68 69 73 20 63 61 73 65 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c all...In.this.case.unignored.fil
14120 65 73 20 77 69 6c 6c 20 62 65 20 61 62 73 65 6e 74 20 66 72 6f 6d 20 46 49 4c 45 53 2e 22 0a 20 es.will.be.absent.from.FILES."..
14140 20 28 6c 65 74 20 28 28 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 .(let.((unignored-files.(project
14160 69 6c 65 2d 6b 65 65 70 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 ile-keep-ignored-files..........
14180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 .................project........
141a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 63 73 0a 20 20 20 20 20 20 20 20 20 ...................vcs..........
141c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 .................(projectile-uni
141e0 67 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 69 gnored-files-rel))).........(uni
14200 67 6e 6f 72 65 64 2d 70 61 74 68 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d gnored-paths.(projectile-remove-
14220 69 67 6e 6f 72 65 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 ignored.........................
14240 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 ..(projectile-keep-ignored-direc
14260 74 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tories..........................
14280 20 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..project.......................
142a0 20 20 20 20 20 76 63 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....vcs........................
142c0 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 ....(projectile-unignored-direct
142e0 6f 72 69 65 73 2d 72 65 6c 29 29 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 66 69 6c 65 73 ories-rel))))).....(append.files
14300 20 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 .unignored-files.unignored-paths
14320 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 77 )))..(defun.projectile-buffers-w
14340 69 74 68 2d 66 69 6c 65 20 28 62 75 66 66 65 72 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6f 6e 6c ith-file.(buffers)..."Return.onl
14360 79 20 74 68 6f 73 65 20 42 55 46 46 45 52 53 20 62 61 63 6b 65 64 20 62 79 20 66 69 6c 65 73 2e y.those.BUFFERS.backed.by.files.
14380 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 62 "...(cl-remove-if-not.(lambda.(b
143a0 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 29 29 20 62 75 66 66 65 72 73 29 ).(buffer-file-name.b)).buffers)
143c0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 77 69 74 )..(defun.projectile-buffers-wit
143e0 68 2d 66 69 6c 65 2d 6f 72 2d 70 72 6f 63 65 73 73 20 28 62 75 66 66 65 72 73 29 0a 20 20 22 52 h-file-or-process.(buffers)..."R
14400 65 74 75 72 6e 20 6f 6e 6c 79 20 74 68 6f 73 65 20 42 55 46 46 45 52 53 20 62 61 63 6b 65 64 20 eturn.only.those.BUFFERS.backed.
14420 62 79 20 66 69 6c 65 73 20 6f 72 20 70 72 6f 63 65 73 73 65 73 2e 22 0a 20 20 28 63 6c 2d 72 65 by.files.or.processes."...(cl-re
14440 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 62 29 20 28 6f 72 20 28 62 75 66 move-if-not.(lambda.(b).(or.(buf
14460 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fer-file-name.b)................
14480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 .....................(get-buffer
144a0 2d 70 72 6f 63 65 73 73 20 62 29 29 29 20 62 75 66 66 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 -process.b))).buffers))..(defun.
144c0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 26 6f 70 74 projectile-project-buffers.(&opt
144e0 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 ional.project)..."Get.a.list.of.
14500 61 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 66 65 72 73 2e 0a 49 66 20 50 52 4f 4a 45 43 54 20 a.project's.buffers..If.PROJECT.
14520 69 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 63 74 is.not.specified.the.command.act
14540 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6c 65 s.on.the.current.project."...(le
14560 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 6f 72 20 70 72 6f 6a 65 63 74 20 28 70 t*.((project-root.(or.project.(p
14580 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 rojectile-acquire-root))).......
145a0 20 20 20 28 61 6c 6c 2d 62 75 66 66 65 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f ...(all-buffers.(cl-remove-if-no
145c0 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 28 6c 61 6d 62 64 61 t........................(lambda
145e0 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(buffer).......................
14600 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 ...(projectile-project-buffer-p.
14620 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 buffer.project-root))...........
14640 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 29 0a 20 20 .............(buffer-list))))...
14660 20 20 28 69 66 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 2d ..(if.projectile-buffers-filter-
14680 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 function.........(funcall.projec
146a0 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 20 61 6c 6c tile-buffers-filter-function.all
146c0 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 61 6c 6c 2d 62 75 66 66 65 72 73 29 29 29 0a 0a -buffers).......all-buffers)))..
146e0 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 63 65 73 73 2d 63 75 72 72 65 6e (defun.projectile-process-curren
14700 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 t-project-buffers.(action)..."Pr
14720 6f 63 65 73 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 66 ocess.the.current.project's.buff
14740 65 72 73 20 75 73 69 6e 67 20 41 43 54 49 4f 4e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a ers.using.ACTION."...(let.((proj
14760 65 63 74 2d 62 75 66 66 65 72 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d ect-buffers.(projectile-project-
14780 62 75 66 66 65 72 73 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72 20 70 buffers))).....(dolist.(buffer.p
147a0 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 roject-buffers).......(funcall.a
147c0 63 74 69 6f 6e 20 62 75 66 66 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 ction.buffer))))..(defun.project
147e0 69 6c 65 2d 70 72 6f 63 65 73 73 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 ile-process-current-project-buff
14800 65 72 73 2d 63 75 72 72 65 6e 74 20 28 61 63 74 69 6f 6e 29 0a 20 20 22 49 6e 76 6f 6b 65 20 41 ers-current.(action)..."Invoke.A
14820 43 54 49 4f 4e 20 6f 6e 20 65 76 65 72 79 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 20 77 69 CTION.on.every.project.buffer.wi
14840 74 68 20 74 68 61 74 20 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 2e 0a 41 43 54 49 4f 4e 20 69 th.that.buffer.current..ACTION.i
14860 73 20 63 61 6c 6c 65 64 20 77 69 74 68 6f 75 74 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 s.called.without.arguments."...(
14880 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 70 72 6f 6a 65 63 74 69 6c let.((project-buffers.(projectil
148a0 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 e-project-buffers))).....(dolist
148c0 20 28 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 .(buffer.project-buffers).......
148e0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 (with-current-buffer.buffer.....
14900 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 74 69 6f 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e ....(funcall.action)))))..(defun
14920 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 .projectile-project-buffer-files
14940 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a 20 20 22 47 65 74 20 61 20 6c 69 .(&optional.project)..."Get.a.li
14960 73 74 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 66 65 72 20 66 69 6c 65 73 2e 0a st.of.a.project's.buffer.files..
14980 49 66 20 50 52 4f 4a 45 43 54 20 69 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 74 68 65 20 If.PROJECT.is.not.specified.the.
149a0 63 6f 6d 6d 61 6e 64 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a command.acts.on.the.current.proj
149c0 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 6f 72 20 ect."...(let.((project-root.(or.
149e0 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 project.(projectile-project-root
14a00 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 )))).....(mapcar......(lambda.(b
14a20 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d uffer)........(file-relative-nam
14a40 65 0a 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 66 e.........(buffer-file-name.buff
14a60 65 72 29 0a 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 er).........project-root))......
14a80 28 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 77 69 74 68 2d 66 69 6c 65 0a 20 20 (projectile-buffers-with-file...
14aa0 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 ....(projectile-project-buffers.
14ac0 70 72 6f 6a 65 63 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d project)))))..(defun.projectile-
14ae0 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 28 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 project-buffer-p.(buffer.project
14b00 2d 72 6f 6f 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 42 55 46 46 45 52 20 69 73 20 75 6e 64 -root)..."Check.if.BUFFER.is.und
14b20 65 72 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e er.PROJECT-ROOT."...(with-curren
14b40 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 65 63 t-buffer.buffer.....(let.((direc
14b60 74 6f 72 79 20 28 69 66 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 tory.(if.buffer-file-name.......
14b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 ...................(file-name-di
14ba0 72 65 63 74 6f 72 79 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 rectory.buffer-file-name).......
14bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f .................default-directo
14be0 72 79 29 29 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 70 72 ry))).......(and.(not.(string-pr
14c00 65 66 69 78 2d 70 20 22 20 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 29 efix-p.".".(buffer-name.buffer))
14c20 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 )............(not.(projectile-ig
14c40 6e 6f 72 65 64 2d 62 75 66 66 65 72 2d 70 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 nored-buffer-p.buffer)).........
14c60 20 20 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d ...directory............(string-
14c80 65 71 75 61 6c 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 64 69 72 65 63 74 6f 72 79 29 0a equal.(file-remote-p.directory).
14ca0 20 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 69 6c 65 2d 72 .........................(file-r
14cc0 65 6d 6f 74 65 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 emote-p.project-root))..........
14ce0 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 68 74 74 70 5c 5c 28 ..(not.(string-match-p."^http\\(
14d00 73 5c 5c 29 3f 3a 2f 2f 22 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 s\\)?://".directory))...........
14d20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 .(string-prefix-p.project-root.(
14d40 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 79 29 20 28 65 71 20 73 79 73 file-truename.directory).(eq.sys
14d60 74 65 6d 2d 74 79 70 65 20 27 77 69 6e 64 6f 77 73 2d 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 tem-type.'windows-nt))))))..(def
14d80 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 62 75 66 66 65 72 2d 70 20 28 un.projectile-ignored-buffer-p.(
14da0 62 75 66 66 65 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 42 55 46 46 45 52 20 73 68 6f 75 6c buffer)..."Check.if.BUFFER.shoul
14dc0 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 77 69 74 68 2d 63 75 d.be.ignored."...(or....(with-cu
14de0 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 28 63 6c 2d 73 6f 6d rrent-buffer.buffer......(cl-som
14e00 65 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 e.......(lambda.(name).........(
14e20 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 string-match-p.name.(buffer-name
14e40 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 ))).......projectile-globally-ig
14e60 6e 6f 72 65 64 2d 62 75 66 66 65 72 73 29 29 0a 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 nored-buffers))....(with-current
14e80 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 -buffer.buffer......(cl-some....
14ea0 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e ...(lambda.(mode).........(strin
14ec0 67 2d 6d 61 74 63 68 2d 70 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6d 6f 64 65 20 22 24 22 29 0a g-match-p.(concat."^".mode."$").
14ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d ........................(symbol-
14f00 6e 61 6d 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 name.major-mode))).......project
14f20 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 6d 6f 64 65 73 29 29 29 29 0a 0a ile-globally-ignored-modes))))..
14f40 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 (defun.projectile-recently-activ
14f60 65 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 47 65 74 20 6c 69 73 74 20 6f 66 20 72 65 63 65 6e 74 e-files.()..."Get.list.of.recent
14f80 6c 79 20 61 63 74 69 76 65 20 66 69 6c 65 73 2e 0a 0a 46 69 6c 65 73 20 61 72 65 20 6f 72 64 65 ly.active.files...Files.are.orde
14fa0 72 65 64 20 62 79 20 72 65 63 65 6e 74 6c 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 73 2c 20 red.by.recently.active.buffers,.
14fc0 61 6e 64 20 74 68 65 6e 20 72 65 63 65 6e 74 6c 79 0a 6f 70 65 6e 65 64 20 74 68 72 6f 75 67 68 and.then.recently.opened.through
14fe0 20 75 73 65 20 6f 66 20 72 65 63 65 6e 74 66 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 .use.of.recentf."...(let.((proje
15000 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ct-buffer-files.(projectile-proj
15020 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 ect-buffer-files))).....(append.
15040 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 project-buffer-files............
15060 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 .(projectile-difference.........
15080 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 2d 66 69 6c 65 73 29 0a .....(projectile-recentf-files).
150a0 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 .............project-buffer-file
150c0 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 s))))..(defun.projectile-project
150e0 2d 62 75 66 66 65 72 2d 6e 61 6d 65 73 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f -buffer-names.()..."Get.a.list.o
15100 66 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 20 6e 61 6d 65 73 2e 22 0a 20 20 28 6d 61 70 63 f.project.buffer.names."...(mapc
15120 61 72 20 23 27 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f ar.#'buffer-name.(projectile-pro
15140 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 ject-buffers)))..(defun.projecti
15160 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 28 73 74 72 69 6e 67 29 le-prepend-project-name.(string)
15180 0a 20 20 22 50 72 65 70 65 6e 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 ..."Prepend.the.current.project'
151a0 73 20 6e 61 6d 65 20 74 6f 20 53 54 52 49 4e 47 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 s.name.to.STRING."...(format."[%
151c0 73 5d 20 25 73 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 s].%s".(projectile-project-name)
151e0 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 .string))..(defun.projectile-rea
15200 64 2d 62 75 66 66 65 72 2d 74 6f 2d 73 77 69 74 63 68 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 d-buffer-to-switch.(prompt)..."R
15220 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 62 75 66 66 65 72 20 74 6f 20 73 77 69 74 ead.the.name.of.a.buffer.to.swit
15240 63 68 20 74 6f 2c 20 70 72 6f 6d 70 74 69 6e 67 20 77 69 74 68 20 50 52 4f 4d 50 54 2e 0a 0a 54 ch.to,.prompting.with.PROMPT...T
15260 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 63 6c 75 64 65 73 20 74 68 65 20 63 75 72 72 65 6e his.function.excludes.the.curren
15280 74 20 62 75 66 66 65 72 20 66 72 6f 6d 20 74 68 65 20 6f 66 66 65 72 65 64 0a 63 68 6f 69 63 65 t.buffer.from.the.offered.choice
152a0 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 s."...(projectile-completing-rea
152c0 64 0a 20 20 20 70 72 6f 6d 70 74 0a 20 20 20 28 64 65 6c 65 74 65 20 28 62 75 66 66 65 72 2d 6e d....prompt....(delete.(buffer-n
152e0 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 ame.(current-buffer))...........
15300 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 .(projectile-project-buffer-name
15320 73 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f s))))..;;;###autoload.(defun.pro
15340 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 jectile-switch-to-buffer.()..."S
15360 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 witch.to.a.project.buffer."...(i
15380 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 0a nteractive)...(switch-to-buffer.
153a0 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 64 2d 62 75 66 66 65 72 2d 74 6f 2d 73 77 ...(projectile-read-buffer-to-sw
153c0 69 74 63 68 20 22 53 77 69 74 63 68 20 74 6f 20 62 75 66 66 65 72 3a 20 22 29 29 29 0a 0a 3b 3b itch."Switch.to.buffer:.")))..;;
153e0 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 ;###autoload.(defun.projectile-s
15400 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a witch-to-buffer-other-window.().
15420 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 20 61 6e .."Switch.to.a.project.buffer.an
15440 64 20 73 68 6f 77 20 69 74 20 69 6e 20 61 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 22 0a 20 20 d.show.it.in.another.window."...
15460 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 (interactive)...(switch-to-buffe
15480 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 r-other-window....(projectile-re
154a0 61 64 2d 62 75 66 66 65 72 2d 74 6f 2d 73 77 69 74 63 68 20 22 53 77 69 74 63 68 20 74 6f 20 62 ad-buffer-to-switch."Switch.to.b
154c0 75 66 66 65 72 3a 20 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 uffer:.")))..;;;###autoload.(def
154e0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f un.projectile-switch-to-buffer-o
15500 74 68 65 72 2d 66 72 61 6d 65 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f ther-frame.()..."Switch.to.a.pro
15520 6a 65 63 74 20 62 75 66 66 65 72 20 61 6e 64 20 73 68 6f 77 20 69 74 20 69 6e 20 61 6e 6f 74 68 ject.buffer.and.show.it.in.anoth
15540 65 72 20 66 72 61 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 77 er.frame."...(interactive)...(sw
15560 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 66 72 61 6d 65 0a 20 20 20 28 70 itch-to-buffer-other-frame....(p
15580 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 64 2d 62 75 66 66 65 72 2d 74 6f 2d 73 77 69 74 63 68 20 rojectile-read-buffer-to-switch.
155a0 22 53 77 69 74 63 68 20 74 6f 20 62 75 66 66 65 72 3a 20 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 "Switch.to.buffer:.")))..;;;###a
155c0 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 70 6c 61 utoload.(defun.projectile-displa
155e0 79 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 61 20 70 72 6f 6a 65 63 74 y-buffer.()..."Display.a.project
15600 20 62 75 66 66 65 72 20 69 6e 20 61 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 77 69 74 68 6f 75 .buffer.in.another.window.withou
15620 74 20 73 65 6c 65 63 74 69 6e 67 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 t.selecting.it."...(interactive)
15640 0a 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c ...(display-buffer....(projectil
15660 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 22 44 69 73 70 6c 61 79 20 62 e-completing-read....."Display.b
15680 75 66 66 65 72 3a 20 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 uffer:.".....(projectile-project
156a0 2d 62 75 66 66 65 72 2d 6e 61 6d 65 73 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 -buffer-names))))..;;;###autoloa
156c0 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 d.(defun.projectile-project-buff
156e0 65 72 73 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f ers-other-buffer.()..."Switch.to
15700 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 62 75 66 66 .the.most.recently.selected.buff
15720 65 72 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 0a 4f 6e 6c 79 20 62 75 66 66 65 72 73 20 er.project.buffer..Only.buffers.
15740 6e 6f 74 20 76 69 73 69 62 6c 65 20 69 6e 20 77 69 6e 64 6f 77 73 20 61 72 65 20 72 65 74 75 72 not.visible.in.windows.are.retur
15760 6e 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 77 69 74 63 68 2d ned."...(interactive)...(switch-
15780 74 6f 2d 62 75 66 66 65 72 20 28 63 61 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 to-buffer.(car.(projectile-proje
157a0 63 74 2d 62 75 66 66 65 72 73 2d 6e 6f 6e 2d 76 69 73 69 62 6c 65 29 29 29 20 6e 69 6c 20 74 29 ct-buffers-non-visible))).nil.t)
157c0 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 ..(defun.projectile-project-buff
157e0 65 72 73 2d 6e 6f 6e 2d 76 69 73 69 62 6c 65 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 ers-non-visible.()..."Get.a.list
15800 20 6f 66 20 6e 6f 6e 20 76 69 73 69 62 6c 65 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e .of.non.visible.project.buffers.
15820 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 28 6c 61 6d 62 64 61 "...(cl-remove-if-not....(lambda
15840 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 20 28 6e 6f 74 20 28 67 65 74 2d 62 75 66 66 65 72 2d .(buffer)......(not.(get-buffer-
15860 77 69 6e 64 6f 77 20 62 75 66 66 65 72 20 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 28 70 72 window.buffer.'visible)))....(pr
15880 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 0a 0a 3b 3b 3b ojectile-project-buffers)))..;;;
158a0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 ###autoload.(defun.projectile-mu
158c0 6c 74 69 2d 6f 63 63 75 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 6c 69 6e 65 73 29 0a 20 20 22 lti-occur.(&optional.nlines)..."
158e0 44 6f 20 61 20 60 6d 75 6c 74 69 2d 6f 63 63 75 72 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 Do.a.`multi-occur'.in.the.projec
15900 74 27 73 20 62 75 66 66 65 72 73 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d t's.buffers..With.a.prefix.argum
15920 65 6e 74 2c 20 73 68 6f 77 20 4e 4c 49 4e 45 53 20 6f 66 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 ent,.show.NLINES.of.context."...
15940 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 (interactive."P")...(let.((proje
15960 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 ct.(projectile-acquire-root)))..
15980 20 20 20 28 6d 75 6c 74 69 2d 6f 63 63 75 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ...(multi-occur.(projectile-proj
159a0 65 63 74 2d 62 75 66 66 65 72 73 20 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ect-buffers.project)............
159c0 20 20 20 20 20 20 28 63 61 72 20 28 6f 63 63 75 72 2d 72 65 61 64 2d 70 72 69 6d 61 72 79 2d 61 ......(car.(occur-read-primary-a
159e0 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6c 69 6e 65 73 29 29 29 rgs))..................nlines)))
15a00 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 ..(defun.projectile-normalise-pa
15a20 74 68 73 20 28 70 61 74 74 65 72 6e 73 29 0a 20 20 22 52 65 6d 6f 76 65 20 6c 65 61 64 69 6e 67 ths.(patterns)..."Remove.leading
15a40 20 60 2f 27 20 66 72 6f 6d 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 50 41 54 54 45 52 .`/'.from.the.elements.of.PATTER
15a60 4e 53 2e 22 0a 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 NS."...(delq.nil.(mapcar.(lambda
15a80 20 28 70 61 74 29 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2f 22 .(pat).(and.(string-prefix-p."/"
15aa0 20 70 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .pat)...........................
15ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 6c 65 61 64 69 .............;;.remove.the.leadi
15ae0 6e 67 20 2f 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 ng./............................
15b00 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 70 61 74 20 31 29 29 29 0a ............(substring.pat.1))).
15b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 74 74 65 72 6e 73 29 29 29 0a ....................patterns))).
15b40 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 70 61 74 68 73 20 .(defun.projectile-expand-paths.
15b60 28 70 61 74 68 73 29 0a 20 20 22 45 78 70 61 6e 64 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f (paths)..."Expand.the.elements.o
15b80 66 20 50 41 54 48 53 2e 0a 0a 45 6c 65 6d 65 6e 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 77 69 f.PATHS...Elements.containing.wi
15ba0 6c 64 63 61 72 64 73 20 61 72 65 20 65 78 70 61 6e 64 65 64 20 61 6e 64 20 73 70 6c 69 63 65 64 ldcards.are.expanded.and.spliced
15bc0 20 69 6e 74 6f 20 74 68 65 0a 72 65 73 75 6c 74 69 6e 67 20 70 61 74 68 73 2e 20 20 54 68 65 20 .into.the.resulting.paths...The.
15be0 72 65 74 75 72 6e 65 64 20 50 41 54 48 53 20 61 72 65 20 61 62 73 6f 6c 75 74 65 2c 20 62 61 73 returned.PATHS.are.absolute,.bas
15c00 65 64 20 6f 6e 20 74 68 65 0a 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f ed.on.the.projectile.project.roo
15c20 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 t."...(let.((default-directory.(
15c40 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 projectile-project-root))).....(
15c60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 projectile-flatten.(mapcar......
15c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 ....................(lambda.(pat
15ca0 74 65 72 6e 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 tern)...........................
15cc0 20 28 6f 72 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 20 70 61 74 74 .(or.(file-expand-wildcards.patt
15ce0 65 72 6e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ern.t)..........................
15d00 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 70 61 ......(projectile-expand-root.pa
15d20 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ttern)))........................
15d40 20 20 70 61 74 68 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6e ..paths))))..(defun.projectile-n
15d60 6f 72 6d 61 6c 69 73 65 2d 70 61 74 74 65 72 6e 73 20 28 70 61 74 74 65 72 6e 73 29 0a 20 20 22 ormalise-patterns.(patterns)..."
15d80 52 65 6d 6f 76 65 20 70 61 74 68 73 20 66 72 6f 6d 20 50 41 54 54 45 52 4e 53 2e 22 0a 20 20 28 Remove.paths.from.PATTERNS."...(
15da0 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 73 74 72 69 cl-remove-if.(lambda.(pat).(stri
15dc0 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2f 22 20 70 61 74 29 29 20 70 61 74 74 65 72 6e 73 29 29 ng-prefix-p."/".pat)).patterns))
15de0 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 6b 65 2d 72 65 6c 61 74 69 76 ..(defun.projectile-make-relativ
15e00 65 2d 74 6f 2d 72 6f 6f 74 20 28 66 69 6c 65 73 29 0a 20 20 22 4d 61 6b 65 20 46 49 4c 45 53 20 e-to-root.(files)..."Make.FILES.
15e20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 relative.to.the.project.root."..
15e40 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 .(let.((project-root.(projectile
15e60 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 -project-root))).....(mapcar.(la
15e80 6d 62 64 61 20 28 66 29 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 20 70 mbda.(f).(file-relative-name.f.p
15ea0 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 roject-root)).files)))..(defun.p
15ec0 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 rojectile-ignored-directory-p...
15ee0 20 20 28 64 69 72 65 63 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 64 2d 64 ..(directory.&optional.ignored-d
15f00 69 72 65 63 74 6f 72 69 65 73 20 6c 6f 63 61 6c 2d 64 69 72 65 63 74 6f 72 79 20 67 6c 6f 62 61 irectories.local-directory.globa
15f20 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 0a 20 20 22 43 68 65 63 lly-ignored-directories)..."Chec
15f40 6b 20 69 66 20 44 49 52 45 43 54 4f 52 59 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 k.if.DIRECTORY.should.be.ignored
15f60 2e 0a 0a 50 72 65 2d 63 6f 6d 70 75 74 65 64 20 6c 69 73 74 73 20 6f 66 20 49 47 4e 4f 52 45 44 ...Pre-computed.lists.of.IGNORED
15f80 2d 44 49 52 45 43 54 4f 52 49 45 53 20 61 6e 64 20 47 4c 4f 42 41 4c 4c 59 2d 49 47 4e 4f 52 45 -DIRECTORIES.and.GLOBALLY-IGNORE
15fa0 44 2d 44 49 52 45 43 54 4f 52 49 45 53 0a 61 6e 64 20 74 68 65 20 4c 4f 43 41 4c 2d 44 49 52 45 D-DIRECTORIES.and.the.LOCAL-DIRE
15fc0 43 54 4f 52 59 20 6e 61 6d 65 20 6d 61 79 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 62 65 20 70 72 6f CTORY.name.may.optionally.be.pro
15fe0 76 69 64 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f vided."...(let.((ignored-directo
16000 72 69 65 73 20 28 6f 72 20 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 ries.(or.ignored-directories.(pr
16020 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a ojectile-ignored-directories))).
16040 20 20 20 20 20 20 20 20 28 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 ........(globally-ignored-direct
16060 6f 72 69 65 73 20 28 6f 72 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 ories.(or.globally-ignored-direc
16080 74 6f 72 69 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f tories.(projectile-globally-igno
160a0 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 red-directory-names))).........(
160c0 6c 6f 63 61 6c 2d 64 69 72 65 63 74 6f 72 79 20 28 6f 72 20 6c 6f 63 61 6c 2d 64 69 72 65 63 74 local-directory.(or.local-direct
160e0 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 ory.(file-name-nondirectory.(dir
16100 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a ectory-file-name.directory))))).
16120 20 20 20 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 64 69 72 65 63 74 6f 72 79 20 69 67 6e 6f 72 65 ....(or.(member.directory.ignore
16140 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a d-directories).........(cl-some.
16160 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 .........(lambda.(name).........
16180 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 ...(string-match-p.name.director
161a0 79 29 29 0a 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 69 y))..........projectile-global-i
161c0 67 6e 6f 72 65 2d 66 69 6c 65 2d 70 61 74 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 gnore-file-patterns).........(me
161e0 6d 62 65 72 20 6c 6f 63 61 6c 2d 64 69 72 65 63 74 6f 72 79 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 mber.local-directory.globally-ig
16200 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 nored-directories))))..(defun.pr
16220 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 70 20 28 66 69 6c 65 20 26 6f ojectile-ignored-file-p.(file.&o
16240 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 22 43 68 65 63 6b 20 ptional.ignored-files)..."Check.
16260 69 66 20 46 49 4c 45 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 41 20 70 72 if.FILE.should.be.ignored...A.pr
16280 65 2d 63 6f 6d 70 75 74 65 64 20 6c 69 73 74 20 6f 66 20 49 47 4e 4f 52 45 44 2d 46 49 4c 45 53 e-computed.list.of.IGNORED-FILES
162a0 20 6d 61 79 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 62 65 20 70 72 6f 76 69 64 65 64 2e 22 0a 20 20 .may.optionally.be.provided."...
162c0 28 6f 72 0a 20 20 20 28 6d 65 6d 62 65 72 20 66 69 6c 65 20 28 6f 72 20 69 67 6e 6f 72 65 64 2d (or....(member.file.(or.ignored-
162e0 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 files.(projectile-ignored-files)
16300 29 29 0a 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 ))....(cl-some.....(lambda.(name
16320 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 6e 61 6d 65 20 66 69 6c ).......(string-match-p.name.fil
16340 65 29 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 69 67 6e 6f 72 65 e)).....projectile-global-ignore
16360 2d 66 69 6c 65 2d 70 61 74 74 65 72 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 -file-patterns)))..(defun.projec
16380 74 69 6c 65 2d 63 68 65 63 6b 2d 70 61 74 74 65 72 6e 2d 70 20 28 66 69 6c 65 20 70 61 74 74 65 tile-check-pattern-p.(file.patte
163a0 72 6e 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 6d 61 74 63 68 65 73 20 67 6c 6f rn)..."Check.if.FILE.matches.glo
163c0 62 62 69 6e 67 20 50 41 54 54 45 52 4e 2e 22 0a 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 73 75 bbing.PATTERN."...(or.(string-su
163e0 66 66 69 78 2d 70 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 74 ffix-p.(directory-file-name.patt
16400 65 72 6e 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 64 69 72 ern)........................(dir
16420 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 6d ectory-file-name.file)).......(m
16440 65 6d 62 65 72 20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 ember.file.(file-expand-wildcard
16460 73 20 70 61 74 74 65 72 6e 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 s.pattern.t))))..(defun.projecti
16480 6c 65 2d 69 67 6e 6f 72 65 64 2d 72 65 6c 2d 70 20 28 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 le-ignored-rel-p.(file.directory
164a0 20 70 61 74 74 65 72 6e 73 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 73 68 6f 75 .patterns)..."Check.if.FILE.shou
164c0 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 20 72 65 6c 61 74 69 76 65 20 74 6f 20 44 49 52 45 43 54 ld.be.ignored.relative.to.DIRECT
164e0 4f 52 59 2e 0a 50 41 54 54 45 52 4e 53 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 66 6f ORY..PATTERNS.should.have.the.fo
16500 72 6d 3a 20 28 69 67 6e 6f 72 65 64 20 2e 20 75 6e 69 67 6e 6f 72 65 64 29 22 0a 20 20 28 6c 65 rm:.(ignored...unignored)"...(le
16520 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 29 t.((default-directory.directory)
16540 29 0a 20 20 20 20 28 61 6e 64 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 20 28 6c ).....(and.(cl-some...........(l
16560 61 6d 62 64 61 20 28 70 61 74 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 68 65 63 6b 2d 70 61 ambda.(pat).(projectile-check-pa
16580 74 74 65 72 6e 2d 70 20 66 69 6c 65 20 70 61 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 ttern-p.file.pat))...........(ca
165a0 72 20 70 61 74 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6e 6f 74 61 6e 79 r.patterns))..........(cl-notany
165c0 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 70 72 6f 6a 65 63 ...........(lambda.(pat).(projec
165e0 74 69 6c 65 2d 63 68 65 63 6b 2d 70 61 74 74 65 72 6e 2d 70 20 66 69 6c 65 20 70 61 74 29 29 0a tile-check-pattern-p.file.pat)).
16600 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 70 61 74 74 65 72 6e 73 29 29 29 29 29 0a 0a 28 64 ..........(cdr.patterns)))))..(d
16620 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 29 efun.projectile-ignored-files.()
16640 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 ..."Return.list.of.ignored.files
16660 2e 0a 0a 54 68 61 74 27 73 20 61 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 67 ...That's.a.combination.of.the.g
16680 6c 6f 62 61 6c 6c 79 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 6e 64 0a 66 69 6c 65 73 20 lobally.ignored.files.and.files.
166a0 69 67 6e 6f 72 65 64 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 63 6f 6e 66 69 67 ignored.in.a.project's.dirconfig
166c0 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 20 20 28 ."...(projectile-difference....(
166e0 6d 61 70 63 61 72 0a 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 mapcar.....#'projectile-expand-r
16700 6f 6f 74 0a 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d oot.....(append......projectile-
16720 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 28 70 72 6f globally-ignored-files......(pro
16740 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 jectile-project-ignored-files)))
16760 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 ....(projectile-unignored-files)
16780 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 ))..(defun.projectile-globally-i
167a0 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 73 20 28 29 0a 20 20 22 52 65 74 gnored-directory-names.()..."Ret
167c0 75 72 6e 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 79 20 6e 61 urn.list.of.ignored.directory.na
167e0 6d 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 mes."...(projectile-difference..
16800 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 ..projectile-globally-ignored-di
16820 72 65 63 74 6f 72 69 65 73 0a 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 rectories....projectile-globally
16840 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 0a 0a 28 64 65 66 75 6e -unignored-directories))..(defun
16860 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 .projectile-ignored-directories.
16880 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 64 69 72 ()..."Return.list.of.ignored.dir
168a0 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 ectories."...(projectile-differe
168c0 6e 63 65 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 23 27 66 69 6c 65 2d 6e 61 6d 65 2d 61 nce....(mapcar.....#'file-name-a
168e0 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 23 27 70 s-directory.....(mapcar......#'p
16900 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 20 20 28 61 70 70 65 rojectile-expand-root......(appe
16920 6e 64 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e nd.......projectile-globally-ign
16940 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 ored-directories.......(projecti
16960 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 le-project-ignored-directories))
16980 29 29 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 ))....(projectile-unignored-dire
169a0 63 74 6f 72 69 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 ctories)))..(defun.projectile-ig
169c0 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 2d 72 65 6c 20 28 29 0a 20 20 22 52 65 74 75 nored-directories-rel.()..."Retu
169e0 72 6e 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 rn.list.of.ignored.directories,.
16a00 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 relative.to.the.root."...(projec
16a20 74 69 6c 65 2d 6d 61 6b 65 2d 72 65 6c 61 74 69 76 65 2d 74 6f 2d 72 6f 6f 74 20 28 70 72 6f 6a tile-make-relative-to-root.(proj
16a40 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a 0a 28 ectile-ignored-directories)))..(
16a60 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 defun.projectile-ignored-files-r
16a80 65 6c 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 el.()..."Return.list.of.ignored.
16aa0 66 69 6c 65 73 2c 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 2e 22 0a 20 20 files,.relative.to.the.root."...
16ac0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 6b 65 2d 72 65 6c 61 74 69 76 65 2d 74 6f 2d 72 6f 6f (projectile-make-relative-to-roo
16ae0 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 0a 0a t.(projectile-ignored-files)))..
16b00 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 (defun.projectile-project-ignore
16b20 64 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 70 72 6f d-files.()..."Return.list.of.pro
16b40 6a 65 63 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2e 0a 55 6e 69 67 6e 6f 72 65 64 20 66 69 ject.ignored.files..Unignored.fi
16b60 6c 65 73 20 61 72 65 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 2e 22 0a 20 20 28 63 6c 2d 72 65 6d les.are.not.included."...(cl-rem
16b80 6f 76 65 2d 69 66 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 70 72 6f 6a 65 63 ove-if.'file-directory-p.(projec
16ba0 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 tile-project-ignored)))..(defun.
16bc0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 projectile-project-ignored-direc
16be0 74 6f 72 69 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a tories.()..."Return.list.of.proj
16c00 65 63 74 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 55 6e 69 67 6e 6f 72 ect.ignored.directories..Unignor
16c20 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 72 65 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 2e ed.directories.are.not.included.
16c40 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 27 66 69 6c 65 2d 64 69 72 65 "...(cl-remove-if-not.'file-dire
16c60 63 74 6f 72 79 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f ctory-p.(projectile-project-igno
16c80 72 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 68 73 2d red)))..(defun.projectile-paths-
16ca0 74 6f 2d 69 67 6e 6f 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 to-ignore.()..."Return.a.list.of
16cc0 20 69 67 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 70 61 74 68 73 2e 22 0a 20 20 28 70 72 6f 6a .ignored.project.paths."...(proj
16ce0 65 63 74 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 74 68 73 20 28 6e 74 68 20 31 20 28 70 ectile-normalise-paths.(nth.1.(p
16d00 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 29 29 rojectile-parse-dirconfig-file))
16d20 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 ))..(defun.projectile-patterns-t
16d40 6f 2d 69 67 6e 6f 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 o-ignore.()..."Return.a.list.of.
16d60 72 65 6c 61 74 69 76 65 20 66 69 6c 65 20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 28 70 72 6f 6a relative.file.patterns."...(proj
16d80 65 63 74 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 74 74 65 72 6e 73 20 28 6e 74 68 20 31 ectile-normalise-patterns.(nth.1
16da0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c .(projectile-parse-dirconfig-fil
16dc0 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 e))))..(defun.projectile-project
16de0 2d 69 67 6e 6f 72 65 64 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 70 72 -ignored.()..."Return.list.of.pr
16e00 6f 6a 65 63 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 2e oject.ignored.files/directories.
16e20 0a 55 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 20 61 72 65 .Unignored.files/directories.are
16e40 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 74 68 73 20 28 .not.included."...(let.((paths.(
16e60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 68 73 2d 74 6f 2d 69 67 6e 6f 72 65 29 29 29 0a 20 20 projectile-paths-to-ignore)))...
16e80 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 70 61 74 68 73 20 70 61 74 68 73 ..(projectile-expand-paths.paths
16ea0 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 )))..(defun.projectile-unignored
16ec0 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 75 6e 69 67 -files.()..."Return.list.of.unig
16ee0 6e 6f 72 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 0a 20 20 20 23 27 70 72 6f nored.files."...(mapcar....#'pro
16f00 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 28 61 70 70 65 6e 64 0a 20 jectile-expand-root....(append..
16f20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 75 6e 69 67 6e 6f 72 65 64 ...projectile-globally-unignored
16f40 2d 66 69 6c 65 73 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 -files.....(projectile-project-u
16f60 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 nignored-files))))..(defun.proje
16f80 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 29 0a 20 ctile-unignored-directories.()..
16fa0 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 64 69 72 65 63 ."Return.list.of.unignored.direc
16fc0 74 6f 72 69 65 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 0a 20 20 20 23 27 66 69 6c 65 2d 6e 61 6d tories."...(mapcar....#'file-nam
16fe0 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 23 27 e-as-directory....(mapcar.....#'
17000 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 20 28 61 70 70 65 projectile-expand-root.....(appe
17020 6e 64 0a 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 75 6e 69 67 nd......projectile-globally-unig
17040 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 nored-directories......(projecti
17060 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 le-project-unignored-directories
17080 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 )))))..(defun.projectile-unignor
170a0 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 2d 72 65 6c 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 ed-directories-rel.()..."Return.
170c0 6c 69 73 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 72 list.of.unignored.directories,.r
170e0 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 elative.to.the.root."...(project
17100 69 6c 65 2d 6d 61 6b 65 2d 72 65 6c 61 74 69 76 65 2d 74 6f 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 ile-make-relative-to-root.(proje
17120 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a 0a ctile-unignored-directories)))..
17140 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 (defun.projectile-unignored-file
17160 73 2d 72 65 6c 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 75 6e 69 67 6e s-rel.()..."Return.list.of.unign
17180 6f 72 65 64 20 66 69 6c 65 73 2c 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 ored.files,.relative.to.the.root
171a0 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 6b 65 2d 72 65 6c 61 74 69 76 65 2d 74 ."...(projectile-make-relative-t
171c0 6f 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c o-root.(projectile-unignored-fil
171e0 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 es)))..(defun.projectile-project
17200 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 -unignored-files.()..."Return.li
17220 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2e 22 0a st.of.project.unignored.files.".
17240 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d ..(cl-remove-if.'file-directory-
17260 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 65 64 29 p.(projectile-project-unignored)
17280 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e ))..(defun.projectile-project-un
172a0 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e ignored-directories.()..."Return
172c0 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 75 6e 69 67 6e 6f 72 65 64 20 64 69 72 65 63 .list.of.project.unignored.direc
172e0 74 6f 72 69 65 73 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 27 66 69 tories."...(cl-remove-if-not.'fi
17300 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 le-directory-p.(projectile-proje
17320 63 74 2d 75 6e 69 67 6e 6f 72 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 ct-unignored)))..(defun.projecti
17340 6c 65 2d 70 61 74 68 73 2d 74 6f 2d 65 6e 73 75 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 le-paths-to-ensure.()..."Return.
17360 61 20 6c 69 73 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 70 61 74 68 a.list.of.unignored.project.path
17380 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 74 68 s."...(projectile-normalise-path
173a0 73 20 28 6e 74 68 20 32 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 63 6f s.(nth.2.(projectile-parse-dirco
173c0 6e 66 69 67 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 nfig-file))))..(defun.projectile
173e0 2d 66 69 6c 65 73 2d 74 6f 2d 65 6e 73 75 72 65 20 28 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c -files-to-ensure.()...(projectil
17400 65 2d 66 6c 61 74 74 65 6e 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 e-flatten.(mapcar.(lambda.(pat).
17420 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 20 70 61 74 20 74 29 29 0a 20 (file-expand-wildcards.pat.t))..
17440 20 20 20 20 20 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
17460 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 65 6e 73 75 72 65 29 29 29 29 0a ojectile-patterns-to-ensure)))).
17480 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 65 .(defun.projectile-patterns-to-e
174a0 6e 73 75 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 72 65 6c nsure.()..."Return.a.list.of.rel
174c0 61 74 69 76 65 20 66 69 6c 65 20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 ative.file.patterns."...(project
174e0 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 74 74 65 72 6e 73 20 28 6e 74 68 20 32 20 28 70 ile-normalise-patterns.(nth.2.(p
17500 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 29 29 rojectile-parse-dirconfig-file))
17520 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 74 65 72 69 6e 67 2d ))..(defun.projectile-filtering-
17540 70 61 74 74 65 72 6e 73 20 28 29 0a 20 20 28 63 6f 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d patterns.()...(cons.(projectile-
17560 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f patterns-to-ignore).........(pro
17580 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 65 6e 73 75 72 65 29 29 29 0a 0a 28 jectile-patterns-to-ensure)))..(
175a0 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 defun.projectile-project-unignor
175c0 65 64 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 ed.()..."Return.list.of.project.
175e0 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 64 ignored.files/directories."...(d
17600 65 6c 65 74 65 2d 64 75 70 73 20 28 61 70 70 65 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 elete-dups.(append.(projectile-e
17620 78 70 61 6e 64 2d 70 61 74 68 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 68 73 2d 74 6f xpand-paths.(projectile-paths-to
17640 2d 65 6e 73 75 72 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 -ensure)).......................
17660 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 70 61 74 68 73 20 28 70 72 6f 6a 65 .(projectile-expand-paths.(proje
17680 63 74 69 6c 65 2d 66 69 6c 65 73 2d 74 6f 2d 65 6e 73 75 72 65 29 29 29 29 29 0a 0a 0a 28 64 65 ctile-files-to-ensure)))))...(de
176a0 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 20 28 29 fun.projectile-dirconfig-file.()
176c0 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 74 6f 20 ..."Return.the.absolute.path.to.
176e0 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 63 6f 6e 66 69 67 20 66 69 6c 65 2e 22 0a 20 the.project's.dirconfig.file."..
17700 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 .(expand-file-name.projectile-di
17720 72 63 6f 6e 66 69 67 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 rconfig-file.(projectile-project
17740 2d 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 -root)))..(defun.projectile-pars
17760 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 70 72 6f e-dirconfig-file.()..."Parse.pro
17780 6a 65 63 74 20 69 67 6e 6f 72 65 20 66 69 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 20 64 69 72 65 ject.ignore.file.and.return.dire
177a0 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f 72 65 20 61 6e 64 20 6b 65 65 70 2e 0a 0a 54 68 65 ctories.to.ignore.and.keep...The
177c0 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 .return.value.will.be.a.list.of.
177e0 74 68 72 65 65 20 65 6c 65 6d 65 6e 74 73 2c 20 74 68 65 20 63 61 72 20 62 65 69 6e 67 0a 74 68 three.elements,.the.car.being.th
17800 65 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 6b 65 65 70 2c 20 74 e.list.of.directories.to.keep,.t
17820 68 65 20 63 61 64 72 20 62 65 69 6e 67 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 0a he.cadr.being.the.list.of.files.
17840 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f 72 65 2c 20 61 6e 64 20 74 68 or.directories.to.ignore,.and.th
17860 65 20 63 61 64 64 72 20 62 65 69 6e 67 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 0a e.caddr.being.the.list.of.files.
17880 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 65 6e 73 75 72 65 2e 0a 0a 53 74 72 69 6e or.directories.to.ensure...Strin
178a0 67 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 2b 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 gs.starting.with.+.will.be.added
178c0 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 0a 74 6f 20 6b .to.the.list.of.directories.to.k
178e0 65 65 70 2c 20 61 6e 64 20 73 74 72 69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 2d eep,.and.strings.starting.with.-
17900 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 0a 64 69 .will.be.added.to.the.list.of.di
17920 72 65 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f 72 65 2e 20 20 46 6f 72 20 62 61 63 6b 77 61 rectories.to.ignore...For.backwa
17940 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 77 69 74 68 6f 75 74 20 61 0a 70 72 65 66 rd.compatibility,.without.a.pref
17960 69 78 20 74 68 65 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 61 73 73 75 6d 65 64 20 74 6f ix.the.string.will.be.assumed.to
17980 20 62 65 20 61 6e 20 69 67 6e 6f 72 65 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 6b .be.an.ignore.string."...(let.(k
179a0 65 65 70 20 69 67 6e 6f 72 65 20 65 6e 73 75 72 65 20 28 64 69 72 63 6f 6e 66 69 67 20 28 70 72 eep.ignore.ensure.(dirconfig.(pr
179c0 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 ojectile-dirconfig-file))).....(
179e0 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 64 when.(projectile-file-exists-p.d
17a00 69 72 63 6f 6e 66 69 67 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 irconfig).......(with-temp-buffe
17a20 72 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 r.........(insert-file-contents.
17a40 64 69 72 63 6f 6e 66 69 67 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 dirconfig).........(while.(not.(
17a60 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 63 68 61 72 2d 61 66 eobp))...........(pcase.(char-af
17a80 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 67 6e 6f 72 65 20 63 6f 6d 6d 65 ter).............;;.ignore.comme
17aa0 6e 74 20 6c 69 6e 65 73 20 69 66 20 70 72 65 66 69 78 20 63 68 61 72 20 68 61 73 20 62 65 65 6e nt.lines.if.prefix.char.has.been
17ac0 20 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 72 65 64 20 28 6c 61 6d 62 64 61 20 .set.............((pred.(lambda.
17ae0 28 6c 65 61 64 69 6e 67 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (leading-char)..................
17b00 20 20 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 63 6f ....(and.projectile-dirconfig-co
17b20 6d 6d 65 6e 74 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mment-prefix....................
17b40 20 20 20 20 20 20 20 28 65 71 6c 20 6c 65 61 64 69 6e 67 2d 63 68 61 72 0a 20 20 20 20 20 20 20 .......(eql.leading-char........
17b60 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 6f 6a 65 63 74 69 ........................projecti
17b80 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 2d 70 72 65 66 69 78 29 29 29 29 0a le-dirconfig-comment-prefix)))).
17ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f .............nil).............(?
17bc0 2b 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 31 2b 20 28 70 +.(push.(buffer-substring.(1+.(p
17be0 6f 69 6e 74 29 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 6b 65 65 70 oint)).(line-end-position)).keep
17c00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2d 20 28 70 75 73 68 20 28 62 75 66 66 65 72 )).............(?-.(push.(buffer
17c20 2d 73 75 62 73 74 72 69 6e 67 20 28 31 2b 20 28 70 6f 69 6e 74 29 29 20 28 6c 69 6e 65 2d 65 6e -substring.(1+.(point)).(line-en
17c40 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 d-position)).ignore))...........
17c60 20 20 28 3f 21 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 31 ..(?!.(push.(buffer-substring.(1
17c80 2b 20 28 70 6f 69 6e 74 29 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 +.(point)).(line-end-position)).
17ca0 65 6e 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 70 75 73 68 20 28 62 ensure)).............(_.(push.(b
17cc0 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e uffer-substring.(point).(line-en
17ce0 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 d-position)).ignore)))..........
17d00 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 28 6d .(forward-line))).......(list.(m
17d20 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d apcar.(lambda.(f).(file-name-as-
17d40 64 69 72 65 63 74 6f 72 79 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 66 29 29 29 0a 20 20 20 20 directory.(string-trim.f))).....
17d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 20 22 22 20 28 72 65 76 65 ................(delete."".(reve
17d80 72 73 65 20 6b 65 65 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 rse.keep))).............(mapcar.
17da0 23 27 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #'string-trim...................
17dc0 20 20 28 64 65 6c 65 74 65 20 22 22 20 28 72 65 76 65 72 73 65 20 69 67 6e 6f 72 65 29 29 29 0a ..(delete."".(reverse.ignore))).
17de0 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 73 74 72 69 6e 67 2d 74 72 69 ............(mapcar.#'string-tri
17e00 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 20 22 22 m.....................(delete.""
17e20 20 28 72 65 76 65 72 73 65 20 65 6e 73 75 72 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 .(reverse.ensure)))))))..(defun.
17e40 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 28 6e 61 6d 65 20 26 6f 70 projectile-expand-root.(name.&op
17e60 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 45 78 70 61 6e 64 20 4e 41 4d 45 20 74 6f 20 70 72 tional.dir)..."Expand.NAME.to.pr
17e80 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 oject.root..When.DIR.is.specifie
17ea0 64 20 69 74 20 75 73 65 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 d.it.uses.DIR's.project,.otherwi
17ec0 73 65 20 69 74 20 61 63 74 73 0a 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 se.it.acts.on.the.current.projec
17ee0 74 2e 0a 0a 4e 65 76 65 72 20 75 73 65 20 6f 6e 20 6d 61 6e 79 20 66 69 6c 65 73 20 73 69 6e 63 t...Never.use.on.many.files.sinc
17f00 65 20 69 74 27 73 20 67 6f 69 6e 67 20 74 6f 20 72 65 63 61 6c 63 75 6c 61 74 65 20 74 68 65 0a e.it's.going.to.recalculate.the.
17f20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 66 6f 72 20 65 76 65 72 79 20 66 69 6c 65 2e 22 0a 20 20 project-root.for.every.file."...
17f40 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 (expand-file-name.name.(projecti
17f60 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 le-project-root.dir)))..(cl-defu
17f80 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 28 70 72 n.projectile-completing-read.(pr
17fa0 6f 6d 70 74 20 63 68 6f 69 63 65 73 20 26 6b 65 79 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 ompt.choices.&key.initial-input.
17fc0 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 65 73 65 6e 74 20 61 20 70 72 6f 6a 65 63 74 20 74 61 69 action)..."Present.a.project.tai
17fe0 6c 6f 72 65 64 20 50 52 4f 4d 50 54 20 77 69 74 68 20 43 48 4f 49 43 45 53 2e 22 0a 20 20 28 6c lored.PROMPT.with.CHOICES."...(l
18000 65 74 20 28 28 70 72 6f 6d 70 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d et.((prompt.(projectile-prepend-
18020 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 72 65 project-name.prompt)).........re
18040 73 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 s).....(setq.res...........(pcas
18060 65 20 28 69 66 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d e.(if.(eq.projectile-completion-
18080 73 79 73 74 65 6d 20 27 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 system.'auto)...................
180a0 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...(cond.......................(
180c0 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 69 64 6f 2d 6d 6f 64 65 29 20 20 27 69 64 (bound-and-true-p.ido-mode)..'id
180e0 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 6f 75 6e 64 o).......................((bound
18100 2d 61 6e 64 2d 74 72 75 65 2d 70 20 68 65 6c 6d 2d 6d 6f 64 65 29 20 27 68 65 6c 6d 29 0a 20 20 -and-true-p.helm-mode).'helm)...
18120 20 20 20 20 20 20 20 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 ....................((bound-and-
18140 74 72 75 65 2d 70 20 69 76 79 2d 6d 6f 64 65 29 20 20 27 69 76 79 29 0a 20 20 20 20 20 20 20 20 true-p.ivy-mode)..'ivy).........
18160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 27 64 65 66 61 75 6c 74 29 29 0a 20 20 20 20 ..............(t.'default)).....
18180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 ...............projectile-comple
181a0 74 69 6f 6e 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 64 65 66 61 75 tion-system).............('defau
181c0 6c 74 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 28 6c 61 6d 62 lt.(completing-read.prompt.(lamb
181e0 64 61 20 28 73 74 72 69 6e 67 20 70 72 65 64 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 da.(string.pred.action).........
18200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18220 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(cond...................
18240 20 20 20 20 20 20 20 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 ...............................;
18260 3b 20 74 68 69 73 20 6d 65 74 61 64 61 74 61 20 69 73 20 75 73 65 64 20 62 79 0a 20 20 20 20 20 ;.this.metadata.is.used.by......
18280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
182a0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 61 63 6b 61 67 65 73 20 6c 69 6b 65 20 6d 61 72 ............;;.packages.like.mar
182c0 67 69 6e 61 6c 69 61 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ginalia.and.....................
182e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .............................;;.
18300 65 6d 62 61 72 6b 20 74 6f 20 65 6e 68 61 6e 63 65 20 68 6f 77 20 74 68 65 79 0a 20 20 20 20 20 embark.to.enhance.how.they......
18320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18340 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 65 73 65 6e 74 20 63 61 6e 64 69 64 61 74 65 ............;;.present.candidate
18360 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
18380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 61 63 74 69 6f 6e 20 27 ...................((eq.action.'
183a0 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 metadata).......................
183c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6d 65 ............................'(me
183e0 74 61 64 61 74 61 20 2e 20 28 28 63 61 74 65 67 6f 72 79 20 2e 20 70 72 6f 6a 65 63 74 2d 66 69 tadata...((category...project-fi
18400 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le))))..........................
18420 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 74 0a 20 20 20 20 20 ........................(t......
18440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18460 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 65 2d 77 69 74 68 2d 61 63 74 69 .............(complete-with-acti
18480 6f 6e 20 61 63 74 69 6f 6e 20 63 68 6f 69 63 65 73 20 73 74 72 69 6e 67 20 70 72 65 64 29 29 29 on.action.choices.string.pred)))
184a0 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 )...............................
184c0 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 29 29 .........nil.nil.initial-input))
184e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 69 64 6f 20 28 69 64 6f 2d 63 6f 6d 70 6c 65 74 69 .............('ido.(ido-completi
18500 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 6e 69 6c 20 69 ng-read.prompt.choices.nil.nil.i
18520 6e 69 74 69 61 6c 2d 69 6e 70 75 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 68 65 6c nitial-input)).............('hel
18540 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 m..............(if.(and.(fboundp
18560 20 27 68 65 6c 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 .'helm).......................(f
18580 62 6f 75 6e 64 70 20 27 68 65 6c 6d 2d 6d 61 6b 65 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 boundp.'helm-make-source))......
185a0 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 6d 20 3a 73 6f 75 72 63 65 73 0a 20 20 20 20 20 ............(helm.:sources......
185c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 65 6c 6d 2d 6d 61 6b 65 2d 73 6f 75 ..................(helm-make-sou
185e0 72 63 65 20 22 50 72 6f 6a 65 63 74 69 6c 65 22 20 27 68 65 6c 6d 2d 73 6f 75 72 63 65 2d 73 79 rce."Projectile".'helm-source-sy
18600 6e 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nc..............................
18620 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6e 64 69 64 61 74 65 73 20 63 68 6f 69 63 65 73 0a ............:candidates.choices.
18640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18660 20 20 20 20 20 20 20 20 20 3a 61 63 74 69 6f 6e 20 28 69 66 20 61 63 74 69 6f 6e 0a 20 20 20 20 .........:action.(if.action.....
18680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
186a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 61 63 74 69 6f 6e 0a 20 .................(prog1.action..
186c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
186e0 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 61 63 74 69 ......................(setq.acti
18700 6f 6e 20 6e 69 6c 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 on.nil))........................
18720 20 20 20 20 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 69 64 ............................#'id
18740 65 6e 74 69 74 79 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 entity))........................
18760 3a 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :prompt.prompt..................
18780 20 20 20 20 20 20 3a 69 6e 70 75 74 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 0a 20 20 20 20 20 ......:input.initial-input......
187a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 22 2a 68 65 6c 6d ..................:buffer."*helm
187c0 2d 70 72 6f 6a 65 63 74 69 6c 65 2a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 -projectile*")................(u
187e0 73 65 72 2d 65 72 72 6f 72 20 22 50 6c 65 61 73 65 20 69 6e 73 74 61 6c 6c 20 68 65 6c 6d 22 29 ser-error."Please.install.helm")
18800 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 69 76 79 0a 20 20 20 20 20 20 20 20 20 20 20 )).............('ivy............
18820 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 69 76 79 2d 72 65 61 64 29 0a 20 20 20 20 20 20 ..(if.(fboundp.'ivy-read).......
18840 20 20 20 20 20 20 20 20 20 20 20 28 69 76 79 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 68 6f 69 ...........(ivy-read.prompt.choi
18860 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a ces............................:
18880 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 0a 20 20 20 20 initial-input.initial-input.....
188a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 63 74 69 6f 6e 20 28 .......................:action.(
188c0 70 72 6f 67 31 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 prog1.action....................
188e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 63 74 69 6f 6e 20 6e ..................(setq.action.n
18900 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 il))............................
18920 3a 63 61 6c 6c 65 72 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 :caller.'projectile-completing-r
18940 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 ead)................(user-error.
18960 22 50 6c 65 61 73 65 20 69 6e 73 74 61 6c 6c 20 69 76 79 22 29 29 29 0a 20 20 20 20 20 20 20 20 "Please.install.ivy"))).........
18980 20 20 20 20 28 5f 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c ....(_.(funcall.projectile-compl
189a0 65 74 69 6f 6e 2d 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 63 68 6f 69 63 65 73 29 29 29 29 0a etion-system.prompt.choices)))).
189c0 20 20 20 20 28 69 66 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 ....(if.action.........(funcall.
189e0 61 63 74 69 6f 6e 20 72 65 73 29 0a 20 20 20 20 20 20 72 65 73 29 29 29 0a 0a 28 64 65 66 75 6e action.res).......res)))..(defun
18a00 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 .projectile-project-files.(proje
18a20 63 74 2d 72 6f 6f 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c ct-root)..."Return.a.list.of.fil
18a40 65 73 20 66 6f 72 20 74 68 65 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 2e 22 0a 20 20 28 6c 65 74 es.for.the.PROJECT-ROOT."...(let
18a60 20 28 66 69 6c 65 73 29 0a 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 63 61 63 68 65 20 69 73 20 .(files).....;;.If.the.cache.is.
18a80 74 6f 6f 20 73 74 61 6c 65 2c 20 64 6f 6e 27 74 20 75 73 65 20 69 74 2e 0a 20 20 20 20 28 77 68 too.stale,.don't.use.it......(wh
18aa0 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 63 61 63 68 65 2d 65 78 70 69 72 65 en.projectile-files-cache-expire
18ac0 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 63 68 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 .......(let.((cache-time........
18ae0 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a ......(gethash.project-root.proj
18b00 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 2d 74 69 6d 65 29 29 29 0a 20 20 ectile-projects-cache-time)))...
18b20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 63 61 63 68 65 2d 74 69 6d 65 ......(when.(or.(null.cache-time
18b40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 28 2b 20 63 61 63 68 65 2d )...................(<.(+.cache-
18b60 74 69 6d 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 63 61 63 68 65 2d 65 78 70 69 time.projectile-files-cache-expi
18b80 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 re)......................(projec
18ba0 74 69 6c 65 2d 74 69 6d 65 2d 73 65 63 6f 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 tile-time-seconds)))...........(
18bc0 72 65 6d 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d remhash.project-root.projectile-
18be0 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 68 61 projects-cache)...........(remha
18c00 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 sh.project-root.projectile-proje
18c20 63 74 73 2d 63 61 63 68 65 2d 74 69 6d 65 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 55 73 65 20 74 cts-cache-time))))......;;.Use.t
18c40 68 65 20 63 61 63 68 65 2c 20 69 66 20 72 65 71 75 65 73 74 65 64 20 61 6e 64 20 61 76 61 69 6c he.cache,.if.requested.and.avail
18c60 61 62 6c 65 2e 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c able......(when.projectile-enabl
18c80 65 2d 63 61 63 68 69 6e 67 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 73 20 28 6f 72 20 e-caching.......(setq.files.(or.
18ca0 28 67 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 (gethash.project-root.projectile
18cc0 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -projects-cache)................
18ce0 20 20 20 20 20 20 20 3b 3b 20 6c 6f 61 64 20 74 68 65 20 63 61 63 68 65 20 66 72 6f 6d 20 64 69 .......;;.load.the.cache.from.di
18d00 73 6b 20 6f 6e 6c 79 20 69 66 20 70 65 72 73 69 73 74 65 6e 74 20 63 61 63 68 65 20 69 73 0a 20 sk.only.if.persistent.cache.is..
18d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 61 62 6c 65 64 0a .....................;;.enabled.
18d40 20 20 20 20 20 20 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 70 ......................(and.(eq.p
18d60 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 20 27 70 65 72 73 69 73 rojectile-enable-caching.'persis
18d80 74 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tent)...........................
18da0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 61 64 2d 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 20 .(projectile-load-project-cache.
18dc0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 43 61 6c 63 75 6c project-root)))))......;;.Calcul
18de0 61 74 65 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 2e 0a 20 20 20 20 28 77 68 65 6e ate.the.list.of.files......(when
18e00 20 28 6e 75 6c 6c 20 66 69 6c 65 73 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 .(null.files).......(when.projec
18e20 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 28 6d 65 73 tile-enable-caching.........(mes
18e40 73 61 67 65 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 sage."Projectile.is.initializing
18e60 20 63 61 63 68 65 20 66 6f 72 20 25 73 20 2e 2e 2e 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 .cache.for.%s....".project-root)
18e80 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ).......(setq.files.............
18ea0 28 69 66 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 (if.(eq.projectile-indexing-meth
18ec0 6f 64 20 27 61 6c 69 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e od.'alien).................;;.In
18ee0 20 61 6c 69 65 6e 20 6d 6f 64 65 20 77 65 20 63 61 6e 20 6a 75 73 74 20 73 6b 69 70 20 72 65 61 .alien.mode.we.can.just.skip.rea
18f00 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2e 70 72 6f 6a 65 63 74 ding.................;;..project
18f20 69 6c 65 20 61 6e 64 20 66 69 6e 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 72 6f ile.and.find.all.files.in.the.ro
18f40 6f 74 20 64 69 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 ot.dir..................(project
18f60 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 2d 61 6c 69 65 6e 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 ile-dir-files-alien.project-root
18f80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 61 20 70 72 6f 6a 65 63 74 20 )...............;;.If.a.project.
18fa0 69 73 20 64 65 66 69 6e 65 64 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 73 75 62 66 6f 6c 64 65 is.defined.as.a.list.of.subfolde
18fc0 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 6e 20 77 65 27 6c 6c 20 68 rs...............;;.then.we'll.h
18fe0 61 76 65 20 74 68 65 20 66 69 6c 65 73 20 72 65 74 75 72 6e 65 64 20 66 6f 72 20 65 61 63 68 20 ave.the.files.returned.for.each.
19000 73 75 62 66 6f 6c 64 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 20 74 subfolder,...............;;.so.t
19020 68 65 79 20 61 72 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 hey.are.relative.to.the.project.
19040 72 6f 6f 74 2e 0a 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 root................;;..........
19060 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 54 68 61 74 27 73 20 70 72 65 74 74 79 20 73 6c 6f 77 .....;;.TODO:.That's.pretty.slow
19080 20 61 6e 64 20 77 65 20 6e 65 65 64 20 74 6f 20 69 6d 70 72 6f 76 65 20 69 74 2e 0a 20 20 20 20 .and.we.need.to.improve.it......
190a0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 6e 65 20 6f 70 74 69 6f 6e 73 20 77 6f 75 6c 64 20 62 ..........;;.One.options.would.b
190c0 65 20 74 6f 20 70 61 73 73 20 65 78 70 6c 69 63 69 74 6c 79 20 74 68 65 20 73 75 62 64 69 72 73 e.to.pass.explicitly.the.subdirs
190e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 63 6f 6d 6d 61 6e 64 73 20 6c 69 ...............;;.to.commands.li
19100 6b 65 20 60 67 69 74 20 6c 73 2d 66 69 6c 65 73 60 20 77 68 69 63 68 20 77 6f 75 6c 64 20 72 65 ke.`git.ls-files`.which.would.re
19120 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 65 73 20 70 61 74 68 turn...............;;.files.path
19140 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a s.relative.to.the.project.root..
19160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 20 20 20 20 20 ..............(cl-mapcan........
19180 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 ........(lambda.(dir)...........
191a0 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 20 20 .......(mapcar.(lambda.(f)......
191c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 ......................(file-rela
191e0 74 69 76 65 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 64 69 72 20 66 29 0a 20 20 20 20 20 20 20 tive-name.(concat.dir.f)........
19200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19220 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 ........project-root))..........
19240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d ................(projectile-dir-
19260 66 69 6c 65 73 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f files.dir)))................(pro
19280 6a 65 63 74 69 6c 65 2d 67 65 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 6f 72 69 65 73 20 jectile-get-project-directories.
192a0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 53 61 76 65 20 project-root))))........;;.Save.
192c0 74 68 65 20 63 61 63 68 65 64 20 6c 69 73 74 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 6f the.cached.list........(when.pro
192e0 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 28 jectile-enable-caching.........(
19300 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 projectile-cache-project.project
19320 2d 72 6f 6f 74 20 66 69 6c 65 73 29 29 29 0a 0a 20 20 20 20 3b 3b 3b 20 53 6f 72 74 69 6e 67 0a -root.files)))......;;;.Sorting.
19340 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 46 69 6c 65 73 20 63 61 6e 27 74 20 62 65 20 63 61 63 ....;;.....;;.Files.can't.be.cac
19360 68 65 64 20 69 6e 20 73 6f 72 74 65 64 20 6f 72 64 65 72 20 61 73 20 73 6f 6d 65 20 73 6f 72 74 hed.in.sorted.order.as.some.sort
19380 69 6e 67 20 73 63 68 65 6d 65 73 0a 20 20 20 20 3b 3b 20 72 65 71 75 69 72 65 20 64 79 6e 61 6d ing.schemes.....;;.require.dynam
193a0 69 63 20 64 61 74 61 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20 69 67 6e 6f 72 65 64 20 63 6f 6d ic.data...Sorting.is.ignored.com
193c0 70 6c 65 74 65 6c 79 20 77 68 65 6e 20 69 6e 0a 20 20 20 20 3b 3b 20 61 6c 69 65 6e 20 6d 6f 64 pletely.when.in.....;;.alien.mod
193e0 65 2e 0a 20 20 20 20 28 69 66 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 e......(if.(eq.projectile-indexi
19400 6e 67 2d 6d 65 74 68 6f 64 20 27 61 6c 69 65 6e 29 0a 20 20 20 20 20 20 20 20 66 69 6c 65 73 0a ng-method.'alien).........files.
19420 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 66 69 6c 65 73 20 66 69 6c ......(projectile-sort-files.fil
19440 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e es))))..(defun.projectile-curren
19460 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c t-project-files.()..."Return.a.l
19480 69 73 74 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 ist.of.the.files.in.the.current.
194a0 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d project."...(projectile-project-
194c0 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 files.(projectile-acquire-root))
194e0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 63 65 73 73 2d 63 75 72 )..(defun.projectile-process-cur
19500 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 61 63 74 69 6f 6e 29 0a 20 20 22 50 rent-project-files.(action)..."P
19520 72 6f 63 65 73 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c rocess.the.current.project's.fil
19540 65 73 20 75 73 69 6e 67 20 41 43 54 49 4f 4e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 es.using.ACTION."...(let.((proje
19560 63 74 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f ct-files.(projectile-current-pro
19580 6a 65 63 74 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 ject-files)).........(default-di
195a0 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 rectory.(projectile-project-root
195c0 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 69 6c 65 6e 61 6d 65 20 70 72 6f 6a 65 63 ))).....(dolist.(filename.projec
195e0 74 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 74 69 6f 6e 20 66 t-files).......(funcall.action.f
19600 69 6c 65 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 ilename))))..(defun.projectile-p
19620 72 6f 6a 65 63 74 2d 64 69 72 73 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 22 52 65 74 75 72 6e 20 roject-dirs.(project)..."Return.
19640 61 20 6c 69 73 74 20 6f 66 20 64 69 72 73 20 66 6f 72 20 50 52 4f 4a 45 43 54 2e 22 0a 20 20 28 a.list.of.dirs.for.PROJECT."...(
19660 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 28 64 65 6c 71 20 6e 69 6c 0a 20 20 20 20 20 20 20 delete-dups....(delq.nil........
19680 20 20 28 6d 61 70 63 61 72 20 23 27 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a ..(mapcar.#'file-name-directory.
196a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f .................(projectile-pro
196c0 6a 65 63 74 2d 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ject-files.project)))))..(defun.
196e0 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 73 20 projectile-current-project-dirs.
19700 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 64 69 72 73 20 66 6f 72 20 ()..."Return.a.list.of.dirs.for.
19720 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 the.current.project."...(project
19740 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 64 69 72 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 ile-project-dirs.(projectile-acq
19760 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d uire-root)))..(defun.projectile-
19780 67 65 74 2d 6f 74 68 65 72 2d 66 69 6c 65 73 20 28 66 69 6c 65 2d 6e 61 6d 65 20 26 6f 70 74 69 get-other-files.(file-name.&opti
197a0 6f 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 onal.flex-matching)..."Return.a.
197c0 6c 69 73 74 20 6f 66 20 6f 74 68 65 72 20 66 69 6c 65 73 20 66 6f 72 20 46 49 4c 45 2d 4e 41 4d list.of.other.files.for.FILE-NAM
197e0 45 2e 0a 54 68 65 20 6c 69 73 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 60 3a 72 65 6c 61 74 65 64 E..The.list.depends.on.`:related
19800 2d 66 69 6c 65 73 2d 66 6e 27 20 70 72 6f 6a 65 63 74 20 6f 70 74 69 6f 6e 20 61 6e 64 0a 60 70 -files-fn'.project.option.and.`p
19820 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 27 2e 20 20 46 6f rojectile-other-file-alist'...Fo
19840 72 20 74 68 65 20 6c 61 74 74 65 72 2c 20 46 4c 45 58 2d 4d 41 54 43 48 49 4e 47 20 63 61 6e 20 r.the.latter,.FLEX-MATCHING.can.
19860 62 65 20 75 73 65 64 0a 74 6f 20 6d 61 74 63 68 20 61 6e 79 20 62 61 73 65 6e 61 6d 65 2e 22 0a be.used.to.match.any.basename.".
19880 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d ..(if-let*.((plist.(projectile--
198a0 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 20 66 69 6c related-files-plist-by-kind..fil
198c0 65 2d 6e 61 6d 65 20 3a 6f 74 68 65 72 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 e-name.:other))).......(projecti
198e0 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 72 6f 6d 2d 70 6c 69 73 74 20 70 6c 69 le--related-files-from-plist.pli
19900 73 74 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6f 74 68 65 72 2d 65 78 74 65 6e st).....(projectile--other-exten
19920 73 69 6f 6e 2d 66 69 6c 65 73 20 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 sion-files.file-name............
19940 20 20 20 20 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 6f ............................(pro
19960 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 0a 20 jectile-current-project-files)..
19980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
199a0 20 20 20 20 20 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 ......flex-matching)))..(defun.p
199c0 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 20 28 26 6f 70 74 rojectile--find-other-file.(&opt
199e0 69 6f 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 20 66 66 2d 76 61 72 69 61 6e 74 29 0a ional.flex-matching.ff-variant).
19a00 20 20 22 53 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 74 68 65 .."Switch.between.files.with.the
19a20 20 73 61 6d 65 20 6e 61 6d 65 20 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 .same.name.but.different.extensi
19a40 6f 6e 73 2e 0a 57 69 74 68 20 46 4c 45 58 2d 4d 41 54 43 48 49 4e 47 2c 20 6d 61 74 63 68 20 61 ons..With.FLEX-MATCHING,.match.a
19a60 6e 79 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 62 61 73 65 20 6e ny.file.that.contains.the.base.n
19a80 61 6d 65 20 6f 66 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2e 0a 4f 74 68 65 72 20 66 69 6c 65 20 ame.of.current.file..Other.file.
19aa0 65 78 74 65 6e 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 20 77 69 74 extensions.can.be.customized.wit
19ac0 68 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 h.the.variable.`projectile-other
19ae0 2d 66 69 6c 65 2d 61 6c 69 73 74 27 2e 20 20 57 69 74 68 20 46 46 2d 56 41 52 49 41 4e 54 20 73 -file-alist'...With.FF-VARIANT.s
19b00 65 74 20 74 6f 20 61 20 64 65 66 75 6e 2c 20 75 73 65 20 74 68 61 74 0a 69 6e 73 74 65 61 64 20 et.to.a.defun,.use.that.instead.
19b20 6f 66 20 60 66 69 6e 64 2d 66 69 6c 65 27 2e 20 20 20 41 20 74 79 70 69 63 61 6c 20 65 78 61 6d of.`find-file'....A.typical.exam
19b40 70 6c 65 20 6f 66 20 73 75 63 68 20 61 20 64 65 66 75 6e 20 77 6f 75 6c 64 20 62 65 0a 60 66 69 ple.of.such.a.defun.would.be.`fi
19b60 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 27 20 6f 72 20 60 66 69 6e 64 2d 66 nd-file-other-window'.or.`find-f
19b80 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 27 22 0a 20 20 28 6c 65 74 20 28 28 66 66 20 28 6f ile-other-frame'"...(let.((ff.(o
19ba0 72 20 66 66 2d 76 61 72 69 61 6e 74 20 23 27 66 69 6e 64 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 r.ff-variant.#'find-file))......
19bc0 20 20 20 28 6f 74 68 65 72 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d ...(other-files.(projectile-get-
19be0 6f 74 68 65 72 2d 66 69 6c 65 73 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 66 other-files.(buffer-file-name).f
19c00 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 6f 74 68 65 72 2d 66 69 lex-matching))).....(if.other-fi
19c20 6c 65 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 2d 6e 61 6d 65 20 28 70 72 les.........(let.((file-name.(pr
19c40 6f 6a 65 63 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 ojectile--choose-from-candidates
19c60 20 6f 74 68 65 72 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 .other-files)))...........(funca
19c80 6c 6c 20 66 66 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 2d 6e 61 6d ll.ff.(expand-file-name.file-nam
19ca0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
19cc0 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f ..........(projectile-project-ro
19ce0 6f 74 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 6f 74 68 65 72 20 66 69 ot)))).......(error."No.other.fi
19d00 6c 65 20 66 6f 75 6e 64 22 29 29 29 29 0a 0a 0a 3b 3b 3b 20 49 6e 74 65 72 61 63 74 69 76 65 20 le.found"))))...;;;.Interactive.
19d20 63 6f 6d 6d 61 6e 64 73 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 commands.;;;###autoload.(defun.p
19d40 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 20 28 26 6f 70 74 69 rojectile-find-other-file.(&opti
19d60 6f 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 0a 20 20 22 53 77 69 74 63 68 20 62 65 onal.flex-matching)..."Switch.be
19d80 74 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 62 tween.files.with.the.same.name.b
19da0 75 74 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 57 69 74 68 20 46 4c ut.different.extensions..With.FL
19dc0 45 58 2d 4d 41 54 43 48 49 4e 47 2c 20 6d 61 74 63 68 20 61 6e 79 20 66 69 6c 65 20 74 68 61 74 EX-MATCHING,.match.any.file.that
19de0 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 62 61 73 65 20 6e 61 6d 65 20 6f 66 20 63 75 72 72 65 .contains.the.base.name.of.curre
19e00 6e 74 20 66 69 6c 65 2e 0a 4f 74 68 65 72 20 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 63 nt.file..Other.file.extensions.c
19e20 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 20 77 69 74 68 20 74 68 65 20 76 61 72 69 61 62 an.be.customized.with.the.variab
19e40 6c 65 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 27 le.`projectile-other-file-alist'
19e60 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 ."...(interactive."P")...(projec
19e80 74 69 6c 65 2d 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 20 66 6c 65 78 2d 6d 61 74 63 68 tile--find-other-file.flex-match
19ea0 69 6e 67 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f ing))..;;;###autoload.(defun.pro
19ec0 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 jectile-find-other-file-other-wi
19ee0 6e 64 6f 77 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 0a 20 ndow.(&optional.flex-matching)..
19f00 20 22 53 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 64 69 66 66 ."Switch.between.files.with.diff
19f20 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 20 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 erent.extensions.in.other.window
19f40 2e 0a 53 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 74 68 65 20 ..Switch.between.files.with.the.
19f60 73 61 6d 65 20 6e 61 6d 65 20 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f same.name.but.different.extensio
19f80 6e 73 20 69 6e 20 6f 74 68 65 72 0a 77 69 6e 64 6f 77 2e 20 20 57 69 74 68 20 46 4c 45 58 2d 4d ns.in.other.window...With.FLEX-M
19fa0 41 54 43 48 49 4e 47 2c 20 6d 61 74 63 68 20 61 6e 79 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e ATCHING,.match.any.file.that.con
19fc0 74 61 69 6e 73 20 74 68 65 20 62 61 73 65 20 6e 61 6d 65 20 6f 66 0a 63 75 72 72 65 6e 74 20 66 tains.the.base.name.of.current.f
19fe0 69 6c 65 2e 20 20 4f 74 68 65 72 20 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 63 61 6e 20 ile...Other.file.extensions.can.
1a000 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 20 77 69 74 68 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a be.customized.with.the.variable.
1a020 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 27 2e 22 0a `projectile-other-file-alist'.".
1a040 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c ..(interactive."P")...(projectil
1a060 65 2d 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 e--find-other-file.flex-matching
1a080 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 ................................
1a0a0 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 29 0a 0a 3b 3b 3b 23 #'find-file-other-window))..;;;#
1a0c0 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e ##autoload.(defun.projectile-fin
1a0e0 64 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 26 6f 70 74 69 6f d-other-file-other-frame.(&optio
1a100 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 0a 20 20 22 53 77 69 74 63 68 20 62 65 74 nal.flex-matching)..."Switch.bet
1a120 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 ween.files.with.different.extens
1a140 69 6f 6e 73 20 69 6e 20 6f 74 68 65 72 20 66 72 61 6d 65 2e 0a 53 77 69 74 63 68 20 62 65 74 77 ions.in.other.frame..Switch.betw
1a160 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 62 75 74 een.files.with.the.same.name.but
1a180 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 20 69 6e 20 6f 74 68 65 72 20 66 .different.extensions.in.other.f
1a1a0 72 61 6d 65 2e 0a 57 69 74 68 20 46 4c 45 58 2d 4d 41 54 43 48 49 4e 47 2c 20 6d 61 74 63 68 20 rame..With.FLEX-MATCHING,.match.
1a1c0 61 6e 79 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 62 61 73 65 20 any.file.that.contains.the.base.
1a1e0 6e 61 6d 65 20 6f 66 20 63 75 72 72 65 6e 74 0a 66 69 6c 65 2e 20 20 4f 74 68 65 72 20 66 69 6c name.of.current.file...Other.fil
1a200 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69 7a 65 64 20 77 e.extensions.can.be.customized.w
1a220 69 74 68 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 ith.the.variable.`projectile-oth
1a240 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 er-file-alist'."...(interactive.
1a260 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 "P")...(projectile--find-other-f
1a280 69 6c 65 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.flex-matching...............
1a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 .................#'find-file-oth
1a2c0 65 72 2d 66 72 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 er-frame))..(defun.projectile--f
1a2e0 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 66 69 6c 65 2d 6e ile-name-sans-extensions.(file-n
1a300 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 46 49 4c 45 2d 4e 41 4d 45 20 73 61 6e 73 20 61 6e ame)..."Return.FILE-NAME.sans.an
1a320 79 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 54 68 65 20 65 78 74 65 6e 73 69 6f 6e 73 2c 20 69 6e y.extensions..The.extensions,.in
1a340 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 61 72 65 20 77 68 61 74 20 66 6f 6c 6c 6f 77 73 20 74 68 .a.filename,.are.what.follows.th
1a360 65 20 66 69 72 73 74 20 27 2e 27 2c 20 77 69 74 68 20 74 68 65 0a 65 78 63 65 70 74 69 6f 6e 20 e.first.'.',.with.the.exception.
1a380 6f 66 20 61 20 6c 65 61 64 69 6e 67 20 27 2e 27 22 0a 20 20 28 73 65 74 71 20 66 69 6c 65 2d 6e of.a.leading.'.'"...(setq.file-n
1a3a0 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 ame.(file-name-nondirectory.file
1a3c0 2d 6e 61 6d 65 29 29 0a 20 20 28 73 75 62 73 74 72 69 6e 67 20 66 69 6c 65 2d 6e 61 6d 65 20 30 -name))...(substring.file-name.0
1a3e0 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 2e 2a 22 20 66 69 6c 65 2d 6e 61 6d 65 .(string-match."\\..*".file-name
1a400 20 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6c 65 2d 6e .1)))..(defun.projectile--file-n
1a420 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 52 65 ame-extensions.(file-name)..."Re
1a440 74 75 72 6e 20 46 49 4c 45 2d 4e 41 4d 45 27 73 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 54 68 65 turn.FILE-NAME's.extensions..The
1a460 20 65 78 74 65 6e 73 69 6f 6e 73 2c 20 69 6e 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 61 72 65 20 .extensions,.in.a.filename,.are.
1a480 77 68 61 74 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20 66 69 72 73 74 20 27 2e 27 2c 20 77 69 74 68 what.follows.the.first.'.',.with
1a4a0 20 74 68 65 0a 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 61 20 6c 65 61 64 69 6e 67 20 27 2e 27 22 .the.exception.of.a.leading.'.'"
1a4c0 0a 20 20 3b 3b 77 6f 75 6c 64 20 69 74 20 6d 61 6b 65 20 73 65 6e 73 65 20 74 6f 20 72 65 74 75 ...;;would.it.make.sense.to.retu
1a4e0 72 6e 20 6e 69 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e rn.nil.instead.of.an.empty.strin
1a500 67 20 69 66 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e 73 20 61 72 65 20 66 6f 75 6e 64 3f 0a 20 20 g.if.no.extensions.are.found?...
1a520 28 73 65 74 71 20 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 (setq.file-name.(file-name-nondi
1a540 72 65 63 74 6f 72 79 20 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 28 6c 65 74 20 28 65 78 74 65 rectory.file-name))...(let.(exte
1a560 6e 73 69 6f 6e 73 2d 73 74 61 72 74 29 0a 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 66 69 6c nsions-start).....(substring.fil
1a580 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 e-name................(if.(setq.
1a5a0 65 78 74 65 6e 73 69 6f 6e 73 2d 73 74 61 72 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 extensions-start.(string-match."
1a5c0 5c 5c 2e 2e 2a 22 20 66 69 6c 65 2d 6e 61 6d 65 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 \\..*".file-name.1))............
1a5e0 20 20 20 20 20 20 20 20 28 31 2b 20 65 78 74 65 6e 73 69 6f 6e 73 2d 73 74 61 72 74 29 0a 20 20 ........(1+.extensions-start)...
1a600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 66 69 6c 65 2d 6e 61 6d 65 ...............(length.file-name
1a620 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 73 73 6f 63 69 61 )))))..(defun.projectile-associa
1a640 74 65 64 2d 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 66 69 6c 65 2d 6e ted-file-name-extensions.(file-n
1a660 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d ame)..."Return.projectile-other-
1a680 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 61 73 73 6f 63 69 61 74 65 64 20 74 6f 20 46 49 file-extensions.associated.to.FI
1a6a0 4c 45 2d 4e 41 4d 45 27 73 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 49 66 20 6e 6f 20 61 73 73 6f LE-NAME's.extensions..If.no.asso
1a6c0 63 69 61 74 65 64 20 6f 74 68 65 72 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 66 6f 72 ciated.other-file-extensions.for
1a6e0 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 28 6e 65 73 74 65 64 29 20 65 78 74 65 6e 73 69 6f 6e .the.complete.(nested).extension
1a700 0a 61 72 65 20 66 6f 75 6e 64 2c 20 72 65 6d 6f 76 65 20 73 75 62 65 78 74 65 6e 73 69 6f 6e 73 .are.found,.remove.subextensions
1a720 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 27 73 20 65 78 74 65 6e 73 69 6f 6e 73 20 75 6e 74 69 .from.FILENAME's.extensions.unti
1a740 6c 20 61 20 6d 61 74 63 68 20 69 73 0a 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 75 l.a.match.is.found."...(let.((cu
1a760 72 72 65 6e 74 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 rrent-extensions.(projectile--fi
1a780 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f le-name-extensions.(file-name-no
1a7a0 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 ndirectory.file-name))).........
1a7c0 61 73 73 6f 63 69 61 74 65 64 2d 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 20 20 28 63 61 74 63 associated-extensions).....(catc
1a7e0 68 20 27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 73 74 72 69 h.'break.......(while.(not.(stri
1a800 6e 67 3d 20 22 22 20 63 75 72 72 65 6e 74 2d 65 78 74 65 6e 73 69 6f 6e 73 29 29 0a 20 20 20 20 ng=."".current-extensions)).....
1a820 20 20 20 20 28 69 66 20 28 73 65 74 71 20 61 73 73 6f 63 69 61 74 65 64 2d 65 78 74 65 6e 73 69 ....(if.(setq.associated-extensi
1a840 6f 6e 73 20 28 63 64 72 20 28 61 73 73 6f 63 20 63 75 72 72 65 6e 74 2d 65 78 74 65 6e 73 69 6f ons.(cdr.(assoc.current-extensio
1a860 6e 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 29 29 ns.projectile-other-file-alist))
1a880 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 61 73 73 6f ).............(throw.'break.asso
1a8a0 63 69 61 74 65 64 2d 65 78 74 65 6e 73 69 6f 6e 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 ciated-extensions)).........(set
1a8c0 71 20 63 75 72 72 65 6e 74 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 q.current-extensions.(projectile
1a8e0 2d 2d 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 63 75 72 72 65 6e 74 2d 65 --file-name-extensions.current-e
1a900 78 74 65 6e 73 69 6f 6e 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 xtensions))))))..(defun.projecti
1a920 6c 65 2d 2d 6f 74 68 65 72 2d 65 78 74 65 6e 73 69 6f 6e 2d 66 69 6c 65 73 20 28 63 75 72 72 65 le--other-extension-files.(curre
1a940 6e 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 6c 69 73 74 20 26 6f 70 74 69 6f nt-file.project-file-list.&optio
1a960 6e 61 6c 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 29 0a 20 20 22 4e 61 72 72 6f 77 20 74 6f 20 nal.flex-matching)..."Narrow.to.
1a980 66 69 6c 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 73 20 62 75 74 20 64 69 files.with.the.same.names.but.di
1a9a0 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 fferent.extensions..Returns.a.li
1a9c0 73 74 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 66 69 6c 65 73 20 66 6f 72 20 75 73 65 72 73 20 74 st.of.possible.files.for.users.t
1a9e0 6f 20 63 68 6f 6f 73 65 2e 0a 0a 57 69 74 68 20 46 4c 45 58 2d 4d 41 54 43 48 49 4e 47 2c 20 6d o.choose...With.FLEX-MATCHING,.m
1aa00 61 74 63 68 20 61 6e 79 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 atch.any.file.that.contains.the.
1aa20 62 61 73 65 20 6e 61 6d 65 20 6f 66 20 63 75 72 72 65 6e 74 20 66 69 6c 65 22 0a 20 20 28 6c 65 base.name.of.current.file"...(le
1aa40 74 2a 20 28 28 66 69 6c 65 2d 65 78 74 2d 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 t*.((file-ext-list.(projectile-a
1aa60 73 73 6f 63 69 61 74 65 64 2d 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 63 ssociated-file-name-extensions.c
1aa80 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 64 69 72 6e urrent-file))..........(fulldirn
1aaa0 61 6d 65 20 28 69 66 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 63 75 72 ame.(if.(file-name-directory.cur
1aac0 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rent-file)......................
1aae0 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 63 75 72 72 65 6e .....(file-name-directory.curren
1ab00 74 2d 66 69 6c 65 29 20 22 2e 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 6e 61 6d 65 t-file)."./"))..........(dirname
1ab20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 .(file-name-nondirectory.(direct
1ab40 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 75 6c 6c 64 69 72 6e 61 6d 65 29 29 29 0a 20 20 20 ory-file-name.fulldirname)))....
1ab60 20 20 20 20 20 20 28 66 69 6c 65 6e 61 6d 65 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 70 ......(filename.(regexp-quote.(p
1ab80 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 rojectile--file-name-sans-extens
1aba0 69 6f 6e 73 20 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 ions.current-file)))..........(f
1abc0 69 6c 65 2d 6c 69 73 74 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65 78 74 29 0a 20 ile-list.(mapcar.(lambda.(ext)..
1abe0 20 20 20 20 20 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 .............................(if
1ac00 20 66 6c 65 78 2d 6d 61 74 63 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .flex-matching..................
1ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2e 2a 22 20 66 69 .................(concat.".*".fi
1ac40 6c 65 6e 61 6d 65 20 22 2e 2a 22 20 22 5c 2e 22 20 65 78 74 20 22 5c 5c 27 22 29 0a 20 20 20 20 lename.".*"."\.".ext."\\'").....
1ac60 20 20 20 20 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 63 6f 6e ............................(con
1ac80 63 61 74 20 22 5e 22 20 66 69 6c 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cat."^".filename................
1aca0 20 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 6e 6c 65 73 73 .........................(unless
1acc0 20 28 65 71 75 61 6c 20 65 78 74 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(equal.ext."").................
1ace0 20 20 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 63 6f 6e 63 61 ..........................(conca
1ad00 74 20 22 5c 2e 22 20 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."\.".ext))....................
1ad20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 27 22 29 29 29 0a 20 20 ....................."\\'")))...
1ad40 20 20 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 65 2d 65 ..........................file-e
1ad60 78 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6e 64 69 64 61 74 65 73 20 28 xt-list))..........(candidates.(
1ad80 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cl-remove-if-not................
1ada0 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 0a 20 20 .......(lambda.(project-file)...
1adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 ......................(string-ma
1ade0 74 63 68 20 66 69 6c 65 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 tch.filename.project-file)).....
1ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 6c ..................project-file-l
1ae20 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 ist))..........(candidates......
1ae40 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 28 6d 61 70 63 61 72 .....(projectile-flatten.(mapcar
1ae60 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 ................................
1ae80 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (lambda.(file)..................
1aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f ................(cl-remove-if-no
1aec0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
1aee0 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 ....(lambda.(project-file)......
1af00 20 20 20 20 20 20 20 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 ...............................(
1af20 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 string-match.file...............
1af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1af60 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 62 61 73 65 20 70 72 6f 6a ....(concat.(file-name-base.proj
1af80 65 63 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ect-file).......................
1afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1afc0 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 ....(unless.(equal.(file-name-ex
1afe0 74 65 6e 73 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 20 6e 69 6c 29 0a 20 20 20 20 20 tension.project-file).nil)......
1b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1b020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 .......................(concat."
1b040 5c 2e 22 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 6a 65 63 74 \.".(file-name-extension.project
1b060 2d 66 69 6c 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -file)))))).....................
1b080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 64 69 64 61 74 65 73 29 29 0a 20 20 20 20 20 ..............candidates))......
1b0a0 20 20 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 65 2d 6c ..........................file-l
1b0c0 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 ist)))..........(candidates.....
1b0e0 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 ......(cl-remove-if-not.(lambda.
1b100 28 66 69 6c 65 29 20 28 6e 6f 74 20 28 62 61 63 6b 75 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 70 20 (file).(not.(backup-file-name-p.
1b120 66 69 6c 65 29 29 29 20 63 61 6e 64 69 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 file))).candidates))..........(c
1b140 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 72 74 20 28 63 6f andidates...........(cl-sort.(co
1b160 70 79 2d 73 65 71 75 65 6e 63 65 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 py-sequence.candidates).........
1b180 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 20 5f 29 0a 20 20 20 20 ...........(lambda.(file._).....
1b1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 .................(let.((candidat
1b1c0 65 2d 64 69 72 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 e-dirname.(file-name-nondirector
1b1e0 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d y.(directory-file-name.(file-nam
1b200 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 e-directory.file)))))...........
1b220 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 66 75 6c 6c .............(unless.(equal.full
1b240 64 69 72 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c dirname.(file-name-directory.fil
1b260 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 20 20 28 65 71 e))..........................(eq
1b280 75 61 6c 20 64 69 72 6e 61 6d 65 20 63 61 6e 64 69 64 61 74 65 2d 64 69 72 6e 61 6d 65 29 29 29 ual.dirname.candidate-dirname)))
1b2a0 29 29 29 29 0a 20 20 20 20 63 61 6e 64 69 64 61 74 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 )))).....candidates))..(defun.pr
1b2c0 6f 6a 65 63 74 69 6c 65 2d 73 65 6c 65 63 74 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 2d 66 ojectile-select-files.(project-f
1b2e0 69 6c 65 73 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 iles.&optional.invalidate-cache)
1b300 0a 20 20 22 53 65 6c 65 63 74 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 62 61 73 65 64 ..."Select.a.list.of.files.based
1b320 20 6f 6e 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 57 69 74 68 20 61 20 70 .on.filename.at.point...With.a.p
1b340 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 20 69 6e 76 61 6c refix.arg.INVALIDATE-CACHE.inval
1b360 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 22 0a 20 20 28 70 72 6f 6a idates.the.cache.first."...(proj
1b380 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 69 6e ectile-maybe-invalidate-cache.in
1b3a0 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 validate-cache)...(let*.((file.(
1b3c0 69 66 20 28 72 65 67 69 6f 6e 2d 61 63 74 69 76 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 if.(region-active-p)............
1b3e0 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 72 65 67 69 6f ........(buffer-substring.(regio
1b400 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 n-beginning).(region-end))......
1b420 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 ............(or.(thing-at-point.
1b440 27 66 69 6c 65 6e 61 6d 65 29 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 'filename)."")))..........(file.
1b460 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 3f 5c 5c 2e 2f 22 20 66 69 6c (if.(string-match."\\.?\\./".fil
1b480 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 e)....................(file-rela
1b4a0 74 69 76 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 66 69 6c 65 29 20 28 tive-name.(file-truename.file).(
1b4c0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 projectile-project-root)).......
1b4e0 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 ...........file))..........(file
1b500 73 20 28 69 66 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 s.(if.file.....................(
1b520 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cl-remove-if-not................
1b540 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 0a 20 20 20 ......(lambda.(project-file)....
1b560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 ....................(string-matc
1b580 68 20 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 h.file.project-file))...........
1b5a0 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 ...........project-files).......
1b5c0 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 66 69 6c 65 73 29 29 0a 0a ............nil))).....files))..
1b5e0 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 (defun.projectile--find-file-dwi
1b600 6d 20 28 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 26 6f 70 74 69 6f 6e 61 6c 20 66 66 m.(invalidate-cache.&optional.ff
1b620 2d 76 61 72 69 61 6e 74 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 -variant)..."Jump.to.a.project's
1b640 20 66 69 6c 65 73 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 61 73 65 64 20 6f 6e .files.using.completion.based.on
1b660 20 63 6f 6e 74 65 78 74 2e 0a 0a 57 69 74 68 20 61 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 .context...With.a.INVALIDATE-CAC
1b680 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 0a HE.invalidates.the.cache.first..
1b6a0 0a 57 69 74 68 20 46 46 2d 56 41 52 49 41 4e 54 20 73 65 74 20 74 6f 20 61 20 64 65 66 75 6e 2c .With.FF-VARIANT.set.to.a.defun,
1b6c0 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f 66 20 60 66 69 6e 64 2d 66 69 6c 65 27 .use.that.instead.of.`find-file'
1b6e0 2e 0a 41 20 74 79 70 69 63 61 6c 20 65 78 61 6d 70 6c 65 20 6f 66 20 73 75 63 68 20 61 20 64 65 ..A.typical.example.of.such.a.de
1b700 66 75 6e 20 77 6f 75 6c 64 20 62 65 20 60 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 fun.would.be.`find-file-other-wi
1b720 6e 64 6f 77 27 20 6f 72 0a 60 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 27 ndow'.or.`find-file-other-frame'
1b740 0a 0a 53 75 62 72 6f 75 74 69 6e 65 20 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e ..Subroutine.for.`projectile-fin
1b760 64 2d 66 69 6c 65 2d 64 77 69 6d 27 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e d-file-dwim'.and.`projectile-fin
1b780 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 27 22 0a 20 20 28 6c 65 d-file-dwim-other-window'"...(le
1b7a0 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 t*.((project-root.(projectile-ac
1b7c0 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 66 quire-root))..........(project-f
1b7e0 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 70 iles.(projectile-project-files.p
1b800 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 73 20 28 70 roject-root))..........(files.(p
1b820 72 6f 6a 65 63 74 69 6c 65 2d 73 65 6c 65 63 74 2d 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 2d 66 rojectile-select-files.project-f
1b840 69 6c 65 73 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 iles.invalidate-cache)).........
1b860 20 28 66 69 6c 65 20 28 63 6f 6e 64 20 28 28 3d 20 28 6c 65 6e 67 74 68 20 66 69 6c 65 73 29 20 .(file.(cond.((=.(length.files).
1b880 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 66 69 1).......................(car.fi
1b8a0 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 28 les))......................((>.(
1b8c0 6c 65 6e 67 74 68 20 66 69 6c 65 73 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 length.files).1)................
1b8e0 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 .......(projectile-completing-re
1b900 61 64 20 22 53 77 69 74 63 68 20 74 6f 3a 20 22 20 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 ad."Switch.to:.".files))........
1b920 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 20 20 20 20 20 20 ..............(t................
1b940 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 .......(projectile-completing-re
1b960 61 64 20 22 53 77 69 74 63 68 20 74 6f 3a 20 22 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 29 ad."Switch.to:.".project-files))
1b980 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 66 20 28 6f 72 20 66 66 2d 76 61 72 69 61 6e 74 20 23 ))..........(ff.(or.ff-variant.#
1b9a0 27 66 69 6e 64 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 66 20 28 65 'find-file))).....(funcall.ff.(e
1b9c0 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f xpand-file-name.file.project-roo
1b9e0 74 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 t)).....(run-hooks.'projectile-f
1ba00 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 ind-file-hook)))..;;;###autoload
1ba20 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 .(defun.projectile-find-file-dwi
1ba40 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 m.(&optional.invalidate-cache)..
1ba60 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 73 20 75 73 69 6e ."Jump.to.a.project's.files.usin
1ba80 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 61 73 65 64 20 6f 6e 20 63 6f 6e 74 65 78 74 2e 0a 0a g.completion.based.on.context...
1baa0 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 With.a.prefix.arg.INVALIDATE-CAC
1bac0 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 0a HE.invalidates.the.cache.first..
1bae0 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 50 72 6f 6a .If.point.is.on.a.filename,.Proj
1bb00 65 63 74 69 6c 65 20 66 69 72 73 74 20 74 72 69 65 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 ectile.first.tries.to.search.for
1bb20 20 74 68 61 74 0a 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 3a 0a 0a 2d 20 49 66 20 69 74 20 .that.file.in.project:..-.If.it.
1bb40 66 69 6e 64 73 20 6a 75 73 74 20 61 20 66 69 6c 65 2c 20 69 74 20 73 77 69 74 63 68 65 73 20 74 finds.just.a.file,.it.switches.t
1bb60 6f 20 74 68 61 74 20 66 69 6c 65 20 69 6e 73 74 61 6e 74 6c 79 2e 20 20 54 68 69 73 20 77 6f 72 o.that.file.instantly...This.wor
1bb80 6b 73 0a 65 76 65 6e 20 69 66 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 69 73 20 69 6e 63 6f 6d ks.even.if.the.filename.is.incom
1bba0 70 6c 65 74 65 2c 20 62 75 74 20 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 plete,.but.there's.only.a.single
1bbc0 20 66 69 6c 65 20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 68 61 .file.in.the.current.project.tha
1bbe0 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 6e 74 2e t.matches.the.filename.at.point.
1bc00 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 0a 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 ..For.example,.if.there's.only.a
1bc20 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 6e 61 6d 65 64 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f .single.file.named.\"projectile/
1bc40 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 5c 22 20 62 75 74 20 74 68 65 0a 63 75 72 72 65 6e 74 20 projectile.el\".but.the.current.
1bc60 66 69 6c 65 6e 61 6d 65 20 69 73 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 5c 22 20 filename.is.\"projectile/proj\".
1bc80 28 69 6e 63 6f 6d 70 6c 65 74 65 29 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 (incomplete),.`projectile-find-f
1bca0 69 6c 65 2d 64 77 69 6d 27 20 73 74 69 6c 6c 20 73 77 69 74 63 68 65 73 20 74 6f 20 5c 22 70 72 ile-dwim'.still.switches.to.\"pr
1bcc0 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 5c 22 0a 69 6d 6d 65 64 69 61 ojectile/projectile.el\".immedia
1bce0 74 65 6c 79 20 62 65 63 61 75 73 65 20 74 68 69 73 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 66 69 tely.because.this.is.the.only.fi
1bd00 6c 65 6e 61 6d 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 2e 0a 0a 2d 20 49 66 20 69 74 20 66 69 lename.that.matches...-.If.it.fi
1bd20 6e 64 73 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 2c 20 74 68 65 20 6c 69 73 74 20 69 73 nds.a.list.of.files,.the.list.is
1bd40 20 64 69 73 70 6c 61 79 65 64 20 66 6f 72 20 73 65 6c 65 63 74 69 6e 67 2e 20 20 41 20 6c 69 73 .displayed.for.selecting...A.lis
1bd60 74 0a 6f 66 20 66 69 6c 65 73 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 77 68 65 6e 20 61 20 66 t.of.files.is.displayed.when.a.f
1bd80 69 6c 65 6e 61 6d 65 20 61 70 70 65 61 72 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 69 6e ilename.appears.more.than.one.in
1bda0 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 6f 72 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 .the.project.or.the.filename.at.
1bdc0 70 6f 69 6e 74 20 69 73 20 61 20 70 72 65 66 69 78 20 6f 66 20 6d 6f 72 65 20 74 68 61 6e 20 74 point.is.a.prefix.of.more.than.t
1bde0 77 6f 20 66 69 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 0a 46 6f 72 20 65 78 61 6d 70 wo.files.in.a.project..For.examp
1be00 6c 65 2c 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 le,.if.`projectile-find-file-dwi
1be20 6d 27 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 6e 20 61 20 66 69 6c 65 70 61 74 68 20 6c 69 6b m'.is.executed.on.a.filepath.lik
1be40 65 0a 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 5c 22 2c 20 69 74 20 6c 69 73 74 73 20 74 68 65 20 e.\"projectile/\",.it.lists.the.
1be60 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 20 69 content.of.that.directory...If.i
1be80 74 20 69 73 20 65 78 65 63 75 74 65 64 0a 6f 6e 20 61 20 70 61 72 74 69 61 6c 20 66 69 6c 65 6e t.is.executed.on.a.partial.filen
1bea0 61 6d 65 20 6c 69 6b 65 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 61 5c 22 2c 20 61 20 6c 69 73 ame.like.\"projectile/a\",.a.lis
1bec0 74 20 6f 66 20 66 69 6c 65 73 20 77 69 74 68 20 63 68 61 72 61 63 74 65 72 0a 5c 22 61 5c 22 20 t.of.files.with.character.\"a\".
1bee0 69 6e 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 70 72 65 73 65 6e 74 65 64 2e 0a in.that.directory.is.presented..
1bf00 0a 2d 20 49 66 20 69 74 20 66 69 6e 64 73 20 6e 6f 74 68 69 6e 67 2c 20 64 69 73 70 6c 61 79 20 .-.If.it.finds.nothing,.display.
1bf20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 70 72 6f 6a 65 63 74 20 66 a.list.of.all.files.in.project.f
1bf40 6f 72 20 73 65 6c 65 63 74 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 or.selecting."...(interactive."P
1bf60 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d ")...(projectile--find-file-dwim
1bf80 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c .invalidate-cache))..;;;###autol
1bfa0 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d oad.(defun.projectile-find-file-
1bfc0 64 77 69 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 dwim-other-window.(&optional.inv
1bfe0 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a alidate-cache)..."Jump.to.a.proj
1c000 65 63 74 27 73 20 66 69 6c 65 73 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 61 73 ect's.files.using.completion.bas
1c020 65 64 20 6f 6e 20 63 6f 6e 74 65 78 74 20 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 0a 0a ed.on.context.in.other.window...
1c040 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 With.a.prefix.arg.INVALIDATE-CAC
1c060 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 0a HE.invalidates.the.cache.first..
1c080 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 50 72 6f 6a .If.point.is.on.a.filename,.Proj
1c0a0 65 63 74 69 6c 65 20 66 69 72 73 74 20 74 72 69 65 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 ectile.first.tries.to.search.for
1c0c0 20 74 68 61 74 0a 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 3a 0a 0a 2d 20 49 66 20 69 74 20 .that.file.in.project:..-.If.it.
1c0e0 66 69 6e 64 73 20 6a 75 73 74 20 61 20 66 69 6c 65 2c 20 69 74 20 73 77 69 74 63 68 65 73 20 74 finds.just.a.file,.it.switches.t
1c100 6f 20 74 68 61 74 20 66 69 6c 65 20 69 6e 73 74 61 6e 74 6c 79 2e 20 20 54 68 69 73 20 77 6f 72 o.that.file.instantly...This.wor
1c120 6b 73 0a 65 76 65 6e 20 69 66 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 69 73 20 69 6e 63 6f 6d ks.even.if.the.filename.is.incom
1c140 70 6c 65 74 65 2c 20 62 75 74 20 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 plete,.but.there's.only.a.single
1c160 20 66 69 6c 65 20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 68 61 .file.in.the.current.project.tha
1c180 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 6e 74 2e t.matches.the.filename.at.point.
1c1a0 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 0a 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 ..For.example,.if.there's.only.a
1c1c0 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 6e 61 6d 65 64 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f .single.file.named.\"projectile/
1c1e0 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 5c 22 20 62 75 74 20 74 68 65 0a 63 75 72 72 65 6e 74 20 projectile.el\".but.the.current.
1c200 66 69 6c 65 6e 61 6d 65 20 69 73 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 5c 22 20 filename.is.\"projectile/proj\".
1c220 28 69 6e 63 6f 6d 70 6c 65 74 65 29 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 (incomplete),.`projectile-find-f
1c240 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 27 20 73 74 69 6c 6c 20 73 77 69 ile-dwim-other-window'.still.swi
1c260 74 63 68 65 73 20 74 6f 0a 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 65 63 74 69 6c 65 tches.to.\"projectile/projectile
1c280 2e 65 6c 5c 22 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 62 65 63 61 75 73 65 20 74 68 69 73 20 69 .el\".immediately.because.this.i
1c2a0 73 20 74 68 65 20 6f 6e 6c 79 20 66 69 6c 65 6e 61 6d 65 0a 74 68 61 74 20 6d 61 74 63 68 65 73 s.the.only.filename.that.matches
1c2c0 2e 0a 0a 2d 20 49 66 20 69 74 20 66 69 6e 64 73 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 ...-.If.it.finds.a.list.of.files
1c2e0 2c 20 74 68 65 20 6c 69 73 74 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 66 6f 72 20 73 65 6c 65 ,.the.list.is.displayed.for.sele
1c300 63 74 69 6e 67 2e 20 20 41 20 6c 69 73 74 0a 6f 66 20 66 69 6c 65 73 20 69 73 20 64 69 73 70 6c cting...A.list.of.files.is.displ
1c320 61 79 65 64 20 77 68 65 6e 20 61 20 66 69 6c 65 6e 61 6d 65 20 61 70 70 65 61 72 73 20 6d 6f 72 ayed.when.a.filename.appears.mor
1c340 65 20 74 68 61 6e 20 6f 6e 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 6f 72 20 74 68 65 e.than.one.in.the.project.or.the
1c360 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 6e 74 20 69 73 20 61 20 70 72 65 66 69 78 20 6f .filename.at.point.is.a.prefix.o
1c380 66 20 6d 6f 72 65 20 74 68 61 6e 20 74 77 6f 20 66 69 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 f.more.than.two.files.in.a.proje
1c3a0 63 74 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d ct..For.example,.if.`projectile-
1c3c0 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 27 20 69 73 20 find-file-dwim-other-window'.is.
1c3e0 65 78 65 63 75 74 65 64 20 6f 6e 20 61 0a 66 69 6c 65 70 61 74 68 20 6c 69 6b 65 20 5c 22 70 72 executed.on.a.filepath.like.\"pr
1c400 6f 6a 65 63 74 69 6c 65 2f 5c 22 2c 20 69 74 20 6c 69 73 74 73 20 74 68 65 20 63 6f 6e 74 65 6e ojectile/\",.it.lists.the.conten
1c420 74 20 6f 66 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 2e 20 20 49 66 0a 69 74 20 69 73 20 65 t.of.that.directory...If.it.is.e
1c440 78 65 63 75 74 65 64 20 6f 6e 20 61 20 70 61 72 74 69 61 6c 20 66 69 6c 65 6e 61 6d 65 20 6c 69 xecuted.on.a.partial.filename.li
1c460 6b 65 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 61 5c 22 2c 20 61 20 6c 69 73 74 20 6f 66 20 66 ke.\"projectile/a\",.a.list.of.f
1c480 69 6c 65 73 0a 77 69 74 68 20 63 68 61 72 61 63 74 65 72 20 5c 22 61 5c 22 20 69 6e 20 74 68 61 iles.with.character.\"a\".in.tha
1c4a0 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 70 72 65 73 65 6e 74 65 64 2e 0a 0a 2d 20 49 66 20 t.directory.is.presented...-.If.
1c4c0 69 74 20 66 69 6e 64 73 20 6e 6f 74 68 69 6e 67 2c 20 64 69 73 70 6c 61 79 20 61 20 6c 69 73 74 it.finds.nothing,.display.a.list
1c4e0 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 70 72 6f 6a 65 63 74 20 66 6f 72 20 73 65 6c .of.all.files.in.project.for.sel
1c500 65 63 74 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 ecting."...(interactive."P")...(
1c520 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 20 69 6e 76 61 6c projectile--find-file-dwim.inval
1c540 69 64 61 74 65 2d 63 61 63 68 65 20 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 idate-cache.#'find-file-other-wi
1c560 6e 64 6f 77 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 ndow))..;;;###autoload.(defun.pr
1c580 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d 66 72 ojectile-find-file-dwim-other-fr
1c5a0 61 6d 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 ame.(&optional.invalidate-cache)
1c5c0 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 73 20 75 73 ..."Jump.to.a.project's.files.us
1c5e0 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 62 61 73 65 64 20 6f 6e 20 63 6f 6e 74 65 78 74 20 ing.completion.based.on.context.
1c600 69 6e 20 6f 74 68 65 72 20 66 72 61 6d 65 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 in.other.frame...With.a.prefix.a
1c620 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 rg.INVALIDATE-CACHE.invalidates.
1c640 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 0a 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e the.cache.first...If.point.is.on
1c660 20 61 20 66 69 6c 65 6e 61 6d 65 2c 20 50 72 6f 6a 65 63 74 69 6c 65 20 66 69 72 73 74 20 74 72 .a.filename,.Projectile.first.tr
1c680 69 65 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 20 74 68 61 74 0a 66 69 6c 65 20 69 6e 20 70 ies.to.search.for.that.file.in.p
1c6a0 72 6f 6a 65 63 74 3a 0a 0a 2d 20 49 66 20 69 74 20 66 69 6e 64 73 20 6a 75 73 74 20 61 20 66 69 roject:..-.If.it.finds.just.a.fi
1c6c0 6c 65 2c 20 69 74 20 73 77 69 74 63 68 65 73 20 74 6f 20 74 68 61 74 20 66 69 6c 65 20 69 6e 73 le,.it.switches.to.that.file.ins
1c6e0 74 61 6e 74 6c 79 2e 20 20 54 68 69 73 20 77 6f 72 6b 73 0a 65 76 65 6e 20 69 66 20 74 68 65 20 tantly...This.works.even.if.the.
1c700 66 69 6c 65 6e 61 6d 65 20 69 73 20 69 6e 63 6f 6d 70 6c 65 74 65 2c 20 62 75 74 20 74 68 65 72 filename.is.incomplete,.but.ther
1c720 65 27 73 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 69 6e 20 74 68 65 0a 63 75 e's.only.a.single.file.in.the.cu
1c740 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 66 rrent.project.that.matches.the.f
1c760 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 ilename.at.point...For.example,.
1c780 69 66 0a 74 68 65 72 65 27 73 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 20 66 69 6c 65 20 6e 61 if.there's.only.a.single.file.na
1c7a0 6d 65 64 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 5c 22 med.\"projectile/projectile.el\"
1c7c0 20 62 75 74 20 74 68 65 0a 63 75 72 72 65 6e 74 20 66 69 6c 65 6e 61 6d 65 20 69 73 20 5c 22 70 .but.the.current.filename.is.\"p
1c7e0 72 6f 6a 65 63 74 69 6c 65 2f 70 72 6f 6a 5c 22 20 28 69 6e 63 6f 6d 70 6c 65 74 65 29 2c 0a 60 rojectile/proj\".(incomplete),.`
1c800 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d projectile-find-file-dwim-other-
1c820 66 72 61 6d 65 27 20 73 74 69 6c 6c 20 73 77 69 74 63 68 65 73 20 74 6f 0a 5c 22 70 72 6f 6a 65 frame'.still.switches.to.\"proje
1c840 63 74 69 6c 65 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 5c 22 20 69 6d 6d 65 64 69 61 74 65 6c ctile/projectile.el\".immediatel
1c860 79 20 62 65 63 61 75 73 65 20 74 68 69 73 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 66 69 6c 65 6e y.because.this.is.the.only.filen
1c880 61 6d 65 0a 74 68 61 74 20 6d 61 74 63 68 65 73 2e 0a 0a 2d 20 49 66 20 69 74 20 66 69 6e 64 73 ame.that.matches...-.If.it.finds
1c8a0 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 2c 20 74 68 65 20 6c 69 73 74 20 69 73 20 64 69 .a.list.of.files,.the.list.is.di
1c8c0 73 70 6c 61 79 65 64 20 66 6f 72 20 73 65 6c 65 63 74 69 6e 67 2e 20 20 41 20 6c 69 73 74 0a 6f splayed.for.selecting...A.list.o
1c8e0 66 20 66 69 6c 65 73 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 77 68 65 6e 20 61 20 66 69 6c 65 f.files.is.displayed.when.a.file
1c900 6e 61 6d 65 20 61 70 70 65 61 72 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 69 6e 20 74 68 name.appears.more.than.one.in.th
1c920 65 20 70 72 6f 6a 65 63 74 0a 6f 72 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 74 20 70 6f 69 e.project.or.the.filename.at.poi
1c940 6e 74 20 69 73 20 61 20 70 72 65 66 69 78 20 6f 66 20 6d 6f 72 65 20 74 68 61 6e 20 74 77 6f 20 nt.is.a.prefix.of.more.than.two.
1c960 66 69 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c files.in.a.project..For.example,
1c980 20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f .if.`projectile-find-file-dwim-o
1c9a0 74 68 65 72 2d 66 72 61 6d 65 27 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 6e 20 61 0a 66 69 6c ther-frame'.is.executed.on.a.fil
1c9c0 65 70 61 74 68 20 6c 69 6b 65 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 5c 22 2c 20 69 74 20 6c epath.like.\"projectile/\",.it.l
1c9e0 69 73 74 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 6f 66 20 74 68 61 74 20 64 69 72 65 63 74 6f ists.the.content.of.that.directo
1ca00 72 79 2e 20 20 49 66 0a 69 74 20 69 73 20 65 78 65 63 75 74 65 64 20 6f 6e 20 61 20 70 61 72 74 ry...If.it.is.executed.on.a.part
1ca20 69 61 6c 20 66 69 6c 65 6e 61 6d 65 20 6c 69 6b 65 20 5c 22 70 72 6f 6a 65 63 74 69 6c 65 2f 61 ial.filename.like.\"projectile/a
1ca40 5c 22 2c 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 0a 77 69 74 68 20 63 68 61 72 61 63 74 \",.a.list.of.files.with.charact
1ca60 65 72 20 5c 22 61 5c 22 20 69 6e 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 70 72 er.\"a\".in.that.directory.is.pr
1ca80 65 73 65 6e 74 65 64 2e 0a 0a 2d 20 49 66 20 69 74 20 66 69 6e 64 73 20 6e 6f 74 68 69 6e 67 2c esented...-.If.it.finds.nothing,
1caa0 20 64 69 73 70 6c 61 79 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 .display.a.list.of.all.files.in.
1cac0 70 72 6f 6a 65 63 74 20 66 6f 72 20 73 65 6c 65 63 74 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 project.for.selecting."...(inter
1cae0 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d active."P")...(projectile--find-
1cb00 66 69 6c 65 2d 64 77 69 6d 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 23 27 66 69 6e file-dwim.invalidate-cache.#'fin
1cb20 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f d-file-other-frame))..(defun.pro
1cb40 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 28 69 6e 76 61 6c 69 64 61 74 65 2d 63 jectile--find-file.(invalidate-c
1cb60 61 63 68 65 20 26 6f 70 74 69 6f 6e 61 6c 20 66 66 2d 76 61 72 69 61 6e 74 29 0a 20 20 22 4a 75 ache.&optional.ff-variant)..."Ju
1cb80 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 20 75 73 69 6e 67 20 63 6f 6d mp.to.a.project's.file.using.com
1cba0 70 6c 65 74 69 6f 6e 2e 0a 57 69 74 68 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 20 69 pletion..With.INVALIDATE-CACHE.i
1cbc0 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 20 20 57 69 74 nvalidates.the.cache.first...Wit
1cbe0 68 20 46 46 2d 56 41 52 49 41 4e 54 20 73 65 74 20 74 6f 20 61 0a 64 65 66 75 6e 2c 20 75 73 65 h.FF-VARIANT.set.to.a.defun,.use
1cc00 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f 66 20 60 66 69 6e 64 2d 66 69 6c 65 27 2e 20 20 20 .that.instead.of.`find-file'....
1cc20 41 20 74 79 70 69 63 61 6c 20 65 78 61 6d 70 6c 65 20 6f 66 20 73 75 63 68 20 61 20 64 65 66 75 A.typical.example.of.such.a.defu
1cc40 6e 0a 77 6f 75 6c 64 20 62 65 20 60 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 n.would.be.`find-file-other-wind
1cc60 6f 77 27 20 6f 72 20 60 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 27 22 0a ow'.or.`find-file-other-frame'".
1cc80 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c ..(interactive."P")...(projectil
1cca0 65 2d 6d 61 79 62 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 69 6e 76 61 6c 69 64 e-maybe-invalidate-cache.invalid
1ccc0 61 74 65 2d 63 61 63 68 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f ate-cache)...(let*.((project-roo
1cce0 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 t.(projectile-acquire-root))....
1cd00 20 20 20 20 20 20 28 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 ......(file.(projectile-completi
1cd20 6e 67 2d 72 65 61 64 20 22 46 69 6e 64 20 66 69 6c 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 ng-read."Find.file:."...........
1cd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1cd60 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 70 72 6f 6a 65 .(projectile-project-files.proje
1cd80 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 66 20 28 6f 72 20 66 66 2d 76 ct-root)))..........(ff.(or.ff-v
1cda0 61 72 69 61 6e 74 20 23 27 66 69 6e 64 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 ariant.#'find-file))).....(when.
1cdc0 66 69 6c 65 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 66 20 28 65 78 70 61 6e 64 2d 66 file.......(funcall.ff.(expand-f
1cde0 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 ile-name.file.project-root))....
1ce00 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 ...(run-hooks.'projectile-find-f
1ce20 69 6c 65 2d 68 6f 6f 6b 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 ile-hook))))..;;;###autoload.(de
1ce40 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 20 28 26 6f 70 74 69 6f fun.projectile-find-file.(&optio
1ce60 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 6f nal.invalidate-cache)..."Jump.to
1ce80 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 .a.project's.file.using.completi
1cea0 6f 6e 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 on..With.a.prefix.arg.INVALIDATE
1cec0 2d 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 -CACHE.invalidates.the.cache.fir
1cee0 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a st."...(interactive."P")...(proj
1cf00 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 ectile--find-file.invalidate-cac
1cf20 68 65 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a he))..;;;###autoload.(defun.proj
1cf40 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 26 ectile-find-file-other-window.(&
1cf60 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 optional.invalidate-cache)..."Ju
1cf80 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 20 75 73 69 6e 67 20 63 6f 6d mp.to.a.project's.file.using.com
1cfa0 70 6c 65 74 69 6f 6e 20 61 6e 64 20 73 68 6f 77 20 69 74 20 69 6e 20 61 6e 6f 74 68 65 72 20 77 pletion.and.show.it.in.another.w
1cfc0 69 6e 64 6f 77 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 indow...With.a.prefix.arg.INVALI
1cfe0 44 41 54 45 2d 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 DATE-CACHE.invalidates.the.cache
1d000 20 66 69 72 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 .first."...(interactive."P")...(
1d020 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 61 74 65 projectile--find-file.invalidate
1d040 2d 63 61 63 68 65 20 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 -cache.#'find-file-other-window)
1d060 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 )..;;;###autoload.(defun.project
1d080 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 26 6f 70 74 69 ile-find-file-other-frame.(&opti
1d0a0 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 onal.invalidate-cache)..."Jump.t
1d0c0 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 o.a.project's.file.using.complet
1d0e0 69 6f 6e 20 61 6e 64 20 73 68 6f 77 20 69 74 20 69 6e 20 61 6e 6f 74 68 65 72 20 66 72 61 6d 65 ion.and.show.it.in.another.frame
1d100 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d ...With.a.prefix.arg.INVALIDATE-
1d120 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 CACHE.invalidates.the.cache.firs
1d140 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 t."...(interactive."P")...(proje
1d160 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 ctile--find-file.invalidate-cach
1d180 65 20 23 27 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 29 0a 0a 3b 3b 3b e.#'find-file-other-frame))..;;;
1d1a0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f ###autoload.(defun.projectile-to
1d1c0 67 67 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 28 29 0a 20 20 22 54 6f 67 ggle-project-read-only.()..."Tog
1d1e0 67 6c 65 20 70 72 6f 6a 65 63 74 20 72 65 61 64 20 6f 6e 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 gle.project.read.only."...(inter
1d200 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e active)...(let.((inhibit-read-on
1d220 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 28 76 61 6c 20 28 6e 6f 74 20 62 75 66 66 65 72 2d 72 ly.t).........(val.(not.buffer-r
1d240 65 61 64 2d 6f 6e 6c 79 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 ead-only)).........(default-dire
1d260 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 ctory.(projectile-acquire-root))
1d280 29 0a 20 20 20 20 28 61 64 64 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 6e 69 ).....(add-dir-local-variable.ni
1d2a0 6c 20 27 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 76 61 6c 29 0a 20 20 20 20 28 73 61 l.'buffer-read-only.val).....(sa
1d2c0 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 ve-buffer).....(kill-buffer)....
1d2e0 20 28 77 68 65 6e 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 72 .(when.buffer-file-name.......(r
1d300 65 61 64 2d 6f 6e 6c 79 2d 6d 6f 64 65 20 28 69 66 20 76 61 6c 20 2b 31 20 2d 31 29 29 0a 20 20 ead-only-mode.(if.val.+1.-1))...
1d320 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 5b 25 73 5d 20 72 65 61 64 2d 6f 6e 6c 79 2d 6d 6f 64 ....(message."[%s].read-only-mod
1d340 65 20 69 73 20 25 73 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d e.is.%s".(projectile-project-nam
1d360 65 29 20 28 69 66 20 76 61 6c 20 22 6f 6e 22 20 22 6f 66 66 22 29 29 29 29 29 0a 0a 3b 3b 3b 23 e).(if.val."on"."off")))))..;;;#
1d380 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 ##autoload.(defun.projectile-add
1d3a0 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 28 6d 6f 64 65 20 76 61 72 69 61 62 -dir-local-variable.(mode.variab
1d3c0 6c 65 20 76 61 6c 75 65 29 0a 20 20 22 52 75 6e 20 60 61 64 64 2d 64 69 72 2d 6c 6f 63 61 6c 2d le.value)..."Run.`add-dir-local-
1d3e0 76 61 72 69 61 62 6c 65 27 20 77 69 74 68 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 20 69 6e variable'.with..dir-locals.el.in
1d400 20 72 6f 6f 74 20 6f 66 20 70 72 6f 6a 65 63 74 2e 0a 0a 50 61 72 61 6d 65 74 65 72 73 20 4d 4f .root.of.project...Parameters.MO
1d420 44 45 20 56 41 52 49 41 42 4c 45 20 56 41 4c 55 45 20 61 72 65 20 70 61 73 73 65 64 20 64 69 72 DE.VARIABLE.VALUE.are.passed.dir
1d440 65 63 74 6c 79 20 74 6f 20 60 61 64 64 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 ectly.to.`add-dir-local-variable
1d460 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 '."...(let.((inhibit-read-only.t
1d480 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 ).........(default-directory.(pr
1d4a0 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 73 61 ojectile-acquire-root))).....(sa
1d4c0 76 65 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 28 61 64 64 2d 64 69 ve-selected-window.......(add-di
1d4e0 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 6d 6f 64 65 20 76 61 72 69 61 62 6c 65 20 76 r-local-variable.mode.variable.v
1d500 61 6c 75 65 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 alue).......(save-buffer).......
1d520 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 (kill-buffer))))..;;;###autoload
1d540 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 6c 65 74 65 2d 64 69 72 2d 6c 6f .(defun.projectile-delete-dir-lo
1d560 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 28 6d 6f 64 65 20 76 61 72 69 61 62 6c 65 29 0a 20 20 22 cal-variable.(mode.variable)..."
1d580 52 75 6e 20 60 64 65 6c 65 74 65 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 27 20 Run.`delete-dir-local-variable'.
1d5a0 77 69 74 68 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 20 69 6e 20 72 6f 6f 74 20 6f 66 20 70 with..dir-locals.el.in.root.of.p
1d5c0 72 6f 6a 65 63 74 2e 0a 0a 50 61 72 61 6d 65 74 65 72 73 20 4d 4f 44 45 20 56 41 52 49 41 42 4c roject...Parameters.MODE.VARIABL
1d5e0 45 20 56 41 4c 55 45 20 61 72 65 20 70 61 73 73 65 64 20 64 69 72 65 63 74 6c 79 20 74 6f 0a 60 E.VALUE.are.passed.directly.to.`
1d600 64 65 6c 65 74 65 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 27 2e 22 0a 20 20 28 delete-dir-local-variable'."...(
1d620 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 let.((inhibit-read-only.t)......
1d640 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c ...(default-directory.(projectil
1d660 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 73 65 6c 65 e-acquire-root))).....(save-sele
1d680 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64 69 72 2d 6c 6f cted-window.......(delete-dir-lo
1d6a0 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 6d 6f 64 65 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 cal-variable.mode.variable).....
1d6c0 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 ..(save-buffer).......(kill-buff
1d6e0 65 72 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 53 6f 72 74 69 6e 67 20 70 72 6f 6a 65 63 74 20 66 er))))....;;;;.Sorting.project.f
1d700 69 6c 65 73 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 66 69 6c 65 iles.(defun.projectile-sort-file
1d720 73 20 28 66 69 6c 65 73 29 0a 20 20 22 53 6f 72 74 20 46 49 4c 45 53 20 61 63 63 6f 72 64 69 6e s.(files)..."Sort.FILES.accordin
1d740 67 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 6f 72 64 65 72 27 2e 22 0a 20 g.to.`projectile-sort-order'."..
1d760 20 28 63 6c 2d 63 61 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 6f 72 64 65 72 0a .(cl-case.projectile-sort-order.
1d780 20 20 20 20 28 64 65 66 61 75 6c 74 20 66 69 6c 65 73 29 0a 20 20 20 20 28 72 65 63 65 6e 74 66 ....(default.files).....(recentf
1d7a0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 62 79 2d 72 65 63 65 6e 74 66 2d 66 69 72 .(projectile-sort-by-recentf-fir
1d7c0 73 74 20 66 69 6c 65 73 29 29 0a 20 20 20 20 28 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 65 20 st.files)).....(recently-active.
1d7e0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 62 79 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 (projectile-sort-by-recently-act
1d800 69 76 65 2d 66 69 72 73 74 20 66 69 6c 65 73 29 29 0a 20 20 20 20 28 6d 6f 64 69 66 69 63 61 74 ive-first.files)).....(modificat
1d820 69 6f 6e 2d 74 69 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 62 79 2d 6d 6f 64 ion-time.(projectile-sort-by-mod
1d840 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 66 69 6c 65 73 29 29 0a 20 20 20 20 28 61 63 63 65 ification-time.files)).....(acce
1d860 73 73 2d 74 69 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 62 79 2d 61 63 63 65 ss-time.(projectile-sort-by-acce
1d880 73 73 2d 74 69 6d 65 20 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 ss-time.files))))..(defun.projec
1d8a0 74 69 6c 65 2d 73 6f 72 74 2d 62 79 2d 72 65 63 65 6e 74 66 2d 66 69 72 73 74 20 28 66 69 6c 65 tile-sort-by-recentf-first.(file
1d8c0 73 29 0a 20 20 22 53 6f 72 74 20 46 49 4c 45 53 20 62 79 20 61 20 72 65 63 65 6e 74 20 66 69 72 s)..."Sort.FILES.by.a.recent.fir
1d8e0 73 74 20 73 63 68 65 6d 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 65 63 st.scheme."...(let.((project-rec
1d900 65 6e 74 66 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 2d 66 entf-files.(projectile-recentf-f
1d920 69 6c 65 73 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 70 72 6f 6a 65 63 74 2d 72 65 63 65 iles))).....(append.project-rece
1d940 6e 74 66 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c ntf-files.............(projectil
1d960 65 2d 64 69 66 66 65 72 65 6e 63 65 20 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 2d 72 65 63 65 6e e-difference.files.project-recen
1d980 74 66 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d tf-files))))..(defun.projectile-
1d9a0 73 6f 72 74 2d 62 79 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 65 2d 66 69 72 73 74 20 28 66 sort-by-recently-active-first.(f
1d9c0 69 6c 65 73 29 0a 20 20 22 53 6f 72 74 20 46 49 4c 45 53 20 62 79 20 6d 6f 73 74 20 72 65 63 65 iles)..."Sort.FILES.by.most.rece
1d9e0 6e 74 6c 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 73 20 6f 72 20 6f 70 65 6e 65 64 20 66 69 ntly.active.buffers.or.opened.fi
1da00 6c 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 65 63 65 6e 74 6c 79 2d les."...(let.((project-recently-
1da20 61 63 74 69 76 65 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 6c active-files.(projectile-recentl
1da40 79 2d 61 63 74 69 76 65 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 20 70 72 y-active-files))).....(append.pr
1da60 6f 6a 65 63 74 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 65 2d 66 69 6c 65 73 0a 20 20 20 20 oject-recently-active-files.....
1da80 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 20 66 ........(projectile-difference.f
1daa0 69 6c 65 73 20 70 72 6f 6a 65 63 74 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 65 2d 66 69 6c iles.project-recently-active-fil
1dac0 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 62 es))))..(defun.projectile-sort-b
1dae0 79 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 28 66 69 6c 65 73 29 0a 20 20 22 53 y-modification-time.(files)..."S
1db00 6f 72 74 20 46 49 4c 45 53 20 62 79 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 69 6d 65 2e 22 ort.FILES.by.modification.time."
1db20 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f ...(let.((default-directory.(pro
1db40 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 63 6c 2d jectile-project-root))).....(cl-
1db60 73 6f 72 74 0a 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 66 69 6c 65 73 29 0a sort......(copy-sequence.files).
1db80 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 20 20 20 .....(lambda.(file1.file2)......
1dba0 20 20 28 6c 65 74 20 28 28 66 69 6c 65 31 2d 6d 74 69 6d 65 20 28 6e 74 68 20 35 20 28 66 69 6c ..(let.((file1-mtime.(nth.5.(fil
1dbc0 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 e-attributes.file1)))...........
1dbe0 20 20 20 28 66 69 6c 65 32 2d 6d 74 69 6d 65 20 28 6e 74 68 20 35 20 28 66 69 6c 65 2d 61 74 74 ...(file2-mtime.(nth.5.(file-att
1dc00 72 69 62 75 74 65 73 20 66 69 6c 65 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 ributes.file2))))..........(not.
1dc20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 66 69 6c 65 31 2d 6d 74 69 6d 65 20 66 69 6c 65 32 2d 6d (time-less-p.file1-mtime.file2-m
1dc40 74 69 6d 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 time)))))))..(defun.projectile-s
1dc60 6f 72 74 2d 62 79 2d 61 63 63 65 73 73 2d 74 69 6d 65 20 28 66 69 6c 65 73 29 0a 20 20 22 53 6f ort-by-access-time.(files)..."So
1dc80 72 74 20 46 49 4c 45 53 20 62 79 20 61 63 63 65 73 73 20 74 69 6d 65 2e 22 0a 20 20 28 6c 65 74 rt.FILES.by.access.time."...(let
1dca0 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 .((default-directory.(projectile
1dcc0 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 63 6c 2d 73 6f 72 74 0a 20 20 -project-root))).....(cl-sort...
1dce0 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 66 69 6c 65 73 29 0a 20 20 20 20 20 28 6c ...(copy-sequence.files)......(l
1dd00 61 6d 62 64 61 20 28 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 ambda.(file1.file2)........(let.
1dd20 28 28 66 69 6c 65 31 2d 61 74 69 6d 65 20 28 6e 74 68 20 34 20 28 66 69 6c 65 2d 61 74 74 72 69 ((file1-atime.(nth.4.(file-attri
1dd40 62 75 74 65 73 20 66 69 6c 65 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c butes.file1)))..............(fil
1dd60 65 32 2d 61 74 69 6d 65 20 28 6e 74 68 20 34 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 e2-atime.(nth.4.(file-attributes
1dd80 20 66 69 6c 65 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 74 69 6d 65 2d 6c .file2))))..........(not.(time-l
1dda0 65 73 73 2d 70 20 66 69 6c 65 31 2d 61 74 69 6d 65 20 66 69 6c 65 32 2d 61 74 69 6d 65 29 29 29 ess-p.file1-atime.file2-atime)))
1ddc0 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 46 69 6e 64 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 70 ))))....;;;;.Find.directory.in.p
1dde0 72 6f 6a 65 63 74 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 0a 28 64 65 66 75 6e 20 70 72 6f 6a roject.functionality.(defun.proj
1de00 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 64 69 72 20 28 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 ectile--find-dir.(invalidate-cac
1de20 68 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 65 64 2d 76 61 72 69 61 6e 74 29 0a 20 20 22 4a he.&optional.dired-variant)..."J
1de40 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 65 63 74 6f 72 79 20 75 73 69 ump.to.a.project's.directory.usi
1de60 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 57 69 74 68 20 49 4e 56 41 4c 49 44 41 54 45 2d ng.completion...With.INVALIDATE-
1de80 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 CACHE.invalidates.the.cache.firs
1dea0 74 2e 20 20 57 69 74 68 20 44 49 52 45 44 2d 56 41 52 49 41 4e 54 20 73 65 74 20 74 6f 20 61 0a t...With.DIRED-VARIANT.set.to.a.
1dec0 64 65 66 75 6e 2c 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 20 6f 66 20 60 64 69 72 65 defun,.use.that.instead.of.`dire
1dee0 64 27 2e 20 20 41 20 74 79 70 69 63 61 6c 20 65 78 61 6d 70 6c 65 20 6f 66 20 73 75 63 68 20 61 d'...A.typical.example.of.such.a
1df00 20 64 65 66 75 6e 20 77 6f 75 6c 64 20 62 65 0a 60 64 69 72 65 64 2d 6f 74 68 65 72 2d 77 69 6e .defun.would.be.`dired-other-win
1df20 64 6f 77 27 20 6f 72 20 60 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 72 61 6d 65 27 22 0a 20 20 28 dow'.or.`dired-other-frame'"...(
1df40 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 projectile-maybe-invalidate-cach
1df60 65 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 e.invalidate-cache)...(let*.((pr
1df80 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 oject.(projectile-acquire-root))
1dfa0 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c ..........(dir.(projectile-compl
1dfc0 65 74 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 65 ete-dir.project))..........(dire
1dfe0 64 2d 76 20 28 6f 72 20 64 69 72 65 64 2d 76 61 72 69 61 6e 74 20 23 27 64 69 72 65 64 29 29 29 d-v.(or.dired-variant.#'dired)))
1e000 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 64 69 72 65 64 2d 76 20 28 65 78 70 61 6e 64 2d 66 69 .....(funcall.dired-v.(expand-fi
1e020 6c 65 2d 6e 61 6d 65 20 64 69 72 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 le-name.dir.project)).....(run-h
1e040 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 2d 68 6f 6f 6b 29 29 ooks.'projectile-find-dir-hook))
1e060 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 )..;;;###autoload.(defun.project
1e080 69 6c 65 2d 66 69 6e 64 2d 64 69 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 ile-find-dir.(&optional.invalida
1e0a0 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 te-cache)..."Jump.to.a.project's
1e0c0 20 64 69 72 65 63 74 6f 72 79 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 57 69 .directory.using.completion...Wi
1e0e0 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 th.a.prefix.arg.INVALIDATE-CACHE
1e100 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 22 0a 20 .invalidates.the.cache.first."..
1e120 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 .(interactive."P")...(projectile
1e140 2d 2d 66 69 6e 64 2d 64 69 72 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 29 0a 0a 3b --find-dir.invalidate-cache))..;
1e160 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ;;###autoload.(defun.projectile-
1e180 66 69 6e 64 2d 64 69 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 26 6f 70 74 69 6f 6e 61 6c find-dir-other-window.(&optional
1e1a0 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 .invalidate-cache)..."Jump.to.a.
1e1c0 70 72 6f 6a 65 63 74 27 73 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 6f 74 68 65 72 20 77 69 6e project's.directory.in.other.win
1e1e0 64 6f 77 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 57 69 74 68 20 61 20 70 72 dow.using.completion...With.a.pr
1e200 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 20 69 6e 76 61 6c 69 efix.arg.INVALIDATE-CACHE.invali
1e220 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 dates.the.cache.first."...(inter
1e240 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d active."P")...(projectile--find-
1e260 64 69 72 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 23 27 64 69 72 65 64 2d 6f 74 68 dir.invalidate-cache.#'dired-oth
1e280 65 72 2d 77 69 6e 64 6f 77 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 er-window))..;;;###autoload.(def
1e2a0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 2d 6f 74 68 65 72 2d 66 72 61 un.projectile-find-dir-other-fra
1e2c0 6d 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a me.(&optional.invalidate-cache).
1e2e0 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 65 63 74 6f 72 79 .."Jump.to.a.project's.directory
1e300 20 69 6e 20 6f 74 68 65 72 20 66 72 61 6d 65 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e .in.other.frame.using.completion
1e320 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d ...With.a.prefix.arg.INVALIDATE-
1e340 43 41 43 48 45 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 CACHE.invalidates.the.cache.firs
1e360 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 t."...(interactive."P")...(proje
1e380 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 64 69 72 20 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 ctile--find-dir.invalidate-cache
1e3a0 20 23 27 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 70 .#'dired-other-frame))..(defun.p
1e3c0 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 65 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 29 rojectile-complete-dir.(project)
1e3e0 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 64 69 72 73 20 28 70 72 6f 6a 65 63 74 69 ...(let.((project-dirs.(projecti
1e400 6c 65 2d 70 72 6f 6a 65 63 74 2d 64 69 72 73 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 28 le-project-dirs.project))).....(
1e420 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 projectile-completing-read......
1e440 22 46 69 6e 64 20 64 69 72 3a 20 22 0a 20 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 69 6c 65 "Find.dir:."......(if.projectile
1e460 2d 66 69 6e 64 2d 64 69 72 2d 69 6e 63 6c 75 64 65 73 2d 74 6f 70 2d 6c 65 76 65 6c 0a 20 20 20 -find-dir-includes-top-level....
1e480 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 27 28 22 2e 2f 22 29 20 70 72 6f 6a 65 63 74 2d 64 69 ......(append.'("./").project-di
1e4a0 72 73 29 0a 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 64 69 72 73 29 29 29 29 0a 0a 3b 3b 3b rs)........project-dirs))))..;;;
1e4c0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 ###autoload.(defun.projectile-fi
1e4e0 6e 64 2d 74 65 73 74 2d 66 69 6c 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 76 61 6c 69 64 61 nd-test-file.(&optional.invalida
1e500 74 65 2d 63 61 63 68 65 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 27 73 te-cache)..."Jump.to.a.project's
1e520 20 74 65 73 74 20 66 69 6c 65 20 75 73 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 57 69 .test.file.using.completion...Wi
1e540 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 20 49 4e 56 41 4c 49 44 41 54 45 2d 43 41 43 48 45 th.a.prefix.arg.INVALIDATE-CACHE
1e560 20 69 6e 76 61 6c 69 64 61 74 65 73 20 74 68 65 20 63 61 63 68 65 20 66 69 72 73 74 2e 22 0a 20 .invalidates.the.cache.first."..
1e580 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 .(interactive."P")...(projectile
1e5a0 2d 6d 61 79 62 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 69 6e 76 61 6c 69 64 61 -maybe-invalidate-cache.invalida
1e5c0 74 65 2d 63 61 63 68 65 29 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 te-cache)...(let.((file.(project
1e5e0 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 46 69 6e 64 20 74 65 73 74 20 66 ile-completing-read."Find.test.f
1e600 69 6c 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 ile:."..........................
1e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 .................(projectile-cur
1e640 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 66 69 6c 65 73 29 29 29 29 0a 20 20 20 20 rent-project-test-files)))).....
1e660 28 66 69 6e 64 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c (find-file.(expand-file-name.fil
1e680 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 0a e.(projectile-project-root))))).
1e6a0 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 66 69 6c 65 73 20 28 66 .(defun.projectile-test-files.(f
1e6c0 69 6c 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6f 6e 6c 79 20 74 68 65 20 74 65 73 74 20 46 49 iles)..."Return.only.the.test.FI
1e6e0 4c 45 53 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 27 70 72 6f 6a 65 LES."...(cl-remove-if-not.'proje
1e700 63 74 69 6c 65 2d 74 65 73 74 2d 66 69 6c 65 2d 70 20 66 69 6c 65 73 29 29 0a 0a 28 64 65 66 75 ctile-test-file-p.files))..(defu
1e720 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d 65 72 67 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 n.projectile--merge-related-file
1e740 73 2d 66 6e 73 20 28 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 73 29 0a 20 20 22 4d 65 72 s-fns.(related-files-fns)..."Mer
1e760 67 65 20 6d 75 6c 74 69 70 6c 65 20 52 45 4c 41 54 45 44 2d 46 49 4c 45 53 2d 46 4e 53 20 69 6e ge.multiple.RELATED-FILES-FNS.in
1e780 74 6f 20 6f 6e 65 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 to.one.function."...(lambda.(pat
1e7a0 68 29 0a 20 20 20 20 28 6c 65 74 20 28 6d 65 72 67 65 64 2d 70 6c 69 73 74 29 0a 20 20 20 20 20 h).....(let.(merged-plist)......
1e7c0 20 28 64 6f 6c 69 73 74 20 28 66 6e 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 73 20 6d .(dolist.(fn.related-files-fns.m
1e7e0 65 72 67 65 64 2d 70 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6c 69 73 erged-plist).........(let.((plis
1e800 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 t.(funcall.fn.path)))...........
1e820 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 75 65 29 20 6f 6e 20 70 6c 69 73 (cl-loop.for.(key.value).on.plis
1e840 74 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 t.by.#'cddr....................d
1e860 6f 20 28 6c 65 74 20 28 28 76 61 6c 75 65 73 20 28 69 66 20 28 63 6f 6e 73 70 20 76 61 6c 75 65 o.(let.((values.(if.(consp.value
1e880 29 20 76 61 6c 75 65 20 28 6c 69 73 74 20 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 ).value.(list.value)))).........
1e8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 ................(if.(plist-membe
1e8c0 72 20 6d 65 72 67 65 64 2d 70 6c 69 73 74 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r.merged-plist.key).............
1e8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 70 6c 69 73 74 2d 67 65 ................(nconc.(plist-ge
1e900 74 20 6d 65 72 67 65 64 2d 70 6c 69 73 74 20 6b 65 79 29 20 76 61 6c 75 65 73 29 0a 20 20 20 20 t.merged-plist.key).values).....
1e920 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 6d 65 72 67 ......................(setq.merg
1e940 65 64 2d 70 6c 69 73 74 20 28 70 6c 69 73 74 2d 70 75 74 20 6d 65 72 67 65 64 2d 70 6c 69 73 74 ed-plist.(plist-put.merged-plist
1e960 20 6b 65 79 20 76 61 6c 75 65 73 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 .key.values))))))))))..(defun.pr
1e980 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 20 28 70 ojectile--related-files-plist.(p
1e9a0 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 6c roject-root.file)..."Return.a.pl
1e9c0 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 72 65 6c 61 74 65 64 20 66 69 6c 65 73 ist.containing.all.related.files
1e9e0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 46 49 4c 45 2e 0a 50 52 4f 4a 45 43 54 2d 52 .information.for.FILE..PROJECT-R
1ea00 4f 4f 54 20 69 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 20 28 69 66 2d OOT.is.the.project.root."...(if-
1ea20 6c 65 74 2a 20 28 28 72 65 6c 2d 70 61 74 68 20 28 69 66 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 let*.((rel-path.(if.(file-name-a
1ea40 62 73 6f 6c 75 74 65 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bsolute-p.file).................
1ea60 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c .........(file-relative-name.fil
1ea80 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.project-root).................
1eaa0 20 20 20 20 20 20 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 75 73 74 6f 6d .......file))............(custom
1eac0 2d 66 75 6e 63 74 69 6f 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 -function.(funcall.projectile-re
1eae0 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 66 75 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 lated-files-fn-function.(project
1eb00 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 ile-project-type)))).......(func
1eb20 61 6c 6c 20 28 63 6f 6e 64 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 63 75 73 74 6f 6d 2d 66 75 6e all.(cond.((functionp.custom-fun
1eb40 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 73 ction).......................cus
1eb60 74 6f 6d 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tom-function)...................
1eb80 20 20 20 28 28 63 6f 6e 73 70 20 63 75 73 74 6f 6d 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 ...((consp.custom-function).....
1eba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d ..................(projectile--m
1ebc0 65 72 67 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 73 20 63 75 73 74 6f 6d 2d 66 75 erge-related-files-fns.custom-fu
1ebe0 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 nction))......................(t
1ec00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 .......................(error."U
1ec20 6e 73 75 70 70 6f 72 74 65 64 20 76 61 6c 75 65 20 74 79 70 65 20 6f 66 20 3a 72 65 6c 61 74 65 nsupported.value.type.of.:relate
1ec40 64 2d 66 69 6c 65 73 2d 66 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 d-files-fn")))................re
1ec60 6c 2d 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 l-path)))..(defun.projectile--re
1ec80 6c 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 28 66 69 6c 65 20 lated-files-plist-by-kind.(file.
1eca0 6b 69 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 kind)..."Return.a.plist.containi
1ecc0 6e 67 20 3a 70 61 74 68 73 20 61 6e 64 2f 6f 72 20 3a 70 72 65 64 69 63 61 74 65 20 6f 66 20 4b ng.:paths.and/or.:predicate.of.K
1ece0 49 4e 44 20 66 6f 72 20 46 49 4c 45 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 72 6f 6a IND.for.FILE."...(if-let*.((proj
1ed00 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f ect-root.(projectile-project-roo
1ed20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c t))............(plist.(projectil
1ed40 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 20 70 72 6f 6a 65 63 74 2d 72 e--related-files-plist.project-r
1ed60 6f 6f 74 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 61 73 2d 6b 69 6e 64 3f oot.file))............(has-kind?
1ed80 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 70 6c 69 73 74 20 6b 69 6e 64 29 29 29 0a 20 20 20 .(plist-member.plist.kind)))....
1eda0 20 20 20 28 6c 65 74 2a 20 28 28 6b 69 6e 64 2d 76 61 6c 75 65 20 28 70 6c 69 73 74 2d 67 65 74 ...(let*.((kind-value.(plist-get
1edc0 20 70 6c 69 73 74 20 6b 69 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 .plist.kind))..............(valu
1ede0 65 73 20 28 69 66 20 28 63 6c 2d 74 79 70 65 70 20 6b 69 6e 64 2d 76 61 6c 75 65 20 27 28 6f 72 es.(if.(cl-typep.kind-value.'(or
1ee00 20 73 74 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .string.function))..............
1ee20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6b 69 6e 64 2d 76 61 6c 75 65 29 0a 20 20 ............(list.kind-value)...
1ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 2d 76 61 6c 75 65 29 .....................kind-value)
1ee60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 73 20 28 64 65 6c 65 74 65 2d 64 75 )..............(paths.(delete-du
1ee80 70 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 27 73 74 72 69 6e 67 70 20 76 61 ps.(cl-remove-if-not.'stringp.va
1eea0 6c 75 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 64 69 63 61 74 65 73 lues)))..............(predicates
1eec0 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 .(delete-dups.(cl-remove-if-not.
1eee0 27 66 75 6e 63 74 69 6f 6e 70 20 76 61 6c 75 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 'functionp.values)))).........(a
1ef00 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 74 68 61 74 ppend..........;;.Make.sure.that
1ef20 20 3a 70 61 74 68 73 20 65 78 69 73 74 73 20 65 76 65 6e 20 77 69 74 68 20 6e 69 6c 20 69 66 20 .:paths.exists.even.with.nil.if.
1ef40 74 68 65 72 65 20 69 73 20 6e 6f 20 70 72 65 64 69 63 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 there.is.no.predicates..........
1ef60 28 77 68 65 6e 20 28 6f 72 20 70 61 74 68 73 20 28 6e 75 6c 6c 20 70 72 65 64 69 63 61 74 65 73 (when.(or.paths.(null.predicates
1ef80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 70 61 74 68 73 20 28 63 6c 2d 72 ))............(list.:paths.(cl-r
1efa0 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 emove-if-not....................
1efc0 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(lambda.(f)...............
1efe0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 .............(projectile-file-ex
1f000 69 73 74 73 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e ists-p.(projectile-expand-file-n
1f020 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 66 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 ame-wildcard.f.project-root)))..
1f040 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 61 74 68 73 29 29 29 ........................paths)))
1f060 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 65 64 69 63 61 74 65 73 0a 20 20 20 20 20 ..........(when.predicates......
1f080 20 20 20 20 20 20 28 6c 69 73 74 20 3a 70 72 65 64 69 63 61 74 65 20 28 69 66 20 28 3d 20 31 20 ......(list.:predicate.(if.(=.1.
1f0a0 28 6c 65 6e 67 74 68 20 70 72 65 64 69 63 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (length.predicates))............
1f0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 72 65 64 69 63 .....................(car.predic
1f0e0 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ates)...........................
1f100 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 72 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 ....(lambda.(other-file)........
1f120 20 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 63 6c 2d 73 6f 6d .........................(cl-som
1f140 65 20 28 6c 61 6d 62 64 61 20 28 70 72 65 64 69 63 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 e.(lambda.(predicate)...........
1f160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f180 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 6f 74 68 65 72 2d 66 69 6c 65 29 29 .(funcall.predicate.other-file))
1f1a0 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 ................................
1f1c0 20 20 20 20 20 20 20 20 20 20 70 72 65 64 69 63 61 74 65 73 29 29 29 29 29 29 29 29 29 0a 0a 28 ..........predicates)))))))))..(
1f1e0 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d defun.projectile--related-files-
1f200 66 72 6f 6d 2d 70 6c 69 73 74 20 28 70 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c from-plist.(plist)..."Return.a.l
1f220 69 73 74 20 6f 66 20 66 69 6c 65 73 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 50 4c 49 53 54 20 66 ist.of.files.matching.to.PLIST.f
1f240 72 6f 6d 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 2e 22 0a 20 20 28 6c rom.current.project.files."...(l
1f260 65 74 2a 20 28 28 70 72 65 64 69 63 61 74 65 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 et*.((predicate.(plist-get.plist
1f280 20 3a 70 72 65 64 69 63 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 74 68 73 20 28 70 .:predicate))..........(paths.(p
1f2a0 6c 69 73 74 2d 67 65 74 20 70 6c 69 73 74 20 3a 70 61 74 68 73 29 29 29 0a 20 20 20 20 28 64 65 list-get.plist.:paths))).....(de
1f2c0 6c 65 74 65 2d 64 75 70 73 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lete-dups.(append...............
1f2e0 20 20 20 20 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 ....paths...................(whe
1f300 6e 20 70 72 65 64 69 63 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.predicate.....................
1f320 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 70 72 65 64 69 63 61 74 65 20 28 70 72 6f (cl-remove-if-not.predicate.(pro
1f340 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 29 29 jectile-current-project-files)))
1f360 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 ))))..(defun.projectile--related
1f380 2d 66 69 6c 65 73 2d 6b 69 6e 64 73 28 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c -files-kinds(file)..."Return.a.l
1f3a0 69 73 74 20 6f 20 6b 65 79 77 6f 72 64 73 20 6d 65 61 6e 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 ist.o.keywords.meaning.available
1f3c0 20 72 65 6c 61 74 65 64 20 6b 69 6e 64 73 20 66 6f 72 20 46 49 4c 45 2e 22 0a 20 20 28 69 66 2d .related.kinds.for.FILE."...(if-
1f3e0 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d let*.((project-root.(projectile-
1f400 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 project-root))............(plist
1f420 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 .(projectile--related-files-plis
1f440 74 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 63 6c t.project-root.file))).......(cl
1f460 2d 6c 6f 6f 70 20 66 6f 72 20 6b 65 79 20 69 6e 20 70 6c 69 73 74 20 62 79 20 23 27 63 64 64 72 -loop.for.key.in.plist.by.#'cddr
1f480 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 6b 65 79 29 29 29 0a 0a ................collect.key)))..
1f4a0 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 (defun.projectile--related-files
1f4c0 20 28 66 69 6c 65 20 6b 69 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 .(file.kind)..."Return.a.list.of
1f4e0 20 72 65 6c 61 74 65 64 20 66 69 6c 65 73 20 6f 66 20 4b 49 4e 44 20 66 6f 72 20 46 49 4c 45 2e .related.files.of.KIND.for.FILE.
1f500 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 "...(projectile--related-files-f
1f520 72 6f 6d 2d 70 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 rom-plist.(projectile--related-f
1f540 69 6c 65 73 2d 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 66 69 6c 65 20 6b 69 6e 64 29 29 29 0a iles-plist-by-kind.file.kind))).
1f560 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 .(defun.projectile--find-related
1f580 2d 66 69 6c 65 20 28 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6b 69 6e 64 29 0a 20 20 22 43 -file.(file.&optional.kind)..."C
1f5a0 68 6f 6f 73 65 20 61 20 66 69 6c 65 20 66 72 6f 6d 20 66 69 6c 65 73 20 72 65 6c 61 74 65 64 20 hoose.a.file.from.files.related.
1f5c0 74 6f 20 46 49 4c 45 20 61 73 20 4b 49 4e 44 2e 0a 49 66 20 4b 49 4e 44 20 69 73 20 6e 6f 74 20 to.FILE.as.KIND..If.KIND.is.not.
1f5e0 70 72 6f 76 69 64 65 64 2c 20 61 20 6c 69 73 74 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 6b 69 6e provided,.a.list.of.possible.kin
1f600 64 73 20 63 61 6e 20 62 65 20 63 68 6f 73 65 6e 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 6b 69 6e ds.can.be.chosen."...(unless.kin
1f620 64 0a 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 61 76 61 69 6c 61 62 6c 65 2d 6b 69 6e 64 73 d.....(if-let*.((available-kinds
1f640 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 6b 69 6e 64 .(projectile--related-files-kind
1f660 73 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 69 6e 64 20 28 69 66 s.file))).........(setq.kind.(if
1f680 20 28 3d 20 28 6c 65 6e 67 74 68 20 61 76 61 69 6c 61 62 6c 65 2d 6b 69 6e 64 73 29 20 31 29 0a .(=.(length.available-kinds).1).
1f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 61 76 61 69 .......................(car.avai
1f6c0 6c 61 62 6c 65 2d 6b 69 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lable-kinds)....................
1f6e0 20 20 28 69 6e 74 65 72 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 ..(intern.(projectile-completing
1f700 2d 72 65 61 64 20 22 4b 69 6e 64 20 3a 22 20 61 76 61 69 6c 61 62 6c 65 2d 6b 69 6e 64 73 29 29 -read."Kind.:".available-kinds))
1f720 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 72 65 6c 61 74 65 64 20 66 69 6c 65 )).......(error."No.related.file
1f740 73 20 66 6f 75 6e 64 22 29 29 29 0a 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 61 6e 64 69 64 s.found")))....(if-let*.((candid
1f760 61 74 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 20 ates.(projectile--related-files.
1f780 66 69 6c 65 20 6b 69 6e 64 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 file.kind))).......(projectile-e
1f7a0 78 70 61 6e 64 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 xpand-root.(projectile--choose-f
1f7c0 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 20 63 61 6e 64 69 64 61 74 65 73 29 29 0a 20 20 20 20 rom-candidates.candidates)).....
1f7e0 28 65 72 72 6f 72 0a 20 20 20 20 20 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 72 65 6c 61 74 65 64 (error......"No.matching.related
1f800 20 66 69 6c 65 20 61 73 20 60 25 73 27 20 66 6f 75 6e 64 20 66 6f 72 20 70 72 6f 6a 65 63 74 20 .file.as.`%s'.found.for.project.
1f820 74 79 70 65 20 60 25 73 27 22 0a 20 20 20 20 20 6b 69 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 type.`%s'"......kind.(projectile
1f840 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 -project-type))))..;;;###autoloa
1f860 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 d.(defun.projectile-find-related
1f880 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a 20 20 22 4f 70 65 6e 20 72 65 -file-other-window.()..."Open.re
1f8a0 6c 61 74 65 64 20 66 69 6c 65 20 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 lated.file.in.other.window."...(
1f8c0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d interactive)...(find-file-other-
1f8e0 77 69 6e 64 6f 77 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 72 65 6c 61 window....(projectile--find-rela
1f900 74 65 64 2d 66 69 6c 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 0a ted-file.(buffer-file-name))))..
1f920 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ;;;###autoload.(defun.projectile
1f940 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 -find-related-file-other-frame.(
1f960 29 0a 20 20 22 4f 70 65 6e 20 72 65 6c 61 74 65 64 20 66 69 6c 65 20 69 6e 20 6f 74 68 65 72 20 )..."Open.related.file.in.other.
1f980 66 72 61 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d frame."...(interactive)...(find-
1f9a0 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d file-other-frame....(projectile-
1f9c0 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d -find-related-file.(buffer-file-
1f9e0 6e 61 6d 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 name))))..;;;###autoload.(defun.
1fa00 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 28 29 0a 20 projectile-find-related-file()..
1fa20 20 22 4f 70 65 6e 20 72 65 6c 61 74 65 64 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 ."Open.related.file."...(interac
1fa40 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c tive)...(find-file....(projectil
1fa60 65 2d 2d 66 69 6e 64 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 20 28 62 75 66 66 65 72 2d 66 69 6c e--find-related-file.(buffer-fil
1fa80 65 2d 6e 61 6d 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 e-name))))..;;;###autoload.(defu
1faa0 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 67 72 n.projectile-related-files-fn-gr
1fac0 6f 75 70 73 28 6b 69 6e 64 20 67 72 6f 75 70 73 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 oups(kind.groups)..."Generate.a.
1fae0 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 77 68 69 63 68 20 72 65 6c 61 74 65 73 20 61 related-files-fn.which.relates.a
1fb00 73 20 4b 49 4e 44 20 66 6f 72 20 66 69 6c 65 73 20 69 6e 20 65 61 63 68 20 6f 66 20 47 52 4f 55 s.KIND.for.files.in.each.of.GROU
1fb20 50 53 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 28 69 66 2d 6c 65 PS."...(lambda.(path).....(if-le
1fb40 74 2a 20 28 28 67 72 6f 75 70 2d 66 6f 75 6e 64 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 t*.((group-found.(cl-find-if.(la
1fb60 6d 62 64 61 20 28 67 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbda.(group)....................
1fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 70 61 74 .....................(member.pat
1fba0 68 20 67 72 6f 75 70 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 h.group)).......................
1fbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 73 29 29 29 0a 20 20 20 20 20 20 ................groups))).......
1fbe0 20 20 28 6c 69 73 74 20 6b 69 6e 64 20 28 63 6c 2d 72 65 6d 6f 76 65 20 70 61 74 68 20 67 72 6f ..(list.kind.(cl-remove.path.gro
1fc00 75 70 2d 66 6f 75 6e 64 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 29 29 0a 0a 3b 3b 3b 23 up-found.:test.'equal)))))..;;;#
1fc20 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c ##autoload.(defun.projectile-rel
1fc40 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 28 6b 69 6e 64 20 65 78 ated-files-fn-extensions(kind.ex
1fc60 74 65 6e 73 69 6f 6e 73 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 72 65 6c 61 74 65 64 2d tensions)..."Generate.a.related-
1fc80 66 69 6c 65 73 2d 66 6e 20 77 68 69 63 68 20 72 65 6c 61 74 65 73 20 61 73 20 4b 49 4e 44 20 66 files-fn.which.relates.as.KIND.f
1fca0 6f 72 20 66 69 6c 65 73 20 68 61 76 69 6e 67 20 45 58 54 45 4e 53 49 4f 4e 53 2e 22 0a 20 20 28 or.files.having.EXTENSIONS."...(
1fcc0 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 78 74 20 28 66 lambda.(path).....(let*.((ext.(f
1fce0 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 ile-name-extension.path)).......
1fd00 20 20 20 20 20 28 62 61 73 65 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 62 61 73 65 20 70 .....(basename.(file-name-base.p
1fd20 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 61 73 65 6e 61 6d 65 2d 72 65 67 65 78 ath))............(basename-regex
1fd40 70 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 62 61 73 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 p.(regexp-quote.basename))).....
1fd60 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 65 78 74 20 65 78 74 65 6e 73 69 6f 6e 73 29 0a ..(when.(member.ext.extensions).
1fd80 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6b 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 ........(list.kind.(lambda.(othe
1fda0 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e r-path)......................(an
1fdc0 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 62 61 73 65 6e 61 6d 65 2d 72 65 67 65 78 d.(string-match-p.basename-regex
1fde0 70 20 6f 74 68 65 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.other-path)...................
1fe00 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 62 61 73 65 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 ........(equal.basename.(file-na
1fe20 6d 65 2d 62 61 73 65 20 6f 74 68 65 72 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 me-base.other-path))............
1fe40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 74 68 65 72 2d 65 78 74 20 ...............(let.((other-ext.
1fe60 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 6f 74 68 65 72 2d 70 61 74 68 29 (file-name-extension.other-path)
1fe80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 )).............................(
1fea0 61 6e 64 20 28 6d 65 6d 62 65 72 20 6f 74 68 65 72 2d 65 78 74 20 65 78 74 65 6e 73 69 6f 6e 73 and.(member.other-ext.extensions
1fec0 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 )...............................
1fee0 20 20 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 6f 74 68 65 72 2d 65 78 74 20 65 78 74 29 29 29 29 ...(not.(equal.other-ext.ext))))
1ff00 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 )))))))..;;;###autoload.(defun.p
1ff20 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 74 65 73 74 2d rojectile-related-files-fn-test-
1ff40 77 69 74 68 2d 70 72 65 66 69 78 28 65 78 74 65 6e 73 69 6f 6e 20 74 65 73 74 2d 70 72 65 66 69 with-prefix(extension.test-prefi
1ff60 78 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 x)..."Generate.a.related-files-f
1ff80 6e 20 77 68 69 63 68 20 72 65 6c 61 74 65 73 20 74 65 73 74 73 20 61 6e 64 20 69 6d 70 6c 2e 0a n.which.relates.tests.and.impl..
1ffa0 55 73 65 20 66 69 6c 65 73 20 77 69 74 68 20 45 58 54 45 4e 53 49 4f 4e 20 62 61 73 65 64 20 6f Use.files.with.EXTENSION.based.o
1ffc0 6e 20 54 45 53 54 2d 50 52 45 46 49 58 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 n.TEST-PREFIX."...(lambda.(path)
1ffe0 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 .....(when.(equal.(file-name-ext
20000 65 6e 73 69 6f 6e 20 70 61 74 68 29 20 65 78 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c ension.path).extension).......(l
20020 65 74 2a 20 28 28 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 et*.((file-name.(file-name-nondi
20040 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e rectory.path))..............(fin
20060 64 2d 69 6d 70 6c 3f 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 74 65 73 74 2d 70 72 d-impl?.(string-prefix-p.test-pr
20080 65 66 69 78 20 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 efix.file-name))..............(f
200a0 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 20 28 69 66 20 66 69 6e 64 2d 69 6d 70 6c 3f 0a ile-name-to-find.(if.find-impl?.
200c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
200e0 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 66 69 6c 65 2d 6e 61 6d 65 20 28 6c 65 6e 67 74 68 ....(substring.file-name.(length
20100 20 74 65 73 74 2d 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 .test-prefix))..................
20120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 70 72 .................(concat.test-pr
20140 65 66 69 78 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 efix.file-name)))).........(list
20160 20 28 69 66 20 66 69 6e 64 2d 69 6d 70 6c 3f 20 3a 69 6d 70 6c 20 3a 74 65 73 74 29 0a 20 20 20 .(if.find-impl?.:impl.:test)....
20180 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 72 2d 70 61 74 68 29 0a ...........(lambda.(other-path).
201a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 73 75 66 ................(and.(string-suf
201c0 66 69 78 2d 70 20 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 20 6f 74 68 65 72 2d 70 61 fix-p.file-name-to-find.other-pa
201e0 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 th)......................(equal.
20200 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6f 74 68 65 72 2d 70 61 (file-name-nondirectory.other-pa
20220 74 68 29 20 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 29 29 29 29 29 29 29 29 0a 0a 3b th).file-name-to-find))))))))..;
20240 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ;;###autoload.(defun.projectile-
20260 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 74 65 73 74 2d 77 69 74 68 2d 73 75 66 66 69 related-files-fn-test-with-suffi
20280 78 28 65 78 74 65 6e 73 69 6f 6e 20 74 65 73 74 2d 73 75 66 66 69 78 29 0a 20 20 22 47 65 6e 65 x(extension.test-suffix)..."Gene
202a0 72 61 74 65 20 61 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 77 68 69 63 68 20 72 65 rate.a.related-files-fn.which.re
202c0 6c 61 74 65 73 20 74 65 73 74 73 20 61 6e 64 20 69 6d 70 6c 2e 0a 55 73 65 20 66 69 6c 65 73 20 lates.tests.and.impl..Use.files.
202e0 77 69 74 68 20 45 58 54 45 4e 53 49 4f 4e 20 62 61 73 65 64 20 6f 6e 20 54 45 53 54 2d 53 55 46 with.EXTENSION.based.on.TEST-SUF
20300 46 49 58 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 28 77 68 65 6e FIX."...(lambda.(path).....(when
20320 20 28 65 71 75 61 6c 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 .(equal.(file-name-extension.pat
20340 68 29 20 65 78 74 65 6e 73 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 h).extension).......(let*.((file
20360 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 70 61 -name.(file-name-nondirectory.pa
20380 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 2d 65 78 74 20 28 63 6f 6e 63 th))..............(dot-ext.(conc
203a0 61 74 20 22 2e 22 20 65 78 74 65 6e 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 at.".".extension))..............
203c0 28 73 75 66 66 69 78 2d 65 78 74 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 73 75 66 66 69 78 20 (suffix-ext.(concat.test-suffix.
203e0 64 6f 74 2d 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 69 6d 70 dot-ext))..............(find-imp
20400 6c 3f 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 73 75 66 66 69 78 2d 65 78 74 20 66 l?.(string-suffix-p.suffix-ext.f
20420 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 ile-name))..............(file-na
20440 6d 65 2d 74 6f 2d 66 69 6e 64 20 28 69 66 20 66 69 6e 64 2d 69 6d 70 6c 3f 0a 20 20 20 20 20 20 me-to-find.(if.find-impl?.......
20460 20 20 20 20 20 20 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 63 ..............................(c
20480 6f 6e 63 61 74 20 28 73 75 62 73 74 72 69 6e 67 20 66 69 6c 65 2d 6e 61 6d 65 20 30 20 28 2d 20 oncat.(substring.file-name.0.(-.
204a0 28 6c 65 6e 67 74 68 20 73 75 66 66 69 78 2d 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 (length.suffix-ext)))...........
204c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
204e0 20 20 64 6f 74 2d 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..dot-ext)......................
20500 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 75 62 73 74 72 69 6e 67 20 .............(concat.(substring.
20520 66 69 6c 65 2d 6e 61 6d 65 20 30 20 28 2d 20 28 6c 65 6e 67 74 68 20 64 6f 74 2d 65 78 74 29 29 file-name.0.(-.(length.dot-ext))
20540 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 )...............................
20560 20 20 20 20 20 20 20 20 20 20 20 20 73 75 66 66 69 78 2d 65 78 74 29 29 29 29 0a 20 20 20 20 20 ............suffix-ext))))......
20580 20 20 20 28 6c 69 73 74 20 28 69 66 20 66 69 6e 64 2d 69 6d 70 6c 3f 20 3a 69 6d 70 6c 20 3a 74 ...(list.(if.find-impl?.:impl.:t
205a0 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 est)...............(lambda.(othe
205c0 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 r-path).................(and.(st
205e0 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 20 ring-suffix-p.file-name-to-find.
20600 6f 74 68 65 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 other-path).....................
20620 20 28 65 71 75 61 6c 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 .(equal.(file-name-nondirectory.
20640 6f 74 68 65 72 2d 70 61 74 68 29 20 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 29 29 29 other-path).file-name-to-find)))
20660 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 66 69 )))))..(defun.projectile-test-fi
20680 6c 65 2d 70 20 28 66 69 6c 65 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 69 73 20 le-p.(file)..."Check.if.FILE.is.
206a0 61 20 74 65 73 74 20 66 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 6e 64 73 20 28 70 72 a.test.file."...(let.((kinds.(pr
206c0 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 6b 69 6e 64 73 20 66 69 ojectile--related-files-kinds.fi
206e0 6c 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 62 65 72 20 3a 69 6d 70 6c 20 6b le))).....(cond.((member.:impl.k
20700 69 6e 64 73 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 3a 74 65 73 inds).t)...........((member.:tes
20720 74 20 6b 69 6e 64 73 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6f 72 20 28 t.kinds).nil)...........(t.(or.(
20740 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 73 74 72 69 6e 67 2d 70 72 cl-some.(lambda.(pat).(string-pr
20760 65 66 69 78 2d 70 20 70 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f efix-p.pat.(file-name-nondirecto
20780 72 79 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ry.file)))......................
207a0 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 .....(delq.nil.(list.(funcall.pr
207c0 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 28 70 ojectile-test-prefix-function.(p
207e0 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 rojectile-project-type))))).....
20800 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 70 .............(cl-some.(lambda.(p
20820 61 74 29 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 70 61 74 20 28 66 69 6c 65 2d 6e at).(string-suffix-p.pat.(file-n
20840 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f ame-sans-extension.(file-name-no
20860 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ndirectory.file)))).............
20880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6c 69 73 74 20 28 66 ..............(delq.nil.(list.(f
208a0 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 75 uncall.projectile-test-suffix-fu
208c0 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 nction.(projectile-project-type)
208e0 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 )))))))))..(defun.projectile-cur
20900 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 rent-project-test-files.()..."Re
20920 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 65 73 74 20 66 69 6c 65 73 20 66 6f 72 20 74 68 turn.a.list.of.test.files.for.th
20940 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c e.current.project."...(projectil
20960 65 2d 74 65 73 74 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 e-test-files.(projectile-current
20980 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 -project-files)))..(defvar.proje
209a0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c ctile-project-types.nil..."An.al
209c0 69 73 74 20 68 6f 6c 64 69 6e 67 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 20 74 68 ist.holding.all.project.types.th
209e0 61 74 20 61 72 65 20 6b 6e 6f 77 6e 20 74 6f 20 50 72 6f 6a 65 63 74 69 6c 65 2e 0a 54 68 65 20 at.are.known.to.Projectile..The.
20a00 70 72 6f 6a 65 63 74 20 74 79 70 65 73 20 61 72 65 20 73 79 6d 62 6f 6c 73 20 61 6e 64 20 74 68 project.types.are.symbols.and.th
20a20 65 79 20 61 72 65 20 6c 69 6e 6b 65 64 20 74 6f 20 70 6c 69 73 74 73 20 68 6f 6c 64 69 6e 67 0a ey.are.linked.to.plists.holding.
20a40 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75 73 20 70 72 the.properties.of.the.various.pr
20a60 6f 6a 65 63 74 20 74 79 70 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c oject.types.")..(defun.projectil
20a80 65 2d 2d 63 6f 6d 62 69 6e 65 2d 70 6c 69 73 74 73 20 28 26 72 65 73 74 20 70 6c 69 73 74 73 29 e--combine-plists.(&rest.plists)
20aa0 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 69 6e 67 6c 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 ..."Create.a.single.property.lis
20ac0 74 20 66 72 6f 6d 20 61 6c 6c 20 70 6c 69 73 74 73 20 69 6e 20 50 4c 49 53 54 53 2e 0a 54 68 65 t.from.all.plists.in.PLISTS..The
20ae0 20 70 72 6f 63 65 73 73 20 73 74 61 72 74 73 20 62 79 20 63 6f 70 79 69 6e 67 20 74 68 65 20 66 .process.starts.by.copying.the.f
20b00 69 72 73 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 6e 20 73 65 74 74 69 6e 67 20 70 72 6f 70 irst.list,.and.then.setting.prop
20b20 65 72 74 69 65 73 0a 66 72 6f 6d 20 74 68 65 20 6f 74 68 65 72 20 6c 69 73 74 73 2e 20 20 53 65 erties.from.the.other.lists...Se
20b40 74 74 69 6e 67 73 20 69 6e 20 74 68 65 20 6c 61 73 74 20 6c 69 73 74 20 61 72 65 20 74 68 65 20 ttings.in.the.last.list.are.the.
20b60 6d 6f 73 74 20 73 69 67 6e 69 66 69 63 61 6e 74 0a 6f 6e 65 73 20 61 6e 64 20 6f 76 65 72 72 75 most.significant.ones.and.overru
20b80 6c 65 20 73 65 74 74 69 6e 67 73 20 69 6e 20 74 68 65 20 6f 74 68 65 72 20 6c 69 73 74 73 2e 22 le.settings.in.the.other.lists."
20ba0 0a 20 20 28 6c 65 74 20 28 28 72 74 6e 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6f ...(let.((rtn.(copy-sequence.(po
20bc0 70 20 70 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 70 20 76 20 6c 73 29 0a 20 20 20 20 p.plists))).........p.v.ls).....
20be0 28 77 68 69 6c 65 20 70 6c 69 73 74 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 73 20 28 70 6f (while.plists.......(setq.ls.(po
20c00 70 20 70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 6c 73 0a 20 20 20 20 20 p.plists)).......(while.ls......
20c20 20 20 20 28 73 65 74 71 20 70 20 28 70 6f 70 20 6c 73 29 20 76 20 28 70 6f 70 20 6c 73 29 29 0a ...(setq.p.(pop.ls).v.(pop.ls)).
20c40 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 74 6e 20 28 70 6c 69 73 74 2d 70 75 74 20 72 74 6e ........(setq.rtn.(plist-put.rtn
20c60 20 70 20 76 29 29 29 29 0a 20 20 20 20 72 74 6e 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 .p.v)))).....rtn))..(cl-defun.pr
20c80 6f 6a 65 63 74 69 6c 65 2d 2d 62 75 69 6c 64 2d 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 0a 20 20 ojectile--build-project-plist...
20ca0 20 20 28 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 26 6b 65 79 20 70 72 6f 6a 65 63 74 2d 66 69 6c ..(marker-files.&key.project-fil
20cc0 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 70 e.compilation-dir.configure.comp
20ce0 69 6c 65 20 69 6e 73 74 61 6c 6c 20 70 61 63 6b 61 67 65 20 74 65 73 74 20 72 75 6e 20 74 65 73 ile.install.package.test.run.tes
20d00 74 2d 73 75 66 66 69 78 20 74 65 73 74 2d 70 72 65 66 69 78 20 73 72 63 2d 64 69 72 20 74 65 73 t-suffix.test-prefix.src-dir.tes
20d20 74 2d 64 69 72 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 0a 20 20 22 52 65 74 75 72 t-dir.related-files-fn)..."Retur
20d40 6e 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 70 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 n.a.project.type.plist.with.the.
20d60 70 72 6f 76 69 64 65 64 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 41 20 70 72 6f 6a 65 63 74 20 74 provided.arguments...A.project.t
20d80 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2c 20 ype.is.defined.by.PROJECT-TYPE,.
20da0 61 20 73 65 74 20 6f 66 20 4d 41 52 4b 45 52 2d 46 49 4c 45 53 2c 0a 61 6e 64 20 6f 70 74 69 6f a.set.of.MARKER-FILES,.and.optio
20dc0 6e 61 6c 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 50 52 4f 4a 45 43 54 2d 46 nal.keyword.arguments:.PROJECT-F
20de0 49 4c 45 20 74 68 65 20 6d 61 69 6e 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 20 69 6e 20 74 68 65 ILE.the.main.project.file.in.the
20e00 20 72 6f 6f 74 20 70 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 43 4f 4d 50 49 4c 41 .root.project.directory..COMPILA
20e20 54 49 4f 4e 2d 44 49 52 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 72 75 6e 20 74 68 TION-DIR.the.directory.to.run.th
20e40 65 20 74 65 73 74 73 2d 20 61 6e 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 69 6e 2c 0a 43 4f e.tests-.and.compilations.in,.CO
20e60 4e 46 49 47 55 52 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e NFIGURE.which.specifies.a.comman
20e80 64 20 74 68 61 74 20 63 6f 6e 66 69 67 75 72 65 73 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 20 20 d.that.configures.the.project...
20ea0 20 20 20 20 20 20 20 20 60 25 73 27 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c ........`%s'.in.the.command.will
20ec0 20 62 65 20 73 75 62 73 74 69 74 75 74 65 64 20 77 69 74 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 .be.substituted.with.(projectile
20ee0 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 66 6f 72 65 20 -project-root)...........before.
20f00 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 75 6e 2c 0a 43 4f 4d 50 49 4c 45 20 77 68 69 63 the.command.is.run,.COMPILE.whic
20f20 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 62 75 69 6c 64 h.specifies.a.command.that.build
20f40 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 49 4e 53 54 41 4c 4c 20 77 68 69 63 68 20 73 70 65 s.the.project,.INSTALL.which.spe
20f60 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 cifies.a.command.to.install.the.
20f80 70 72 6f 6a 65 63 74 2e 0a 50 41 43 4b 41 47 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 project..PACKAGE.which.specifies
20fa0 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 70 61 63 6b 61 67 65 20 74 68 65 20 70 72 6f 6a 65 63 .a.command.to.package.the.projec
20fc0 74 2e 0a 54 45 53 54 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 64 20 61 20 63 6f 6d 6d 61 6e t..TEST.which.specified.a.comman
20fe0 64 20 74 68 61 74 20 74 65 73 74 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 52 55 4e 20 77 68 d.that.tests.the.project,.RUN.wh
21000 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 75 6e ich.specifies.a.command.that.run
21020 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 54 45 53 54 2d 53 55 46 46 49 58 20 77 68 69 63 68 s.the.project,.TEST-SUFFIX.which
21040 20 73 70 65 63 69 66 69 65 73 20 74 65 73 74 20 66 69 6c 65 20 73 75 66 66 69 78 2c 20 61 6e 64 .specifies.test.file.suffix,.and
21060 0a 54 45 53 54 2d 50 52 45 46 49 58 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 65 73 .TEST-PREFIX.which.specifies.tes
21080 74 20 66 69 6c 65 20 70 72 65 66 69 78 2e 0a 53 52 43 2d 44 49 52 20 77 68 69 63 68 20 73 70 65 t.file.prefix..SRC-DIR.which.spe
210a0 63 69 66 69 65 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65 20 72 65 cifies.the.path.to.the.source.re
210c0 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 54 45 53 54 lative.to.the.project.root..TEST
210e0 2d 44 49 52 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 61 74 68 20 74 6f -DIR.which.specifies.the.path.to
21100 20 74 68 65 20 74 65 73 74 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 .the.tests.relative.to.the.proje
21120 63 74 20 72 6f 6f 74 2e 0a 52 45 4c 41 54 45 44 2d 46 49 4c 45 53 2d 46 4e 20 77 68 69 63 68 20 ct.root..RELATED-FILES-FN.which.
21140 73 70 65 63 69 66 69 65 73 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 specifies.a.custom.function.to.f
21160 69 6e 64 20 74 68 65 20 72 65 6c 61 74 65 64 0a 66 69 6c 65 73 20 73 75 63 68 20 61 73 20 74 65 ind.the.related.files.such.as.te
21180 73 74 2f 69 6d 70 6c 2f 6f 74 68 65 72 20 66 69 6c 65 73 20 61 73 20 62 65 6c 6f 77 3a 0a 20 20 st/impl/other.files.as.below:...
211a0 20 20 43 55 53 54 4f 4d 2d 46 55 4e 43 54 49 4f 4e 20 61 63 63 65 70 74 73 20 46 49 4c 45 20 61 ..CUSTOM-FUNCTION.accepts.FILE.a
211c0 73 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6a 65 63 74 s.relative.path.from.the.project
211e0 20 72 6f 6f 74 20 61 6e 64 0a 20 20 20 20 72 65 74 75 72 6e 73 20 61 20 70 6c 69 73 74 20 63 6f .root.and.....returns.a.plist.co
21200 6e 74 61 69 6e 69 6e 67 20 3a 74 65 73 74 2c 20 3a 69 6d 70 6c 20 6f 72 20 3a 6f 74 68 65 72 20 ntaining.:test,.:impl.or.:other.
21220 61 73 20 6b 65 79 20 61 6e 64 20 74 68 65 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 as.key.and.the.....relative.path
21240 2f 70 61 74 68 73 20 6f 72 20 70 72 65 64 69 63 61 74 65 20 61 73 20 76 61 6c 75 65 2e 20 20 50 /paths.or.predicate.as.value...P
21260 52 45 44 49 43 41 54 45 20 61 63 63 65 70 74 73 20 61 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 REDICATE.accepts.a.....relative.
21280 70 61 74 68 20 61 73 20 74 68 65 20 69 6e 70 75 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f path.as.the.input."...(let.((pro
212a0 6a 65 63 74 2d 70 6c 69 73 74 20 28 6c 69 73 74 20 27 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 6d ject-plist.(list.'marker-files.m
212c0 61 72 6b 65 72 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arker-files.....................
212e0 20 20 20 20 20 20 20 20 20 27 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 .........'project-file.project-f
21300 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.............................
21320 20 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 .'compilation-dir.compilation-di
21340 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 r..............................'
21360 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6e 66 69 67 75 72 65 0a 20 20 20 20 configure-command.configure.....
21380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 70 69 6c .........................'compil
213a0 65 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-command.compile...............
213c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 74 65 73 ...............'test-command.tes
213e0 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 t..............................'
21400 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 69 6e 73 74 61 6c 6c 0a 20 20 20 20 20 20 20 20 install-command.install.........
21420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 61 63 6b 61 67 65 2d 63 6f .....................'package-co
21440 6d 6d 61 6e 64 20 70 61 63 6b 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mmand.package...................
21460 20 20 20 20 20 20 20 20 20 20 20 27 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 72 75 6e 29 29 0a 20 20 ...........'run-command.run))...
21480 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 69 66 20 28 6c 69 73 74 70 20 ......(project-files.(if.(listp.
214a0 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 project-file)...................
214c0 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 .........project-file...........
214e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 2d 66 69 6c ...............(list.project-fil
21500 65 29 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 e)))).....(dolist.(project-file.
21520 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 project-files).......(when.(and.
21540 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 70 72 6f 6a 65 63 project-file.(not.(member.projec
21560 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 t-file.projectile-project-root-f
21580 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 70 72 iles))).........(add-to-list.'pr
215a0 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 20 70 72 6f 6a ojectile-project-root-files.proj
215c0 65 63 74 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 73 75 66 66 69 ect-file))).....(when.test-suffi
215e0 78 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 x.......(plist-put.project-plist
21600 20 27 74 65 73 74 2d 73 75 66 66 69 78 20 74 65 73 74 2d 73 75 66 66 69 78 29 29 0a 20 20 20 20 .'test-suffix.test-suffix)).....
21620 28 77 68 65 6e 20 74 65 73 74 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 (when.test-prefix.......(plist-p
21640 75 74 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 20 27 74 65 73 74 2d 70 72 65 66 69 78 20 74 65 ut.project-plist.'test-prefix.te
21660 73 74 2d 70 72 65 66 69 78 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 72 63 2d 64 69 72 0a 20 20 st-prefix)).....(when.src-dir...
21680 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 20 27 73 72 ....(plist-put.project-plist.'sr
216a0 63 2d 64 69 72 20 73 72 63 2d 64 69 72 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 64 c-dir.src-dir)).....(when.test-d
216c0 69 72 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 ir.......(plist-put.project-plis
216e0 74 20 27 74 65 73 74 2d 64 69 72 20 74 65 73 74 2d 64 69 72 29 29 0a 20 20 20 20 28 77 68 65 6e t.'test-dir.test-dir)).....(when
21700 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 .related-files-fn.......(plist-p
21720 75 74 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 20 27 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d ut.project-plist.'related-files-
21740 66 6e 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 29 0a 20 20 20 20 70 72 6f 6a 65 63 fn.related-files-fn)).....projec
21760 74 2d 70 6c 69 73 74 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d t-plist))..(cl-defun.projectile-
21780 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 20 20 28 70 72 6f 6a 65 register-project-type.....(proje
217a0 63 74 2d 74 79 70 65 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 26 6b 65 79 20 70 72 6f 6a 65 63 ct-type.marker-files.&key.projec
217c0 74 2d 66 69 6c 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 63 6f 6e 66 69 67 75 72 65 t-file.compilation-dir.configure
217e0 20 63 6f 6d 70 69 6c 65 20 69 6e 73 74 61 6c 6c 20 70 61 63 6b 61 67 65 20 74 65 73 74 20 72 75 .compile.install.package.test.ru
21800 6e 20 74 65 73 74 2d 73 75 66 66 69 78 20 74 65 73 74 2d 70 72 65 66 69 78 20 73 72 63 2d 64 69 n.test-suffix.test-prefix.src-di
21820 72 20 74 65 73 74 2d 64 69 72 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 0a 20 20 22 r.test-dir.related-files-fn)..."
21840 52 65 67 69 73 74 65 72 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 69 74 68 20 70 72 6f Register.a.project.type.with.pro
21860 6a 65 63 74 69 6c 65 2e 0a 0a 41 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 69 73 20 64 65 66 69 jectile...A.project.type.is.defi
21880 6e 65 64 20 62 79 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2c 20 61 20 73 65 74 20 6f 66 20 4d 41 ned.by.PROJECT-TYPE,.a.set.of.MA
218a0 52 4b 45 52 2d 46 49 4c 45 53 2c 0a 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 77 6f 72 64 RKER-FILES,.and.optional.keyword
218c0 20 61 72 67 75 6d 65 6e 74 73 3a 0a 50 52 4f 4a 45 43 54 2d 46 49 4c 45 20 74 68 65 20 6d 61 69 .arguments:.PROJECT-FILE.the.mai
218e0 6e 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 72 6f 6a 65 n.project.file.in.the.root.proje
21900 63 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 43 4f 4d 50 49 4c 41 54 49 4f 4e 2d 44 49 52 20 74 68 ct.directory..COMPILATION-DIR.th
21920 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 72 75 6e 20 74 68 65 20 74 65 73 74 73 2d 20 61 6e e.directory.to.run.the.tests-.an
21940 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 69 6e 2c 0a 43 4f 4e 46 49 47 55 52 45 20 77 68 69 d.compilations.in,.CONFIGURE.whi
21960 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 63 6f 6e 66 ch.specifies.a.command.that.conf
21980 69 67 75 72 65 73 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 60 25 73 igures.the.project...........`%s
219a0 27 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 62 65 20 73 75 62 73 74 69 74 '.in.the.command.will.be.substit
219c0 75 74 65 64 20 77 69 74 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f uted.with.(projectile-project-ro
219e0 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 66 6f 72 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 ot)...........before.the.command
21a00 20 69 73 20 72 75 6e 2c 0a 43 4f 4d 50 49 4c 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 .is.run,.COMPILE.which.specifies
21a20 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 62 75 69 6c 64 73 20 74 68 65 20 70 72 6f 6a 65 .a.command.that.builds.the.proje
21a40 63 74 2c 0a 49 4e 53 54 41 4c 4c 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f ct,.INSTALL.which.specifies.a.co
21a60 6d 6d 61 6e 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 50 41 mmand.to.install.the.project..PA
21a80 43 4b 41 47 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 CKAGE.which.specifies.a.command.
21aa0 74 6f 20 70 61 63 6b 61 67 65 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 54 45 53 54 20 77 68 69 to.package.the.project..TEST.whi
21ac0 63 68 20 73 70 65 63 69 66 69 65 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 74 65 73 74 ch.specified.a.command.that.test
21ae0 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 52 55 4e 20 77 68 69 63 68 20 73 70 65 63 69 66 69 s.the.project,.RUN.which.specifi
21b00 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 75 6e 73 20 74 68 65 20 70 72 6f 6a 65 es.a.command.that.runs.the.proje
21b20 63 74 2c 0a 54 45 53 54 2d 53 55 46 46 49 58 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 ct,.TEST-SUFFIX.which.specifies.
21b40 74 65 73 74 20 66 69 6c 65 20 73 75 66 66 69 78 2c 20 61 6e 64 0a 54 45 53 54 2d 50 52 45 46 49 test.file.suffix,.and.TEST-PREFI
21b60 58 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 65 73 74 20 66 69 6c 65 20 70 72 65 66 X.which.specifies.test.file.pref
21b80 69 78 2e 0a 53 52 43 2d 44 49 52 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 ix..SRC-DIR.which.specifies.the.
21ba0 70 61 74 68 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 path.to.the.source.relative.to.t
21bc0 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 54 45 53 54 2d 44 49 52 20 77 68 69 63 68 20 he.project.root..TEST-DIR.which.
21be0 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 74 65 73 74 73 20 specifies.the.path.to.the.tests.
21c00 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 52 45 relative.to.the.project.root..RE
21c20 4c 41 54 45 44 2d 46 49 4c 45 53 2d 46 4e 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 LATED-FILES-FN.which.specifies.a
21c40 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 74 68 65 20 72 65 6c .custom.function.to.find.the.rel
21c60 61 74 65 64 0a 66 69 6c 65 73 20 73 75 63 68 20 61 73 20 74 65 73 74 2f 69 6d 70 6c 2f 6f 74 68 ated.files.such.as.test/impl/oth
21c80 65 72 20 66 69 6c 65 73 20 61 73 20 62 65 6c 6f 77 3a 0a 20 20 20 20 43 55 53 54 4f 4d 2d 46 55 er.files.as.below:.....CUSTOM-FU
21ca0 4e 43 54 49 4f 4e 20 61 63 63 65 70 74 73 20 46 49 4c 45 20 61 73 20 72 65 6c 61 74 69 76 65 20 NCTION.accepts.FILE.as.relative.
21cc0 70 61 74 68 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 61 6e 64 0a 20 path.from.the.project.root.and..
21ce0 20 20 20 72 65 74 75 72 6e 73 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 3a 74 ...returns.a.plist.containing.:t
21d00 65 73 74 2c 20 3a 69 6d 70 6c 20 6f 72 20 3a 6f 74 68 65 72 20 61 73 20 6b 65 79 20 61 6e 64 20 est,.:impl.or.:other.as.key.and.
21d20 74 68 65 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 2f 70 61 74 68 73 20 6f 72 20 70 the.....relative.path/paths.or.p
21d40 72 65 64 69 63 61 74 65 20 61 73 20 76 61 6c 75 65 2e 20 20 50 52 45 44 49 43 41 54 45 20 61 63 redicate.as.value...PREDICATE.ac
21d60 63 65 70 74 73 20 61 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 61 73 20 74 68 65 cepts.a.....relative.path.as.the
21d80 20 69 6e 70 75 74 2e 22 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a .input."...(setq.projectile-proj
21da0 65 63 74 2d 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 60 28 2c 70 72 6f 6a 65 ect-types.........(cons.`(,proje
21dc0 63 74 2d 74 79 70 65 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ct-type.........................
21de0 20 20 20 20 20 20 20 20 2c 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 62 75 69 6c 64 2d 70 72 6f 6a ........,(projectile--build-proj
21e00 65 63 74 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ect-plist.......................
21e20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 ..........marker-files..........
21e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d .......................:project-
21e60 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 file.project-file...............
21e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 ..................:compilation-d
21ea0 69 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ir.compilation-dir..............
21ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 66 69 67 75 72 65 20 63 6f ...................:configure.co
21ee0 6e 66 69 67 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 20 20 20 nfigure.........................
21f00 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 20 20 20 ........:compile.compile........
21f20 20 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 69 6e 73 74 61 6c .........................:instal
21f40 6c 20 69 6e 73 74 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l.install.......................
21f60 20 20 20 20 20 20 20 20 20 20 3a 70 61 63 6b 61 67 65 20 70 61 63 6b 61 67 65 0a 20 20 20 20 20 ..........:package.package......
21f80 20 20 20 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 74 65 73 74 ...........................:test
21fa0 20 74 65 73 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 .test...........................
21fc0 20 20 20 20 20 20 3a 72 75 6e 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......:run.run..................
21fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 74 65 73 74 ...............:test-suffix.test
22000 2d 73 75 66 66 69 78 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 -suffix.........................
22020 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 74 65 73 74 2d 70 72 65 66 69 78 ........:test-prefix.test-prefix
22040 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 ................................
22060 20 3a 73 72 63 2d 64 69 72 20 73 72 63 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:src-dir.src-dir...............
22080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 74 65 73 74 ..................:test-dir.test
220a0 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -dir............................
220c0 20 20 20 20 20 3a 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 72 65 6c 61 74 65 64 2d 66 .....:related-files-fn.related-f
220e0 69 6c 65 73 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 iles-fn))...............projecti
22100 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 le-project-types)))..(cl-defun.p
22120 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 rojectile-update-project-type...
22140 20 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 20 20 20 26 6b 65 79 20 70 72 65 63 65 64 ..(project-type......&key.preced
22160 65 6e 63 65 0a 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 6e 69 6c 20 6d 61 72 6b ence......(marker-files.nil.mark
22180 65 72 2d 66 69 6c 65 73 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 er-files-specified)......(projec
221a0 74 2d 66 69 6c 65 20 6e 69 6c 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 73 70 65 63 69 66 69 65 t-file.nil.project-file-specifie
221c0 64 29 0a 20 20 20 20 20 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 6e 69 6c 20 63 6f 6d d)......(compilation-dir.nil.com
221e0 70 69 6c 61 74 69 6f 6e 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 63 6f pilation-dir-specified)......(co
22200 6e 66 69 67 75 72 65 20 6e 69 6c 20 63 6f 6e 66 69 67 75 72 65 2d 73 70 65 63 69 66 69 65 64 29 nfigure.nil.configure-specified)
22220 0a 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 20 6e 69 6c 20 63 6f 6d 70 69 6c 65 2d 73 70 65 63 69 ......(compile.nil.compile-speci
22240 66 69 65 64 29 0a 20 20 20 20 20 28 69 6e 73 74 61 6c 6c 20 6e 69 6c 20 69 6e 73 74 61 6c 6c 2d fied)......(install.nil.install-
22260 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 70 61 63 6b 61 67 65 20 6e 69 6c 20 70 61 63 specified)......(package.nil.pac
22280 6b 61 67 65 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 65 73 74 20 6e 69 6c 20 74 kage-specified)......(test.nil.t
222a0 65 73 74 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 72 75 6e 20 6e 69 6c 20 72 75 6e est-specified)......(run.nil.run
222c0 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 6e 69 -specified)......(test-suffix.ni
222e0 6c 20 74 65 73 74 2d 73 75 66 66 69 78 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 l.test-suffix-specified)......(t
22300 65 73 74 2d 70 72 65 66 69 78 20 6e 69 6c 20 74 65 73 74 2d 70 72 65 66 69 78 2d 73 70 65 63 69 est-prefix.nil.test-prefix-speci
22320 66 69 65 64 29 0a 20 20 20 20 20 28 73 72 63 2d 64 69 72 20 6e 69 6c 20 73 72 63 2d 64 69 72 2d fied)......(src-dir.nil.src-dir-
22340 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 65 73 74 2d 64 69 72 20 6e 69 6c 20 74 65 specified)......(test-dir.nil.te
22360 73 74 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 72 65 6c 61 74 65 64 2d st-dir-specified)......(related-
22380 66 69 6c 65 73 2d 66 6e 20 6e 69 6c 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 73 70 files-fn.nil.related-files-fn-sp
223a0 65 63 69 66 69 65 64 29 29 0a 20 20 20 20 22 55 70 64 61 74 65 20 61 6e 20 65 78 69 73 74 69 6e ecified))....."Update.an.existin
223c0 67 20 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 0a 50 61 73 73 g.projectile.project.type...Pass
223e0 65 64 20 69 74 65 6d 73 20 77 69 6c 6c 20 6f 76 65 72 72 69 64 65 20 65 78 69 73 74 69 6e 67 20 ed.items.will.override.existing.
22400 76 61 6c 75 65 73 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 67 69 76 65 values.for.the.project.type.give
22420 6e 0a 62 79 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 20 20 6e 69 6c 20 63 61 6e 20 62 65 20 75 n.by.PROJECT-TYPE...nil.can.be.u
22440 73 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 61 74 74 sed.to.remove.a.project.type.att
22460 72 69 62 75 74 65 2e 20 20 52 61 69 73 65 0a 61 6e 20 65 72 72 6f 72 20 69 66 20 50 52 4f 4a 45 ribute...Raise.an.error.if.PROJE
22480 43 54 2d 54 59 50 45 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 CT-TYPE.is.not.already.registere
224a0 64 20 77 69 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2e 20 20 54 68 69 73 0a 66 75 6e 63 74 69 6f d.with.projectile...This.functio
224c0 6e 20 6d 61 79 20 61 6c 73 6f 20 74 61 6b 65 20 74 68 65 20 6b 65 79 77 6f 72 64 20 61 72 67 75 n.may.also.take.the.keyword.argu
224e0 6d 65 6e 74 20 50 52 45 43 45 44 45 4e 43 45 20 77 68 69 63 68 20 77 68 65 6e 20 73 65 74 20 74 ment.PRECEDENCE.which.when.set.t
22500 6f 20 e2 80 98 68 69 67 68 e2 80 99 0a 77 69 6c 6c 20 6d 61 6b 65 20 70 72 6f 6a 65 63 74 69 6c o....high....will.make.projectil
22520 65 20 70 72 69 6f 72 69 74 69 73 65 20 74 68 69 73 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 6f e.prioritise.this.project.type.o
22540 76 65 72 20 6f 74 68 65 72 20 63 6c 61 73 68 69 6e 67 20 70 72 6f 6a 65 63 74 0a 74 79 70 65 73 ver.other.clashing.project.types
22560 2c 20 61 6e 64 20 61 20 76 61 6c 75 65 20 6f 66 20 e2 80 98 6c 6f 77 e2 80 99 20 77 69 6c 6c 20 ,.and.a.value.of....low....will.
22580 6d 61 6b 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 65 66 65 72 20 28 61 6c 6c 29 20 6f 74 68 make.projectile.prefer.(all).oth
225a0 65 72 20 70 72 6f 6a 65 63 74 0a 74 79 70 65 73 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 4f 74 er.project.types.by.default...Ot
225c0 68 65 72 77 69 73 65 2c 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 74 68 69 73 20 66 herwise,.the.arguments.to.this.f
225e0 75 6e 63 74 69 6f 6e 20 61 72 65 20 61 73 20 66 6f 72 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 unction.are.as.for.`projectile-r
22600 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 27 3a 0a 0a 41 20 70 72 6f 6a 65 63 egister-project-type':..A.projec
22620 74 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 50 52 4f 4a 45 43 54 2d 54 59 50 t.type.is.defined.by.PROJECT-TYP
22640 45 2c 20 61 20 73 65 74 20 6f 66 20 4d 41 52 4b 45 52 2d 46 49 4c 45 53 2c 0a 61 6e 64 20 6f 70 E,.a.set.of.MARKER-FILES,.and.op
22660 74 69 6f 6e 61 6c 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 4d 41 52 4b 45 52 tional.keyword.arguments:.MARKER
22680 2d 46 49 4c 45 53 20 61 20 73 65 74 20 6f 66 20 69 6e 64 69 63 61 74 6f 72 20 66 69 6c 65 73 20 -FILES.a.set.of.indicator.files.
226a0 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 0a 50 52 4f 4a 45 43 54 2d 46 49 4c 45 20 74 for.PROJECT-TYPE..PROJECT-FILE.t
226c0 68 65 20 6d 61 69 6e 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 20 69 6e 20 74 68 65 20 72 6f 6f 74 he.main.project.file.in.the.root
226e0 20 70 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 43 4f 4d 50 49 4c 41 54 49 4f 4e 2d .project.directory..COMPILATION-
22700 44 49 52 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 72 75 6e 20 74 68 65 20 74 65 73 DIR.the.directory.to.run.the.tes
22720 74 73 2d 20 61 6e 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 69 6e 2c 0a 43 4f 4e 46 49 47 55 ts-.and.compilations.in,.CONFIGU
22740 52 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 RE.which.specifies.a.command.tha
22760 74 20 63 6f 6e 66 69 67 75 72 65 73 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 t.configures.the.project........
22780 20 20 20 60 25 73 27 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 62 65 20 73 ...`%s'.in.the.command.will.be.s
227a0 75 62 73 74 69 74 75 74 65 64 20 77 69 74 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ubstituted.with.(projectile-proj
227c0 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 66 6f 72 65 20 74 68 65 20 63 ect-root)...........before.the.c
227e0 6f 6d 6d 61 6e 64 20 69 73 20 72 75 6e 2c 0a 43 4f 4d 50 49 4c 45 20 77 68 69 63 68 20 73 70 65 ommand.is.run,.COMPILE.which.spe
22800 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 62 75 69 6c 64 73 20 74 68 65 cifies.a.command.that.builds.the
22820 20 70 72 6f 6a 65 63 74 2c 0a 49 4e 53 54 41 4c 4c 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 .project,.INSTALL.which.specifie
22840 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 70 72 6f 6a 65 s.a.command.to.install.the.proje
22860 63 74 2e 0a 50 41 43 4b 41 47 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f ct..PACKAGE.which.specifies.a.co
22880 6d 6d 61 6e 64 20 74 6f 20 70 61 63 6b 61 67 65 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 54 45 mmand.to.package.the.project..TE
228a0 53 54 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 ST.which.specified.a.command.tha
228c0 74 20 74 65 73 74 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 52 55 4e 20 77 68 69 63 68 20 73 t.tests.the.project,.RUN.which.s
228e0 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 75 6e 73 20 74 68 65 pecifies.a.command.that.runs.the
22900 20 70 72 6f 6a 65 63 74 2c 0a 54 45 53 54 2d 53 55 46 46 49 58 20 77 68 69 63 68 20 73 70 65 63 .project,.TEST-SUFFIX.which.spec
22920 69 66 69 65 73 20 74 65 73 74 20 66 69 6c 65 20 73 75 66 66 69 78 2c 20 61 6e 64 0a 54 45 53 54 ifies.test.file.suffix,.and.TEST
22940 2d 50 52 45 46 49 58 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 65 73 74 20 66 69 6c -PREFIX.which.specifies.test.fil
22960 65 20 70 72 65 66 69 78 2e 0a 53 52 43 2d 44 49 52 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 e.prefix..SRC-DIR.which.specifie
22980 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65 20 72 65 6c 61 74 69 76 s.the.path.to.the.source.relativ
229a0 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 54 45 53 54 2d 44 49 52 20 e.to.the.project.root..TEST-DIR.
229c0 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 which.specifies.the.path.to.the.
229e0 74 65 73 74 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f tests.relative.to.the.project.ro
22a00 6f 74 2e 0a 52 45 4c 41 54 45 44 2d 46 49 4c 45 53 2d 46 4e 20 77 68 69 63 68 20 73 70 65 63 69 ot..RELATED-FILES-FN.which.speci
22a20 66 69 65 73 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 74 fies.a.custom.function.to.find.t
22a40 68 65 20 72 65 6c 61 74 65 64 0a 66 69 6c 65 73 20 73 75 63 68 20 61 73 20 74 65 73 74 2f 69 6d he.related.files.such.as.test/im
22a60 70 6c 2f 6f 74 68 65 72 20 66 69 6c 65 73 20 61 73 20 62 65 6c 6f 77 3a 0a 20 20 20 20 43 55 53 pl/other.files.as.below:.....CUS
22a80 54 4f 4d 2d 46 55 4e 43 54 49 4f 4e 20 61 63 63 65 70 74 73 20 46 49 4c 45 20 61 73 20 72 65 6c TOM-FUNCTION.accepts.FILE.as.rel
22aa0 61 74 69 76 65 20 70 61 74 68 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 ative.path.from.the.project.root
22ac0 20 61 6e 64 0a 20 20 20 20 72 65 74 75 72 6e 73 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e .and.....returns.a.plist.contain
22ae0 69 6e 67 20 3a 74 65 73 74 2c 20 3a 69 6d 70 6c 20 6f 72 20 3a 6f 74 68 65 72 20 61 73 20 6b 65 ing.:test,.:impl.or.:other.as.ke
22b00 79 20 61 6e 64 20 74 68 65 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 2f 70 61 74 68 y.and.the.....relative.path/path
22b20 73 20 6f 72 20 70 72 65 64 69 63 61 74 65 20 61 73 20 76 61 6c 75 65 2e 20 20 50 52 45 44 49 43 s.or.predicate.as.value...PREDIC
22b40 41 54 45 20 61 63 63 65 70 74 73 20 61 0a 20 20 20 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 ATE.accepts.a.....relative.path.
22b60 61 73 20 74 68 65 20 69 6e 70 75 74 2e 22 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 78 69 73 74 as.the.input.".....(let*.((exist
22b80 69 6e 67 2d 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f ing-project-plist.............(o
22ba0 72 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 r.(cl-find-if..................(
22bc0 6c 61 6d 62 64 61 20 28 70 29 20 28 65 71 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 63 61 72 lambda.(p).(eq.project-type.(car
22be0 20 70 29 29 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 0a .p))).projectile-project-types).
22c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 65 78 69 73 74 ................(error."No.exist
22c20 69 6e 67 20 70 72 6f 6a 65 63 74 20 66 6f 75 6e 64 20 66 6f 72 3a 20 25 73 22 20 70 72 6f 6a 65 ing.project.found.for:.%s".proje
22c40 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 70 6c 69 73 74 ct-type)))............(new-plist
22c60 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 .............(append............
22c80 20 20 28 77 68 65 6e 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 2d 73 70 65 63 69 66 69 65 64 20 60 ..(when.marker-files-specified.`
22ca0 28 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 2c 6d 61 72 6b 65 72 2d 66 69 6c 65 73 29 29 0a 20 20 (marker-files.,marker-files))...
22cc0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 73 70 ...........(when.project-file-sp
22ce0 65 63 69 66 69 65 64 20 60 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 2c 70 72 6f 6a 65 63 74 2d ecified.`(project-file.,project-
22d00 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6d 70 69 6c file))..............(when.compil
22d20 61 74 69 6f 6e 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 20 60 28 63 6f 6d 70 69 6c 61 74 69 6f ation-dir-specified.`(compilatio
22d40 6e 2d 64 69 72 20 2c 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 0a 20 20 20 20 20 20 20 n-dir.,compilation-dir))........
22d60 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 66 69 67 75 72 65 2d 73 70 65 63 69 66 69 65 64 20 ......(when.configure-specified.
22d80 60 28 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 2c 63 6f 6e 66 69 67 75 72 65 29 29 `(configure-command.,configure))
22da0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6d 70 69 6c 65 2d 73 70 65 63 ..............(when.compile-spec
22dc0 69 66 69 65 64 20 60 28 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 20 2c 63 6f 6d 70 69 6c 65 ified.`(compile-command.,compile
22de0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 73 70 65 63 69 ))..............(when.test-speci
22e00 66 69 65 64 20 60 28 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 2c 74 65 73 74 29 29 0a 20 20 20 20 fied.`(test-command.,test)).....
22e20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 73 74 61 6c 6c 2d 73 70 65 63 69 66 69 65 64 .........(when.install-specified
22e40 20 60 28 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2c 69 6e 73 74 61 6c 6c 29 29 0a 20 20 .`(install-command.,install))...
22e60 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 63 6b 61 67 65 2d 73 70 65 63 69 66 69 ...........(when.package-specifi
22e80 65 64 20 60 28 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 2c 70 61 63 6b 61 67 65 29 29 0a ed.`(package-command.,package)).
22ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 75 6e 2d 73 70 65 63 69 66 69 65 64 .............(when.run-specified
22ec0 20 60 28 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 2c 72 75 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 .`(run-command.,run))...........
22ee0 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 73 75 66 66 69 78 2d 73 70 65 63 69 66 69 65 64 20 60 ...(when.test-suffix-specified.`
22f00 28 74 65 73 74 2d 73 75 66 66 69 78 20 2c 74 65 73 74 2d 73 75 66 66 69 78 29 29 0a 20 20 20 20 (test-suffix.,test-suffix)).....
22f20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 70 72 65 66 69 78 2d 73 70 65 63 69 .........(when.test-prefix-speci
22f40 66 69 65 64 20 60 28 74 65 73 74 2d 70 72 65 66 69 78 20 2c 74 65 73 74 2d 70 72 65 66 69 78 29 fied.`(test-prefix.,test-prefix)
22f60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 72 63 2d 64 69 72 2d 73 70 65 )..............(when.src-dir-spe
22f80 63 69 66 69 65 64 20 60 28 73 72 63 2d 64 69 72 20 2c 73 72 63 2d 64 69 72 29 29 0a 20 20 20 20 cified.`(src-dir.,src-dir)).....
22fa0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 64 69 72 2d 73 70 65 63 69 66 69 65 .........(when.test-dir-specifie
22fc0 64 20 60 28 74 65 73 74 2d 64 69 72 20 2c 74 65 73 74 2d 64 69 72 29 29 0a 20 20 20 20 20 20 20 d.`(test-dir.,test-dir))........
22fe0 20 20 20 20 20 20 28 77 68 65 6e 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 2d 73 70 65 ......(when.related-files-fn-spe
23000 63 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 72 65 6c 61 74 65 64 2d cified................`(related-
23020 66 69 6c 65 73 2d 66 6e 20 2c 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 29 29 29 0a 20 files-fn.,related-files-fn))))..
23040 20 20 20 20 20 20 20 20 20 20 28 6d 65 72 67 65 64 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 ..........(merged-plist.........
23060 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 62 69 6e 65 2d 70 6c 69 73 74 73 0a ....(projectile--combine-plists.
23080 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 65 78 69 73 74 69 6e 67 2d 70 72 6f 6a 65 .............(cdr.existing-proje
230a0 63 74 2d 70 6c 69 73 74 29 20 6e 65 77 2d 70 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 ct-plist).new-plist))...........
230c0 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 20 28 63 6f 6e 73 20 70 72 6f 6a 65 63 74 .(project-type-elt.(cons.project
230e0 2d 74 79 70 65 20 6d 65 72 67 65 64 2d 70 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d -type.merged-plist))).......(cl-
23100 66 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 66 69 6c 74 65 72 20 28 70 29 20 28 65 71 20 70 flet*.((project-filter.(p).(eq.p
23120 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 63 61 72 20 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 roject-type.(car.p)))...........
23140 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 6d 61 70 20 28 70 29 20 28 69 66 20 28 70 72 6f .......(project-map.(p).(if.(pro
23160 6a 65 63 74 2d 66 69 6c 74 65 72 20 70 29 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 20 ject-filter.p).project-type-elt.
23180 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 p))).........(setq.projectile-pr
231a0 6f 6a 65 63 74 2d 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 oject-types...............(if.pr
231c0 65 63 65 64 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 ecedence...................(let.
231e0 28 28 66 69 6c 74 65 72 65 64 2d 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ((filtered-types................
23200 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 23 27 70 72 6f 6a 65 63 74 2d ........(cl-remove-if.#'project-
23220 66 69 6c 74 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 filter.projectile-project-types)
23240 29 29 0a 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 72 6f )).....................(setq.pro
23260 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 63 61 63 68 65 20 28 6d 61 6b 65 jectile-project-type-cache.(make
23280 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -hash-table))...................
232a0 20 20 28 63 6f 6e 64 20 28 28 65 71 20 70 72 65 63 65 64 65 6e 63 65 20 27 68 69 67 68 29 0a 20 ..(cond.((eq.precedence.'high)..
232c0 20 20 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 63 6f 6e 73 20 ..........................(cons.
232e0 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 20 66 69 6c 74 65 72 65 64 2d 74 79 70 65 73 29 project-type-elt.filtered-types)
23300 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 28 28 65 71 )...........................((eq
23320 20 70 72 65 63 65 64 65 6e 63 65 20 27 6c 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .precedence.'low)...............
23340 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 66 69 6c 74 65 72 65 64 2d 74 79 .............(append.filtered-ty
23360 70 65 73 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 29 29 29 0a 20 20 pes.(list.project-type-elt)))...
23380 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 74 20 28 65 72 72 6f ........................(t.(erro
233a0 72 20 22 50 72 65 63 65 64 65 6e 63 65 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 28 68 r."Precedence.must.be.one.of.'(h
233c0 69 67 68 20 6c 6f 77 29 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d igh.low)")))).................(m
233e0 61 70 63 61 72 20 23 27 70 72 6f 6a 65 63 74 2d 6d 61 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 apcar.#'project-map.projectile-p
23400 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 roject-types))))))..(defun.proje
23420 63 74 69 6c 65 2d 65 6c 64 65 76 2d 70 72 6f 6a 65 63 74 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c ctile-eldev-project-p.(&optional
23440 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 63 6f 6e 74 .dir)..."Check.if.a.project.cont
23460 61 69 6e 73 20 65 6c 64 65 76 20 66 69 6c 65 73 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 ains.eldev.files..When.DIR.is.sp
23480 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c ecified.it.checks.DIR's.project,
234a0 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e .otherwise.it.acts.on.the.curren
234c0 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 t.project."...(or.(projectile-ve
234e0 72 69 66 79 2d 66 69 6c 65 20 22 45 6c 64 65 76 22 20 64 69 72 29 0a 20 20 20 20 20 20 28 70 72 rify-file."Eldev".dir).......(pr
23500 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 20 22 45 6c 64 65 76 2d 6c 6f 63 61 ojectile-verify-file."Eldev-loca
23520 6c 22 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 l".dir)))..(defun.projectile-exp
23540 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 28 6e 61 6d 65 2d 70 61 74 and-file-name-wildcard.(name-pat
23560 74 65 72 6e 20 64 69 72 29 0a 20 20 22 45 78 70 61 6e 64 20 74 68 65 20 6d 61 79 62 65 2d 77 69 tern.dir)..."Expand.the.maybe-wi
23580 6c 64 63 61 72 64 2d 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 41 4d 45 2d 50 41 54 54 45 52 4e 20 69 ldcard-containing.NAME-PATTERN.i
235a0 6e 20 44 49 52 2e 0a 49 66 20 74 68 65 72 65 20 61 72 65 20 72 65 73 75 6c 74 73 20 65 78 70 61 n.DIR..If.there.are.results.expa
235c0 6e 64 69 6e 67 20 61 20 77 69 6c 64 63 61 72 64 2c 20 67 65 74 20 74 68 65 20 66 69 72 73 74 20 nding.a.wildcard,.get.the.first.
235e0 72 65 73 75 6c 74 2c 0a 6f 74 68 65 72 77 69 73 65 20 65 78 70 61 6e 64 20 4e 41 4d 45 2d 50 41 result,.otherwise.expand.NAME-PA
23600 54 54 45 52 4e 20 69 6e 20 44 49 52 20 69 67 6e 6f 72 69 6e 67 20 77 69 6c 64 63 61 72 64 73 2e TTERN.in.DIR.ignoring.wildcards.
23620 22 0a 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 64 65 64 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 "...(let.((expanded.(expand-file
23640 2d 6e 61 6d 65 20 6e 61 6d 65 2d 70 61 74 74 65 72 6e 20 64 69 72 29 29 29 0a 20 20 20 20 28 6f -name.name-pattern.dir))).....(o
23660 72 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5b 5b 2a 3f 5d 22 20 6e 61 r.(if.(string-match-p."[[*?]".na
23680 6d 65 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 0a 20 20 20 me-pattern).............(car....
236a0 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 ..........(file-expand-wildcards
236c0 20 65 78 70 61 6e 64 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 65 64 29 29 29 .expanded))).........expanded)))
236e0 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 62 61 6c 2d 70 72 6f 6a 65 63 ..(defun.projectile-cabal-projec
23700 74 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 t-p.(&optional.dir)..."Check.if.
23720 61 20 70 72 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 2a 2e 63 61 62 61 6c 20 66 69 6c 65 73 a.project.contains.*.cabal.files
23740 20 62 75 74 20 6e 6f 20 73 74 61 63 6b 2e 79 61 6d 6c 20 66 69 6c 65 2e 0a 57 68 65 6e 20 44 49 .but.no.stack.yaml.file..When.DI
23760 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 20 70 R.is.specified.it.checks.DIR's.p
23780 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 68 65 roject,.otherwise.it.acts.on.the
237a0 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 61 6e 64 20 28 70 72 6f 6a 65 .current.project."...(and.(proje
237c0 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 3f 2a 2e 63 ctile-verify-file-wildcard."?*.c
237e0 61 62 61 6c 22 20 64 69 72 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 72 6f 6a 65 63 74 69 abal".dir)........(not.(projecti
23800 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 20 22 73 74 61 63 6b 2e 79 61 6d 6c 22 20 64 69 72 29 le-verify-file."stack.yaml".dir)
23820 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 6f 74 6e 65 74 2d 70 72 )))..(defun.projectile-dotnet-pr
23840 6f 6a 65 63 74 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b oject-p.(&optional.dir)..."Check
23860 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 2e 4e 45 54 20 70 72 .if.a.project.contains.a..NET.pr
23880 6f 6a 65 63 74 20 6d 61 72 6b 65 72 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 oject.marker..When.DIR.is.specif
238a0 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 ied.it.checks.DIR's.project,.oth
238c0 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 erwise.it.acts.on.the.current.pr
238e0 6f 6a 65 63 74 2e 22 0a 20 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 oject."...(or.(projectile-verify
23900 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 3f 2a 2e 63 73 70 72 6f 6a 22 20 64 69 72 29 0a -file-wildcard."?*.csproj".dir).
23920 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 2d 77 69 ......(projectile-verify-file-wi
23940 6c 64 63 61 72 64 20 22 3f 2a 2e 66 73 70 72 6f 6a 22 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 ldcard."?*.fsproj".dir)))..(defu
23960 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 6f 74 6e 65 74 2d 73 6c 6e 2d 70 72 6f 6a 65 63 74 2d n.projectile-dotnet-sln-project-
23980 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 61 20 p.(&optional.dir)..."Check.if.a.
239a0 70 72 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 2e 4e 45 54 20 73 6f 6c 75 74 69 6f 6e project.contains.a..NET.solution
239c0 20 70 72 6f 6a 65 63 74 20 6d 61 72 6b 65 72 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 .project.marker..When.DIR.is.spe
239e0 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 cified.it.checks.DIR's.project,.
23a00 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 otherwise.it.acts.on.the.current
23a20 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 .project."...(or.(projectile-ver
23a40 69 66 79 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 3f 2a 2e 73 6c 6e 22 20 64 69 72 29 29 ify-file-wildcard."?*.sln".dir))
23a60 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6f 2d 70 72 6f 6a 65 63 74 2d )..(defun.projectile-go-project-
23a80 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 61 20 p.(&optional.dir)..."Check.if.a.
23aa0 70 72 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 47 6f 20 73 6f 75 72 63 65 20 66 69 6c 65 73 project.contains.Go.source.files
23ac0 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b ..When.DIR.is.specified.it.check
23ae0 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 s.DIR's.project,.otherwise.it.ac
23b00 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6f ts.on.the.current.project."...(o
23b20 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 20 22 67 6f 2e 6d 6f r.(projectile-verify-file."go.mo
23b40 64 22 20 64 69 72 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 d".dir).......(projectile-verify
23b60 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 2a 2e 67 6f 22 20 64 69 72 29 29 29 0a 0a 28 64 -file-wildcard."*.go".dir)))..(d
23b80 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6f 2d 70 72 6f 6a 65 63 74 2d 74 efcustom.projectile-go-project-t
23ba0 65 73 74 2d 66 75 6e 63 74 69 6f 6e 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6f 2d 70 72 6f est-function.#'projectile-go-pro
23bc0 6a 65 63 74 2d 70 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 ject-p..."Function.to.determine.
23be0 69 66 20 70 72 6f 6a 65 63 74 27 73 20 74 79 70 65 20 69 73 20 67 6f 2e 22 0a 20 20 3a 67 72 6f if.project's.type.is.go."...:gro
23c00 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e up.'projectile...:type.'function
23c20 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 ...:package-version.'(projectile
23c40 20 2e 20 22 31 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ..."1.0.0"))..(defun.projectile-
23c60 6e 69 6d 62 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 nimble-project-p.(&optional.dir)
23c80 0a 20 20 22 43 68 65 63 6b 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 ..."Check.if.a.project.contains.
23ca0 61 20 4e 69 6d 62 6c 65 20 70 72 6f 6a 65 63 74 20 6d 61 72 6b 65 72 2e 0a 4e 69 6d 20 70 72 6f a.Nimble.project.marker..Nim.pro
23cc0 6a 65 63 74 73 20 74 68 61 74 20 75 73 65 20 4e 69 6d 62 6c 65 20 63 6f 6e 74 61 69 6e 20 61 20 jects.that.use.Nimble.contain.a.
23ce0 3c 70 72 6f 6a 65 63 74 6e 61 6d 65 3e 2e 6e 69 6d 62 6c 65 20 66 69 6c 65 2e 0a 57 68 65 6e 20 <projectname>.nimble.file..When.
23d00 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 DIR.is.specified.it.checks.DIR's
23d20 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 .project,.otherwise.it.acts.on.t
23d40 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 he.current.project."...(projecti
23d60 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 3f 2a 2e 6e 69 6d 62 le-verify-file-wildcard."?*.nimb
23d80 6c 65 22 20 64 69 72 29 29 0a 0a 3b 3b 3b 3b 20 43 6f 6e 73 74 61 6e 74 20 73 69 67 6e 69 66 79 le".dir))..;;;;.Constant.signify
23da0 69 6e 67 20 6f 70 74 69 6e 67 20 6f 75 74 20 6f 66 20 43 4d 61 6b 65 20 70 72 65 73 65 74 20 63 ing.opting.out.of.CMake.preset.c
23dc0 6f 6d 6d 61 6e 64 73 2e 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 ommands..(defconst.projectile--c
23de0 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 20 22 2a 6e 6f 20 70 72 65 73 65 74 2a 22 29 0a 0a 28 make-no-preset."*no.preset*")..(
23e00 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 76 65 72 73 69 6f 6e 20 defun.projectile--cmake-version.
23e20 28 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 43 4d 61 6b 65 20 76 65 72 73 69 6f 6e 2e 22 0a 20 20 ()..."Compute.CMake.version."...
23e40 28 6c 65 74 2a 20 28 28 73 74 72 69 6e 67 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f (let*.((string.(shell-command-to
23e60 2d 73 74 72 69 6e 67 20 22 63 6d 61 6b 65 20 2d 2d 76 65 72 73 69 6f 6e 22 29 29 0a 20 20 20 20 -string."cmake.--version")).....
23e80 20 20 20 20 20 28 6d 61 74 63 68 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 63 6d 61 6b .....(match.(string-match."^cmak
23ea0 65 20 76 65 72 73 69 6f 6e 20 5c 5c 28 2e 2a 5c 5c 29 24 22 20 73 74 72 69 6e 67 29 29 29 0a 20 e.version.\\(.*\\)$".string)))..
23ec0 20 20 20 28 77 68 65 6e 20 6d 61 74 63 68 0a 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 2d 74 6f ...(when.match.......(version-to
23ee0 2d 6c 69 73 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 73 74 72 69 6e 67 29 29 29 29 -list.(match-string.1.string))))
23f00 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 68 65 63 )..(defun.projectile--cmake-chec
23f20 6b 2d 76 65 72 73 69 6f 6e 20 28 76 65 72 73 69 6f 6e 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 k-version.(version)..."Check.if.
23f40 43 4d 61 6b 65 20 76 65 72 73 69 6f 6e 20 69 73 20 61 74 20 6c 65 61 73 74 20 56 45 52 53 49 4f CMake.version.is.at.least.VERSIO
23f60 4e 2e 22 0a 20 20 28 61 6e 64 0a 20 20 20 28 76 65 72 73 69 6f 6e 2d 6c 69 73 74 2d 3c 3d 20 76 N."...(and....(version-list-<=.v
23f80 65 72 73 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 76 65 72 73 69 6f ersion.(projectile--cmake-versio
23fa0 6e 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 n))))..(defconst.projectile--cma
23fc0 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d 6d 69 6e 69 6d 75 6d 2d 76 65 72 73 69 ke-command-presets-minimum-versi
23fe0 6f 6e 2d 61 6c 69 73 74 0a 20 20 27 28 28 3a 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 on-alist...'((:configure-command
24000 20 2e 20 28 33 20 31 39 29 29 0a 20 20 20 20 28 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 ...(3.19)).....(:compile-command
24020 20 2e 20 28 33 20 32 30 29 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 2e 20 ...(3.20)).....(:test-command...
24040 28 33 20 32 30 29 29 0a 20 20 20 20 28 3a 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 (3.20)).....(:package-command...
24060 28 33 20 31 39 29 29 0a 20 20 20 20 28 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2e 20 (3.19)).....(:install-command...
24080 28 33 20 32 30 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d (3.20))))..(defun.projectile--cm
240a0 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d 73 75 70 70 6f 72 74 65 64 20 28 63 ake-command-presets-supported.(c
240c0 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 43 4d 61 6b 65 20 73 ommand-type)..."Check.if.CMake.s
240e0 75 70 70 6f 72 74 73 20 70 72 65 73 65 74 73 20 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 upports.presets.for.COMMAND-TYPE
24100 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 69 6e 69 6d 75 6d 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 ."...(let.((minimum-version.....
24120 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 20 70 72 .....(cdr.(assoc.command-type.pr
24140 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d ojectile--cmake-command-presets-
24160 6d 69 6e 69 6d 75 6d 2d 76 65 72 73 69 6f 6e 2d 61 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 70 minimum-version-alist)))).....(p
24180 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 6d rojectile--cmake-check-version.m
241a0 69 6e 69 6d 75 6d 2d 76 65 72 73 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 inimum-version)))..(defun.projec
241c0 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 72 65 61 64 2d 70 72 65 73 65 74 20 28 66 69 6c 65 6e 61 6d tile--cmake-read-preset.(filenam
241e0 65 29 0a 20 20 22 52 65 61 64 20 43 4d 61 6b 65 20 70 72 65 73 65 74 20 66 72 6f 6d 20 46 49 4c e)..."Read.CMake.preset.from.FIL
24200 45 4e 41 4d 45 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 ENAME."...(when.(file-exists-p.f
24220 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 ilename).....(with-temp-buffer..
24240 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 69 6c 65 6e .....(insert-file-contents.filen
24260 61 6d 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 27 6a 73 6f ame).......(when.(functionp.'jso
24280 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 70 61 n-parse-buffer).........(json-pa
242a0 72 73 65 2d 62 75 66 66 65 72 20 3a 61 72 72 61 79 2d 74 79 70 65 20 27 6c 69 73 74 29 29 29 29 rse-buffer.:array-type.'list))))
242c0 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 )..(defconst.projectile--cmake-c
242e0 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 2d 61 6c 69 73 74 0a 20 20 27 ommand-preset-array-id-alist...'
24300 28 28 3a 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6f 6e 66 69 67 75 72 ((:configure-command..."configur
24320 65 50 72 65 73 65 74 73 22 29 0a 20 20 20 20 28 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 ePresets").....(:compile-command
24340 20 2e 20 22 62 75 69 6c 64 50 72 65 73 65 74 73 22 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f ..."buildPresets").....(:test-co
24360 6d 6d 61 6e 64 20 2e 20 22 74 65 73 74 50 72 65 73 65 74 73 22 29 0a 20 20 20 20 28 3a 70 61 63 mmand..."testPresets").....(:pac
24380 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 70 61 63 6b 61 67 65 50 72 65 73 65 74 73 22 29 kage-command..."packagePresets")
243a0 0a 20 20 20 20 28 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 62 75 69 6c 64 50 .....(:install-command..."buildP
243c0 72 65 73 65 74 73 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 resets")))..(defun.projectile--c
243e0 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 20 28 63 6f make-command-preset-array-id.(co
24400 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 4d 61 70 20 66 72 6f 6d 20 43 4f 4d 4d 41 4e 44 2d mmand-type)..."Map.from.COMMAND-
24420 54 59 50 45 20 74 6f 20 69 64 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 70 72 65 73 65 74 20 61 72 72 TYPE.to.id.of.command.preset.arr
24440 61 79 20 69 6e 20 43 4d 61 6b 65 20 70 72 65 73 65 74 2e 22 0a 20 20 28 63 64 72 20 28 61 73 73 ay.in.CMake.preset."...(cdr.(ass
24460 6f 63 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b oc.command-type.projectile--cmak
24480 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 2d 61 6c 69 73 74 29 e-command-preset-array-id-alist)
244a0 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d ))..(defun.projectile--cmake-com
244c0 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d 73 68 61 6c 6c 6f 77 20 28 66 69 6c 65 6e 61 6d 65 20 63 mand-presets-shallow.(filename.c
244e0 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 47 65 74 20 43 4d 61 6b 65 20 43 4f 4d 4d 41 4e ommand-type)..."Get.CMake.COMMAN
24500 44 2d 54 59 50 45 20 70 72 65 73 65 74 73 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 D-TYPE.presets.from.FILENAME."..
24520 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 65 73 65 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 .(when-let*.((preset.(projectile
24540 2d 2d 63 6d 61 6b 65 2d 72 65 61 64 2d 70 72 65 73 65 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d --cmake-read-preset.(projectile-
24560 65 78 70 61 6e 64 2d 72 6f 6f 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 63 6c expand-root.filename)))).....(cl
24580 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 65 73 65 74 29 -remove-if......(lambda.(preset)
245a0 20 28 65 71 75 61 6c 20 28 67 65 74 68 61 73 68 20 22 68 69 64 64 65 6e 22 20 70 72 65 73 65 74 .(equal.(gethash."hidden".preset
245c0 29 20 74 29 29 0a 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ).t))......(gethash.(projectile-
245e0 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 20 63 -cmake-command-preset-array-id.c
24600 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 20 70 72 65 73 65 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ommand-type).preset))))..(defun.
24620 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 projectile--cmake-command-preset
24640 73 20 28 66 69 6c 65 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 47 65 74 s.(filename.command-type)..."Get
24660 20 43 4d 61 6b 65 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 70 72 65 73 65 74 73 20 66 72 6f 6d .CMake.COMMAND-TYPE.presets.from
24680 20 46 49 4c 45 4e 41 4d 45 2e 20 20 46 6f 6c 6c 6f 77 73 20 69 6e 63 6c 75 64 65 64 20 66 69 6c .FILENAME...Follows.included.fil
246a0 65 73 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 65 73 65 74 20 28 70 72 6f 6a es."...(when-let*.((preset.(proj
246c0 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 72 65 61 64 2d 70 72 65 73 65 74 20 28 70 72 6f 6a 65 ectile--cmake-read-preset.(proje
246e0 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 ctile-expand-root.filename))))..
24700 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 ...(append......(projectile--cma
24720 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d 73 68 61 6c 6c 6f 77 20 66 69 6c 65 6e ke-command-presets-shallow.filen
24740 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 ame.command-type)......(mapcar..
24760 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 6e 63 6c 75 64 65 64 2d 66 69 6c 65 29 20 28 70 72 .....(lambda.(included-file).(pr
24780 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 0a ojectile--cmake-command-presets.
247a0 20 20 20 20 20 20 20 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 ...............................(
247c0 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 69 6e 63 6c 75 64 65 64 2d 66 69 6c 65 20 28 expand-file-name.included-file.(
247e0 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 file-name-directory.filename))..
24800 20 20 20 20 20 20 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 ..............................co
24820 6d 6d 61 6e 64 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 22 69 6e 63 mmand-type)).......(gethash."inc
24840 6c 75 64 65 22 20 70 72 65 73 65 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 lude".preset)))))..(defun.projec
24860 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 tile--cmake-all-command-presets.
24880 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 47 65 74 20 43 4d 61 6b 65 20 75 73 65 72 (command-type)..."Get.CMake.user
248a0 20 61 6e 64 20 73 79 73 74 65 6d 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 70 72 65 73 65 74 73 .and.system.COMMAND-TYPE.presets
248c0 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 6e 0a 20 20 20 28 6d 61 70 ."...(projectile-flatten....(map
248e0 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 6e 61 6d 65 29 20 28 70 72 6f 6a 65 63 74 69 car.(lambda.(filename).(projecti
24900 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 66 69 6c 65 6e 61 le--cmake-command-presets.filena
24920 6d 65 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 me.command-type))............'("
24940 43 4d 61 6b 65 55 73 65 72 50 72 65 73 65 74 73 2e 6a 73 6f 6e 22 20 22 43 4d 61 6b 65 50 72 65 CMakeUserPresets.json"."CMakePre
24960 73 65 74 73 2e 6a 73 6f 6e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c sets.json"))))..(defun.projectil
24980 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 28 63 e--cmake-command-preset-names.(c
249a0 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 47 65 74 20 6e 61 6d 65 73 20 6f 66 20 43 4d 61 ommand-type)..."Get.names.of.CMa
249c0 6b 65 20 75 73 65 72 20 61 6e 64 20 73 79 73 74 65 6d 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 ke.user.and.system.COMMAND-TYPE.
249e0 70 72 65 73 65 74 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 72 65 presets."...(mapcar.(lambda.(pre
24a00 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 22 6e 61 6d 65 22 set).............(gethash."name"
24a20 20 70 72 65 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d .preset))...........(projectile-
24a40 2d 63 6d 61 6b 65 2d 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 63 6f 6d 6d 61 -cmake-all-command-presets.comma
24a60 6e 64 2d 74 79 70 65 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c nd-type)))..(defcustom.projectil
24a80 65 2d 65 6e 61 62 6c 65 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 73 20 6e 69 6c 0a 20 20 22 45 6e e-enable-cmake-presets.nil..."En
24aa0 61 62 6c 65 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 77 69 74 68 20 43 4d 61 6b 65 20 70 ables.configuration.with.CMake.p
24ac0 72 65 73 65 74 73 2e 0a 0a 57 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 resets...When.`projectile-enable
24ae0 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 43 4d 61 6b -cmake-presets'.is.non-nil,.CMak
24b00 65 20 70 72 6f 6a 65 63 74 73 20 63 61 6e 0a 62 65 20 63 6f 6e 66 69 67 75 72 65 64 2c 20 62 75 e.projects.can.be.configured,.bu
24b20 69 6c 74 20 61 6e 64 20 74 65 73 74 65 64 20 75 73 69 6e 67 20 70 72 65 73 65 74 73 2e 22 0a 20 ilt.and.tested.using.presets."..
24b40 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f .:group.'projectile...:type.'boo
24b60 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 lean...:package-version.'(projec
24b80 74 69 6c 65 20 2e 20 22 32 2e 34 2e 30 22 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 tile..."2.4.0"))..(defun.project
24ba0 69 6c 65 2d 2d 63 6d 61 6b 65 2d 75 73 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 28 ile--cmake-use-command-presets.(
24bc0 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 54 65 73 74 20 77 68 65 74 68 65 72 20 6f 72 command-type)..."Test.whether.or
24be0 20 6e 6f 74 20 74 6f 20 75 73 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 73 65 74 73 20 66 6f 72 20 .not.to.use.command.presets.for.
24c00 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 2e 0a 0a 50 72 65 73 65 74 73 20 61 72 65 20 75 73 65 64 20 COMMAND-TYPE...Presets.are.used.
24c20 69 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 6d 61 6b 65 2d 70 72 65 73 if.`projectile-enable-cmake-pres
24c40 65 74 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 6e 64 20 43 4d 61 6b 65 0a 73 75 70 70 6f ets'.is.non-nil,.and.CMake.suppo
24c60 72 74 73 20 70 72 65 73 65 74 73 20 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 2c 20 61 6e rts.presets.for.COMMAND-TYPE,.an
24c80 64 20 60 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 27 20 69 73 20 61 76 61 69 6c 61 62 d.`json-parse-buffer'.is.availab
24ca0 6c 65 2e 22 0a 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 6d le."...(and.projectile-enable-cm
24cc0 61 6b 65 2d 70 72 65 73 65 74 73 0a 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d ake-presets........(projectile--
24ce0 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 2d 73 75 70 70 6f 72 74 65 64 20 cmake-command-presets-supported.
24d00 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 70 20 command-type)........(functionp.
24d20 27 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 'json-parse-buffer)))..(defun.pr
24d40 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 73 65 6c 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 28 ojectile--cmake-select-command.(
24d60 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 43 4d 61 6b 65 20 command-type)..."Select.a.CMake.
24d80 63 6f 6d 6d 61 6e 64 20 70 72 65 73 65 74 20 6f 72 20 61 20 6d 61 6e 75 61 6c 20 43 4d 61 6b 65 command.preset.or.a.manual.CMake
24da0 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 54 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 73 20 64 6f 6e 65 .command...The.selection.is.done
24dc0 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 2d 20 49 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 .like.this:..-.If.`projectile--c
24de0 6d 61 6b 65 2d 75 73 65 2d 63 6f 6d 6d 61 6e 64 73 2d 70 72 65 73 65 74 73 27 20 66 6f 72 20 43 make-use-commands-presets'.for.C
24e00 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 72 65 74 75 72 6e 73 20 74 72 75 65 2c 20 61 6e 64 0a 74 68 OMMAND-TYPE.returns.true,.and.th
24e20 65 72 65 20 69 73 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 70 72 65 73 65 74 20 61 76 61 69 6c ere.is.at.least.one.preset.avail
24e40 61 62 6c 65 20 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 2c 20 74 68 65 20 75 73 65 72 20 able.for.COMMAND-TYPE,.the.user.
24e60 69 73 20 70 72 6f 6d 70 74 65 64 20 74 6f 0a 73 65 6c 65 63 74 20 61 20 6e 61 6d 65 20 6f 66 20 is.prompted.to.select.a.name.of.
24e80 61 20 63 6f 6d 6d 61 6e 64 20 70 72 65 73 65 74 2c 20 6f 72 20 6f 70 74 20 61 20 6d 61 6e 75 61 a.command.preset,.or.opt.a.manua
24ea0 6c 20 63 6f 6d 6d 61 6e 64 20 62 79 20 73 65 6c 65 63 74 69 6e 67 0a 60 70 72 6f 6a 65 63 74 69 l.command.by.selecting.`projecti
24ec0 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 27 2e 0a 0a 2d 20 45 6c 73 65 20 60 70 le--cmake-no-preset'...-.Else.`p
24ee0 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 27 20 69 73 20 75 rojectile--cmake-no-preset'.is.u
24f00 73 65 64 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 75 73 65 2d 70 72 65 73 65 74 73 20 28 sed."...(if-let*.((use-presets.(
24f20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 75 73 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 projectile--cmake-use-command-pr
24f40 65 73 65 74 73 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 esets.command-type))............
24f60 28 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 (preset-names.(projectile--cmake
24f80 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 63 6f 6d 6d 61 6e 64 2d 74 79 -command-preset-names.command-ty
24fa0 70 65 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 pe))).......(projectile-completi
24fc0 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 22 55 73 65 20 70 72 65 73 65 74 3a 20 22 0a 20 20 ng-read........"Use.preset:."...
24fe0 20 20 20 20 20 28 61 70 70 65 6e 64 20 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 60 28 2c 70 72 6f .....(append.preset-names.`(,pro
25000 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 29 29 29 0a 20 20 20 20 jectile--cmake-no-preset))).....
25020 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 29 29 0a 0a 28 projectile--cmake-no-preset))..(
25040 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6d 61 6e 75 61 defconst.projectile--cmake-manua
25060 6c 2d 63 6f 6d 6d 61 6e 64 2d 61 6c 69 73 74 0a 20 20 27 28 28 3a 63 6f 6e 66 69 67 75 72 65 2d l-command-alist...'((:configure-
25080 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6d 61 6b 65 20 2d 53 20 2e 20 2d 42 20 62 75 69 6c 64 22 29 command..."cmake.-S...-B.build")
250a0 0a 20 20 20 20 28 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6d 61 6b 65 20 .....(:compile-command..."cmake.
250c0 2d 2d 62 75 69 6c 64 20 62 75 69 6c 64 22 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f 6d 6d 61 --build.build").....(:test-comma
250e0 6e 64 20 2e 20 22 63 6d 61 6b 65 20 2d 2d 62 75 69 6c 64 20 62 75 69 6c 64 20 2d 2d 74 61 72 67 nd..."cmake.--build.build.--targ
25100 65 74 20 74 65 73 74 22 29 0a 20 20 20 20 28 3a 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 et.test").....(:package-command.
25120 2e 20 22 63 6d 61 6b 65 20 2d 2d 62 75 69 6c 64 20 62 75 69 6c 64 20 2d 2d 74 61 72 67 65 74 20 .."cmake.--build.build.--target.
25140 70 61 63 6b 61 67 65 22 29 0a 20 20 20 20 28 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 package").....(:install-command.
25160 2e 20 22 63 6d 61 6b 65 20 2d 2d 62 75 69 6c 64 20 62 75 69 6c 64 20 2d 2d 74 61 72 67 65 74 20 .."cmake.--build.build.--target.
25180 69 6e 73 74 61 6c 6c 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d install")))..(defun.projectile--
251a0 63 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 cmake-manual-command.(command-ty
251c0 70 65 29 0a 20 20 22 43 72 65 61 74 65 20 6d 61 75 6e 75 61 6c 20 43 4d 61 6b 65 20 43 4f 4d 4d pe)..."Create.maunual.CMake.COMM
251e0 41 4e 44 2d 54 59 50 45 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 AND-TYPE.command."...(cdr.(assoc
25200 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d .command-type.projectile--cmake-
25220 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e 64 2d 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 63 6f 6e manual-command-alist)))..(defcon
25240 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 2d 63 6f 6d 6d st.projectile--cmake-preset-comm
25260 61 6e 64 2d 61 6c 69 73 74 0a 20 20 27 28 28 3a 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e and-alist...'((:configure-comman
25280 64 20 2e 20 22 63 6d 61 6b 65 20 2e 20 2d 2d 70 72 65 73 65 74 20 25 73 22 29 0a 20 20 20 20 28 d..."cmake...--preset.%s").....(
252a0 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6d 61 6b 65 20 2d 2d 62 75 69 6c :compile-command..."cmake.--buil
252c0 64 20 2d 2d 70 72 65 73 65 74 20 25 73 22 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f 6d 6d 61 d.--preset.%s").....(:test-comma
252e0 6e 64 20 2e 20 22 63 74 65 73 74 20 2d 2d 70 72 65 73 65 74 20 25 73 22 29 0a 20 20 20 20 28 3a nd..."ctest.--preset.%s").....(:
25300 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 70 61 63 6b 20 2d 2d 70 72 65 73 65 package-command..."cpack.--prese
25320 74 20 25 73 22 29 0a 20 20 20 20 28 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 t.%s").....(:install-command..."
25340 63 6d 61 6b 65 20 2d 2d 62 75 69 6c 64 20 2d 2d 70 72 65 73 65 74 20 25 73 20 2d 2d 74 61 72 67 cmake.--build.--preset.%s.--targ
25360 65 74 20 69 6e 73 74 61 6c 6c 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c et.install")))..(defun.projectil
25380 65 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e 64 e--cmake-preset-command.(command
253a0 2d 74 79 70 65 20 70 72 65 73 65 74 29 0a 20 20 22 43 72 65 61 74 65 20 43 4d 61 6b 65 20 43 4f -type.preset)..."Create.CMake.CO
253c0 4d 4d 41 4e 44 2d 54 59 50 45 20 63 6f 6d 6d 61 6e 64 20 75 73 69 6e 67 20 50 52 45 53 45 54 2e MMAND-TYPE.command.using.PRESET.
253e0 22 0a 20 20 28 66 6f 72 6d 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 63 6f 6d 6d 61 6e 64 2d "...(format.(cdr.(assoc.command-
25400 74 79 70 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 2d 63 6f type.projectile--cmake-preset-co
25420 6d 6d 61 6e 64 2d 61 6c 69 73 74 29 29 20 70 72 65 73 65 74 29 29 0a 0a 28 64 65 66 75 6e 20 70 mmand-alist)).preset))..(defun.p
25440 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e rojectile--cmake-command.(comman
25460 64 2d 74 79 70 65 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 43 4d 61 6b 65 20 43 4f 4d 4d 41 4e d-type)..."Create.a.CMake.COMMAN
25480 44 2d 54 59 50 45 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 D-TYPE.command...The.command.is.
254a0 63 72 65 61 74 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 2d 20 49 66 20 60 70 72 6f 6a 65 63 created.like.this:..-.If.`projec
254c0 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 73 65 6c 65 63 74 2d 63 6f 6d 6d 61 6e 64 27 20 72 65 74 75 tile--cmake-select-command'.retu
254e0 72 6e 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 rns.`projectile--cmake-no-preset
25500 27 0a 61 20 6d 61 6e 75 61 6c 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 63 6f 6d 6d 61 6e 64 20 '.a.manual.COMMAND-TYPE.command.
25520 69 73 20 63 72 65 61 74 65 64 20 77 69 74 68 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 is.created.with.`projectile--cma
25540 6b 65 2d 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e 64 27 2e 0a 0a 2d 20 45 6c 73 65 20 61 20 70 72 ke-manual-command'...-.Else.a.pr
25560 65 73 65 74 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 63 6f 6d 6d 61 6e 64 20 75 73 69 6e 67 20 eset.COMMAND-TYPE.command.using.
25580 74 68 65 20 73 65 6c 65 63 74 65 64 20 70 72 65 73 65 74 20 69 73 20 63 72 65 61 74 65 64 20 77 the.selected.preset.is.created.w
255a0 69 74 68 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 2d 63 6f ith.`projectile--cmake-preset-co
255c0 6d 6d 61 6e 64 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 61 79 62 65 2d 70 72 65 73 65 74 20 28 mmand'."...(let.((maybe-preset.(
255e0 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 73 65 6c 65 63 74 2d 63 6f 6d 6d 61 6e 64 projectile--cmake-select-command
25600 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 .command-type))).....(if.(equal.
25620 6d 61 79 62 65 2d 70 72 65 73 65 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e maybe-preset.projectile--cmake-n
25640 6f 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 o-preset).........(projectile--c
25660 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 make-manual-command.command-type
25680 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 ).......(projectile--cmake-prese
256a0 74 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 20 6d 61 79 62 65 2d 70 72 65 t-command.command-type.maybe-pre
256c0 73 65 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b set))))..(defun.projectile--cmak
256e0 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 28 29 0a 20 20 22 43 4d 61 6b 65 20 e-configure-command.()..."CMake.
25700 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c configure.command."...(projectil
25720 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 20 3a 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d e--cmake-command.:configure-comm
25740 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d and))..(defun.projectile--cmake-
25760 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 20 28 29 0a 20 20 22 43 4d 61 6b 65 20 63 6f 6d 70 compile-command.()..."CMake.comp
25780 69 6c 65 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 ile.command."...(projectile--cma
257a0 6b 65 2d 63 6f 6d 6d 61 6e 64 20 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 ke-command.:compile-command))..(
257c0 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 74 65 73 74 2d 63 6f 6d defun.projectile--cmake-test-com
257e0 6d 61 6e 64 20 28 29 0a 20 20 22 43 4d 61 6b 65 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 2e 22 0a mand.()..."CMake.test.command.".
25800 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 20 3a 74 65 ..(projectile--cmake-command.:te
25820 73 74 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d st-command))..(defun.projectile-
25840 2d 63 6d 61 6b 65 2d 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 29 0a 20 20 22 43 4d 61 -cmake-install-command.()..."CMa
25860 6b 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 ke.install.command."...(projecti
25880 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 6d 61 6e 64 20 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 le--cmake-command.:install-comma
258a0 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 nd))..(defun.projectile--cmake-p
258c0 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 28 29 0a 20 20 22 43 4d 61 6b 65 20 70 61 63 6b 61 ackage-command.()..."CMake.packa
258e0 67 65 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b ge.command."...(projectile--cmak
25900 65 2d 63 6f 6d 6d 61 6e 64 20 3a 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 3b 3b e-command.:package-command))..;;
25920 3b 20 50 72 6f 6a 65 63 74 20 74 79 70 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 0a 3b 3b 0a 3b ;.Project.type.registration.;;.;
25940 3b 20 50 72 6f 6a 65 63 74 20 74 79 70 65 20 64 65 74 65 63 74 69 6f 6e 20 68 61 70 70 65 6e 73 ;.Project.type.detection.happens
25960 20 69 6e 20 61 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 20 77 69 74 68 20 72 65 73 70 65 63 74 .in.a.reverse.order.with.respect
25980 20 74 6f 0a 3b 3b 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e .to.;;.project.type.registration
259a0 20 28 69 6e 76 6f 63 61 74 69 6f 6e 73 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 .(invocations.of.`projectile-reg
259c0 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 27 29 2e 0a 3b 3b 0a 3b 3b 20 41 73 20 66 ister-project-type')..;;.;;.As.f
259e0 75 6e 63 74 69 6f 6e 2d 62 61 73 65 64 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 64 65 74 65 63 unction-based.project.type.detec
25a00 74 69 6f 6e 20 69 73 20 70 72 65 74 74 79 20 73 6c 6f 77 2c 20 73 6f 20 69 74 0a 3b 3b 20 73 68 tion.is.pretty.slow,.so.it.;;.sh
25a20 6f 75 6c 64 20 62 65 20 74 72 69 65 64 20 61 74 20 74 68 65 20 65 6e 64 20 69 66 20 65 76 65 72 ould.be.tried.at.the.end.if.ever
25a40 79 74 68 69 6e 67 20 65 6c 73 65 20 66 61 69 6c 65 64 20 28 6d 65 61 6e 69 6e 67 20 68 65 72 65 ything.else.failed.(meaning.here
25a60 0a 3b 3b 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 69 73 74 65 64 20 66 69 72 73 74 29 2e 0a .;;.it.should.be.listed.first)..
25a80 3b 3b 0a 3b 3b 20 49 64 65 61 6c 6c 79 20 63 6f 6d 6d 6f 6e 20 70 72 6f 6a 65 63 74 20 74 79 70 ;;.;;.Ideally.common.project.typ
25aa0 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 68 65 63 6b 65 64 20 65 61 72 6c 69 65 72 20 74 68 61 es.should.be.checked.earlier.tha
25ac0 6e 20 65 78 6f 74 69 63 20 6f 6e 65 73 2e 0a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 2d 62 61 73 65 n.exotic.ones...;;.Function-base
25ae0 64 20 64 65 74 65 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 20 74 79 70 65 0a 28 70 72 6f 6a 65 63 d.detection.project.type.(projec
25b00 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 68 61 73 6b tile-register-project-type.'hask
25b20 65 6c 6c 2d 63 61 62 61 6c 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 62 61 6c 2d 70 72 6f ell-cabal.#'projectile-cabal-pro
25b40 6a 65 63 74 2d 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 ject-p..........................
25b60 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 63 61 62 61 6c 20 62 75 69 6c 64 22 0a .........:compile."cabal.build".
25b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25ba0 20 20 3a 74 65 73 74 20 22 63 61 62 61 6c 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 ..:test."cabal.test"............
25bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 63 61 62 .......................:run."cab
25be0 61 6c 20 72 75 6e 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 al.run".........................
25c00 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 53 70 65 63 22 29 0a 28 ..........:test-suffix."Spec").(
25c20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 projectile-register-project-type
25c40 20 27 64 6f 74 6e 65 74 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 6f 74 6e 65 74 2d 70 72 6f .'dotnet.#'projectile-dotnet-pro
25c60 6a 65 63 74 2d 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 ject-p..........................
25c80 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 27 28 22 3f 2a 2e 63 73 70 .........:project-file.'("?*.csp
25ca0 72 6f 6a 22 20 22 3f 2a 2e 66 73 70 72 6f 6a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roj"."?*.fsproj")...............
25cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 64 6f ....................:compile."do
25ce0 74 6e 65 74 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tnet.build".....................
25d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 64 6f 74 6e 65 74 20 72 75 6e 22 0a ..............:run."dotnet.run".
25d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25d40 20 20 3a 74 65 73 74 20 22 64 6f 74 6e 65 74 20 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 ..:test."dotnet.test").(projecti
25d60 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 64 6f 74 6e 65 74 le-register-project-type.'dotnet
25d80 2d 73 6c 6e 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 6f 74 6e 65 74 2d 73 6c 6e 2d 70 72 6f -sln.#'projectile-dotnet-sln-pro
25da0 6a 65 63 74 2d 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 ject-p..........................
25dc0 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 3f 2a 2e 73 6c 6e 22 0a .........:project-file."?*.sln".
25de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25e00 20 20 3a 63 6f 6d 70 69 6c 65 20 22 64 6f 74 6e 65 74 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 ..:compile."dotnet.build".......
25e20 20 20 20 20 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 72 75 6e ............................:run
25e40 20 22 64 6f 74 6e 65 74 20 72 75 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."dotnet.run"...................
25e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 64 6f 74 6e 65 74 20 74 65 ................:test."dotnet.te
25e80 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 st").(projectile-register-projec
25ea0 74 2d 74 79 70 65 20 27 6e 69 6d 2d 6e 69 6d 62 6c 65 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d t-type.'nim-nimble.#'projectile-
25ec0 6e 69 6d 62 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nimble-project-p................
25ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 ...................:project-file
25f00 20 22 3f 2a 2e 6e 69 6d 62 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."?*.nimble"....................
25f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6e 69 6d 62 6c 65 20 ...............:compile."nimble.
25f40 2d 2d 6e 6f 43 6f 6c 6f 72 20 62 75 69 6c 64 20 2d 2d 63 6f 6c 6f 72 73 3a 6f 66 66 22 0a 20 20 --noColor.build.--colors:off"...
25f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25f80 3a 69 6e 73 74 61 6c 6c 20 22 6e 69 6d 62 6c 65 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 69 6e 73 74 61 :install."nimble.--noColor.insta
25fa0 6c 6c 20 2d 2d 63 6f 6c 6f 72 73 3a 6f 66 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ll.--colors:off"................
25fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6e 69 6d 62 6c 65 ...................:test."nimble
25fe0 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 74 65 73 74 20 2d 64 3a 6e 69 6d 55 6e 69 74 74 65 73 74 43 6f .--noColor.test.-d:nimUnittestCo
26000 6c 6f 72 3a 6f 66 66 20 2d 2d 63 6f 6c 6f 72 73 3a 6f 66 66 22 0a 20 20 20 20 20 20 20 20 20 20 lor:off.--colors:off"...........
26020 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 72 75 6e 20 22 6e 69 ........................:run."ni
26040 6d 62 6c 65 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 72 75 6e 20 2d 2d 63 6f 6c 6f 72 73 3a 6f 66 66 22 mble.--noColor.run.--colors:off"
26060 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 ................................
26080 20 20 20 3a 73 72 63 2d 64 69 72 20 22 73 72 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...:src-dir."src"...............
260a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 74 ....................:test-dir."t
260c0 65 73 74 73 22 29 0a 3b 3b 20 46 69 6c 65 2d 62 61 73 65 64 20 64 65 74 65 63 74 69 6f 6e 20 70 ests").;;.File-based.detection.p
260e0 72 6f 6a 65 63 74 20 74 79 70 65 73 0a 0a 3b 3b 20 55 6e 69 76 65 72 73 61 6c 0a 28 70 72 6f 6a roject.types..;;.Universal.(proj
26100 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 78 6d ectile-register-project-type.'xm
26120 61 6b 65 20 27 28 22 78 6d 61 6b 65 2e 6c 75 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ake.'("xmake.lua")..............
26140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 .....................:project-fi
26160 6c 65 20 22 78 6d 61 6b 65 2e 6c 75 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le."xmake.lua"..................
26180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 78 6d 61 6b 65 .................:compile."xmake
261a0 20 62 75 69 6c 64 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 .build".........................
261c0 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 78 6d 61 6b 65 20 74 65 73 74 22 0a 20 20 20 ..........:test."xmake.test"....
261e0 20 20 20 20 20 20 20 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 ...............................:
26200 72 75 6e 20 22 78 6d 61 6b 65 20 72 75 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 run."xmake.run".................
26220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 22 78 6d 61 6b ..................:install."xmak
26240 65 20 69 6e 73 74 61 6c 6c 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 e.install").(projectile-register
26260 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 73 63 6f 6e 73 20 27 28 22 53 43 6f 6e 73 74 72 75 -project-type.'scons.'("SConstru
26280 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ct")............................
262a0 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 53 43 6f 6e 73 74 72 75 63 74 .......:project-file."SConstruct
262c0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
262e0 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 73 63 6f 6e 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....:compile."scons"............
26300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 73 63 .......................:test."sc
26320 6f 6e 73 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.test".......................
26340 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 74 65 73 74 22 29 ............:test-suffix."test")
26360 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 .(projectile-register-project-ty
26380 70 65 20 27 6d 65 73 6f 6e 20 27 28 22 6d 65 73 6f 6e 2e 62 75 69 6c 64 22 29 0a 20 20 20 20 20 pe.'meson.'("meson.build")......
263a0 20 20 20 20 20 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 70 72 .............................:pr
263c0 6f 6a 65 63 74 2d 66 69 6c 65 20 22 6d 65 73 6f 6e 2e 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 oject-file."meson.build"........
263e0 20 20 20 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 63 6f 6d 70 ...........................:comp
26400 69 6c 61 74 69 6f 6e 2d 64 69 72 20 22 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ilation-dir."build".............
26420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 66 69 67 75 72 65 ......................:configure
26440 20 22 6d 65 73 6f 6e 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."meson.%s".....................
26460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6e 69 6e 6a 61 22 0a 20 ..............:compile."ninja"..
26480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
264a0 20 3a 74 65 73 74 20 22 6e 69 6e 6a 61 20 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 .:test."ninja.test").(projectile
264c0 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6e 69 78 20 27 28 22 64 -register-project-type.'nix.'("d
264e0 65 66 61 75 6c 74 2e 6e 69 78 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efault.nix")....................
26500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 64 65 ...............:project-file."de
26520 66 61 75 6c 74 2e 6e 69 78 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fault.nix"......................
26540 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6e 69 78 2d 62 75 69 6c 64 .............:compile."nix-build
26560 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
26580 20 20 20 20 3a 74 65 73 74 20 22 6e 69 78 2d 62 75 69 6c 64 22 29 0a 28 70 72 6f 6a 65 63 74 69 ....:test."nix-build").(projecti
265a0 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6e 69 78 2d 66 6c le-register-project-type.'nix-fl
265c0 61 6b 65 20 27 28 22 66 6c 61 6b 65 2e 6e 69 78 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ake.'("flake.nix")..............
265e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 .....................:project-fi
26600 6c 65 20 22 66 6c 61 6b 65 2e 6e 69 78 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le."flake.nix"..................
26620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6e 69 78 20 62 .................:compile."nix.b
26640 75 69 6c 64 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 uild"...........................
26660 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6e 69 78 20 66 6c 61 6b 65 20 63 68 65 63 6b 22 0a ........:test."nix.flake.check".
26680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
266a0 20 20 3a 72 75 6e 20 22 6e 69 78 20 72 75 6e 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 ..:run."nix.run").(projectile-re
266c0 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 62 61 7a 65 6c 20 27 28 22 57 4f gister-project-type.'bazel.'("WO
266e0 52 4b 53 50 41 43 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RKSPACE").......................
26700 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 57 4f 52 4b 53 ............:project-file."WORKS
26720 50 41 43 45 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 PACE"...........................
26740 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 62 61 7a 65 6c 20 62 75 69 6c 64 22 0a 20 ........:compile."bazel.build"..
26760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26780 20 3a 74 65 73 74 20 22 62 61 7a 65 6c 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .:test."bazel.test".............
267a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 62 61 7a 65 ......................:run."baze
267c0 6c 20 72 75 6e 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f l.run").(projectile-register-pro
267e0 6a 65 63 74 2d 74 79 70 65 20 27 64 65 62 69 61 6e 20 27 28 22 64 65 62 69 61 6e 2f 63 6f 6e 74 ject-type.'debian.'("debian/cont
26800 72 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rol")...........................
26820 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 64 65 62 69 61 6e 2f 63 6f ........:project-file."debian/co
26840 6e 74 72 6f 6c 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 ntrol"..........................
26860 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 64 65 62 75 69 6c 64 20 2d 75 63 20 2d .........:compile."debuild.-uc.-
26880 75 73 22 29 0a 0a 3b 3b 20 4d 61 6b 65 20 26 20 43 4d 61 6b 65 0a 28 70 72 6f 6a 65 63 74 69 6c us")..;;.Make.&.CMake.(projectil
268a0 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6d 61 6b 65 20 27 28 e-register-project-type.'make.'(
268c0 22 4d 61 6b 65 66 69 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "Makefile").....................
268e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 4d 61 6b ..............:project-file."Mak
26900 65 66 69 6c 65 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 efile"..........................
26920 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6d 61 6b 65 22 0a 20 20 20 20 20 20 20 .........:compile."make"........
26940 20 20 20 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 74 65 73 74 ...........................:test
26960 20 22 6d 61 6b 65 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."make.test"....................
26980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 22 6d 61 6b 65 20 69 6e ...............:install."make.in
269a0 73 74 61 6c 6c 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f stall").(projectile-register-pro
269c0 6a 65 63 74 2d 74 79 70 65 20 27 67 6e 75 6d 61 6b 65 20 27 28 22 47 4e 55 4d 61 6b 65 66 69 6c ject-type.'gnumake.'("GNUMakefil
269e0 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e").............................
26a00 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 47 4e 55 4d 61 6b 65 66 69 6c 65 ......:project-file."GNUMakefile
26a20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
26a40 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6d 61 6b 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....:compile."make".............
26a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6d 61 6b ......................:test."mak
26a80 65 20 74 65 73 74 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 e.test".........................
26aa0 20 20 20 20 20 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 22 6d 61 6b 65 20 69 6e 73 74 61 6c 6c ..........:install."make.install
26ac0 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d ").(projectile-register-project-
26ae0 74 79 70 65 20 27 63 6d 61 6b 65 20 27 28 22 43 4d 61 6b 65 4c 69 73 74 73 2e 74 78 74 22 29 0a type.'cmake.'("CMakeLists.txt").
26b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26b20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 43 4d 61 6b 65 4c 69 73 74 73 2e 74 78 74 22 ..:project-file."CMakeLists.txt"
26b40 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 ................................
26b60 20 20 20 3a 63 6f 6e 66 69 67 75 72 65 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b ...:configure.#'projectile--cmak
26b80 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-configure-command.............
26ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 23 ......................:compile.#
26bc0 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 'projectile--cmake-compile-comma
26be0 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd..............................
26c00 20 20 20 20 20 3a 74 65 73 74 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 74 .....:test.#'projectile--cmake-t
26c20 65 73 74 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 est-command.....................
26c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 23 27 70 72 6f 6a 65 63 74 ..............:install.#'project
26c60 69 6c 65 2d 2d 63 6d 61 6b 65 2d 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 ile--cmake-install-command......
26c80 20 20 20 20 20 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 70 61 .............................:pa
26ca0 63 6b 61 67 65 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 70 61 63 6b 61 67 ckage.#'projectile--cmake-packag
26cc0 65 2d 63 6f 6d 6d 61 6e 64 29 0a 3b 3b 20 67 6f 2d 74 61 73 6b 2f 74 61 73 6b 0a 28 70 72 6f 6a e-command).;;.go-task/task.(proj
26ce0 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 6f ectile-register-project-type.'go
26d00 2d 74 61 73 6b 20 27 28 22 54 61 73 6b 66 69 6c 65 2e 79 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 -task.'("Taskfile.yml").........
26d20 20 20 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 70 72 6f 6a 65 ..........................:proje
26d40 63 74 2d 66 69 6c 65 20 22 54 61 73 6b 66 69 6c 65 2e 79 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 ct-file."Taskfile.yml"..........
26d60 20 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 63 6f 6d 70 69 6c .........................:compil
26d80 65 20 22 74 61 73 6b 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e."task.build"..................
26da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 74 61 73 6b 20 74 65 73 .................:test."task.tes
26dc0 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t"..............................
26de0 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 22 74 61 73 6b 20 69 6e 73 74 61 6c 6c 22 29 0a 3b 3b .....:install."task.install").;;
26e00 20 47 6f 20 73 68 6f 75 6c 64 20 74 61 6b 65 20 68 69 67 68 65 72 20 70 72 65 63 65 64 65 6e 63 .Go.should.take.higher.precedenc
26e20 65 20 74 68 61 6e 20 4d 61 6b 65 20 62 65 63 61 75 73 65 20 47 6f 20 70 72 6f 6a 65 63 74 73 20 e.than.Make.because.Go.projects.
26e40 6f 66 74 65 6e 20 68 61 76 65 20 61 20 4d 61 6b 65 66 69 6c 65 2e 0a 28 70 72 6f 6a 65 63 74 69 often.have.a.Makefile..(projecti
26e60 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 6f 20 70 72 6f le-register-project-type.'go.pro
26e80 6a 65 63 74 69 6c 65 2d 67 6f 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 66 75 6e 63 74 69 6f 6e jectile-go-project-test-function
26ea0 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 ................................
26ec0 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 67 6f 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 ...:compile."go.build"..........
26ee0 20 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 74 65 73 74 20 22 .........................:test."
26f00 67 6f 20 74 65 73 74 20 2e 2f 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 go.test../..."..................
26f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f .................:test-suffix."_
26f40 74 65 73 74 22 29 0a 3b 3b 20 50 48 50 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 test").;;.PHP.(projectile-regist
26f60 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 68 70 2d 73 79 6d 66 6f 6e 79 20 27 28 22 er-project-type.'php-symfony.'("
26f80 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 22 20 22 61 70 70 22 20 22 73 72 63 22 20 22 76 65 6e 64 composer.json"."app"."src"."vend
26fa0 6f 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or")............................
26fc0 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 63 6f 6d 70 6f 73 65 72 2e 6a .......:project-file."composer.j
26fe0 73 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 son"............................
27000 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 61 70 70 2f 63 6f 6e 73 6f 6c 65 20 73 65 72 .......:compile."app/console.ser
27020 76 65 72 3a 72 75 6e 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 ver:run"........................
27040 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 68 70 75 6e 69 74 20 2d 63 20 61 70 70 ...........:test."phpunit.-c.app
27060 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 20 20 20 ."..............................
27080 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 54 65 73 74 22 29 0a 3b 3b 20 45 72 6c .....:test-suffix."Test").;;.Erl
270a0 61 6e 67 20 26 20 45 6c 69 78 69 72 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 ang.&.Elixir.(projectile-registe
270c0 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 65 62 61 72 20 27 28 22 72 65 62 61 72 2e 63 r-project-type.'rebar.'("rebar.c
270e0 6f 6e 66 69 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onfig").........................
27100 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 72 65 62 61 72 2e 63 ..........:project-file."rebar.c
27120 6f 6e 66 69 67 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 onfig"..........................
27140 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 72 65 62 61 72 33 20 63 6f 6d 70 69 6c .........:compile."rebar3.compil
27160 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e"..............................
27180 20 20 20 20 20 3a 74 65 73 74 20 22 72 65 62 61 72 33 20 64 6f 20 65 75 6e 69 74 2c 63 74 22 0a .....:test."rebar3.do.eunit,ct".
271a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
271c0 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 53 55 49 54 45 22 29 0a 28 70 72 6f 6a 65 63 ..:test-suffix."_SUITE").(projec
271e0 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 65 6c 69 78 tile-register-project-type.'elix
27200 69 72 20 27 28 22 6d 69 78 2e 65 78 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ir.'("mix.exs").................
27220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 ..................:project-file.
27240 22 6d 69 78 2e 65 78 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "mix.exs".......................
27260 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6d 69 78 20 63 6f 6d 70 69 6c ............:compile."mix.compil
27280 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e"..............................
272a0 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 6c 69 62 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 .....:src-dir."lib/"............
272c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6d 69 .......................:test."mi
272e0 78 20 74 65 73 74 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 x.test".........................
27300 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a ..........:test-suffix."_test").
27320 3b 3b 20 4a 61 76 61 53 63 72 69 70 74 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 ;;.JavaScript.(projectile-regist
27340 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 72 75 6e 74 20 27 28 22 47 72 75 6e 74 66 er-project-type.'grunt.'("Gruntf
27360 69 6c 65 2e 6a 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.js")........................
27380 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 47 72 75 6e 74 66 ...........:project-file."Gruntf
273a0 69 6c 65 2e 6a 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.js".........................
273c0 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 67 72 75 6e 74 22 0a 20 20 20 20 20 ..........:compile."grunt"......
273e0 20 20 20 20 20 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 74 65 .............................:te
27400 73 74 20 22 67 72 75 6e 74 20 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 st."grunt.test").(projectile-reg
27420 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 75 6c 70 20 27 28 22 67 75 6c 70 ister-project-type.'gulp.'("gulp
27440 66 69 6c 65 2e 6a 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 file.js").......................
27460 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 67 75 6c 70 66 ............:project-file."gulpf
27480 69 6c 65 2e 6a 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.js".........................
274a0 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 67 75 6c 70 22 0a 20 20 20 20 20 20 ..........:compile."gulp".......
274c0 20 20 20 20 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 74 65 73 ............................:tes
274e0 74 20 22 67 75 6c 70 20 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 t."gulp.test").(projectile-regis
27500 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6e 70 6d 20 27 28 22 70 61 63 6b 61 67 65 ter-project-type.'npm.'("package
27520 2e 6a 73 6f 6e 22 20 22 70 61 63 6b 61 67 65 2d 6c 6f 63 6b 2e 6a 73 6f 6e 22 29 0a 20 20 20 20 .json"."package-lock.json").....
27540 20 20 20 20 20 20 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 70 ..............................:p
27560 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 22 0a 20 20 20 20 20 roject-file."package.json"......
27580 20 20 20 20 20 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 63 6f .............................:co
275a0 6d 70 69 6c 65 20 22 6e 70 6d 20 69 6e 73 74 61 6c 6c 20 26 26 20 6e 70 6d 20 72 75 6e 20 62 75 mpile."npm.install.&&.npm.run.bu
275c0 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ild"............................
275e0 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6e 70 6d 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 .......:test."npm.test".........
27600 20 20 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 74 65 73 74 2d ..........................:test-
27620 73 75 66 66 69 78 20 22 2e 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 suffix.".test").(projectile-regi
27640 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 79 61 72 6e 20 27 28 22 70 61 63 6b 61 ster-project-type.'yarn.'("packa
27660 67 65 2e 6a 73 6f 6e 22 20 22 79 61 72 6e 2e 6c 6f 63 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 ge.json"."yarn.lock")...........
27680 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 70 72 6f 6a 65 63 74 ........................:project
276a0 2d 66 69 6c 65 20 22 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 -file."package.json"............
276c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 .......................:compile.
276e0 22 79 61 72 6e 20 26 26 20 79 61 72 6e 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 "yarn.&&.yarn.build"............
27700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 79 61 .......................:test."ya
27720 72 6e 20 74 65 73 74 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 rn.test"........................
27740 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 2e 74 65 73 74 22 29 ...........:test-suffix.".test")
27760 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 .(projectile-register-project-ty
27780 70 65 20 27 70 6e 70 6d 20 27 28 22 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 22 20 22 70 6e 70 6d 2d pe.'pnpm.'("package.json"."pnpm-
277a0 6c 6f 63 6b 2e 79 61 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lock.yaml").....................
277c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 70 61 63 ..............:project-file."pac
277e0 6b 61 67 65 2e 6a 73 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kage.json"......................
27800 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 70 6e 70 6d 20 69 6e 73 74 .............:compile."pnpm.inst
27820 61 6c 6c 20 26 26 20 70 6e 70 6d 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 all.&&.pnpm.build"..............
27840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 6e 70 6d .....................:test."pnpm
27860 20 74 65 73 74 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 .test"..........................
27880 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 2e 74 65 73 74 22 29 0a 3b .........:test-suffix.".test").;
278a0 3b 20 41 6e 67 75 6c 61 72 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 ;.Angular.(projectile-register-p
278c0 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 61 6e 67 75 6c 61 72 20 27 28 22 61 6e 67 75 6c 61 72 2e roject-type.'angular.'("angular.
278e0 6a 73 6f 6e 22 20 22 2e 61 6e 67 75 6c 61 72 2d 63 6c 69 2e 6a 73 6f 6e 22 29 0a 20 20 20 20 20 json".".angular-cli.json")......
27900 20 20 20 20 20 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 70 72 .............................:pr
27920 6f 6a 65 63 74 2d 66 69 6c 65 20 22 61 6e 67 75 6c 61 72 2e 6a 73 6f 6e 22 0a 20 20 20 20 20 20 oject-file."angular.json".......
27940 20 20 20 20 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 63 6f 6d ............................:com
27960 70 69 6c 65 20 22 6e 67 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pile."ng.build".................
27980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 6e 67 20 73 65 72 76 65 ..................:run."ng.serve
279a0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
279c0 20 20 20 20 3a 74 65 73 74 20 22 6e 67 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....:test."ng.test".............
279e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 ......................:test-suff
27a00 69 78 20 22 2e 73 70 65 63 22 29 0a 3b 3b 20 50 79 74 68 6f 6e 0a 28 70 72 6f 6a 65 63 74 69 6c ix.".spec").;;.Python.(projectil
27a20 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 64 6a 61 6e 67 6f 20 e-register-project-type.'django.
27a40 27 28 22 6d 61 6e 61 67 65 2e 70 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '("manage.py")..................
27a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 .................:project-file."
27a80 6d 61 6e 61 67 65 2e 70 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 manage.py"......................
27aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 70 79 74 68 6f 6e 20 6d 61 .............:compile."python.ma
27ac0 6e 61 67 65 2e 70 79 20 72 75 6e 73 65 72 76 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nage.py.runserver"..............
27ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 79 74 68 .....................:test."pyth
27b00 6f 6e 20 6d 61 6e 61 67 65 2e 70 79 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 on.manage.py.test"..............
27b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 .....................:test-prefi
27b40 78 20 22 74 65 73 74 5f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x."test_".......................
27b60 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 22 5f 74 65 73 74 22 29 ............:test-suffix"_test")
27b80 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 .(projectile-register-project-ty
27ba0 70 65 20 27 70 79 74 68 6f 6e 2d 70 69 70 20 27 28 22 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 74 pe.'python-pip.'("requirements.t
27bc0 78 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xt")............................
27be0 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 72 65 71 75 69 72 65 6d 65 6e .......:project-file."requiremen
27c00 74 73 2e 74 78 74 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 ts.txt".........................
27c20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 70 79 74 68 6f 6e 20 73 65 74 75 70 ..........:compile."python.setup
27c40 2e 70 79 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .py.build"......................
27c60 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 79 74 68 6f 6e 20 2d 6d 20 75 6e .............:test."python.-m.un
27c80 69 74 74 65 73 74 20 64 69 73 63 6f 76 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ittest.discover"................
27ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 ...................:test-prefix.
27cc0 22 74 65 73 74 5f 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 "test_".........................
27ce0 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 22 5f 74 65 73 74 22 29 0a 28 ..........:test-suffix"_test").(
27d00 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 projectile-register-project-type
27d20 20 27 70 79 74 68 6f 6e 2d 70 6b 67 20 27 28 22 73 65 74 75 70 2e 70 79 22 29 0a 20 20 20 20 20 .'python-pkg.'("setup.py")......
27d40 20 20 20 20 20 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 70 72 .............................:pr
27d60 6f 6a 65 63 74 2d 66 69 6c 65 20 22 73 65 74 75 70 2e 70 79 22 0a 20 20 20 20 20 20 20 20 20 20 oject-file."setup.py"...........
27d80 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 63 6f 6d 70 69 6c 65 ........................:compile
27da0 20 22 70 79 74 68 6f 6e 20 73 65 74 75 70 2e 70 79 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 ."python.setup.py.build"........
27dc0 20 20 20 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 74 65 73 74 ...........................:test
27de0 20 22 70 79 74 68 6f 6e 20 2d 6d 20 75 6e 69 74 74 65 73 74 20 64 69 73 63 6f 76 65 72 22 0a 20 ."python.-m.unittest.discover"..
27e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27e20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 74 5f 22 0a 20 20 20 20 20 20 20 20 20 20 .:test-prefix."test_"...........
27e40 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 74 65 73 74 2d 73 75 ........................:test-su
27e60 66 66 69 78 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 ffix"_test").(projectile-registe
27e80 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 79 74 68 6f 6e 2d 74 6f 78 20 27 28 22 74 6f r-project-type.'python-tox.'("to
27ea0 78 2e 69 6e 69 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x.ini").........................
27ec0 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 74 6f 78 2e 69 6e 69 ..........:project-file."tox.ini
27ee0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
27f00 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 74 6f 78 20 2d 72 20 2d 2d 6e 6f 74 65 73 74 22 0a 20 ....:compile."tox.-r.--notest"..
27f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27f40 20 3a 74 65 73 74 20 22 74 6f 78 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:test."tox"....................
27f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 ...............:test-prefix."tes
27f80 74 5f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t_".............................
27fa0 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a ......:test-suffix"_test").(proj
27fc0 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 79 ectile-register-project-type.'py
27fe0 74 68 6f 6e 2d 70 69 70 65 6e 76 20 27 28 22 50 69 70 66 69 6c 65 22 29 0a 20 20 20 20 20 20 20 thon-pipenv.'("Pipfile")........
28000 20 20 20 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 70 72 6f 6a ...........................:proj
28020 65 63 74 2d 66 69 6c 65 20 22 50 69 70 66 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ect-file."Pipfile"..............
28040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 70 .....................:compile."p
28060 69 70 65 6e 76 20 72 75 6e 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ipenv.run.build"................
28080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 69 70 65 6e 76 ...................:test."pipenv
280a0 20 72 75 6e 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .run.test"......................
280c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 74 5f .............:test-prefix."test_
280e0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
28100 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 ....:test-suffix."_test").(proje
28120 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 79 74 ctile-register-project-type.'pyt
28140 68 6f 6e 2d 70 6f 65 74 72 79 20 27 28 22 70 6f 65 74 72 79 2e 6c 6f 63 6b 22 29 0a 20 20 20 20 hon-poetry.'("poetry.lock").....
28160 20 20 20 20 20 20 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 70 ..............................:p
28180 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 70 6f 65 74 72 79 2e 6c 6f 63 6b 22 0a 20 20 20 20 20 20 roject-file."poetry.lock".......
281a0 20 20 20 20 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 63 6f 6d ............................:com
281c0 70 69 6c 65 20 22 70 6f 65 74 72 79 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 pile."poetry.build".............
281e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 6f 65 ......................:test."poe
28200 74 72 79 20 72 75 6e 20 70 79 74 68 6f 6e 20 2d 6d 20 75 6e 69 74 74 65 73 74 20 64 69 73 63 6f try.run.python.-m.unittest.disco
28220 76 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ver"............................
28240 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 74 5f 22 0a 20 20 20 20 .......:test-prefix."test_".....
28260 20 20 20 20 20 20 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 74 ..............................:t
28280 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d est-suffix."_test").(projectile-
282a0 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 79 74 68 6f 6e 2d 74 6f register-project-type.'python-to
282c0 6d 6c 20 27 28 22 70 79 70 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 20 ml.'("pyproject.toml")..........
282e0 20 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 70 72 6f 6a 65 63 .........................:projec
28300 74 2d 66 69 6c 65 20 22 70 79 70 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 0a 20 20 20 20 20 20 20 20 t-file."pyproject.toml".........
28320 20 20 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 63 6f 6d 70 69 ..........................:compi
28340 6c 65 20 22 70 79 74 68 6f 6e 20 2d 6d 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 le."python.-m.build"............
28360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 79 .......................:test."py
28380 74 68 6f 6e 20 2d 6d 20 75 6e 69 74 74 65 73 74 20 64 69 73 63 6f 76 65 72 22 0a 20 20 20 20 20 thon.-m.unittest.discover"......
283a0 20 20 20 20 20 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 74 65 .............................:te
283c0 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 74 5f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st-prefix."test_"...............
283e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 ....................:test-suffix
28400 20 22 5f 74 65 73 74 22 29 0a 3b 3b 20 4a 61 76 61 20 26 20 66 72 69 65 6e 64 73 0a 28 70 72 6f ."_test").;;.Java.&.friends.(pro
28420 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6d jectile-register-project-type.'m
28440 61 76 65 6e 20 27 28 22 70 6f 6d 2e 78 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 aven.'("pom.xml")...............
28460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c ....................:project-fil
28480 65 20 22 70 6f 6d 2e 78 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e."pom.xml".....................
284a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6d 76 6e 20 2d 42 20 63 ..............:compile."mvn.-B.c
284c0 6c 65 61 6e 20 69 6e 73 74 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lean.install"...................
284e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6d 76 6e 20 2d 42 20 74 65 ................:test."mvn.-B.te
28500 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st".............................
28520 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 54 65 73 74 22 0a 20 20 20 20 20 20 ......:test-suffix."Test".......
28540 20 20 20 20 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 73 72 63 ............................:src
28560 2d 64 69 72 20 22 73 72 63 2f 6d 61 69 6e 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -dir."src/main/"................
28580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 73 72 ...................:test-dir."sr
285a0 63 2f 74 65 73 74 2f 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 c/test/").(projectile-register-p
285c0 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 72 61 64 6c 65 20 27 28 22 62 75 69 6c 64 2e 67 72 61 roject-type.'gradle.'("build.gra
285e0 64 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dle")...........................
28600 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 62 75 69 6c 64 2e 67 72 61 ........:project-file."build.gra
28620 64 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dle"............................
28640 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 67 72 61 64 6c 65 20 62 75 69 6c 64 22 0a 20 .......:compile."gradle.build"..
28660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28680 20 3a 74 65 73 74 20 22 67 72 61 64 6c 65 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 .:test."gradle.test"............
286a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 .......................:test-suf
286c0 66 69 78 20 22 53 70 65 63 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 fix."Spec").(projectile-register
286e0 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 72 61 64 6c 65 77 20 27 28 22 67 72 61 64 6c 65 -project-type.'gradlew.'("gradle
28700 77 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 w").............................
28720 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 67 72 61 64 6c 65 77 22 0a 20 20 ......:project-file."gradlew"...
28740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28760 3a 63 6f 6d 70 69 6c 65 20 22 2e 2f 67 72 61 64 6c 65 77 20 62 75 69 6c 64 22 0a 20 20 20 20 20 :compile."./gradlew.build"......
28780 20 20 20 20 20 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 74 65 .............................:te
287a0 73 74 20 22 2e 2f 67 72 61 64 6c 65 77 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 st."./gradlew.test".............
287c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 ......................:test-suff
287e0 69 78 20 22 53 70 65 63 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d ix."Spec").(projectile-register-
28800 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 67 72 61 69 6c 73 20 27 28 22 61 70 70 6c 69 63 61 74 project-type.'grails.'("applicat
28820 69 6f 6e 2e 79 6d 6c 22 20 22 67 72 61 69 6c 73 2d 61 70 70 22 29 0a 20 20 20 20 20 20 20 20 20 ion.yml"."grails-app")..........
28840 20 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 70 72 6f 6a 65 63 .........................:projec
28860 74 2d 66 69 6c 65 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2e 79 6d 6c 22 0a 20 20 20 20 20 20 20 t-file."application.yml"........
28880 20 20 20 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 63 6f 6d 70 ...........................:comp
288a0 69 6c 65 20 22 67 72 61 69 6c 73 20 70 61 63 6b 61 67 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 ile."grails.package"............
288c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 67 72 .......................:test."gr
288e0 61 69 6c 73 20 74 65 73 74 2d 61 70 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ails.test-app"..................
28900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 53 .................:test-suffix."S
28920 70 65 63 22 29 0a 3b 3b 20 53 63 61 6c 61 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 pec").;;.Scala.(projectile-regis
28940 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 73 62 74 20 27 28 22 62 75 69 6c 64 2e 73 ter-project-type.'sbt.'("build.s
28960 62 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bt")............................
28980 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 62 75 69 6c 64 2e 73 62 74 22 .......:project-file."build.sbt"
289a0 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 ................................
289c0 20 20 20 3a 73 72 63 2d 64 69 72 20 22 6d 61 69 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...:src-dir."main"..............
289e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 .....................:test-dir."
28a00 74 65 73 74 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 test"...........................
28a20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 73 62 74 20 63 6f 6d 70 69 6c 65 22 0a 20 ........:compile."sbt.compile"..
28a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28a60 20 3a 74 65 73 74 20 22 73 62 74 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:test."sbt.test"...............
28a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 ....................:test-suffix
28aa0 20 22 53 70 65 63 22 29 0a 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 ."Spec")..(projectile-register-p
28ac0 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 6d 69 6c 6c 20 27 28 22 62 75 69 6c 64 2e 73 63 22 29 0a roject-type.'mill.'("build.sc").
28ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28b00 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 62 75 69 6c 64 2e 73 63 22 0a 20 20 20 20 20 ..:project-file."build.sc"......
28b20 20 20 20 20 20 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 73 72 .............................:sr
28b40 63 2d 64 69 72 20 22 73 72 63 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c-dir."src/"....................
28b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 74 65 73 74 2f 73 ...............:test-dir."test/s
28b80 72 63 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rc/"............................
28ba0 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6d 69 6c 6c 20 5f 5f 2e 63 6f 6d 70 69 6c 65 .......:compile."mill.__.compile
28bc0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
28be0 20 20 20 20 3a 74 65 73 74 20 22 6d 69 6c 6c 20 5f 5f 2e 74 65 73 74 22 0a 20 20 20 20 20 20 20 ....:test."mill.__.test"........
28c00 20 20 20 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 74 65 73 74 ...........................:test
28c20 2d 73 75 66 66 69 78 20 22 54 65 73 74 22 29 0a 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 -suffix."Test")..(projectile-reg
28c40 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 62 6c 6f 6f 70 20 27 28 22 2e 62 6c ister-project-type.'bloop.'(".bl
28c60 6f 6f 70 2f 62 6c 6f 6f 70 2e 73 65 74 74 69 6e 67 73 2e 6a 73 6f 6e 22 29 0a 20 20 20 20 20 20 oop/bloop.settings.json").......
28c80 20 20 20 20 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 63 6f 6d ............................:com
28ca0 70 69 6c 65 20 22 62 6c 6f 6f 70 20 63 6f 6d 70 69 6c 65 20 72 6f 6f 74 22 0a 20 20 20 20 20 20 pile."bloop.compile.root".......
28cc0 20 20 20 20 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 74 65 73 ............................:tes
28ce0 74 20 22 62 6c 6f 6f 70 20 74 65 73 74 20 2d 2d 70 72 6f 70 61 67 61 74 65 20 2d 2d 72 65 70 6f t."bloop.test.--propagate.--repo
28d00 72 74 65 72 20 73 63 61 6c 61 63 20 72 6f 6f 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rter.scalac.root"...............
28d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 73 72 ....................:src-dir."sr
28d40 63 2f 6d 61 69 6e 2f 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 c/main/"........................
28d60 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 73 72 63 2f 74 65 73 74 2f 22 ...........:test-dir."src/test/"
28d80 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 ................................
28da0 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 53 70 65 63 22 29 0a 0a 3b 3b 20 43 6c 6f 6a ...:test-suffix."Spec")..;;.Cloj
28dc0 75 72 65 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 ure.(projectile-register-project
28de0 2d 74 79 70 65 20 27 6c 65 69 6e 2d 74 65 73 74 20 27 28 22 70 72 6f 6a 65 63 74 2e 63 6c 6a 22 -type.'lein-test.'("project.clj"
28e00 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 )...............................
28e20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 70 72 6f 6a 65 63 74 2e 63 6c 6a 22 0a ....:project-file."project.clj".
28e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28e60 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6c 65 69 6e 20 63 6f 6d 70 69 6c 65 22 0a 20 20 20 20 20 20 ..:compile."lein.compile".......
28e80 20 20 20 20 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 74 65 73 ............................:tes
28ea0 74 20 22 6c 65 69 6e 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."lein.test"...................
28ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 ................:test-suffix."_t
28ee0 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 est").(projectile-register-proje
28f00 63 74 2d 74 79 70 65 20 27 6c 65 69 6e 2d 6d 69 64 6a 65 20 27 28 22 70 72 6f 6a 65 63 74 2e 63 ct-type.'lein-midje.'("project.c
28f20 6c 6a 22 20 22 2e 6d 69 64 6a 65 2e 63 6c 6a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lj".".midje.clj")...............
28f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c ....................:project-fil
28f60 65 20 22 70 72 6f 6a 65 63 74 2e 63 6c 6a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e."project.clj".................
28f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6c 65 69 6e ..................:compile."lein
28fa0 20 63 6f 6d 70 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .compile".......................
28fc0 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6c 65 69 6e 20 6d 69 64 6a 65 22 0a 20 ............:test."lein.midje"..
28fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29000 20 3a 74 65 73 74 2d 70 72 65 66 69 78 20 22 74 5f 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d .:test-prefix."t_").(projectile-
29020 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 62 6f 6f 74 2d 63 6c 6a 20 register-project-type.'boot-clj.
29040 27 28 22 62 75 69 6c 64 2e 62 6f 6f 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '("build.boot").................
29060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 ..................:project-file.
29080 22 62 75 69 6c 64 2e 62 6f 6f 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "build.boot"....................
290a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 62 6f 6f 74 20 61 6f ...............:compile."boot.ao
290c0 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t"..............................
290e0 20 20 20 20 20 3a 74 65 73 74 20 22 62 6f 6f 74 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 .....:test."boot.test"..........
29100 20 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 74 65 73 74 2d 73 .........................:test-s
29120 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 uffix."_test").(projectile-regis
29140 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 6c 6f 6a 75 72 65 2d 63 6c 69 20 27 28 ter-project-type.'clojure-cli.'(
29160 22 64 65 70 73 2e 65 64 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "deps.edn").....................
29180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 64 65 70 ..............:project-file."dep
291a0 73 2e 65 64 6e 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 s.edn"..........................
291c0 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a 0a .........:test-suffix."_test")..
291e0 3b 3b 20 52 75 62 79 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f ;;.Ruby.(projectile-register-pro
29200 6a 65 63 74 2d 74 79 70 65 20 27 72 75 62 79 2d 72 73 70 65 63 20 27 28 22 47 65 6d 66 69 6c 65 ject-type.'ruby-rspec.'("Gemfile
29220 22 20 22 6c 69 62 22 20 22 73 70 65 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "."lib"."spec").................
29240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 ..................:project-file.
29260 22 47 65 6d 66 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "Gemfile".......................
29280 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 62 75 6e 64 6c 65 20 65 78 65 ............:compile."bundle.exe
292a0 63 20 72 61 6b 65 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 c.rake".........................
292c0 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 6c 69 62 2f 22 0a 20 20 20 20 20 20 ..........:src-dir."lib/".......
292e0 20 20 20 20 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 74 65 73 ............................:tes
29300 74 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 73 70 65 63 22 0a 20 20 20 20 20 20 20 20 20 20 t."bundle.exec.rspec"...........
29320 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 74 65 73 74 2d 64 69 ........................:test-di
29340 72 20 22 73 70 65 63 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r."spec/".......................
29360 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 73 70 65 63 22 ............:test-suffix."_spec"
29380 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 ).(projectile-register-project-t
293a0 79 70 65 20 27 72 75 62 79 2d 74 65 73 74 20 27 28 22 47 65 6d 66 69 6c 65 22 20 22 6c 69 62 22 ype.'ruby-test.'("Gemfile"."lib"
293c0 20 22 74 65 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."test")........................
293e0 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 47 65 6d 66 69 6c ...........:project-file."Gemfil
29400 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e"..............................
29420 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 61 6b 65 22 0a .....:compile"bundle.exec.rake".
29440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29460 20 20 3a 73 72 63 2d 64 69 72 20 22 6c 69 62 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..:src-dir."lib/"...............
29480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 62 75 6e 64 6c ....................:test."bundl
294a0 65 20 65 78 65 63 20 72 61 6b 65 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.exec.rake.test"...............
294c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 ....................:test-suffix
294e0 20 22 5f 74 65 73 74 22 29 0a 3b 3b 20 52 61 69 6c 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 72 ."_test").;;.Rails.needs.to.be.r
29500 65 67 69 73 74 65 72 65 64 20 61 66 74 65 72 20 6e 70 6d 2c 20 6f 74 68 65 72 77 69 73 65 20 60 egistered.after.npm,.otherwise.`
29520 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 60 20 6d 61 6b 65 73 20 69 74 20 60 6e 70 6d 60 2e 0a 3b 3b package.json`.makes.it.`npm`..;;
29540 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a .https://github.com/bbatsov/proj
29560 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 31 39 31 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 ectile/pull/1191.(projectile-reg
29580 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 61 69 6c 73 2d 74 65 73 74 20 27 ister-project-type.'rails-test.'
295a0 28 22 47 65 6d 66 69 6c 65 22 20 22 61 70 70 22 20 22 6c 69 62 22 20 22 64 62 22 20 22 63 6f 6e ("Gemfile"."app"."lib"."db"."con
295c0 66 69 67 22 20 22 74 65 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fig"."test")....................
295e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 47 65 ...............:project-file."Ge
29600 6d 66 69 6c 65 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 mfile"..........................
29620 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 .........:compile."bundle.exec.r
29640 61 69 6c 73 20 73 65 72 76 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ails.server"....................
29660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 61 70 70 2f 22 0a 20 ...............:src-dir."app/"..
29680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
296a0 20 3a 74 65 73 74 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 61 6b 65 20 74 65 73 74 22 0a 20 .:test."bundle.exec.rake.test"..
296c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
296e0 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f 74 65 73 74 22 29 0a 28 70 72 6f 6a 65 63 74 69 .:test-suffix."_test").(projecti
29700 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 61 69 6c 73 2d le-register-project-type.'rails-
29720 72 73 70 65 63 20 27 28 22 47 65 6d 66 69 6c 65 22 20 22 61 70 70 22 20 22 6c 69 62 22 20 22 64 rspec.'("Gemfile"."app"."lib"."d
29740 62 22 20 22 63 6f 6e 66 69 67 22 20 22 73 70 65 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 b"."config"."spec").............
29760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 ......................:project-f
29780 69 6c 65 20 22 47 65 6d 66 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile."Gemfile"...................
297a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 62 75 6e 64 6c 65 ................:compile."bundle
297c0 20 65 78 65 63 20 72 61 69 6c 73 20 73 65 72 76 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .exec.rails.server".............
297e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 ......................:src-dir."
29800 61 70 70 2f 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 app/"...........................
29820 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 73 70 65 63 ........:test."bundle.exec.rspec
29840 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
29860 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 73 70 65 63 2f 22 0a 20 20 20 20 20 20 20 20 20 20 ....:test-dir."spec/"...........
29880 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 74 65 73 74 2d 73 75 ........................:test-su
298a0 66 66 69 78 20 22 5f 73 70 65 63 22 29 0a 3b 3b 20 43 72 79 73 74 61 6c 0a 28 70 72 6f 6a 65 63 ffix."_spec").;;.Crystal.(projec
298c0 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 72 79 73 tile-register-project-type.'crys
298e0 74 61 6c 2d 73 70 65 63 20 27 28 22 73 68 61 72 64 2e 79 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 tal-spec.'("shard.yml").........
29900 20 20 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 70 72 6f 6a 65 ..........................:proje
29920 63 74 2d 66 69 6c 65 20 22 73 68 61 72 64 2e 79 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ct-file."shard.yml".............
29940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 ......................:src-dir."
29960 73 72 63 2f 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 src/"...........................
29980 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 63 72 79 73 74 61 6c 20 73 70 65 63 22 0a 20 20 20 ........:test."crystal.spec"....
299a0 20 20 20 20 20 20 20 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 ...............................:
299c0 74 65 73 74 2d 64 69 72 20 22 73 70 65 63 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 test-dir."spec/"................
299e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 ...................:test-suffix.
29a00 22 5f 73 70 65 63 22 29 0a 0a 3b 3b 20 45 6d 61 63 73 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 "_spec")..;;.Emacs.(projectile-r
29a20 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 65 6d 61 63 73 2d 63 61 73 6b egister-project-type.'emacs-cask
29a40 20 27 28 22 43 61 73 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'("Cask")......................
29a60 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 43 61 73 6b .............:project-file."Cask
29a80 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
29aa0 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 63 61 73 6b 20 69 6e 73 74 61 6c 6c 22 0a 20 20 20 20 ....:compile."cask.install".....
29ac0 20 20 20 20 20 20 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 74 ..............................:t
29ae0 65 73 74 2d 70 72 65 66 69 78 20 22 74 65 73 74 2d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 est-prefix."test-"..............
29b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 .....................:test-suffi
29b20 78 20 22 2d 74 65 73 74 22 29 0a 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 x."-test")..(projectile-register
29b40 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 65 6d 61 63 73 2d 65 61 73 6b 20 27 28 22 45 61 73 -project-type.'emacs-eask.'("Eas
29b60 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 k").............................
29b80 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 45 61 73 6b 22 0a 20 20 20 20 20 ......:project-file."Eask"......
29ba0 20 20 20 20 20 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 63 6f .............................:co
29bc0 6d 70 69 6c 65 20 22 65 61 73 6b 20 69 6e 73 74 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 mpile."eask.install"............
29be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 70 72 65 .......................:test-pre
29c00 66 69 78 20 22 74 65 73 74 2d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fix."test-".....................
29c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 2d 74 65 73 ..............:test-suffix."-tes
29c40 74 22 29 0a 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 t")..(projectile-register-projec
29c60 74 2d 74 79 70 65 20 27 65 6d 61 63 73 2d 65 6c 64 65 76 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 t-type.'emacs-eldev.#'projectile
29c80 2d 65 6c 64 65 76 2d 70 72 6f 6a 65 63 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -eldev-project-p................
29ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 ...................:project-file
29cc0 20 22 45 6c 64 65 76 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 ."Eldev"........................
29ce0 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 65 6c 64 65 76 20 63 6f 6d 70 69 ...........:compile."eldev.compi
29d00 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le".............................
29d20 20 20 20 20 20 20 3a 74 65 73 74 20 22 65 6c 64 65 76 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 ......:test."eldev.test"........
29d40 20 20 20 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 72 75 6e 20 ...........................:run.
29d60 22 65 6c 64 65 76 20 65 6d 61 63 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "eldev.emacs"...................
29d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 63 6b 61 67 65 20 22 65 6c 64 65 76 20 ................:package."eldev.
29da0 70 61 63 6b 61 67 65 22 29 0a 0a 3b 3b 20 52 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 package")..;;.R.(projectile-regi
29dc0 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 20 27 28 22 44 45 53 43 52 49 50 54 ster-project-type.'r.'("DESCRIPT
29de0 49 4f 4e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ION")...........................
29e00 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 44 45 53 43 52 49 50 54 49 ........:project-file."DESCRIPTI
29e20 4f 4e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ON".............................
29e40 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 52 20 43 4d 44 20 49 4e 53 54 41 4c 4c 20 2d 2d ......:compile."R.CMD.INSTALL.--
29e60 77 69 74 68 2d 6b 65 65 70 2e 73 6f 75 72 63 65 20 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 with-keep.source..".............
29e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 63 6f 6e ......................:test.(con
29ea0 63 61 74 20 22 52 20 43 4d 44 20 63 68 65 63 6b 20 2d 6f 20 22 20 74 65 6d 70 6f 72 61 72 79 2d cat."R.CMD.check.-o.".temporary-
29ec0 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 20 22 20 2e 22 29 29 0a 0a 3b 3b 20 48 61 73 6b 65 6c file-directory.".."))..;;.Haskel
29ee0 6c 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 l.(projectile-register-project-t
29f00 79 70 65 20 27 68 61 73 6b 65 6c 6c 2d 73 74 61 63 6b 20 27 28 22 73 74 61 63 6b 2e 79 61 6d 6c ype.'haskell-stack.'("stack.yaml
29f20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ")..............................
29f40 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 73 74 61 63 6b 2e 79 61 6d 6c 22 0a .....:project-file."stack.yaml".
29f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29f80 20 20 3a 63 6f 6d 70 69 6c 65 20 22 73 74 61 63 6b 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 ..:compile."stack.build"........
29fa0 20 20 20 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 74 65 73 74 ...........................:test
29fc0 20 22 73 74 61 63 6b 20 62 75 69 6c 64 20 2d 2d 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 ."stack.build.--test"...........
29fe0 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 74 65 73 74 2d 73 75 ........................:test-su
2a000 66 66 69 78 20 22 53 70 65 63 22 29 0a 0a 3b 3b 20 52 75 73 74 0a 28 70 72 6f 6a 65 63 74 69 6c ffix."Spec")..;;.Rust.(projectil
2a020 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 75 73 74 2d 63 61 e-register-project-type.'rust-ca
2a040 72 67 6f 20 27 28 22 43 61 72 67 6f 2e 74 6f 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rgo.'("Cargo.toml").............
2a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 ......................:project-f
2a080 69 6c 65 20 22 43 61 72 67 6f 2e 74 6f 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile."Cargo.toml"................
2a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 63 61 72 ...................:compile."car
2a0c0 67 6f 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 go.build".......................
2a0e0 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 63 61 72 67 6f 20 74 65 73 74 22 0a 20 ............:test."cargo.test"..
2a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a120 20 3a 72 75 6e 20 22 63 61 72 67 6f 20 72 75 6e 22 29 0a 0a 3b 3b 20 52 61 63 6b 65 74 0a 28 70 .:run."cargo.run")..;;.Racket.(p
2a140 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 rojectile-register-project-type.
2a160 27 72 61 63 6b 65 74 20 27 28 22 69 6e 66 6f 2e 72 6b 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 'racket.'("info.rkt")...........
2a180 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 70 72 6f 6a 65 63 74 ........................:project
2a1a0 2d 66 69 6c 65 20 22 69 6e 66 6f 2e 72 6b 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -file."info.rkt"................
2a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 72 61 63 6f 20 74 ...................:test."raco.t
2a1e0 65 73 74 20 2e 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 est.."..........................
2a200 20 20 20 20 20 20 20 20 20 3a 69 6e 73 74 61 6c 6c 20 22 72 61 63 6f 20 70 6b 67 20 69 6e 73 74 .........:install."raco.pkg.inst
2a220 61 6c 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 all"............................
2a240 20 20 20 20 20 20 20 3a 70 61 63 6b 61 67 65 20 22 72 61 63 6f 20 70 6b 67 20 63 72 65 61 74 65 .......:package."raco.pkg.create
2a260 20 2d 2d 73 6f 75 72 63 65 20 24 28 70 77 64 29 22 29 0a 0a 3b 3b 20 44 61 72 74 0a 28 70 72 6f .--source.$(pwd)")..;;.Dart.(pro
2a280 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 64 jectile-register-project-type.'d
2a2a0 61 72 74 20 27 28 22 70 75 62 73 70 65 63 2e 79 61 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 art.'("pubspec.yaml")...........
2a2c0 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 70 72 6f 6a 65 63 74 ........................:project
2a2e0 2d 66 69 6c 65 20 22 70 75 62 73 70 65 63 2e 79 61 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 -file."pubspec.yaml"............
2a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 .......................:compile.
2a320 22 70 75 62 20 67 65 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "pub.get".......................
2a340 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 70 75 62 20 72 75 6e 20 74 65 73 74 22 ............:test."pub.run.test"
2a360 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 ................................
2a380 20 20 20 3a 72 75 6e 20 22 64 61 72 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...:run."dart"..................
2a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 73 75 66 66 69 78 20 22 5f .................:test-suffix."_
2a3c0 74 65 73 74 2e 64 61 72 74 22 29 0a 0a 3b 3b 20 45 6c 6d 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d test.dart")..;;.Elm.(projectile-
2a3e0 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 65 6c 6d 20 27 28 22 65 6c register-project-type.'elm.'("el
2a400 6d 2e 6a 73 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m.json")........................
2a420 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 65 6c 6d 2e 6a 73 ...........:project-file."elm.js
2a440 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on".............................
2a460 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 65 6c 6d 20 6d 61 6b 65 22 29 0a 0a 3b 3b 20 4a ......:compile."elm.make")..;;.J
2a480 75 6c 69 61 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 ulia.(projectile-register-projec
2a4a0 74 2d 74 79 70 65 20 27 6a 75 6c 69 61 20 27 28 22 50 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 29 0a t-type.'julia.'("Project.toml").
2a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a4e0 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 50 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 0a 20 ..:project-file."Project.toml"..
2a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a520 20 3a 63 6f 6d 70 69 6c 65 20 22 6a 75 6c 69 61 20 2d 2d 70 72 6f 6a 65 63 74 3d 40 2e 20 2d 65 .:compile."julia.--project=@..-e
2a540 20 27 69 6d 70 6f 72 74 20 50 6b 67 3b 20 50 6b 67 2e 70 72 65 63 6f 6d 70 69 6c 65 28 29 3b 20 .'import.Pkg;.Pkg.precompile();.
2a560 50 6b 67 2e 62 75 69 6c 64 28 29 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Pkg.build()'"...................
2a580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6a 75 6c 69 61 20 2d 2d 70 ................:test."julia.--p
2a5a0 72 6f 6a 65 63 74 3d 40 2e 20 2d 65 20 27 69 6d 70 6f 72 74 20 50 6b 67 3b 20 50 6b 67 2e 74 65 roject=@..-e.'import.Pkg;.Pkg.te
2a5c0 73 74 28 29 27 20 2d 2d 63 68 65 63 6b 2d 62 6f 75 6e 64 73 3d 79 65 73 22 0a 20 20 20 20 20 20 st()'.--check-bounds=yes".......
2a5e0 20 20 20 20 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 73 72 63 ............................:src
2a600 2d 64 69 72 20 22 73 72 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -dir."src"......................
2a620 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 74 65 73 74 22 29 0a 0a .............:test-dir."test")..
2a640 3b 3b 20 4f 43 61 6d 6c 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 ;;.OCaml.(projectile-register-pr
2a660 6f 6a 65 63 74 2d 74 79 70 65 20 27 6f 63 61 6d 6c 2d 64 75 6e 65 20 27 28 22 64 75 6e 65 2d 70 oject-type.'ocaml-dune.'("dune-p
2a680 72 6f 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roject")........................
2a6a0 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 64 75 6e 65 2d 70 ...........:project-file."dune-p
2a6c0 72 6f 6a 65 63 74 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 roject".........................
2a6e0 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 64 75 6e 65 20 62 75 69 6c 64 22 0a ..........:compile."dune.build".
2a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a720 20 20 3a 74 65 73 74 20 22 64 75 6e 65 20 72 75 6e 74 65 73 74 22 29 0a 0a 3b 3b 20 5a 69 67 0a ..:test."dune.runtest")..;;.Zig.
2a740 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 (projectile-register-project-typ
2a760 65 20 27 7a 69 67 20 27 28 22 62 75 69 6c 64 2e 7a 69 67 2e 7a 6f 6e 22 29 0a 20 20 20 20 20 20 e.'zig.'("build.zig.zon").......
2a780 20 20 20 20 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 70 72 6f ............................:pro
2a7a0 6a 65 63 74 2d 66 69 6c 65 20 22 62 75 69 6c 64 2e 7a 69 67 2e 7a 6f 6e 22 0a 20 20 20 20 20 20 ject-file."build.zig.zon".......
2a7c0 20 20 20 20 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 63 6f 6d ............................:com
2a7e0 70 69 6c 65 20 22 7a 69 67 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pile."zig.build"................
2a800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 7a 69 67 20 62 75 ...................:test."zig.bu
2a820 69 6c 64 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ild.test".......................
2a840 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 7a 69 67 20 62 75 69 6c 64 20 72 75 6e 22 ............:run."zig.build.run"
2a860 29 0a 0a 3b 3b 20 53 77 69 66 74 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 )..;;.Swift.(projectile-register
2a880 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 73 77 69 66 74 2d 73 70 6d 20 27 28 22 50 61 63 6b -project-type.'swift-spm.'("Pack
2a8a0 61 67 65 2e 73 77 69 66 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 age.swift").....................
2a8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 50 61 63 ..............:project-file."Pac
2a8e0 6b 61 67 65 2e 73 77 69 66 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kage.swift".....................
2a900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 73 77 69 66 74 20 62 75 ..............:compile."swift.bu
2a920 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ild"............................
2a940 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 73 77 69 66 74 20 74 65 73 74 22 0a 20 20 20 20 20 20 .......:test."swift.test".......
2a960 20 20 20 20 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 72 75 6e ............................:run
2a980 20 22 73 77 69 66 74 20 72 75 6e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 70 72 6f ."swift.run")..(defvar-local.pro
2a9a0 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 6e 69 6c 0a 20 20 22 42 75 66 66 jectile-project-type.nil..."Buff
2a9c0 65 72 20 6c 6f 63 61 6c 20 76 61 72 20 66 6f 72 20 6f 76 65 72 72 69 64 69 6e 67 20 74 68 65 20 er.local.var.for.overriding.the.
2a9e0 61 75 74 6f 2d 64 65 74 65 63 74 65 64 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 4e 6f 72 6d auto-detected.project.type..Norm
2aa00 61 6c 6c 79 20 79 6f 75 27 64 20 73 65 74 20 74 68 69 73 20 66 72 6f 6d 20 2e 64 69 72 2d 6c 6f ally.you'd.set.this.from..dir-lo
2aa20 63 61 6c 73 2e 65 6c 2e 22 29 0a 28 70 75 74 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a cals.el.").(put.'projectile-proj
2aa40 65 63 74 2d 74 79 70 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 ect-type.'safe-local-variable.#'
2aa60 73 79 6d 62 6f 6c 70 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 74 65 symbolp)..(defun.projectile-dete
2aa80 63 74 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a ct-project-type.(&optional.dir).
2aaa0 20 20 22 44 65 74 65 63 74 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 .."Detect.the.type.of.the.projec
2aac0 74 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 64 65 74 65 t..When.DIR.is.specified.it.dete
2aae0 63 74 73 20 69 74 73 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2c 20 6f 74 68 65 72 77 69 73 65 20 cts.its.project.type,.otherwise.
2ab00 69 74 20 61 63 74 73 0a 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a it.acts.on.the.current.project..
2ab20 0a 46 61 6c 6c 62 61 63 6b 20 74 6f 20 61 20 67 65 6e 65 72 69 63 20 70 72 6f 6a 65 63 74 20 74 .Fallback.to.a.generic.project.t
2ab40 79 70 65 20 77 68 65 6e 20 74 68 65 20 74 79 70 65 20 63 61 6e 27 74 20 62 65 20 64 65 74 65 72 ype.when.the.type.can't.be.deter
2ab60 6d 69 6e 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 mined."...(let.((project-type...
2ab80 20 20 20 20 20 20 20 28 6f 72 20 28 63 61 72 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 .......(or.(car.(cl-find-if.....
2aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 2d ...............(lambda.(project-
2abc0 74 79 70 65 2d 72 65 63 6f 72 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type-record)....................
2abe0 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 63 61 72 20 70 72 6f 6a 65 ..(let.((project-type.(car.proje
2ac00 63 74 2d 74 79 70 65 2d 72 65 63 6f 72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ct-type-record))................
2ac20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 28 ............(marker.(plist-get.(
2ac40 63 64 72 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 72 65 63 6f 72 64 29 20 27 6d 61 72 6b 65 72 cdr.project-type-record).'marker
2ac60 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -files))).......................
2ac80 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 .(if.(functionp.marker).........
2aca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 61 6c 6c ...................(and.(funcall
2acc0 20 6d 61 72 6b 65 72 20 64 69 72 29 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 20 .marker.dir).project-type)......
2ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 70 72 6f 6a 65 63 ....................(and.(projec
2ad00 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 73 20 6d 61 72 6b 65 72 20 64 69 72 29 20 70 72 tile-verify-files.marker.dir).pr
2ad20 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oject-type))))..................
2ad40 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 29 0a 20 20 20 ..projectile-project-types))....
2ad60 20 20 20 20 20 20 20 20 20 20 27 67 65 6e 65 72 69 63 29 29 29 0a 20 20 20 20 28 70 75 74 68 61 ..........'generic))).....(putha
2ad80 73 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 sh.(projectile-project-root.dir)
2ada0 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 .project-type.projectile-project
2adc0 2d 74 79 70 65 2d 63 61 63 68 65 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a -type-cache).....project-type)).
2ade0 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 .(defun.projectile-project-type.
2ae00 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 61 20 70 (&optional.dir)..."Determine.a.p
2ae20 72 6f 6a 65 63 74 27 73 20 74 79 70 65 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 73 74 72 75 63 roject's.type.based.on.its.struc
2ae40 74 75 72 65 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 ture..When.DIR.is.specified.it.c
2ae60 68 65 63 6b 73 20 69 74 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 61 63 74 73 0a 6f 6e 20 74 hecks.it,.otherwise.it.acts.on.t
2ae80 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 54 68 65 20 70 72 6f 6a 65 63 74 he.current.project...The.project
2aea0 20 74 79 70 65 20 69 73 20 63 61 63 68 65 64 20 66 6f 72 20 69 6d 70 72 6f 76 65 64 20 70 65 72 .type.is.cached.for.improved.per
2aec0 66 6f 72 6d 61 6e 63 65 2e 22 0a 20 20 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 64 69 72 29 20 formance."...(or.(and.(not.dir).
2aee0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 28 projectile-project-type).......(
2af00 69 66 2d 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 if-let*.((project-root.(projecti
2af20 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 le-project-root.dir)))..........
2af40 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 .(or.(gethash.project-root.proje
2af60 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 ctile-project-type-cache).......
2af80 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 74 65 63 74 2d 70 72 6f 6a 65 ........(projectile-detect-proje
2afa0 63 74 2d 74 79 70 65 20 64 69 72 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 ct-type.dir)))))..;;;###autoload
2afc0 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 66 6f 20 .(defun.projectile-project-info.
2afe0 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 69 6e 66 6f 20 66 6f 72 20 63 75 72 72 65 6e 74 20 70 ()..."Display.info.for.current.p
2b000 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6d 65 73 73 roject."...(interactive)...(mess
2b020 61 67 65 20 22 50 72 6f 6a 65 63 74 20 64 69 72 3a 20 25 73 20 23 23 20 50 72 6f 6a 65 63 74 20 age."Project.dir:.%s.##.Project.
2b040 56 43 53 3a 20 25 73 20 23 23 20 50 72 6f 6a 65 63 74 20 74 79 70 65 3a 20 25 73 22 0a 20 20 20 VCS:.%s.##.Project.type:.%s"....
2b060 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 ........(projectile-acquire-root
2b080 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 )............(projectile-project
2b0a0 2d 76 63 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f -vcs)............(projectile-pro
2b0c0 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ject-type)))..(defun.projectile-
2b0e0 76 65 72 69 66 79 2d 66 69 6c 65 73 20 28 66 69 6c 65 73 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 verify-files.(files.&optional.di
2b100 72 29 0a 20 20 22 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 61 6c 6c 20 46 49 4c 45 53 20 65 78 r)..."Check.whether.all.FILES.ex
2b120 69 73 74 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 57 68 65 6e 20 44 49 52 20 69 73 20 ist.in.the.project..When.DIR.is.
2b140 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 specified.it.checks.DIR's.projec
2b160 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 t,.otherwise.it.acts.on.the.curr
2b180 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 63 6c 2d 65 76 65 72 79 20 23 27 28 6c 61 6d ent.project."...(cl-every.#'(lam
2b1a0 62 64 61 20 28 66 69 6c 65 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 bda.(file).(projectile-verify-fi
2b1c0 6c 65 20 66 69 6c 65 20 64 69 72 29 29 20 66 69 6c 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 le.file.dir)).files))..(defun.pr
2b1e0 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 20 28 66 69 6c 65 20 26 6f 70 74 69 ojectile-verify-file.(file.&opti
2b200 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 46 49 4c 45 20 onal.dir)..."Check.whether.FILE.
2b220 65 78 69 73 74 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 57 exists.in.the.current.project..W
2b240 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 44 hen.DIR.is.specified.it.checks.D
2b260 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 20 IR's.project,.otherwise.it.acts.
2b280 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 66 69 6c 65 on.the.current.project."...(file
2b2a0 2d 65 78 69 73 74 73 2d 70 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f -exists-p.(projectile-expand-roo
2b2c0 74 20 66 69 6c 65 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 t.file.dir)))..(defun.projectile
2b2e0 2d 76 65 72 69 66 79 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 28 66 69 6c 65 20 26 6f 70 74 -verify-file-wildcard.(file.&opt
2b300 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 46 49 4c 45 ional.dir)..."Check.whether.FILE
2b320 20 65 78 69 73 74 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a .exists.in.the.current.project..
2b340 57 68 65 6e 20 44 49 52 20 69 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 63 68 65 63 6b 73 20 When.DIR.is.specified.it.checks.
2b360 44 49 52 27 73 20 70 72 6f 6a 65 63 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 69 74 20 61 63 74 73 DIR's.project,.otherwise.it.acts
2b380 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 45 78 70 61 6e 64 73 .on.the.current.project..Expands
2b3a0 20 77 69 6c 64 63 61 72 64 73 20 75 73 69 6e 67 20 60 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 .wildcards.using.`file-expand-wi
2b3c0 6c 64 63 61 72 64 73 27 20 62 65 66 6f 72 65 20 63 68 65 63 6b 69 6e 67 2e 22 0a 20 20 28 66 69 ldcards'.before.checking."...(fi
2b3e0 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d le-expand-wildcards.(projectile-
2b400 65 78 70 61 6e 64 2d 72 6f 6f 74 20 66 69 6c 65 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 expand-root.file.dir)))..(defun.
2b420 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 28 26 6f 70 74 69 6f 6e 61 projectile-project-vcs.(&optiona
2b440 6c 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 l.project-root)..."Determine.the
2b460 20 56 43 53 20 75 73 65 64 20 62 79 20 74 68 65 20 70 72 6f 6a 65 63 74 20 69 66 20 61 6e 79 2e .VCS.used.by.the.project.if.any.
2b480 0a 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 69 73 20 74 68 65 20 74 61 72 67 65 74 65 64 20 64 69 .PROJECT-ROOT.is.the.targeted.di
2b4a0 72 65 63 74 6f 72 79 2e 20 20 49 66 20 6e 69 6c 2c 20 75 73 65 0a 74 68 65 20 76 61 72 69 61 62 rectory...If.nil,.use.the.variab
2b4c0 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 27 2e 22 0a 20 le.`projectile-project-root'."..
2b4e0 20 28 6f 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 2d .(or.project-root.(setq.project-
2b500 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 root.(projectile-acquire-root)))
2b520 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 66 6f ...(cond....;;.first.we.check.fo
2b540 72 20 61 20 56 43 53 20 6d 61 72 6b 65 72 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f r.a.VCS.marker.in.the.project.ro
2b560 6f 74 20 69 74 73 65 6c 66 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 ot.itself....((projectile-file-e
2b580 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 67 69 74 22 xists-p.(expand-file-name.".git"
2b5a0 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 67 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 .project-root)).'git)....((proje
2b5c0 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 ctile-file-exists-p.(expand-file
2b5e0 2d 6e 61 6d 65 20 22 2e 68 67 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 68 67 29 0a -name.".hg".project-root)).'hg).
2b600 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 ...((projectile-file-exists-p.(e
2b620 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 66 73 6c 63 6b 6f 75 74 22 20 70 72 6f 6a xpand-file-name.".fslckout".proj
2b640 65 63 74 2d 72 6f 6f 74 29 29 20 27 66 6f 73 73 69 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 ect-root)).'fossil)....((project
2b660 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e ile-file-exists-p.(expand-file-n
2b680 61 6d 65 20 22 5f 46 4f 53 53 49 4c 5f 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 66 ame."_FOSSIL_".project-root)).'f
2b6a0 6f 73 73 69 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 ossil)....((projectile-file-exis
2b6c0 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 62 7a 72 22 20 70 72 ts-p.(expand-file-name.".bzr".pr
2b6e0 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 62 7a 72 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 oject-root)).'bzr)....((projecti
2b700 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 le-file-exists-p.(expand-file-na
2b720 6d 65 20 22 5f 64 61 72 63 73 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 64 61 72 63 me."_darcs".project-root)).'darc
2b740 73 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 s)....((projectile-file-exists-p
2b760 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 70 69 6a 75 6c 22 20 70 72 6f 6a .(expand-file-name.".pijul".proj
2b780 65 63 74 2d 72 6f 6f 74 29 29 20 27 70 69 6a 75 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 ect-root)).'pijul)....((projecti
2b7a0 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 le-file-exists-p.(expand-file-na
2b7c0 6d 65 20 22 2e 73 76 6e 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 73 76 6e 29 0a 20 me.".svn".project-root)).'svn)..
2b7e0 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 ..((projectile-file-exists-p.(ex
2b800 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 73 6c 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f pand-file-name.".sl".project-roo
2b820 74 29 29 20 27 73 61 70 6c 69 6e 67 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 t)).'sapling)....((projectile-fi
2b840 6c 65 2d 65 78 69 73 74 73 2d 70 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e le-exists-p.(expand-file-name.".
2b860 6a 6a 22 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 20 27 6a 6a 29 0a 20 20 20 3b 3b 20 74 68 jj".project-root)).'jj)....;;.th
2b880 65 6e 20 77 65 20 63 68 65 63 6b 20 69 66 20 74 68 65 72 65 27 73 20 61 20 56 43 53 20 6d 61 72 en.we.check.if.there's.a.VCS.mar
2b8a0 6b 65 72 20 75 70 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 0a 20 20 20 3b 3b 20 ker.up.the.directory.tree....;;.
2b8c0 74 68 61 74 20 63 6f 76 65 72 73 20 74 68 65 20 63 61 73 65 20 77 68 65 6e 20 61 20 70 72 6f 6a that.covers.the.case.when.a.proj
2b8e0 65 63 74 20 69 73 20 70 61 72 74 20 6f 66 20 61 20 6d 75 6c 74 69 2d 70 72 6f 6a 65 63 74 20 72 ect.is.part.of.a.multi-project.r
2b900 65 70 6f 73 69 74 6f 72 79 0a 20 20 20 3b 3b 20 69 6e 20 74 68 6f 73 65 20 63 61 73 65 73 20 79 epository....;;.in.those.cases.y
2b920 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 74 68 65 20 56 43 53 20 74 6f 20 67 65 74 20 61 20 6c 69 ou.can.still.the.VCS.to.get.a.li
2b940 73 74 20 6f 66 20 66 69 6c 65 73 20 66 6f 72 0a 20 20 20 3b 3b 20 74 68 65 20 70 72 6f 6a 65 63 st.of.files.for....;;.the.projec
2b960 74 20 69 6e 20 71 75 65 73 74 69 6f 6e 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f t.in.question....((projectile-lo
2b980 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f cate-dominating-file.project-roo
2b9a0 74 20 22 2e 67 69 74 22 29 20 27 67 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d t.".git").'git)....((projectile-
2b9c0 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 locate-dominating-file.project-r
2b9e0 6f 6f 74 20 22 2e 68 67 22 29 20 27 68 67 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d oot.".hg").'hg)....((projectile-
2ba00 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 locate-dominating-file.project-r
2ba20 6f 6f 74 20 22 2e 66 73 6c 63 6b 6f 75 74 22 29 20 27 66 6f 73 73 69 6c 29 0a 20 20 20 28 28 70 oot.".fslckout").'fossil)....((p
2ba40 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 rojectile-locate-dominating-file
2ba60 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 5f 46 4f 53 53 49 4c 5f 22 29 20 27 66 6f 73 73 69 .project-root."_FOSSIL_").'fossi
2ba80 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 l)....((projectile-locate-domina
2baa0 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 62 7a 72 22 29 20 27 ting-file.project-root.".bzr").'
2bac0 62 7a 72 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 bzr)....((projectile-locate-domi
2bae0 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 5f 64 61 72 63 73 nating-file.project-root."_darcs
2bb00 22 29 20 27 64 61 72 63 73 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 ").'darcs)....((projectile-locat
2bb20 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 e-dominating-file.project-root."
2bb40 2e 70 69 6a 75 6c 22 29 20 27 70 69 6a 75 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 .pijul").'pijul)....((projectile
2bb60 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d -locate-dominating-file.project-
2bb80 72 6f 6f 74 20 22 2e 73 76 6e 22 29 20 27 73 76 6e 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 root.".svn").'svn)....((projecti
2bba0 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 72 6f 6a 65 63 le-locate-dominating-file.projec
2bbc0 74 2d 72 6f 6f 74 20 22 2e 73 6c 22 29 20 27 73 61 70 6c 69 6e 67 29 0a 20 20 20 28 28 70 72 6f t-root.".sl").'sapling)....((pro
2bbe0 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 70 jectile-locate-dominating-file.p
2bc00 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 6a 6a 22 29 20 27 6a 6a 29 0a 20 20 20 28 74 20 27 6e roject-root.".jj").'jj)....(t.'n
2bc20 6f 6e 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d one)))..(defun.projectile--test-
2bc40 6e 61 6d 65 2d 66 6f 72 2d 69 6d 70 6c 2d 6e 61 6d 65 20 28 69 6d 70 6c 2d 66 69 6c 65 2d 70 61 name-for-impl-name.(impl-file-pa
2bc60 74 68 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 th)..."Determine.the.name.of.the
2bc80 20 74 65 73 74 20 66 69 6c 65 20 66 6f 72 20 49 4d 50 4c 2d 46 49 4c 45 2d 50 41 54 48 2e 0a 0a .test.file.for.IMPL-FILE-PATH...
2bca0 49 4d 50 4c 2d 46 49 4c 45 2d 50 41 54 48 20 6d 61 79 20 62 65 20 61 20 61 62 73 6f 6c 75 74 65 IMPL-FILE-PATH.may.be.a.absolute
2bcc0 20 70 61 74 68 2c 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 6f 72 20 61 20 66 69 6c 65 20 6e .path,.relative.path.or.a.file.n
2bce0 61 6d 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 70 72 ame."...(let*.((project-type.(pr
2bd00 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 ojectile-project-type)).........
2bd20 20 28 69 6d 70 6c 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 .(impl-file-name.(file-name-sans
2bd40 2d 65 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f -extension.(file-name-nondirecto
2bd60 72 79 20 69 6d 70 6c 2d 66 69 6c 65 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 ry.impl-file-path)))..........(i
2bd80 6d 70 6c 2d 66 69 6c 65 2d 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f mpl-file-ext.(file-name-extensio
2bda0 6e 20 69 6d 70 6c 2d 66 69 6c 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 n.impl-file-path))..........(tes
2bdc0 74 2d 70 72 65 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 t-prefix.(funcall.projectile-tes
2bde0 74 2d 70 72 65 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 t-prefix-function.project-type))
2be00 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 ..........(test-suffix.(funcall.
2be20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 projectile-test-suffix-function.
2be40 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 project-type))).....(cond......(
2be60 74 65 73 74 2d 70 72 65 66 69 78 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 70 72 65 66 69 78 20 test-prefix.(concat.test-prefix.
2be80 69 6d 70 6c 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 22 20 69 6d 70 6c 2d 66 69 6c 65 2d 65 78 74 impl-file-name.".".impl-file-ext
2bea0 29 29 0a 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 28 63 6f 6e 63 61 74 20 69 6d 70 ))......(test-suffix.(concat.imp
2bec0 6c 2d 66 69 6c 65 2d 6e 61 6d 65 20 74 65 73 74 2d 73 75 66 66 69 78 20 22 2e 22 20 69 6d 70 6c l-file-name.test-suffix.".".impl
2bee0 2d 66 69 6c 65 2d 65 78 74 29 29 0a 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 43 61 6e 6e -file-ext))......(t.(error."Cann
2bf00 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 61 20 74 65 73 74 20 66 69 6c 65 20 6e 61 6d 65 2c 20 6f ot.determine.a.test.file.name,.o
2bf20 6e 65 20 6f 66 20 5c 22 74 65 73 74 2d 73 75 66 66 69 78 5c 22 20 6f 72 20 5c 22 74 65 73 74 2d ne.of.\"test-suffix\".or.\"test-
2bf40 70 72 65 66 69 78 5c 22 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 70 72 6f 6a 65 63 74 prefix\".must.be.set.for.project
2bf60 20 74 79 70 65 20 60 25 73 27 22 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 29 0a 0a 28 .type.`%s'".project-type)))))..(
2bf80 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 6e 61 6d 65 2d 66 6f 72 2d defun.projectile--impl-name-for-
2bfa0 74 65 73 74 2d 6e 61 6d 65 20 28 74 65 73 74 2d 66 69 6c 65 2d 70 61 74 68 29 0a 20 20 22 44 65 test-name.(test-file-path)..."De
2bfc0 74 65 72 6d 69 6e 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e termine.the.name.of.the.implemen
2bfe0 74 61 74 69 6f 6e 20 66 69 6c 65 20 66 6f 72 20 54 45 53 54 2d 46 49 4c 45 2d 50 41 54 48 2e 0a tation.file.for.TEST-FILE-PATH..
2c000 0a 54 45 53 54 2d 46 49 4c 45 2d 50 41 54 48 20 6d 61 79 20 62 65 20 61 20 61 62 73 6f 6c 75 74 .TEST-FILE-PATH.may.be.a.absolut
2c020 65 20 70 61 74 68 2c 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 6f 72 20 61 20 66 69 6c 65 20 e.path,.relative.path.or.a.file.
2c040 6e 61 6d 65 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 70 name."...(let*.((project-type.(p
2c060 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 rojectile-project-type))........
2c080 20 20 28 74 65 73 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e ..(test-file-name.(file-name-san
2c0a0 73 2d 65 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 s-extension.(file-name-nondirect
2c0c0 6f 72 79 20 74 65 73 74 2d 66 69 6c 65 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 ory.test-file-path)))..........(
2c0e0 74 65 73 74 2d 66 69 6c 65 2d 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 test-file-ext.(file-name-extensi
2c100 6f 6e 20 74 65 73 74 2d 66 69 6c 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 on.test-file-path))..........(te
2c120 73 74 2d 70 72 65 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 st-prefix.(funcall.projectile-te
2c140 73 74 2d 70 72 65 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 st-prefix-function.project-type)
2c160 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 28 66 75 6e 63 61 6c 6c )..........(test-suffix.(funcall
2c180 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 75 6e 63 74 69 6f 6e .projectile-test-suffix-function
2c1a0 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 .project-type))).....(cond......
2c1c0 28 74 65 73 74 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 74 72 69 (test-prefix.......(concat.(stri
2c1e0 6e 67 2d 72 65 6d 6f 76 65 2d 70 72 65 66 69 78 20 74 65 73 74 2d 70 72 65 66 69 78 20 74 65 73 ng-remove-prefix.test-prefix.tes
2c200 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 22 2e 22 20 74 65 73 74 2d 66 69 6c 65 2d 65 78 74 29 29 t-file-name).".".test-file-ext))
2c220 0a 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 ......(test-suffix.......(concat
2c240 20 28 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 74 65 73 74 2d 73 75 66 66 .(string-remove-suffix.test-suff
2c260 69 78 20 74 65 73 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 22 2e 22 20 74 65 73 74 2d 66 69 6c 65 ix.test-file-name).".".test-file
2c280 2d 65 78 74 29 29 0a 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 64 65 -ext))......(t.(error."Cannot.de
2c2a0 74 65 72 6d 69 6e 65 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 6e termine.an.implementation.file.n
2c2c0 61 6d 65 2c 20 6f 6e 65 20 6f 66 20 5c 22 74 65 73 74 2d 73 75 66 66 69 78 5c 22 20 6f 72 20 5c ame,.one.of.\"test-suffix\".or.\
2c2e0 22 74 65 73 74 2d 70 72 65 66 69 78 5c 22 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 70 "test-prefix\".must.be.set.for.p
2c300 72 6f 6a 65 63 74 20 74 79 70 65 20 60 25 73 27 22 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 roject.type.`%s'".project-type))
2c320 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d )))..(defun.projectile--test-to-
2c340 69 6d 70 6c 2d 64 69 72 20 28 74 65 73 74 2d 64 69 72 2d 70 61 74 68 29 0a 20 20 22 52 65 74 75 impl-dir.(test-dir-path)..."Retu
2c360 72 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 6f 66 20 61 6e 20 69 6d 70 6c rn.the.directory.path.of.an.impl
2c380 20 66 69 6c 65 20 77 69 74 68 20 74 65 73 74 20 66 69 6c 65 20 69 6e 20 54 45 53 54 2d 44 49 52 .file.with.test.file.in.TEST-DIR
2c3a0 2d 50 41 54 48 2e 0a 0a 4f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 -PATH...Occurrences.of.the.curre
2c3c0 6e 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 65 nt.project.type's.test-dir.prope
2c3e0 72 74 79 20 28 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 61 0a 73 74 72 69 6e 67 29 20 61 rty.(which.should.be.a.string).a
2c400 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f re.replaced.with.the.current.pro
2c420 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 0a 20 28 77 ject.type's.src-dir.property..(w
2c440 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 29 20 74 6f 20 6f 62 74 61 hich.should.be.a.string).to.obta
2c460 69 6e 20 74 68 65 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 4e 69 6c 20 69 73 20 72 65 in.the.new.directory...Nil.is.re
2c480 74 75 72 6e 65 64 20 69 66 20 65 69 74 68 65 72 20 74 68 65 20 73 72 63 2d 64 69 72 20 6f 72 20 turned.if.either.the.src-dir.or.
2c4a0 74 65 73 74 2d 64 69 72 20 70 72 6f 70 65 72 74 69 65 73 20 61 72 65 20 6e 6f 74 20 73 74 72 69 test-dir.properties.are.not.stri
2c4c0 6e 67 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 70 72 ngs."...(let*.((project-type.(pr
2c4e0 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 ojectile-project-type)).........
2c500 20 28 74 65 73 74 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 64 69 72 65 .(test-dir.(projectile-test-dire
2c520 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 ctory.project-type))..........(i
2c540 6d 70 6c 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 72 63 2d 64 69 72 65 63 74 6f 72 mpl-dir.(projectile-src-director
2c560 79 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 y.project-type))).....(when.(and
2c580 20 28 73 74 72 69 6e 67 70 20 74 65 73 74 2d 64 69 72 29 20 28 73 74 72 69 6e 67 70 20 69 6d 70 .(stringp.test-dir).(stringp.imp
2c5a0 6c 2d 64 69 72 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d l-dir)).......(if.(not.(string-m
2c5c0 61 74 63 68 2d 70 20 74 65 73 74 2d 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 atch-p.test-dir.(file-name-direc
2c5e0 74 6f 72 79 20 74 65 73 74 2d 64 69 72 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 tory.test-dir-path)))...........
2c600 28 65 72 72 6f 72 20 22 41 74 74 65 6d 70 74 65 64 20 74 6f 20 66 69 6e 64 20 61 20 69 6d 70 6c (error."Attempted.to.find.a.impl
2c620 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 62 79 20 73 77 69 74 63 68 69 6e 67 20 74 68 69 ementation.file.by.switching.thi
2c640 73 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 28 25 73 29 20 74 65 73 74 2d 64 69 72 20 70 s.project.type's.(%s).test-dir.p
2c660 72 6f 70 65 72 74 79 20 5c 22 25 73 5c 22 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 6a 65 63 74 roperty.\"%s\".with.this.project
2c680 20 74 79 70 65 27 73 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 5c 22 25 73 5c 22 2c .type's.src-dir.property.\"%s\",
2c6a0 20 62 75 74 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 5c 22 25 73 5c 22 22 .but.%s.does.not.contain.\"%s\""
2c6c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 74 ..................project-type.t
2c6e0 65 73 74 2d 64 69 72 20 69 6d 70 6c 2d 64 69 72 20 74 65 73 74 2d 64 69 72 2d 70 61 74 68 20 74 est-dir.impl-dir.test-dir-path.t
2c700 65 73 74 2d 64 69 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d est-dir).........(projectile-com
2c720 70 6c 65 6d 65 6e 74 61 72 79 2d 64 69 72 20 74 65 73 74 2d 64 69 72 2d 70 61 74 68 20 74 65 73 plementary-dir.test-dir-path.tes
2c740 74 2d 64 69 72 20 69 6d 70 6c 2d 64 69 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a t-dir.impl-dir)))))..(defun.proj
2c760 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 2d 64 69 72 2d 66 61 6c 6c 62 61 63 ectile--impl-to-test-dir-fallbac
2c780 6b 20 28 69 6d 70 6c 2d 64 69 72 2d 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 k.(impl-dir-path)..."Return.the.
2c7a0 74 65 73 74 20 66 69 6c 65 20 66 6f 72 20 49 4d 50 4c 2d 44 49 52 2d 50 41 54 48 20 62 79 20 67 test.file.for.IMPL-DIR-PATH.by.g
2c7c0 75 65 73 73 69 6e 67 20 61 20 74 65 73 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 4f 63 63 75 72 uessing.a.test.directory...Occur
2c7e0 72 65 6e 63 65 73 20 6f 66 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c rences.of.the.`projectile-defaul
2c800 74 2d 73 72 63 2d 64 69 72 65 63 74 6f 72 79 27 20 69 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 t-src-directory'.in.the.director
2c820 79 20 6f 66 0a 49 4d 50 4c 2d 44 49 52 2d 50 41 54 48 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 y.of.IMPL-DIR-PATH.are.replaced.
2c840 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 64 69 with.`projectile-default-test-di
2c860 72 65 63 74 6f 72 79 27 2e 20 20 4e 69 6c 20 69 73 0a 72 65 74 75 72 6e 65 64 20 69 66 20 60 70 rectory'...Nil.is.returned.if.`p
2c880 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 2d 64 69 72 65 63 74 6f 72 79 27 rojectile-default-src-directory'
2c8a0 20 69 73 20 6e 6f 74 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 0a 49 4d 50 4c 2d 44 49 52 2d .is.not.a.substring.of.IMPL-DIR-
2c8c0 50 41 54 48 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 70 72 6f 6a PATH."...(when-let*.((file.(proj
2c8e0 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c 65 0a 20 20 20 20 20 ectile--complementary-file......
2c900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 70 6c 2d 64 69 72 2d 70 61 74 68 0a 20 20 20 ...............impl-dir-path....
2c920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 0a 20 20 20 .................(lambda.(f)....
2c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 ...................(when.(string
2c960 2d 6d 61 74 63 68 2d 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 2d -match-p.projectile-default-src-
2c980 64 69 72 65 63 74 6f 72 79 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 directory.f)....................
2c9a0 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 64 .....(projectile-complementary-d
2c9c0 69 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 69 6d 70 6c ir..........................impl
2c9e0 2d 64 69 72 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -dir-path.......................
2ca00 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 2d 64 69 72 65 63 74 ...projectile-default-src-direct
2ca20 6f 72 79 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 70 72 6f ory..........................pro
2ca40 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 64 69 72 65 63 74 6f 72 79 29 29 jectile-default-test-directory))
2ca60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 ).....................#'projecti
2ca80 6c 65 2d 2d 74 65 73 74 2d 6e 61 6d 65 2d 66 6f 72 2d 69 6d 70 6c 2d 6e 61 6d 65 29 29 29 0a 20 le--test-name-for-impl-name)))..
2caa0 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c 65 20 28 70 72 6f ...(file-relative-name.file.(pro
2cac0 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e jectile-project-root))))..(defun
2cae0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d 69 6d 70 6c 2d 64 69 72 2d 66 61 .projectile--test-to-impl-dir-fa
2cb00 6c 6c 62 61 63 6b 20 28 74 65 73 74 2d 64 69 72 2d 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e llback.(test-dir-path)..."Return
2cb20 20 74 68 65 20 69 6d 70 6c 20 66 69 6c 65 20 66 6f 72 20 54 45 53 54 2d 44 49 52 2d 50 41 54 48 .the.impl.file.for.TEST-DIR-PATH
2cb40 20 62 79 20 67 75 65 73 73 69 6e 67 20 61 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 2e .by.guessing.a.source.directory.
2cb60 0a 0a 4f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 ..Occurrences.of.`projectile-def
2cb80 61 75 6c 74 2d 74 65 73 74 2d 64 69 72 65 63 74 6f 72 79 27 20 69 6e 20 74 68 65 20 64 69 72 65 ault-test-directory'.in.the.dire
2cba0 63 74 6f 72 79 20 6f 66 0a 54 45 53 54 2d 44 49 52 2d 50 41 54 48 20 61 72 65 20 72 65 70 6c 61 ctory.of.TEST-DIR-PATH.are.repla
2cbc0 63 65 64 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 ced.with.`projectile-default-src
2cbe0 2d 64 69 72 65 63 74 6f 72 79 27 2e 20 20 4e 69 6c 20 69 73 0a 72 65 74 75 72 6e 65 64 20 69 66 -directory'...Nil.is.returned.if
2cc00 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 64 69 72 65 63 74 .`projectile-default-test-direct
2cc20 6f 72 79 27 20 69 73 20 6e 6f 74 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 0a 54 45 53 54 2d ory'.is.not.a.substring.of.TEST-
2cc40 44 49 52 2d 50 41 54 48 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 DIR-PATH."...(when-let*.((file.(
2cc60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c 65 0a 20 projectile--complementary-file..
2cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 2d 64 69 72 2d 70 61 74 68 ...................test-dir-path
2cca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 .....................(lambda.(f)
2ccc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 .......................(when.(st
2cce0 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d ring-match-p.projectile-default-
2cd00 74 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 test-directory.f)...............
2cd20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 6d 65 6e 74 ..........(projectile-complement
2cd40 61 72 79 2d 64 69 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 ary-dir.........................
2cd60 20 74 65 73 74 2d 64 69 72 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .test-dir-path..................
2cd80 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d ........projectile-default-test-
2cda0 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 20 20 20 20 20 directory.......................
2cdc0 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 73 72 63 2d 64 69 72 65 63 74 ...projectile-default-src-direct
2cde0 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 6f ory))).....................#'pro
2ce00 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 6e 61 6d 65 2d 66 6f 72 2d 74 65 73 74 2d 6e 61 6d 65 jectile--impl-name-for-test-name
2ce20 29 29 29 0a 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c 65 ))).....(file-relative-name.file
2ce40 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 .(projectile-project-root))))..(
2ce60 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 2d 64 defun.projectile--impl-to-test-d
2ce80 69 72 20 28 69 6d 70 6c 2d 64 69 72 2d 70 61 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 ir.(impl-dir-path)..."Return.the
2cea0 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 6f 66 20 61 20 74 65 73 74 20 77 68 6f 73 65 20 .directory.path.of.a.test.whose.
2cec0 69 6d 70 6c 20 66 69 6c 65 20 72 65 73 69 64 65 73 20 69 6e 20 49 4d 50 4c 2d 44 49 52 2d 50 41 impl.file.resides.in.IMPL-DIR-PA
2cee0 54 48 2e 0a 0a 4f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 TH...Occurrences.of.the.current.
2cf00 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 project.type's.src-dir.property.
2cf20 28 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 61 0a 73 74 72 69 6e 67 29 20 61 72 65 20 72 (which.should.be.a.string).are.r
2cf40 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 eplaced.with.the.current.project
2cf60 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 0a 20 28 77 68 69 63 .type's.test-dir.property..(whic
2cf80 68 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 29 20 74 6f 20 6f 62 74 61 69 6e 20 h.should.be.a.string).to.obtain.
2cfa0 74 68 65 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 49 66 20 74 68 65 20 73 72 63 2d 64 the.new.directory...If.the.src-d
2cfc0 69 72 20 70 72 6f 70 65 72 74 79 20 69 73 20 73 65 74 20 61 6e 64 20 49 4d 50 4c 2d 44 49 52 2d ir.property.is.set.and.IMPL-DIR-
2cfe0 50 41 54 48 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 28 61 73 20 61 0a 73 75 62 73 PATH.does.not.contain.(as.a.subs
2d000 74 72 69 6e 67 29 20 74 68 65 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 6f 66 20 74 tring).the.src-dir.property.of.t
2d020 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2c 20 61 6e 20 65 72 72 6f he.current.project.type,.an.erro
2d040 72 20 69 73 0a 73 69 67 6e 61 6c 6c 65 64 2e 0a 0a 4e 69 6c 20 69 73 20 72 65 74 75 72 6e 65 64 r.is.signalled...Nil.is.returned
2d060 20 69 66 20 65 69 74 68 65 72 20 74 68 65 20 73 72 63 2d 64 69 72 20 6f 72 20 74 65 73 74 2d 64 .if.either.the.src-dir.or.test-d
2d080 69 72 20 70 72 6f 70 65 72 74 69 65 73 20 61 72 65 20 6e 6f 74 20 73 74 72 69 6e 67 73 2e 22 0a ir.properties.are.not.strings.".
2d0a0 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 70 72 6f 6a 65 63 74 69 ..(let*.((project-type.(projecti
2d0c0 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 le-project-type))..........(test
2d0e0 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20 -dir.(projectile-test-directory.
2d100 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6d 70 6c 2d 64 69 project-type))..........(impl-di
2d120 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 72 63 2d 64 69 72 65 63 74 6f 72 79 20 70 72 6f 6a r.(projectile-src-directory.proj
2d140 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 ect-type))).....(when.(and.(stri
2d160 6e 67 70 20 74 65 73 74 2d 64 69 72 29 20 28 73 74 72 69 6e 67 70 20 69 6d 70 6c 2d 64 69 72 29 ngp.test-dir).(stringp.impl-dir)
2d180 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 ).......(if.(not.(string-match-p
2d1a0 20 69 6d 70 6c 2d 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 69 .impl-dir.(file-name-directory.i
2d1c0 6d 70 6c 2d 64 69 72 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 mpl-dir-path)))...........(error
2d1e0 20 22 41 74 74 65 6d 70 74 65 64 20 74 6f 20 66 69 6e 64 20 61 20 74 65 73 74 20 66 69 6c 65 20 ."Attempted.to.find.a.test.file.
2d200 62 79 20 73 77 69 74 63 68 69 6e 67 20 74 68 69 73 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 by.switching.this.project.type's
2d220 20 28 25 73 29 20 73 72 63 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 5c 22 25 73 5c 22 20 77 69 .(%s).src-dir.property.\"%s\".wi
2d240 74 68 20 74 68 69 73 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 72 20 th.this.project.type's.test-dir.
2d260 70 72 6f 70 65 72 74 79 20 5c 22 25 73 5c 22 2c 20 62 75 74 20 25 73 20 64 6f 65 73 20 6e 6f 74 property.\"%s\",.but.%s.does.not
2d280 20 63 6f 6e 74 61 69 6e 20 5c 22 25 73 5c 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .contain.\"%s\""................
2d2a0 20 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 69 6d 70 6c 2d 64 69 72 20 74 65 73 74 2d 64 69 72 ..project-type.impl-dir.test-dir
2d2c0 20 69 6d 70 6c 2d 64 69 72 2d 70 61 74 68 20 69 6d 70 6c 2d 64 69 72 29 0a 20 20 20 20 20 20 20 .impl-dir-path.impl-dir)........
2d2e0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 64 69 72 20 69 .(projectile-complementary-dir.i
2d300 6d 70 6c 2d 64 69 72 2d 70 61 74 68 20 69 6d 70 6c 2d 64 69 72 20 74 65 73 74 2d 64 69 72 29 29 mpl-dir-path.impl-dir.test-dir))
2d320 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 6d 65 6e )))..(defun.projectile-complemen
2d340 74 61 72 79 2d 64 69 72 20 28 64 69 72 2d 70 61 74 68 20 73 74 72 69 6e 67 20 72 65 70 6c 61 63 tary-dir.(dir-path.string.replac
2d360 65 6d 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 5c 22 63 6f 6d 70 6c 65 6d 65 6e ement)..."Return.the.\"complemen
2d380 74 61 72 79 5c 22 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 44 49 52 2d 50 41 54 48 2e 0a 52 65 tary\".directory.of.DIR-PATH..Re
2d3a0 70 6c 61 63 65 20 53 54 52 49 4e 47 20 69 6e 20 44 49 52 2d 50 41 54 48 20 77 69 74 68 20 52 45 place.STRING.in.DIR-PATH.with.RE
2d3c0 50 4c 41 43 45 4d 45 4e 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f PLACEMENT."...(let*.((project-ro
2d3e0 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 ot.(projectile-project-root))...
2d400 20 20 20 20 20 20 20 28 72 65 6c 61 74 69 76 65 2d 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d .......(relative-dir.(file-name-
2d420 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 64 69 directory.(file-relative-name.di
2d440 72 2d 70 61 74 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 70 72 6f r-path.project-root)))).....(pro
2d460 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 20 20 3b 3b 20 54 4f 44 4f jectile-expand-root......;;.TODO
2d480 3a 20 55 73 65 20 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 6f 6e 63 65 20 77 65 20 74 61 72 :.Use.string-replace.once.we.tar
2d4a0 67 65 74 20 65 6d 61 63 73 20 32 38 0a 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 get.emacs.28......(replace-regex
2d4c0 70 2d 69 6e 2d 73 74 72 69 6e 67 20 73 74 72 69 6e 67 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 72 p-in-string.string.replacement.r
2d4e0 65 6c 61 74 69 76 65 2d 64 69 72 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 elative-dir.t))))..(defun.projec
2d500 74 69 6c 65 2d 2d 63 72 65 61 74 65 2d 64 69 72 65 63 74 6f 72 69 65 73 2d 66 6f 72 20 28 70 61 tile--create-directories-for.(pa
2d520 74 68 29 0a 20 20 22 43 72 65 61 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 6e 65 63 65 73 73 th)..."Create.directories.necess
2d540 61 72 79 20 66 6f 72 20 50 41 54 48 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 65 ary.for.PATH."...(unless.(file-e
2d560 78 69 73 74 73 2d 70 20 70 61 74 68 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 xists-p.path).....(make-director
2d580 79 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 20 20 y.(if.(file-directory-p.path)...
2d5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 74 68 0a 20 20 20 20 20 ......................path......
2d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 .................(file-name-dire
2d5e0 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctory.path))....................
2d600 20 3a 63 72 65 61 74 65 2d 70 61 72 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a .:create-parents)))..(defun.proj
2d620 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 ectile-find-implementation-or-te
2d640 73 74 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 47 69 76 65 6e 20 61 20 46 49 4c 45 2d 4e st.(file-name)..."Given.a.FILE-N
2d660 41 4d 45 20 72 65 74 75 72 6e 20 74 68 65 20 6d 61 74 63 68 69 6e 67 20 69 6d 70 6c 65 6d 65 6e AME.return.the.matching.implemen
2d680 74 61 74 69 6f 6e 20 6f 72 20 74 65 73 74 20 66 69 6c 65 6e 61 6d 65 2e 0a 0a 49 66 20 60 70 72 tation.or.test.filename...If.`pr
2d6a0 6f 6a 65 63 74 69 6c 65 2d 63 72 65 61 74 65 2d 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c ojectile-create-missing-test-fil
2d6c0 65 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 72 65 61 74 65 20 74 68 65 20 6d 69 73 73 69 es'.is.non-nil,.create.the.missi
2d6e0 6e 67 0a 74 65 73 74 20 66 69 6c 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 66 69 6c 65 2d 6e 61 ng.test.file."...(unless.file-na
2d700 6d 65 20 28 65 72 72 6f 72 20 22 54 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 me.(error."The.current.buffer.is
2d720 20 6e 6f 74 20 76 69 73 69 74 69 6e 67 20 61 20 66 69 6c 65 22 29 29 0a 20 20 28 75 6e 6c 65 73 .not.visiting.a.file"))...(unles
2d740 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 20 28 70 72 6f s.(projectile-project-type).(pro
2d760 6a 65 63 74 69 6c 65 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 20 6e 69 6c 29 29 0a 20 20 28 jectile-ensure-project.nil))...(
2d780 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 66 69 6c 65 2d 70 20 66 69 6c 65 2d if.(projectile-test-file-p.file-
2d7a0 6e 61 6d 65 29 0a 20 20 20 20 20 20 3b 3b 20 66 69 6e 64 20 74 68 65 20 6d 61 74 63 68 69 6e 67 name).......;;.find.the.matching
2d7c0 20 69 6d 70 6c 20 66 69 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6d 70 6c 2d 66 69 6c .impl.file.......(let.((impl-fil
2d7e0 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 66 69 6c 65 e.(projectile-find-matching-file
2d800 20 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 69 6d 70 6c 2d 66 .file-name))).........(if.impl-f
2d820 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 ile.............(projectile-expa
2d840 6e 64 2d 72 6f 6f 74 20 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 72 nd-root.impl-file)...........(er
2d860 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 73 6f 75 72 ror............"No.matching.sour
2d880 63 65 20 66 69 6c 65 20 66 6f 75 6e 64 20 66 6f 72 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 60 ce.file.found.for.project.type.`
2d8a0 25 73 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a %s'"............(projectile-proj
2d8c0 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 66 69 6e 64 20 74 68 65 20 6d 61 74 ect-type)))).....;;.find.the.mat
2d8e0 63 68 69 6e 67 20 74 65 73 74 20 66 69 6c 65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 72 72 6f ching.test.file.....(let*.((erro
2d900 72 2d 6d 73 67 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-msg.(format...................
2d920 20 20 20 20 20 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 74 65 73 74 20 66 69 6c 65 20 66 6f 75 6e ....."No.matching.test.file.foun
2d940 64 20 66 6f 72 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 60 25 73 27 22 0a 20 20 20 20 20 20 20 d.for.project.type.`%s'"........
2d960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ................(projectile-proj
2d980 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 66 69 6c ect-type)))............(test-fil
2d9a0 65 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d e.(or.(projectile-find-matching-
2d9c0 74 65 73 74 20 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 test.file-name).................
2d9e0 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 65 72 72 6f 72 2d 6d 73 67 29 29 29 0a 20 20 ..........(error.error-msg)))...
2da00 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 65 64 2d 74 65 73 74 2d 66 69 6c 65 20 28 70 72 .........(expanded-test-file.(pr
2da20 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 74 65 73 74 2d 66 69 6c 65 29 29 ojectile-expand-root.test-file))
2da40 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 65 78 ).......(cond.((file-exists-p.ex
2da60 70 61 6e 64 65 64 2d 74 65 73 74 2d 66 69 6c 65 29 20 65 78 70 61 6e 64 65 64 2d 74 65 73 74 2d panded-test-file).expanded-test-
2da80 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 72 file).............(projectile-cr
2daa0 65 61 74 65 2d 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 eate-missing-test-files.........
2dac0 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 72 65 61 74 65 2d 64 69 72 65 63 74 6f .....(projectile--create-directo
2dae0 72 69 65 73 2d 66 6f 72 20 65 78 70 61 6e 64 65 64 2d 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 20 ries-for.expanded-test-file)....
2db00 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 65 64 2d 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 ..........expanded-test-file)...
2db20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 44 65 74 65 72 6d 69 6e 65 64 20 ..........(t.(error."Determined.
2db40 74 65 73 74 20 66 69 6c 65 20 74 6f 20 62 65 20 5c 22 25 73 5c 22 2c 20 77 68 69 63 68 20 64 6f test.file.to.be.\"%s\",.which.do
2db60 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 20 53 65 74 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 es.not.exist...Set.`projectile-c
2db80 72 65 61 74 65 2d 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c 65 73 27 20 74 6f 20 61 6c 6c reate-missing-test-files'.to.all
2dba0 6f 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 ow.`projectile-find-implementati
2dbc0 6f 6e 2d 6f 72 2d 74 65 73 74 27 20 74 6f 20 63 72 65 61 74 65 20 6e 65 77 20 66 69 6c 65 73 22 on-or-test'.to.create.new.files"
2dbe0 20 74 65 73 74 2d 66 69 6c 65 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 .test-file))))))..;;;###autoload
2dc00 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e .(defun.projectile-find-implemen
2dc20 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a 20 tation-or-test-other-window.()..
2dc40 20 22 4f 70 65 6e 20 6d 61 74 63 68 69 6e 67 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f ."Open.matching.implementation.o
2dc60 72 20 74 65 73 74 20 66 69 6c 65 20 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 0a 0a 53 65 r.test.file.in.other.window...Se
2dc80 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 e.the.documentation.of.`projecti
2dca0 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 66 69 6c 65 27 20 61 6e 64 0a 60 70 72 6f le--find-matching-file'.and.`pro
2dcc0 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 74 65 73 74 27 20 66 6f 72 jectile--find-matching-test'.for
2dce0 20 68 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 74 65 73 74 20 66 69 6c .how.implementation.and.test.fil
2dd00 65 73 0a 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 es.are.determined."...(interacti
2dd20 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 ve)...(find-file-other-window...
2dd40 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e .(projectile-find-implementation
2dd60 2d 6f 72 2d 74 65 73 74 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 0a 0a -or-test.(buffer-file-name))))..
2dd80 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ;;;###autoload.(defun.projectile
2dda0 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 6f 74 68 -find-implementation-or-test-oth
2ddc0 65 72 2d 66 72 61 6d 65 20 28 29 0a 20 20 22 4f 70 65 6e 20 6d 61 74 63 68 69 6e 67 20 69 6d 70 er-frame.()..."Open.matching.imp
2dde0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 72 20 74 65 73 74 20 66 69 6c 65 20 69 6e 20 6f 74 68 65 lementation.or.test.file.in.othe
2de00 72 20 66 72 61 6d 65 2e 0a 0a 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 r.frame...See.the.documentation.
2de20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 66 69 of.`projectile--find-matching-fi
2de40 6c 65 27 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 le'.and.`projectile--find-matchi
2de60 6e 67 2d 74 65 73 74 27 20 66 6f 72 20 68 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 ng-test'.for.how.implementation.
2de80 61 6e 64 20 74 65 73 74 20 66 69 6c 65 73 0a 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 22 0a and.test.files.are.determined.".
2dea0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 ..(interactive)...(find-file-oth
2dec0 65 72 2d 66 72 61 6d 65 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 er-frame....(projectile-find-imp
2dee0 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 20 28 62 75 66 66 65 72 2d 66 69 6c 65 lementation-or-test.(buffer-file
2df00 2d 6e 61 6d 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e -name))))..;;;###autoload.(defun
2df20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 .projectile-toggle-between-imple
2df40 6d 65 6e 74 61 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 mentation-and-test.()..."Toggle.
2df60 62 65 74 77 65 65 6e 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 61 between.an.implementation.file.a
2df80 6e 64 20 69 74 73 20 74 65 73 74 20 66 69 6c 65 2e 0a 0a 0a 53 65 65 20 74 68 65 20 64 6f 63 75 nd.its.test.file....See.the.docu
2dfa0 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d mentation.of.`projectile--find-m
2dfc0 61 74 63 68 69 6e 67 2d 66 69 6c 65 27 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 atching-file'.and.`projectile--f
2dfe0 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 74 65 73 74 27 20 66 6f 72 20 68 6f 77 20 69 6d 70 6c 65 ind-matching-test'.for.how.imple
2e000 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 74 65 73 74 20 66 69 6c 65 73 0a 61 72 65 20 64 65 74 mentation.and.test.files.are.det
2e020 65 72 6d 69 6e 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 66 69 6e ermined."...(interactive)...(fin
2e040 64 2d 66 69 6c 65 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 d-file....(projectile-find-imple
2e060 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e mentation-or-test.(buffer-file-n
2e080 61 6d 65 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ame))))...(defun.projectile-proj
2e0a0 65 63 74 2d 74 79 70 65 2d 61 74 74 72 69 62 75 74 65 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 ect-type-attribute.(project-type
2e0c0 20 6b 65 79 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 29 0a 20 20 .key.&optional.default-value)...
2e0e0 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 73 6f 6d 65 20 50 52 4f 4a 45 43 "Return.the.value.of.some.PROJEC
2e100 54 2d 54 59 50 45 20 61 74 74 72 69 62 75 74 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4b T-TYPE.attribute.identified.by.K
2e120 45 59 2e 0a 46 61 6c 6c 62 61 63 6b 20 74 6f 20 44 45 46 41 55 4c 54 2d 56 41 4c 55 45 20 66 6f EY..Fallback.to.DEFAULT-VALUE.fo
2e140 72 20 6d 69 73 73 69 6e 67 20 61 74 74 72 69 62 75 74 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 r.missing.attributes."...(let.((
2e160 70 72 6f 6a 65 63 74 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 project.(alist-get.project-type.
2e180 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 29 29 0a 20 20 20 20 projectile-project-types))).....
2e1a0 28 69 66 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 70 (if.(and.project.(plist-member.p
2e1c0 72 6f 6a 65 63 74 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 roject.key)).........(plist-get.
2e1e0 70 72 6f 6a 65 63 74 20 6b 65 79 29 0a 20 20 20 20 20 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 project.key).......default-value
2e200 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 )))..(defun.projectile-test-pref
2e220 69 78 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 46 69 6e 64 20 64 65 66 61 75 6c ix.(project-type)..."Find.defaul
2e240 74 20 74 65 73 74 20 66 69 6c 65 73 20 70 72 65 66 69 78 20 62 61 73 65 64 20 6f 6e 20 50 52 4f t.test.files.prefix.based.on.PRO
2e260 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f JECT-TYPE."...(or.projectile-pro
2e280 6a 65 63 74 2d 74 65 73 74 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 ject-test-prefix.......(projecti
2e2a0 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 61 74 74 72 69 62 75 74 65 20 70 72 6f 6a 65 63 le-project-type-attribute.projec
2e2c0 74 2d 74 79 70 65 20 27 74 65 73 74 2d 70 72 65 66 69 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 t-type.'test-prefix)))..(defun.p
2e2e0 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 20 28 70 72 6f 6a 65 63 74 2d 74 rojectile-test-suffix.(project-t
2e300 79 70 65 29 0a 20 20 22 46 69 6e 64 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 66 69 6c 65 73 20 ype)..."Find.default.test.files.
2e320 73 75 66 66 69 78 20 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 suffix.based.on.PROJECT-TYPE."..
2e340 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 73 75 66 .(or.projectile-project-test-suf
2e360 66 69 78 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 fix.......(projectile-project-ty
2e380 70 65 2d 61 74 74 72 69 62 75 74 65 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 74 65 73 74 2d pe-attribute.project-type.'test-
2e3a0 73 75 66 66 69 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c suffix)))..(defun.projectile-rel
2e3c0 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 ated-files-fn.(project-type)..."
2e3e0 46 69 6e 64 20 72 65 6c 61 74 69 76 65 20 66 69 6c 65 20 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a Find.relative.file.based.on.PROJ
2e400 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ECT-TYPE."...(or.projectile-proj
2e420 65 63 74 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 0a 20 20 20 20 20 20 28 70 72 6f 6a ect-related-files-fn.......(proj
2e440 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 61 74 74 72 69 62 75 74 65 20 70 72 ectile-project-type-attribute.pr
2e460 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 29 29 0a oject-type.'related-files-fn))).
2e480 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 72 63 2d 64 69 72 65 63 74 6f 72 79 .(defun.projectile-src-directory
2e4a0 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 46 69 6e 64 20 64 65 66 61 75 6c 74 20 .(project-type)..."Find.default.
2e4c0 73 72 63 20 64 69 72 65 63 74 6f 72 79 20 62 61 73 65 64 20 6f 6e 20 50 52 4f 4a 45 43 54 2d 54 src.directory.based.on.PROJECT-T
2e4e0 59 50 45 2e 22 0a 20 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 YPE."...(or.projectile-project-s
2e500 72 63 2d 64 69 72 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 rc-dir.......(projectile-project
2e520 2d 74 79 70 65 2d 61 74 74 72 69 62 75 74 65 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 73 72 -type-attribute.project-type.'sr
2e540 63 2d 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 c-dir)))..(defun.projectile-test
2e560 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 46 69 6e -directory.(project-type)..."Fin
2e580 64 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 64 69 72 65 63 74 6f 72 79 20 62 61 73 65 64 20 6f d.default.test.directory.based.o
2e5a0 6e 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c n.PROJECT-TYPE."...(or.projectil
2e5c0 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 64 69 72 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 e-project-test-dir.......(projec
2e5e0 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 61 74 74 72 69 62 75 74 65 20 70 72 6f 6a tile-project-type-attribute.proj
2e600 65 63 74 2d 74 79 70 65 20 27 74 65 73 74 2d 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 ect-type.'test-dir)))..(defun.pr
2e620 6f 6a 65 63 74 69 6c 65 2d 64 69 72 6e 61 6d 65 2d 6d 61 74 63 68 69 6e 67 2d 63 6f 75 6e 74 20 ojectile-dirname-matching-count.
2e640 28 61 20 62 29 0a 20 20 22 43 6f 75 6e 74 20 6d 61 74 63 68 69 6e 67 20 64 69 72 6e 61 6d 65 73 (a.b)..."Count.matching.dirnames
2e660 20 61 73 63 65 6e 64 69 6e 67 20 66 69 6c 65 20 70 61 74 68 73 20 69 6e 20 41 20 61 6e 64 20 42 .ascending.file.paths.in.A.and.B
2e680 2e 22 0a 20 20 28 73 65 74 71 20 61 20 28 72 65 76 65 72 73 65 20 28 73 70 6c 69 74 2d 73 74 72 ."...(setq.a.(reverse.(split-str
2e6a0 69 6e 67 20 28 6f 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 61 29 20 ing.(or.(file-name-directory.a).
2e6c0 22 22 29 20 22 2f 22 20 74 29 29 0a 20 20 20 20 20 20 20 20 62 20 28 72 65 76 65 72 73 65 20 28 "")."/".t)).........b.(reverse.(
2e6e0 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6f 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 split-string.(or.(file-name-dire
2e700 63 74 6f 72 79 20 62 29 20 22 22 29 20 22 2f 22 20 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 63 ctory.b)."")."/".t)))...(let.((c
2e720 6f 6d 6d 6f 6e 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 61 20 62 20 28 73 ommon.0)).....(while.(and.a.b.(s
2e740 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 70 6f 70 20 61 29 20 28 70 6f 70 20 62 29 29 29 0a 20 20 tring-equal.(pop.a).(pop.b)))...
2e760 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 6f 6e 20 28 31 2b 20 63 6f 6d 6d 6f 6e 29 29 29 0a 20 ....(setq.common.(1+.common)))..
2e780 20 20 20 63 6f 6d 6d 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 ...common))..(defun.projectile-g
2e7a0 72 6f 75 70 2d 66 69 6c 65 2d 63 61 6e 64 69 64 61 74 65 73 20 28 66 69 6c 65 20 63 61 6e 64 69 roup-file-candidates.(file.candi
2e7c0 64 61 74 65 73 29 0a 20 20 22 47 72 6f 75 70 20 66 69 6c 65 20 63 61 6e 64 69 64 61 74 65 73 20 dates)..."Group.file.candidates.
2e7e0 62 79 20 64 69 72 6e 61 6d 65 20 6d 61 74 63 68 69 6e 67 20 63 6f 75 6e 74 2e 22 0a 20 20 28 63 by.dirname.matching.count."...(c
2e800 6c 2d 73 6f 72 74 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 l-sort.(copy-sequence...........
2e820 20 20 28 6c 65 74 20 28 76 61 6c 75 65 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 ..(let.(value.result)...........
2e840 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 76 61 6c 75 65 20 28 70 6f 70 20 63 61 6e 64 ....(while.(setq.value.(pop.cand
2e860 69 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 idates)).................(let*.(
2e880 28 6b 65 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 6e 61 6d 65 2d 6d 61 74 63 68 69 6e (key.(projectile-dirname-matchin
2e8a0 67 2d 63 6f 75 6e 74 20 66 69 6c 65 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 g-count.file.value))............
2e8c0 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 76 20 28 61 73 73 6f 63 20 6b 65 79 20 72 65 73 75 6c ............(kv.(assoc.key.resul
2e8e0 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6b 76 0a 20 20 t)))...................(if.kv...
2e900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 6b 76 20 28 ....................(setcdr.kv.(
2e920 63 6f 6e 73 20 76 61 6c 75 65 20 28 63 64 72 20 6b 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 cons.value.(cdr.kv)))...........
2e940 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 6b 65 79 20 76 61 6c 75 65 29 ..........(push.(list.key.value)
2e960 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 .result))))...............(mapca
2e980 72 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(lambda.(x)...................
2e9a0 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 78 29 20 28 6e 72 65 76 65 72 73 65 20 28 63 ......(cons.(car.x).(nreverse.(c
2e9c0 64 72 20 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 dr.x)))).......................(
2e9e0 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 nreverse.result))))............(
2ea00 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 3e 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 lambda.(a.b).(>.(car.a).(car.b))
2ea20 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 62 65 73 74 2d 6f 72 2d )))..(defun.projectile--best-or-
2ea40 61 6c 6c 2d 63 61 6e 64 69 64 61 74 65 73 2d 62 61 73 65 64 2d 6f 6e 2d 70 61 72 65 6e 74 73 2d all-candidates-based-on-parents-
2ea60 64 69 72 73 20 28 66 69 6c 65 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 22 52 65 74 75 72 6e dirs.(file.candidates)..."Return
2ea80 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 62 65 73 74 20 6f 6e 65 20 6f 6e 65 20 66 6f 72 20 .a.list.of.the.best.one.one.for.
2eaa0 46 49 4c 45 20 66 72 6f 6d 20 43 41 4e 44 49 44 41 54 45 53 20 6f 72 20 61 6c 6c 20 43 41 4e 44 FILE.from.CANDIDATES.or.all.CAND
2eac0 49 44 41 54 45 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 67 72 6f 75 70 65 64 2d 63 61 6e 64 69 64 IDATES."...(let.((grouped-candid
2eae0 61 74 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 6f 75 70 2d 66 69 6c 65 2d 63 61 6e 64 ates.(projectile-group-file-cand
2eb00 69 64 61 74 65 73 20 66 69 6c 65 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 0a 20 20 20 20 28 69 idates.file.candidates))).....(i
2eb20 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 28 63 61 72 20 67 72 6f 75 70 65 64 2d 63 61 6e 64 69 64 f.(=.(length.(car.grouped-candid
2eb40 61 74 65 73 29 29 20 32 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 61 72 20 28 6c 61 ates)).2).........(list.(car.(la
2eb60 73 74 20 28 63 61 72 20 67 72 6f 75 70 65 64 2d 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 0a 20 st.(car.grouped-candidates))))..
2eb80 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 20 28 6d 61 70 63 61 72 20 23 27 63 .....(apply.#'append.(mapcar.#'c
2eba0 64 72 20 67 72 6f 75 70 65 64 2d 63 61 6e 64 69 64 61 74 65 73 29 29 29 29 29 0a 0a 28 64 65 66 dr.grouped-candidates)))))..(def
2ebc0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 2d 70 72 65 64 un.projectile--impl-to-test-pred
2ebe0 69 63 61 74 65 20 28 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 icate.(impl-file)..."Return.a.pr
2ec00 65 64 69 63 61 74 65 2c 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 74 20 66 6f 72 20 61 6e 79 edicate,.which.returns.t.for.any
2ec20 20 74 65 73 74 20 66 69 6c 65 73 20 66 6f 72 20 49 4d 50 4c 2d 46 49 4c 45 2e 22 0a 20 20 28 6c .test.files.for.IMPL-FILE."...(l
2ec40 65 74 2a 20 28 28 62 61 73 65 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 et*.((basename.(file-name-sans-e
2ec60 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 xtension.(file-name-nondirectory
2ec80 20 69 6d 70 6c 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 70 72 65 .impl-file)))..........(test-pre
2eca0 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 fix.(funcall.projectile-test-pre
2ecc0 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 fix-function.(projectile-project
2ece0 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 28 -type)))..........(test-suffix.(
2ed00 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 funcall.projectile-test-suffix-f
2ed20 75 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 unction.(projectile-project-type
2ed40 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 2d 6e 61 6d 65 20 28 77 68 65 6e 20 )))..........(prefix-name.(when.
2ed60 74 65 73 74 2d 70 72 65 66 69 78 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 70 72 65 66 69 78 20 test-prefix.(concat.test-prefix.
2ed80 62 61 73 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 75 66 66 69 78 2d 6e 61 6d basename)))..........(suffix-nam
2eda0 65 20 28 77 68 65 6e 20 74 65 73 74 2d 73 75 66 66 69 78 20 28 63 6f 6e 63 61 74 20 62 61 73 65 e.(when.test-suffix.(concat.base
2edc0 6e 61 6d 65 20 74 65 73 74 2d 73 75 66 66 69 78 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 name.test-suffix)))).....(lambda
2ede0 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d .(current-file).......(let.((nam
2ee00 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 28 66 69 6c e.(file-name-sans-extension.(fil
2ee20 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 63 75 72 72 65 6e 74 2d 66 69 6c 65 e-name-nondirectory.current-file
2ee40 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 70 )))).........(or.(string-equal.p
2ee60 72 65 66 69 78 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 refix-name.name).............(st
2ee80 72 69 6e 67 2d 65 71 75 61 6c 20 73 75 66 66 69 78 2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 29 29 ring-equal.suffix-name.name)))))
2eea0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 )..(defun.projectile--complement
2eec0 61 72 79 2d 66 69 6c 65 20 28 66 69 6c 65 2d 70 61 74 68 20 64 69 72 2d 66 6e 20 66 69 6c 65 6e ary-file.(file-path.dir-fn.filen
2eee0 61 6d 65 2d 66 6e 29 0a 20 20 22 41 70 70 6c 79 20 44 49 52 2d 46 4e 20 61 6e 64 20 46 49 4c 45 ame-fn)..."Apply.DIR-FN.and.FILE
2ef00 4e 41 4d 45 2d 46 4e 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 6e 61 6d NAME-FN.to.the.directory.and.nam
2ef20 65 20 6f 66 20 46 49 4c 45 2d 50 41 54 48 2e 0a 0a 4d 6f 72 65 20 73 70 65 63 69 66 69 63 61 6c e.of.FILE-PATH...More.specifical
2ef40 6c 79 2c 20 72 65 74 75 72 6e 20 44 49 52 2d 46 4e 20 61 70 70 6c 69 65 64 20 74 6f 20 74 68 65 ly,.return.DIR-FN.applied.to.the
2ef60 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 46 49 4c 45 2d 50 41 54 48 0a 63 6f 6e 63 61 74 65 6e .directory.of.FILE-PATH.concaten
2ef80 61 74 65 64 20 77 69 74 68 20 46 49 4c 45 4e 41 4d 45 2d 46 4e 20 61 70 70 6c 69 65 64 20 74 6f ated.with.FILENAME-FN.applied.to
2efa0 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 20 6f 66 20 46 49 4c 45 2d 50 41 54 48 2e 0a 0a 49 66 .the.file.name.of.FILE-PATH...If
2efc0 20 65 69 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 6e 69 6c 2c 20 72 65 .either.function.returns.nil,.re
2efe0 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 6e 61 6d 65 20 28 66 69 turn.nil."...(let.((filename.(fi
2f000 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 2d 70 61 74 68 29 29 le-name-nondirectory.file-path))
2f020 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 ).....(when-let*.((complementary
2f040 2d 66 69 6c 65 6e 61 6d 65 20 28 66 75 6e 63 61 6c 6c 20 66 69 6c 65 6e 61 6d 65 2d 66 6e 20 66 -filename.(funcall.filename-fn.f
2f060 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 20 28 66 ilename))................(dir.(f
2f080 75 6e 63 61 6c 6c 20 64 69 72 2d 66 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f uncall.dir-fn.(file-name-directo
2f0a0 72 79 20 66 69 6c 65 2d 70 61 74 68 29 29 29 29 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 ry.file-path))))......(concat.(f
2f0c0 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 29 20 63 6f 6d 70 6c ile-name-as-directory.dir).compl
2f0e0 65 6d 65 6e 74 61 72 79 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 ementary-filename))))..(defun.pr
2f100 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 66 69 6c 65 2d 66 72 6f 6d 2d 73 72 63 2d 64 69 72 ojectile--impl-file-from-src-dir
2f120 2d 73 74 72 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 47 65 74 20 74 68 65 20 72 65 6c 61 -str.(file-name)..."Get.the.rela
2f140 74 69 76 65 20 70 61 74 68 20 6f 66 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 tive.path.of.the.implementation.
2f160 66 69 6c 65 20 46 49 4c 45 2d 4e 41 4d 45 2e 0a 52 65 74 75 72 6e 20 61 20 70 61 74 68 20 72 65 file.FILE-NAME..Return.a.path.re
2f180 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 6f 72 20 74 lative.to.the.project.root.for.t
2f1a0 68 65 20 69 6d 70 6c 20 66 69 6c 65 20 6f 66 20 46 49 4c 45 2d 4e 41 4d 45 0a 75 73 69 6e 67 20 he.impl.file.of.FILE-NAME.using.
2f1c0 74 68 65 20 73 72 63 2d 64 69 72 20 61 6e 64 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 65 72 74 the.src-dir.and.test-dir.propert
2f1e0 69 65 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 ies.of.the.current.project.type.
2f200 77 68 69 63 68 0a 73 68 6f 75 6c 64 20 62 65 20 73 74 72 69 6e 67 73 2c 20 6e 69 6c 20 72 65 74 which.should.be.strings,.nil.ret
2f220 75 72 6e 65 64 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 74 68 65 20 63 61 73 65 2e 22 0a urned.if.this.is.not.the.case.".
2f240 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c ..(when-let*.((complementary-fil
2f260 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c e.(projectile--complementary-fil
2f280 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
2f2a0 20 20 20 20 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....file-name...................
2f2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 ................#'projectile--te
2f2e0 73 74 2d 74 6f 2d 69 6d 70 6c 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st-to-impl-dir..................
2f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 .................#'projectile--i
2f320 6d 70 6c 2d 6e 61 6d 65 2d 66 6f 72 2d 74 65 73 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 66 mpl-name-for-test-name))).....(f
2f340 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d ile-relative-name.complementary-
2f360 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 file.(projectile-project-root)))
2f380 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 66 69 6c 65 2d )..(defun.projectile--test-file-
2f3a0 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 73 74 72 20 28 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 from-test-dir-str.(file-name)...
2f3c0 22 47 65 74 20 74 68 65 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 6f 66 20 74 68 65 20 74 65 "Get.the.relative.path.of.the.te
2f3e0 73 74 20 66 69 6c 65 20 46 49 4c 45 2d 4e 41 4d 45 2e 0a 52 65 74 75 72 6e 20 61 20 70 61 74 68 st.file.FILE-NAME..Return.a.path
2f400 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 6f .relative.to.the.project.root.fo
2f420 72 20 74 68 65 20 74 65 73 74 20 66 69 6c 65 20 6f 66 20 46 49 4c 45 2d 4e 41 4d 45 0a 75 73 69 r.the.test.file.of.FILE-NAME.usi
2f440 6e 67 20 74 68 65 20 73 72 63 2d 64 69 72 20 61 6e 64 20 74 65 73 74 2d 64 69 72 20 70 72 6f 70 ng.the.src-dir.and.test-dir.prop
2f460 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 79 erties.of.the.current.project.ty
2f480 70 65 20 77 68 69 63 68 0a 73 68 6f 75 6c 64 20 62 65 20 73 74 72 69 6e 67 73 2c 20 6e 69 6c 20 pe.which.should.be.strings,.nil.
2f4a0 72 65 74 75 72 6e 65 64 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 74 68 65 20 63 61 73 65 returned.if.this.is.not.the.case
2f4c0 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d ."...(when-let*.((complementary-
2f4e0 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d file.(projectile--complementary-
2f500 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 file............................
2f520 20 20 20 20 20 20 20 20 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........file-name...............
2f540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c .....................#'projectil
2f560 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 e--impl-to-test-dir.............
2f580 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 70 72 6f 6a 65 63 74 .......................#'project
2f5a0 69 6c 65 2d 2d 74 65 73 74 2d 6e 61 6d 65 2d 66 6f 72 2d 69 6d 70 6c 2d 6e 61 6d 65 29 29 29 0a ile--test-name-for-impl-name))).
2f5c0 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 63 6f 6d 70 6c 65 6d 65 ....(file-relative-name.compleme
2f5e0 6e 74 61 72 79 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 ntary-file.(projectile-project-r
2f600 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c oot))))..(defun.projectile--impl
2f620 2d 66 69 6c 65 2d 66 72 6f 6d 2d 73 72 63 2d 64 69 72 2d 66 6e 20 28 74 65 73 74 2d 66 69 6c 65 -file-from-src-dir-fn.(test-file
2f640 29 0a 20 20 22 47 65 74 20 74 68 65 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 74 6f 20 74 68 )..."Get.the.relative.path.to.th
2f660 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 e.implementation.file.correspond
2f680 69 6e 67 20 74 6f 20 54 45 53 54 2d 46 49 4c 45 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 69 6d 70 ing.to.TEST-FILE..Return.the.imp
2f6a0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 70 61 74 68 20 66 6f 72 20 74 68 65 20 61 62 lementation.file.path.for.the.ab
2f6c0 73 6f 6c 75 74 65 20 70 61 74 68 20 54 45 53 54 2d 46 49 4c 45 0a 72 65 6c 61 74 69 76 65 20 74 solute.path.TEST-FILE.relative.t
2f6e0 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 74 68 65 20 63 61 73 65 20 74 o.the.project.root.in.the.case.t
2f700 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 2d 64 69 he.current.project.type's.src-di
2f720 72 0a 68 61 73 20 62 65 65 6e 20 73 65 74 20 74 6f 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 r.has.been.set.to.a.custom.funct
2f740 69 6f 6e 2c 20 72 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 74 ion,.return.nil.if.this.is.not.t
2f760 68 65 20 63 61 73 65 20 6f 72 0a 74 68 65 20 70 61 74 68 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 he.case.or.the.path.points.to.a.
2f780 66 69 6c 65 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 0a 20 20 28 77 68 file.that.does.not.exist."...(wh
2f7a0 65 6e 2d 6c 65 74 2a 20 28 28 73 72 63 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 72 en-let*.((src-dir.(projectile-sr
2f7c0 63 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d c-directory.(projectile-project-
2f7e0 74 79 70 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 72 type)))).....(when.(functionp.sr
2f800 63 2d 64 69 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6d 70 6c 2d 66 69 6c 65 20 28 70 c-dir).......(let.((impl-file.(p
2f820 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c 65 0a 20 20 rojectile--complementary-file...
2f840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 2d 66 69 6c 65 0a ......................test-file.
2f860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 64 69 72 0a ........................src-dir.
2f880 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 70 72 6f 6a 65 63 ........................#'projec
2f8a0 74 69 6c 65 2d 2d 69 6d 70 6c 2d 6e 61 6d 65 2d 66 6f 72 2d 74 65 73 74 2d 6e 61 6d 65 29 29 29 tile--impl-name-for-test-name)))
2f8c0 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 69 6d .........(when.(file-exists-p.im
2f8e0 70 6c 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 pl-file)...........(file-relativ
2f900 65 2d 6e 61 6d 65 20 69 6d 70 6c 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f e-name.impl-file.(projectile-pro
2f920 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 ject-root)))))))..(defun.project
2f940 69 6c 65 2d 2d 74 65 73 74 2d 66 69 6c 65 2d 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 66 6e 20 ile--test-file-from-test-dir-fn.
2f960 28 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 22 47 65 74 20 74 68 65 20 72 65 6c 61 74 69 76 65 20 (impl-file)..."Get.the.relative.
2f980 70 61 74 68 20 74 6f 20 74 68 65 20 74 65 73 74 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 path.to.the.test.file.correspond
2f9a0 69 6e 67 20 74 6f 20 49 4d 50 4c 2d 46 49 4c 45 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 73 ing.to.IMPL-FILE..Return.the.tes
2f9c0 74 20 66 69 6c 65 20 70 61 74 68 20 66 6f 72 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 t.file.path.for.the.absolute.pat
2f9e0 68 20 49 4d 50 4c 2d 46 49 4c 45 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 0a 70 72 6f 6a h.IMPL-FILE.relative.to.the.proj
2fa00 65 63 74 20 72 6f 6f 74 2c 20 69 6e 20 74 68 65 20 63 61 73 65 20 74 68 65 20 63 75 72 72 65 6e ect.root,.in.the.case.the.curren
2fa20 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 72 20 68 61 73 20 62 65 t.project.type's.test-dir.has.be
2fa40 65 6e 20 73 65 74 0a 74 6f 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 2c 20 65 6c 73 en.set.to.a.custom.function,.els
2fa60 65 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 65 e.return.nil."...(when-let*.((te
2fa80 73 74 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 64 69 72 65 63 74 6f 72 st-dir.(projectile-test-director
2faa0 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 y.(projectile-project-type))))..
2fac0 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 74 65 73 74 2d 64 69 72 29 0a 20 20 ...(when.(functionp.test-dir)...
2fae0 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 28 ....(file-relative-name........(
2fb00 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c 65 0a 20 projectile--complementary-file..
2fb20 20 20 20 20 20 20 20 69 6d 70 6c 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 74 65 73 74 2d 64 69 .......impl-file.........test-di
2fb40 72 0a 20 20 20 20 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 6e 61 6d r.........#'projectile--test-nam
2fb60 65 2d 66 6f 72 2d 69 6d 70 6c 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 e-for-impl-name)........(project
2fb80 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f ile-project-root)))))..(defmacro
2fba0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 61 63 6f 6e 64 20 28 26 72 65 73 74 20 63 6c 61 75 73 65 .projectile--acond.(&rest.clause
2fbc0 73 29 0a 20 20 22 4c 69 6b 65 20 60 63 6f 6e 64 27 2c 20 62 75 74 20 74 68 65 20 72 65 73 75 6c s)..."Like.`cond',.but.the.resul
2fbe0 74 20 6f 66 20 65 61 63 68 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 t.of.each.condition.is.bound.to.
2fc00 60 69 74 27 2e 0a 0a 54 68 65 20 76 61 72 69 61 62 6c 65 20 60 69 74 27 20 69 73 20 61 76 61 69 `it'...The.variable.`it'.is.avai
2fc20 6c 61 62 6c 65 20 77 69 74 68 69 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 65 61 lable.within.the.remainder.of.ea
2fc40 63 68 20 6f 66 20 43 4c 41 55 53 45 53 2e 0a 0a 43 4c 41 55 53 45 53 20 61 72 65 20 6f 74 68 65 ch.of.CLAUSES...CLAUSES.are.othe
2fc60 72 77 69 73 65 20 61 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 66 6f 72 20 60 63 6f 6e 64 27 2e 20 rwise.as.documented.for.`cond'..
2fc80 20 54 68 69 73 20 69 73 20 63 6f 70 69 65 64 20 66 72 6f 6d 0a 61 6e 61 70 68 6f 72 61 2e 65 6c .This.is.copied.from.anaphora.el
2fca0 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 63 6f 6e 64 29 29 0a 20 20 28 69 ."...(declare.(debug.cond))...(i
2fcc0 66 20 28 6e 75 6c 6c 20 63 6c 61 75 73 65 73 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 f.(null.clauses).......nil.....(
2fce0 6c 65 74 20 28 28 63 6c 31 20 28 63 61 72 20 63 6c 61 75 73 65 73 29 29 0a 20 20 20 20 20 20 20 let.((cl1.(car.clauses))........
2fd00 20 20 20 28 73 79 6d 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 60 28 6c 65 ...(sym.(cl-gensym))).......`(le
2fd20 74 20 28 28 2c 73 79 6d 20 2c 28 63 61 72 20 63 6c 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 t.((,sym.,(car.cl1)))..........(
2fd40 69 66 20 2c 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 27 if.,sym..............(if.(null.'
2fd60 2c 28 63 64 72 20 63 6c 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 73 79 ,(cdr.cl1))..................,sy
2fd80 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 2c 73 79 6d 29 m................(let.((it.,sym)
2fda0 29 20 2c 40 28 63 64 72 20 63 6c 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a ).,@(cdr.cl1)))............(proj
2fdc0 65 63 74 69 6c 65 2d 2d 61 63 6f 6e 64 20 2c 40 28 63 64 72 20 63 6c 61 75 73 65 73 29 29 29 29 ectile--acond.,@(cdr.clauses))))
2fde0 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 )))..(defun.projectile--find-mat
2fe00 63 68 69 6e 67 2d 74 65 73 74 20 28 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e ching-test.(impl-file)..."Return
2fe20 20 61 20 6c 69 73 74 20 6f 66 20 74 65 73 74 20 66 69 6c 65 73 20 66 6f 72 20 49 4d 50 4c 2d 46 .a.list.of.test.files.for.IMPL-F
2fe40 49 4c 45 2e 0a 0a 54 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 66 6f 72 20 64 65 74 65 72 6d 69 ILE...The.precedence.for.determi
2fe60 6e 69 6e 67 20 74 65 73 74 20 66 69 6c 65 73 20 74 6f 20 72 65 74 75 72 6e 20 69 73 3a 0a 0a 31 ning.test.files.to.return.is:..1
2fe80 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 ..Use.the.project.type's.test-di
2fea0 72 20 70 72 6f 70 65 72 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 66 75 6e 63 r.property.if.it's.set.to.a.func
2fec0 74 69 6f 6e 0a 32 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 72 tion.2..Use.the.project.type's.r
2fee0 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 70 72 6f 70 65 72 74 79 20 69 66 20 73 65 74 0a elated-files-fn.property.if.set.
2ff00 33 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 74 65 73 74 2d 64 3..Use.the.project.type's.test-d
2ff20 69 72 20 70 72 6f 70 65 72 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 73 74 72 ir.property.if.it's.set.to.a.str
2ff40 69 6e 67 0a 34 2e 20 41 74 74 65 6d 70 74 20 74 6f 20 66 69 6e 64 20 61 20 66 69 6c 65 20 62 79 ing.4..Attempt.to.find.a.file.by
2ff60 20 6d 61 74 63 68 69 6e 67 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 61 67 61 69 .matching.all.project.files.agai
2ff80 6e 73 74 0a 20 20 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 nst....`projectile--impl-to-test
2ffa0 2d 70 72 65 64 69 63 61 74 65 27 0a 35 2e 20 46 61 6c 6c 62 61 63 6b 20 74 6f 20 73 77 61 70 70 -predicate'.5..Fallback.to.swapp
2ffc0 69 6e 67 20 5c 22 73 72 63 5c 22 20 66 6f 72 20 5c 22 74 65 73 74 5c 22 20 69 6e 20 49 4d 50 4c ing.\"src\".for.\"test\".in.IMPL
2ffe0 2d 46 49 4c 45 20 69 66 20 5c 22 73 72 63 5c 22 0a 20 20 20 69 73 20 61 20 73 75 62 73 74 72 69 -FILE.if.\"src\"....is.a.substri
30000 6e 67 20 6f 66 20 49 4d 50 4c 2d 46 49 4c 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ng.of.IMPL-FILE."...(projectile-
30020 2d 61 63 6f 6e 64 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 66 69 6c -acond....((projectile--test-fil
30040 65 2d 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 66 6e 20 69 6d 70 6c 2d 66 69 6c 65 29 20 28 6c e-from-test-dir-fn.impl-file).(l
30060 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 ist.it))....((projectile--relate
30080 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 69 6d 70 6c 2d 66 69 6c 65 20 d-files-plist-by-kind.impl-file.
300a0 3a 74 65 73 74 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 65 64 2d :test).....(projectile--related-
300c0 66 69 6c 65 73 2d 66 72 6f 6d 2d 70 6c 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 70 72 6f 6a 65 files-from-plist.it))....((proje
300e0 63 74 69 6c 65 2d 2d 74 65 73 74 2d 66 69 6c 65 2d 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 73 ctile--test-file-from-test-dir-s
30100 74 72 20 69 6d 70 6c 2d 66 69 6c 65 29 20 28 6c 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 70 72 tr.impl-file).(list.it))....((pr
30120 6f 6a 65 63 74 69 6c 65 2d 2d 62 65 73 74 2d 6f 72 2d 61 6c 6c 2d 63 61 6e 64 69 64 61 74 65 73 ojectile--best-or-all-candidates
30140 2d 62 61 73 65 64 2d 6f 6e 2d 70 61 72 65 6e 74 73 2d 64 69 72 73 0a 20 20 20 20 20 69 6d 70 6c -based-on-parents-dirs......impl
30160 2d 66 69 6c 65 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 20 20 -file.(cl-remove-if-not.........
30180 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 ........(projectile--impl-to-tes
301a0 74 2d 70 72 65 64 69 63 61 74 65 20 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 t-predicate.impl-file)..........
301c0 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 .......(projectile-current-proje
301e0 63 74 2d 66 69 6c 65 73 29 29 29 20 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d ct-files))).it)....((projectile-
30200 2d 69 6d 70 6c 2d 74 6f 2d 74 65 73 74 2d 64 69 72 2d 66 61 6c 6c 62 61 63 6b 20 69 6d 70 6c 2d -impl-to-test-dir-fallback.impl-
30220 66 69 6c 65 29 0a 20 20 20 20 28 6c 69 73 74 20 69 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 file).....(list.it))))..(defun.p
30240 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d 69 6d 70 6c 2d 70 72 65 64 69 63 61 74 rojectile--test-to-impl-predicat
30260 65 20 28 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 65 64 69 63 e.(test-file)..."Return.a.predic
30280 61 74 65 2c 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 74 20 66 6f 72 20 61 6e 79 20 69 6d 70 ate,.which.returns.t.for.any.imp
302a0 6c 20 66 69 6c 65 73 20 66 6f 72 20 54 45 53 54 2d 46 49 4c 45 2e 22 0a 20 20 28 6c 65 74 2a 20 l.files.for.TEST-FILE."...(let*.
302c0 28 28 62 61 73 65 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e ((basename.(file-name-sans-exten
302e0 73 69 6f 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 74 65 73 sion.(file-name-nondirectory.tes
30300 74 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 70 72 65 66 69 78 20 t-file)))..........(test-prefix.
30320 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 69 78 2d (funcall.projectile-test-prefix-
30340 66 75 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 function.(projectile-project-typ
30360 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 73 75 66 66 69 78 20 28 66 75 6e 63 e)))..........(test-suffix.(func
30380 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 75 6e 63 74 all.projectile-test-suffix-funct
303a0 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 ion.(projectile-project-type))))
303c0 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 .....(lambda.(current-file).....
303e0 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 ..(let.((name.(file-name-nondire
30400 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 ctory.(file-name-sans-extension.
30420 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 77 68 current-file)))).........(or.(wh
30440 65 6e 20 74 65 73 74 2d 70 72 65 66 69 78 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 63 6f en.test-prefix.(string-equal.(co
30460 6e 63 61 74 20 74 65 73 74 2d 70 72 65 66 69 78 20 6e 61 6d 65 29 20 62 61 73 65 6e 61 6d 65 29 ncat.test-prefix.name).basename)
30480 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 73 75 66 66 69 78 20 ).............(when.test-suffix.
304a0 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 20 74 65 73 74 2d (string-equal.(concat.name.test-
304c0 73 75 66 66 69 78 29 20 62 61 73 65 6e 61 6d 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 suffix).basename)))))))..(defun.
304e0 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 66 69 6c 65 20 28 projectile--find-matching-file.(
30500 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 69 test-file)..."Return.a.list.of.i
30520 6d 70 6c 20 66 69 6c 65 73 20 74 65 73 74 65 64 20 62 79 20 54 45 53 54 2d 46 49 4c 45 2e 0a 0a mpl.files.tested.by.TEST-FILE...
30540 54 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 69 The.precedence.for.determining.i
30560 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 74 6f 20 72 65 74 75 72 6e 20 69 73 mplementation.files.to.return.is
30580 3a 0a 0a 31 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 :..1..Use.the.project.type's.src
305a0 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 66 -dir.property.if.it's.set.to.a.f
305c0 75 6e 63 74 69 6f 6e 0a 32 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 unction.2..Use.the.project.type'
305e0 73 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 70 72 6f 70 65 72 74 79 20 69 66 20 73 s.related-files-fn.property.if.s
30600 65 74 0a 33 2e 20 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 et.3..Use.the.project.type's.src
30620 2d 64 69 72 20 70 72 6f 70 65 72 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 73 -dir.property.if.it's.set.to.a.s
30640 74 72 69 6e 67 0a 34 2e 20 44 65 66 61 75 6c 74 20 74 6f 20 61 20 66 61 6c 6c 62 61 63 6b 20 77 tring.4..Default.to.a.fallback.w
30660 68 69 63 68 20 6d 61 74 63 68 65 73 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 61 hich.matches.all.project.files.a
30680 67 61 69 6e 73 74 0a 20 20 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d 69 gainst....`projectile--test-to-i
306a0 6d 70 6c 2d 70 72 65 64 69 63 61 74 65 27 0a 35 2e 20 46 61 6c 6c 62 61 63 6b 20 74 6f 20 73 77 mpl-predicate'.5..Fallback.to.sw
306c0 61 70 70 69 6e 67 20 5c 22 74 65 73 74 5c 22 20 66 6f 72 20 5c 22 73 72 63 5c 22 20 69 6e 20 54 apping.\"test\".for.\"src\".in.T
306e0 45 53 54 2d 46 49 4c 45 20 69 66 20 5c 22 74 65 73 74 5c 22 0a 20 20 20 69 73 20 61 20 73 75 62 EST-FILE.if.\"test\"....is.a.sub
30700 73 74 72 69 6e 67 20 6f 66 20 54 45 53 54 2d 46 49 4c 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 string.of.TEST-FILE."...(project
30720 69 6c 65 2d 2d 61 63 6f 6e 64 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c ile--acond....((projectile--impl
30740 2d 66 69 6c 65 2d 66 72 6f 6d 2d 73 72 63 2d 64 69 72 2d 66 6e 20 74 65 73 74 2d 66 69 6c 65 29 -file-from-src-dir-fn.test-file)
30760 20 28 6c 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c .(list.it))....((projectile--rel
30780 61 74 65 64 2d 66 69 6c 65 73 2d 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 74 65 73 74 2d 66 69 ated-files-plist-by-kind.test-fi
307a0 6c 65 20 3a 69 6d 70 6c 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6c 61 74 le.:impl).....(projectile--relat
307c0 65 64 2d 66 69 6c 65 73 2d 66 72 6f 6d 2d 70 6c 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 70 72 ed-files-from-plist.it))....((pr
307e0 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 66 69 6c 65 2d 66 72 6f 6d 2d 73 72 63 2d 64 69 72 ojectile--impl-file-from-src-dir
30800 2d 73 74 72 20 74 65 73 74 2d 66 69 6c 65 29 20 28 6c 69 73 74 20 69 74 29 29 0a 20 20 20 28 28 -str.test-file).(list.it))....((
30820 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 62 65 73 74 2d 6f 72 2d 61 6c 6c 2d 63 61 6e 64 69 64 61 74 projectile--best-or-all-candidat
30840 65 73 2d 62 61 73 65 64 2d 6f 6e 2d 70 61 72 65 6e 74 73 2d 64 69 72 73 0a 20 20 20 20 20 74 65 es-based-on-parents-dirs......te
30860 73 74 2d 66 69 6c 65 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 st-file.(cl-remove-if-not.......
30880 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d 69 ..........(projectile--test-to-i
308a0 6d 70 6c 2d 70 72 65 64 69 63 61 74 65 20 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 mpl-predicate.test-file)........
308c0 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f .........(projectile-current-pro
308e0 6a 65 63 74 2d 66 69 6c 65 73 29 29 29 20 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c ject-files))).it)....((projectil
30900 65 2d 2d 74 65 73 74 2d 74 6f 2d 69 6d 70 6c 2d 64 69 72 2d 66 61 6c 6c 62 61 63 6b 20 74 65 73 e--test-to-impl-dir-fallback.tes
30920 74 2d 66 69 6c 65 29 20 28 6c 69 73 74 20 69 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f t-file).(list.it))))..(defun.pro
30940 6a 65 63 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 20 jectile--choose-from-candidates.
30960 28 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 22 43 68 6f 6f 73 65 20 6f 6e 65 20 69 74 65 6d 20 (candidates)..."Choose.one.item.
30980 66 72 6f 6d 20 43 41 4e 44 49 44 41 54 45 53 2e 22 0a 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 from.CANDIDATES."...(if.(=.(leng
309a0 74 68 20 63 61 6e 64 69 64 61 74 65 73 29 20 31 29 0a 20 20 20 20 20 20 28 63 61 72 20 63 61 6e th.candidates).1).......(car.can
309c0 64 69 64 61 74 65 73 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 didates).....(projectile-complet
309e0 69 6e 67 2d 72 65 61 64 20 22 53 77 69 74 63 68 20 74 6f 3a 20 22 20 63 61 6e 64 69 64 61 74 65 ing-read."Switch.to:.".candidate
30a00 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6d 61 74 s)))..(defun.projectile-find-mat
30a20 63 68 69 6e 67 2d 74 65 73 74 20 28 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 22 43 6f 6d 70 75 74 ching-test.(impl-file)..."Comput
30a40 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 65 73 74 20 6d 61 74 63 68 69 6e 67 20 e.the.name.of.the.test.matching.
30a60 49 4d 50 4c 2d 46 49 4c 45 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 61 6e 64 69 IMPL-FILE."...(when-let*.((candi
30a80 64 61 74 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 dates.(projectile--find-matching
30aa0 2d 74 65 73 74 20 69 6d 70 6c 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 -test.impl-file))).....(projecti
30ac0 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 20 63 61 6e 64 69 le--choose-from-candidates.candi
30ae0 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 dates)))..(defun.projectile-find
30b00 2d 6d 61 74 63 68 69 6e 67 2d 66 69 6c 65 20 28 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 22 43 6f -matching-file.(test-file)..."Co
30b20 6d 70 75 74 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 6c 65 20 6d 61 74 63 68 69 6e mpute.the.name.of.a.file.matchin
30b40 67 20 54 45 53 54 2d 46 49 4c 45 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 61 6e g.TEST-FILE."...(when-let*.((can
30b60 64 69 64 61 74 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 66 69 6e 64 2d 6d 61 74 63 68 69 didates.(projectile--find-matchi
30b80 6e 67 2d 66 69 6c 65 20 74 65 73 74 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 ng-file.test-file))).....(projec
30ba0 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 20 63 61 6e tile--choose-from-candidates.can
30bc0 64 69 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 didates)))..(defun.projectile-gr
30be0 65 70 2d 64 65 66 61 75 6c 74 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 54 72 79 20 74 6f 20 66 69 ep-default-files.()..."Try.to.fi
30c00 6e 64 20 61 20 64 65 66 61 75 6c 74 20 70 61 74 74 65 72 6e 20 66 6f 72 20 60 70 72 6f 6a 65 63 nd.a.default.pattern.for.`projec
30c20 74 69 6c 65 2d 67 72 65 70 27 2e 0a 54 68 69 73 20 69 73 20 61 20 73 75 62 73 65 74 20 6f 66 20 tile-grep'..This.is.a.subset.of.
30c40 60 67 72 65 70 2d 72 65 61 64 2d 66 69 6c 65 73 27 2c 20 77 68 65 72 65 20 65 69 74 68 65 72 20 `grep-read-files',.where.either.
30c60 61 20 6d 61 74 63 68 69 6e 67 20 65 6e 74 72 79 20 66 72 6f 6d 0a 60 67 72 65 70 2d 66 69 6c 65 a.matching.entry.from.`grep-file
30c80 73 2d 61 6c 69 61 73 65 73 27 20 6f 72 20 66 69 6c 65 20 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f s-aliases'.or.file.name.extensio
30ca0 6e 20 70 61 74 74 65 72 6e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 n.pattern.is.returned."...(when.
30cc0 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 66 6e 20 buffer-file-name.....(let*.((fn.
30ce0 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 62 75 66 66 65 72 2d 66 (file-name-nondirectory.buffer-f
30d00 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 61 ile-name))............(default-a
30d20 6c 69 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 6c 69 61 73 65 73 lias..............(let.((aliases
30d40 20 28 72 65 6d 6f 76 65 20 28 61 73 73 6f 63 20 22 61 6c 6c 22 20 67 72 65 70 2d 66 69 6c 65 73 .(remove.(assoc."all".grep-files
30d60 2d 61 6c 69 61 73 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -aliases).......................
30d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 ..............grep-files-aliases
30da0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 29 0a 20 20 20 ))....................alias)....
30dc0 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 61 6c 69 61 73 65 73 0a 20 20 20 20 20 ............(while.aliases......
30de0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 69 61 73 20 28 63 61 72 20 61 6c 69 ............(setq.alias.(car.ali
30e00 61 73 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 ases)........................ali
30e20 61 73 65 73 20 28 63 64 72 20 61 6c 69 61 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ases.(cdr.aliases)).............
30e40 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 6d 61 70 63 6f 6e 63 61 .....(if.(string-match.(mapconca
30e60 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
30e80 20 20 20 20 20 20 23 27 77 69 6c 64 63 61 72 64 2d 74 6f 2d 72 65 67 65 78 70 0a 20 20 20 20 20 ......#'wildcard-to-regexp......
30ea0 20 20 20 20 20 20 20 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 ...............................(
30ec0 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 63 64 72 20 61 6c 69 61 73 29 20 6e 69 6c 20 74 29 0a split-string.(cdr.alias).nil.t).
30ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30f00 20 20 20 20 22 5c 5c 7c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."\\|")......................
30f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............fn)...............
30f40 20 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 69 61 73 65 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 .......(setq.aliases.nil).......
30f60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 6c 69 61 73 20 6e 69 6c 29 29 29 0a .............(setq.alias.nil))).
30f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 61 6c 69 61 73 29 29 29 0a 20 20 20 ...............(cdr.alias)))....
30fa0 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 ........(default-extension......
30fc0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 ........(let.((ext.(file-name-ex
30fe0 74 65 6e 73 69 6f 6e 20 66 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e tension.fn)))................(an
31000 64 20 65 78 74 20 28 63 6f 6e 63 61 74 20 22 2a 2e 22 20 65 78 74 29 29 29 29 29 0a 20 20 20 20 d.ext.(concat."*.".ext))))).....
31020 20 20 28 6f 72 20 64 65 66 61 75 6c 74 2d 61 6c 69 61 73 20 64 65 66 61 75 6c 74 2d 65 78 74 65 ..(or.default-alias.default-exte
31040 6e 73 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 6c nsion))))..(defun.projectile--gl
31060 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 2d 67 6c 6f obally-ignored-file-suffixes-glo
31080 62 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 20 73 75 66 66 b.()..."Return.ignored.file.suff
310a0 69 78 65 73 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 73 2e ixes.as.a.list.of.glob.patterns.
310c0 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 63 6f 6e 63 61 "...(mapcar.(lambda.(pat).(conca
310e0 74 20 22 2a 22 20 70 61 74 29 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d t."*".pat)).projectile-globally-
31100 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 ignored-file-suffixes))..(defun.
31120 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 61 64 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 2d 77 projectile--read-search-string-w
31140 69 74 68 2d 64 65 66 61 75 6c 74 20 28 70 72 65 66 69 78 2d 6c 61 62 65 6c 29 0a 20 20 28 6c 65 ith-default.(prefix-label)...(le
31160 74 2a 20 28 28 70 72 65 66 69 78 2d 6c 61 62 65 6c 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 t*.((prefix-label.(projectile-pr
31180 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 70 72 65 66 69 78 2d 6c 61 62 65 6c 29 epend-project-name.prefix-label)
311a0 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 28 70 72 6f 6a 65 )..........(default-value.(proje
311c0 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 6f 72 2d 73 65 6c 65 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 ctile-symbol-or-selection-at-poi
311e0 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 6c 61 62 65 6c 20 28 69 66 nt))..........(default-label.(if
31200 20 28 6f 72 20 28 6e 6f 74 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 .(or.(not.default-value)........
31220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 .........................(string
31240 3d 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 =.default-value.""))............
31260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................."".............
31280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 64 65 66 61 75 6c 74 ..............(format.".(default
312a0 20 25 73 29 22 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 28 72 65 61 .%s)".default-value)))).....(rea
312c0 64 2d 73 74 72 69 6e 67 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 3a 20 22 20 70 72 65 66 69 78 d-string.(format."%s%s:.".prefix
312e0 2d 6c 61 62 65 6c 20 64 65 66 61 75 6c 74 2d 6c 61 62 65 6c 29 20 6e 69 6c 20 6e 69 6c 20 64 65 -label.default-label).nil.nil.de
31300 66 61 75 6c 74 2d 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 fault-value)))..(defvar.projecti
31320 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 29 0a 28 64 65 66 le-grep-find-ignored-paths).(def
31340 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 var.projectile-grep-find-unignor
31360 65 64 2d 70 61 74 68 73 29 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 ed-paths).(defvar.projectile-gre
31380 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 29 0a 28 64 65 66 76 61 72 p-find-ignored-patterns).(defvar
313a0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d .projectile-grep-find-unignored-
313c0 70 61 74 74 65 72 6e 73 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 67 72 patterns)..(defun.projectile-rgr
313e0 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 61 6e 64 20 28 72 65 67 65 78 70 20 66 69 6c 65 73 ep-default-command.(regexp.files
31400 20 64 69 72 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 .dir)..."Compute.the.command.for
31420 20 5c 5c 5b 72 67 72 65 70 5d 20 74 6f 20 75 73 65 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 .\\[rgrep].to.use.by.default...E
31440 78 74 65 6e 73 69 6f 6e 20 6f 66 20 74 68 65 20 45 6d 61 63 73 20 32 35 2e 31 20 69 6d 70 6c 65 xtension.of.the.Emacs.25.1.imple
31460 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d mentation.of.`rgrep-default-comm
31480 61 6e 64 27 2c 20 77 69 74 68 0a 77 68 69 63 68 20 69 74 20 73 68 61 72 65 73 20 69 74 73 20 61 and',.with.which.it.shares.its.a
314a0 72 67 6c 69 73 74 2e 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 66 69 6e 64 2d 64 69 72 65 64 29 rglist."...(require.'find-dired)
314c0 20 20 20 20 20 20 3b 20 66 6f 72 20 60 66 69 6e 64 2d 6e 61 6d 65 2d 61 72 67 27 0a 20 20 28 67 ......;.for.`find-name-arg'...(g
314e0 72 65 70 2d 65 78 70 61 6e 64 2d 74 65 6d 70 6c 61 74 65 0a 20 20 20 67 72 65 70 2d 66 69 6e 64 rep-expand-template....grep-find
31500 2d 74 65 6d 70 6c 61 74 65 0a 20 20 20 72 65 67 65 78 70 0a 20 20 20 28 63 6f 6e 63 61 74 20 28 -template....regexp....(concat.(
31520 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 shell-quote-argument."(").......
31540 20 20 20 20 20 22 20 22 20 66 69 6e 64 2d 6e 61 6d 65 2d 61 72 67 20 22 20 22 0a 20 20 20 20 20 .....".".find-name-arg."."......
31560 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 27 73 ......(mapconcat.............#'s
31580 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 hell-quote-argument.............
315a0 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 (split-string.files)............
315c0 20 28 63 6f 6e 63 61 74 20 22 20 2d 6f 20 22 20 66 69 6e 64 2d 6e 61 6d 65 2d 61 72 67 20 22 20 .(concat.".-o.".find-name-arg.".
315e0 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 "))............"."............(s
31600 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 29 0a 20 20 20 64 69 72 hell-quote-argument.")"))....dir
31620 0a 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 28 61 6e 64 20 67 72 65 70 2d 66 69 6e 64 2d 69 ....(concat.....(and.grep-find-i
31640 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e gnored-directories..........(con
31660 63 61 74 20 22 2d 74 79 70 65 20 64 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cat."-type.d."..................
31680 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 (shell-quote-argument."(")......
316a0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 73 68 6f 75 6c 64 20 75 73 65 20 73 68 65 ............;;.we.should.use.she
316c0 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 ll-quote-argument.here..........
316e0 20 20 20 20 20 20 20 20 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........".-path."...............
31700 20 20 20 28 6d 61 70 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 ...(mapconcat...................
31720 23 27 69 64 65 6e 74 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 #'identity...................(de
31740 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lq.nil.(mapcar..................
31760 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 69 67 6e 6f 72 65 29 0a 20 ............#'(lambda.(ignore)..
31780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
317a0 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 (cond.((stringp.ignore).........
317c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
317e0 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 (shell-quote-argument...........
31800 20 20 20 20 20 20 20 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 ...............................(
31820 63 6f 6e 63 61 74 20 22 2a 2f 22 20 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 concat."*/".ignore)))...........
31840 20 20 20 20 20 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 28 63 .............................((c
31860 6f 6e 73 70 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onsp.ignore)....................
31880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 61 .....................(and.(funca
318a0 6c 6c 20 28 63 61 72 20 69 67 6e 6f 72 65 29 20 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ll.(car.ignore).dir)............
318c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
318e0 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 ..(shell-quote-argument.........
31900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31920 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(concat."*/"..............
31940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31960 20 20 20 20 20 20 20 20 20 28 63 64 72 20 69 67 6e 6f 72 65 29 29 29 29 29 29 29 0a 20 20 20 20 .........(cdr.ignore))))))).....
31980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 65 70 2d 66 69 .........................grep-fi
319a0 6e 64 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 0a 20 20 20 20 20 20 20 nd-ignored-directories))........
319c0 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 0a 20 20 20 20 20 20 20 ...........".-o.-path.")........
319e0 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .........."."..................(
31a00 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 20 20 20 shell-quote-argument.")").......
31a20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 0a 20 20 20 20 28 ...........".-prune.-o.")).....(
31a40 61 6e 64 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 and.grep-find-ignored-files.....
31a60 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 .....(concat.(shell-quote-argume
31a80 6e 74 20 22 21 22 29 20 22 20 2d 74 79 70 65 20 64 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 nt."!").".-type.d.".............
31aa0 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a .....(shell-quote-argument."(").
31ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 73 68 6f 75 6c 64 20 75 73 .................;;.we.should.us
31ae0 65 20 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 68 65 72 65 0a 20 20 20 20 e.shell-quote-argument.here.....
31b00 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6e 61 6d 65 20 22 0a 20 20 20 20 20 20 20 20 20 .............".-name."..........
31b20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(mapconcat..............
31b40 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 .....#'(lambda.(ignore).........
31b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 69 67 ..............(cond.((stringp.ig
31b80 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nore)...........................
31ba0 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 69 67 6e 6f 72 65 29 ...(shell-quote-argument.ignore)
31bc0 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 28 28 ).............................((
31be0 63 6f 6e 73 70 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 consp.ignore)...................
31c00 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 69 67 ...........(and.(funcall.(car.ig
31c20 6e 6f 72 65 29 20 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nore).dir)......................
31c40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 .............(shell-quote-argume
31c60 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt..............................
31c80 20 20 20 20 20 20 28 63 64 72 20 69 67 6e 6f 72 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 ......(cdr.ignore)))))).........
31ca0 20 20 20 20 20 20 20 20 20 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 ..........grep-find-ignored-file
31cc0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 6e 61 6d 65 20 22 s...................".-o.-name."
31ce0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 ).................."."..........
31d00 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 ........(shell-quote-argument.")
31d20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 ")..................".-prune.-o.
31d40 22 29 29 0a 20 20 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e ")).....(and.projectile-grep-fin
31d60 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 d-ignored-paths..........(concat
31d80 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 .(shell-quote-argument."(").....
31da0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 .............".-path."..........
31dc0 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(mapconcat..............
31de0 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 67 6e 6f 72 65 29 20 28 73 68 65 6c 6c 2d 71 75 6f .....(lambda.(ignore).(shell-quo
31e00 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te-argument.....................
31e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2e 2f 22 20 69 67 6e ................(concat."./".ign
31e40 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 ore)))...................project
31e60 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 ile-grep-find-ignored-paths.....
31e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 0a 20 20 20 20 ..............".-o.-path.").....
31ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............."."................
31ec0 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 ..(shell-quote-argument.")")....
31ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 0a 20 20 ..............".-prune.-o."))...
31f00 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f ..(and.projectile-grep-find-igno
31f20 72 65 64 2d 70 61 74 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 red-patterns..........(concat.(s
31f40 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 hell-quote-argument."(")........
31f60 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 ..........(and.(or.projectile-gr
31f80 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 ep-find-unignored-paths.........
31fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 ..................projectile-gre
31fc0 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 29 0a 20 20 20 20 20 p-find-unignored-patterns)......
31fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 .................(concat."."....
32000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c ...........................(shel
32020 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 29 29 0a 20 20 20 20 20 20 20 20 l-quote-argument."("))).........
32040 20 20 20 20 20 20 20 20 20 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........".-path."..............
32060 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(mapconcat..................
32080 20 28 6c 61 6d 62 64 61 20 28 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(lambda.(ignore)...............
320a0 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 ......(shell-quote-argument.....
320c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 .................(if.(string-pre
320e0 66 69 78 2d 70 20 22 2a 22 20 69 67 6e 6f 72 65 29 20 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 20 fix-p."*".ignore).ignore........
32100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 2f 22 20 69 67 6e ................(concat."*/".ign
32120 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 ore))))...................projec
32140 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 0a tile-grep-find-ignored-patterns.
32160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 0a ..................".-o.-path.").
32180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6f 72 20 70 72 6f 6a 65 63 .................(and.(or.projec
321a0 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 tile-grep-find-unignored-paths..
321c0 20 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 6f 6a 65 63 74 .........................project
321e0 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 ile-grep-find-unignored-patterns
32200 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 ).......................(concat.
32220 22 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 20 20 ".".............................
32240 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 ..(shell-quote-argument.")")....
32260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 61 20 ...........................".-a.
32280 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
322a0 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 21 22 29 0a 20 20 20 20 20 (shell-quote-argument."!")......
322c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 ........................."."....
322e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c ...........................(shel
32300 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 l-quote-argument."(")...........
32320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 ....................(and.project
32340 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 ile-grep-find-unignored-paths...
32360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32380 20 28 63 6f 6e 63 61 74 20 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(concat.".-path."..............
323a0 20 20 20 20 20 20 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 6d ..............................(m
323c0 61 70 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 apconcat........................
323e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 67 .....................(lambda.(ig
32400 6e 6f 72 65 29 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 nore).(shell-quote-argument.....
32420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32440 20 20 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 63 6f 6e 63 61 ..........................(conca
32460 74 20 22 2e 2f 22 20 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."./".ignore)))................
32480 20 20 20 20 20 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 6f .............................pro
324a0 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 jectile-grep-find-unignored-path
324c0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
324e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 29 29 0a 20 20 ..............".-o.-path.")))...
32500 20 20 20 20 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 61 6e 64 ............................(and
32520 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d .projectile-grep-find-unignored-
32540 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 paths...........................
32560 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e .........projectile-grep-find-un
32580 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ignored-patterns................
325a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 22 29 0a 20 20 20 20 20 ....................".-o")......
325c0 20 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 61 6e 64 20 70 72 .........................(and.pr
325e0 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 ojectile-grep-find-unignored-pat
32600 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 terns...........................
32620 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 .........(concat.".-path."......
32640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32660 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(mapconcat................
32680 20 20 20 20 20 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 61 .............................(la
326a0 6d 62 64 61 20 28 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbda.(ignore)...................
326c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 ............................(she
326e0 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ll-quote-argument...............
32700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32720 20 28 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2a 22 20 69 67 6e 6f 72 65 .(if.(string-prefix-p."*".ignore
32740 29 20 69 67 6e 6f 72 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 ).ignore........................
32760 20 20 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 63 6f 6e 63 61 ..........................(conca
32780 74 20 22 2a 2f 22 20 69 67 6e 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t."*/".ignore))))...............
327a0 20 20 20 20 20 20 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 ..............................pr
327c0 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 ojectile-grep-find-unignored-pat
327e0 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 terns...........................
32800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 29 ..................".-o.-path."))
32820 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 )...............................
32840 22 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 20 20 ".".............................
32860 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 29 29 0a 20 ..(shell-quote-argument.")")))..
32880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ................".".............
328a0 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a .....(shell-quote-argument.")").
328c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 .................".-prune.-o."))
328e0 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 )))..;;;###autoload.(defun.proje
32900 63 74 69 6c 65 2d 67 72 65 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 67 65 78 70 20 61 72 67 ctile-grep.(&optional.regexp.arg
32920 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 72 67 72 65 70 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 )..."Perform.rgrep.in.the.projec
32940 74 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 20 61 73 6b 73 20 66 6f 72 20 66 t...With.a.prefix.ARG.asks.for.f
32960 69 6c 65 73 20 28 67 6c 6f 62 62 69 6e 67 2d 61 77 61 72 65 29 20 77 68 69 63 68 20 74 6f 20 67 iles.(globbing-aware).which.to.g
32980 72 65 70 20 69 6e 2e 0a 57 69 74 68 20 70 72 65 66 69 78 20 41 52 47 20 6f 66 20 60 2d 27 20 28 rep.in..With.prefix.ARG.of.`-'.(
329a0 73 75 63 68 20 61 73 20 60 4d 2d 2d 27 29 2c 20 64 65 66 61 75 6c 74 20 74 68 65 20 66 69 6c 65 such.as.`M--'),.default.the.file
329c0 73 20 28 77 69 74 68 6f 75 74 20 70 72 6f 6d 70 74 29 2c 0a 74 6f 20 60 70 72 6f 6a 65 63 74 69 s.(without.prompt),.to.`projecti
329e0 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 66 69 6c 65 73 27 2e 0a 0a 57 69 74 68 20 52 45 le-grep-default-files'...With.RE
32a00 47 45 58 50 20 67 69 76 65 6e 2c 20 64 6f 6e 27 74 20 71 75 65 72 79 20 74 68 65 20 75 73 65 72 GEXP.given,.don't.query.the.user
32a20 20 66 6f 72 20 61 20 72 65 67 65 78 70 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 .for.a.regexp."...(interactive."
32a40 69 5c 6e 50 22 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 67 72 65 70 29 20 3b 3b 20 66 6f 72 20 i\nP")...(require.'grep).;;.for.
32a60 60 72 67 72 65 70 27 0a 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 73 20 28 70 72 6f 6a 65 63 74 `rgrep'...(let*.((roots.(project
32a80 69 6c 65 2d 67 65 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 6f ile-get-project-directories.(pro
32aa0 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 jectile-acquire-root))).........
32ac0 20 28 73 65 61 72 63 68 2d 72 65 67 65 78 70 20 28 6f 72 20 72 65 67 65 78 70 0a 20 20 20 20 20 .(search-regexp.(or.regexp......
32ae0 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 6f 6a 65 63 74 69 .......................(projecti
32b00 6c 65 2d 2d 72 65 61 64 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 le--read-search-string-with-defa
32b20 75 6c 74 20 22 47 72 65 70 20 66 6f 72 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 ult."Grep.for")))..........(file
32b40 73 20 28 61 6e 64 20 61 72 67 20 28 6f 72 20 28 61 6e 64 20 28 65 71 75 61 6c 20 63 75 72 72 65 s.(and.arg.(or.(and.(equal.curre
32b60 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 27 2d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt-prefix-arg.'-)...............
32b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ....................(projectile-
32ba0 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 grep-default-files))............
32bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 28 ..................(read-string.(
32be0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 projectile-prepend-project-name.
32c00 22 47 72 65 70 20 69 6e 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "Grep.in:.")....................
32c20 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 6f 6a 65 63 74 69 .......................(projecti
32c40 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 66 69 6c 65 73 29 29 29 29 29 29 0a 20 20 20 20 le-grep-default-files)))))).....
32c60 28 64 6f 6c 69 73 74 20 28 72 6f 6f 74 2d 64 69 72 20 72 6f 6f 74 73 29 0a 20 20 20 20 20 20 28 (dolist.(root-dir.roots).......(
32c80 72 65 71 75 69 72 65 20 27 76 63 2d 67 69 74 29 20 3b 3b 20 66 6f 72 20 60 76 63 2d 67 69 74 2d require.'vc-git).;;.for.`vc-git-
32ca0 67 72 65 70 27 0a 20 20 20 20 20 20 3b 3b 20 69 6e 20 67 69 74 20 70 72 6f 6a 65 63 74 73 20 75 grep'.......;;.in.git.projects.u
32cc0 73 65 72 73 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 74 6f 20 75 73 65 20 60 76 63 2d sers.have.the.option.to.use.`vc-
32ce0 67 69 74 2d 67 72 65 70 27 20 69 6e 73 74 65 61 64 20 6f 66 20 60 72 67 72 65 70 27 0a 20 20 20 git-grep'.instead.of.`rgrep'....
32d00 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 71 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ...(if.(and.(eq.(projectile-proj
32d20 65 63 74 2d 76 63 73 29 20 27 67 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 ect-vcs).'git)................pr
32d40 6f 6a 65 63 74 69 6c 65 2d 75 73 65 2d 67 69 74 2d 67 72 65 70 0a 20 20 20 20 20 20 20 20 20 20 ojectile-use-git-grep...........
32d60 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 27 76 63 2d 67 69 74 2d 67 72 65 70 29 29 0a 20 20 20 .....(fboundp.'vc-git-grep))....
32d80 20 20 20 20 20 20 20 28 76 63 2d 67 69 74 2d 67 72 65 70 20 73 65 61 72 63 68 2d 72 65 67 65 78 .......(vc-git-grep.search-regex
32da0 70 20 28 6f 72 20 66 69 6c 65 73 20 22 22 29 20 72 6f 6f 74 2d 64 69 72 29 0a 20 20 20 20 20 20 p.(or.files."").root-dir).......
32dc0 20 20 3b 3b 20 70 61 74 68 73 20 66 6f 72 20 66 69 6e 64 2d 67 72 65 70 20 73 68 6f 75 6c 64 20 ..;;.paths.for.find-grep.should.
32de0 72 65 6c 61 74 69 76 65 20 61 6e 64 20 77 69 74 68 6f 75 74 20 74 72 61 69 6c 69 6e 67 20 2f 0a relative.and.without.trailing./.
32e00 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 ........(let.((grep-find-ignored
32e20 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 75 6e 69 6f 6e 20 -files................(cl-union.
32e40 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 (projectile--globally-ignored-fi
32e60 6c 65 2d 73 75 66 66 69 78 65 73 2d 67 6c 6f 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-suffixes-glob)...............
32e80 20 20 20 20 20 20 20 20 20 20 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c ...........grep-find-ignored-fil
32ea0 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 es))...............(projectile-g
32ec0 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 rep-find-ignored-paths..........
32ee0 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 ......(append.(mapcar.(lambda.(f
32f00 29 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 72 65 6c ).(directory-file-name.(file-rel
32f20 61 74 69 76 65 2d 6e 61 6d 65 20 66 20 72 6f 6f 74 2d 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 ative-name.f.root-dir)))........
32f40 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 6f 6a 65 63 74 ........................(project
32f60 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 0a 20 20 20 20 20 20 ile-ignored-directories)).......
32f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 .................(mapcar.(lambda
32fa0 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(file).........................
32fc0 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c .........(file-relative-name.fil
32fe0 65 20 72 6f 6f 74 2d 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.root-dir))....................
33000 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d ............(projectile-ignored-
33020 66 69 6c 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 files))))...............(project
33040 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 ile-grep-find-unignored-paths...
33060 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6d 61 70 63 61 72 20 28 6c 61 .............(append.(mapcar.(la
33080 6d 62 64 61 20 28 66 29 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 mbda.(f).(directory-file-name.(f
330a0 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 20 72 6f 6f 74 2d 64 69 72 29 29 29 0a ile-relative-name.f.root-dir))).
330c0 20 20 20 20 20 20 20 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 ...............................(
330e0 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 projectile-unignored-directories
33100 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 28 6d 61 70 63 61 ))........................(mapca
33120 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(lambda.(file)................
33140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 ..................(file-relative
33160 2d 6e 61 6d 65 20 66 69 6c 65 20 72 6f 6f 74 2d 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 -name.file.root-dir))...........
33180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 .....................(projectile
331a0 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -unignored-files))))............
331c0 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 ...(projectile-grep-find-ignored
331e0 2d 70 61 74 74 65 72 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 -patterns.(projectile-patterns-t
33200 6f 2d 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 o-ignore))...............(projec
33220 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e tile-grep-find-unignored-pattern
33240 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 65 6e 73 75 72 65 s.(projectile-patterns-to-ensure
33260 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 72 65 70 2d 63 6f 6d 70 75 74 65 2d 64 65 66 61 )))...........(grep-compute-defa
33280 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 ults)...........(cl-letf.(((symb
332a0 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 61 ol-function.'rgrep-default-comma
332c0 6e 64 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 nd).#'projectile-rgrep-default-c
332e0 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 67 72 65 70 20 73 65 61 72 ommand)).............(rgrep.sear
33300 63 68 2d 72 65 67 65 78 70 20 28 6f 72 20 66 69 6c 65 73 20 22 2a 20 2e 2a 22 29 20 72 6f 6f 74 ch-regexp.(or.files."*..*").root
33320 2d 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 62 75 66 -dir).............(when.(get-buf
33340 66 65 72 20 22 2a 67 72 65 70 2a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 fer."*grep*")...............;;.W
33360 68 65 6e 20 67 72 65 70 20 69 73 20 75 73 69 6e 67 20 61 20 67 6c 6f 62 61 6c 20 2a 67 72 65 70 hen.grep.is.using.a.global.*grep
33380 2a 20 62 75 66 66 65 72 20 72 65 6e 61 6d 65 20 69 74 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 *.buffer.rename.it.to.be........
333a0 20 20 20 20 20 20 20 3b 3b 20 73 63 6f 70 65 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 .......;;.scoped.to.the.current.
333c0 72 6f 6f 74 20 74 6f 20 61 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6e 63 75 72 72 65 6e root.to.allow.multiple.concurren
333e0 74 20 67 72 65 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 65 72 61 74 69 6f t.grep...............;;.operatio
33400 6e 73 2c 20 6f 6e 65 20 70 65 72 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ns,.one.per.root...............(
33420 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 22 2a 67 72 65 70 2a 22 0a 20 20 20 with-current-buffer."*grep*"....
33440 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6e 61 6d 65 2d 62 75 66 66 65 72 20 28 63 6f 6e .............(rename-buffer.(con
33460 63 61 74 20 22 2a 67 72 65 70 20 3c 22 20 72 6f 6f 74 2d 64 69 72 20 22 3e 2a 22 29 29 29 29 29 cat."*grep.<".root-dir.">*")))))
33480 29 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 67 ))).....(run-hooks.'projectile-g
334a0 72 65 70 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f rep-finished-hook)))..;;;###auto
334c0 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 20 28 73 65 61 72 63 load.(defun.projectile-ag.(searc
334e0 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 52 75 6e 20 61 6e 20 h-term.&optional.arg)..."Run.an.
33500 61 67 20 73 65 61 72 63 68 20 77 69 74 68 20 53 45 41 52 43 48 2d 54 45 52 4d 20 69 6e 20 74 68 ag.search.with.SEARCH-TERM.in.th
33520 65 20 70 72 6f 6a 65 63 74 2e 0a 0a 57 69 74 68 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 72 65 e.project...With.an.optional.pre
33540 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 53 45 41 52 43 48 2d 54 45 52 4d 20 69 73 20 fix.argument.ARG.SEARCH-TERM.is.
33560 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 interpreted.as.a.regular.express
33580 69 6f 6e 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 70 ion."...(interactive....(list.(p
335a0 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 61 64 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 2d 77 69 rojectile--read-search-string-wi
335c0 74 68 2d 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 41 67 th-default...........(format."Ag
335e0 20 25 73 73 65 61 72 63 68 20 66 6f 72 22 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 .%ssearch.for".(if.current-prefi
33600 78 2d 61 72 67 20 22 72 65 67 65 78 70 20 22 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 63 x-arg."regexp."."")))..........c
33620 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 69 66 20 28 72 65 71 75 69 urrent-prefix-arg))...(if.(requi
33640 72 65 20 27 61 67 20 6e 69 6c 20 27 6e 6f 65 72 72 6f 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 re.'ag.nil.'noerror).......(let.
33660 28 28 61 67 2d 63 6f 6d 6d 61 6e 64 20 28 69 66 20 61 72 67 20 27 61 67 2d 72 65 67 65 78 70 20 ((ag-command.(if.arg.'ag-regexp.
33680 27 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 67 2d 69 67 6e 6f 72 65 2d 6c 69 73 'ag)).............(ag-ignore-lis
336a0 74 20 28 64 65 6c 71 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.(delq.nil.....................
336c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 20 20 ..............(delete-dups......
336e0 20 20 20 20 20 20 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 61 ..............................(a
33700 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ppend...........................
33720 20 20 20 20 20 20 20 20 20 20 61 67 2d 69 67 6e 6f 72 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 ..........ag-ignore-list........
33740 20 20 20 20 20 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
33760 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 29 0a 20 20 20 20 ojectile-ignored-files-rel).....
33780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
337a0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 2d (projectile-ignored-directories-
337c0 72 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rel)............................
337e0 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 6c 6f 62 61 6c 6c 79 2d 69 .........(projectile--globally-i
33800 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 2d 67 6c 6f 62 29 0a 20 20 20 20 20 gnored-file-suffixes-glob)......
33820 20 20 20 20 20 20 20 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 ...............................;
33840 3b 20 61 67 20 73 75 70 70 6f 72 74 73 20 67 69 74 20 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 64 ;.ag.supports.git.ignore.files.d
33860 69 72 65 63 74 6c 79 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 irectly.........................
33880 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 70 72 6f 6a 65 63 74 ............(unless.(eq.(project
338a0 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 29 20 27 67 69 74 29 0a 20 20 20 20 20 20 20 20 20 ile-project-vcs).'git)..........
338c0 20 20 20 20 20 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 61 70 .............................(ap
338e0 70 65 6e 64 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 pend.grep-find-ignored-files....
33900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
33920 20 20 20 20 20 20 20 20 20 20 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 64 69 72 ...........grep-find-ignored-dir
33940 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ectories........................
33960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 29 29 29 29 29 29 29 .......................'()))))))
33980 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 68 65 20 70 72 65 66 69 78 .............;;.reset.the.prefix
339a0 20 61 72 67 2c 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 77 69 6c 6c 20 61 66 66 65 63 74 20 74 .arg,.otherwise.it.will.affect.t
339c0 68 65 20 61 67 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 he.ag-command.............(curre
339e0 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e nt-prefix-arg.nil)).........(fun
33a00 63 61 6c 6c 20 61 67 2d 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 2d 74 65 72 6d 20 28 70 72 6f call.ag-command.search-term.(pro
33a20 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 65 72 72 jectile-acquire-root))).....(err
33a40 6f 72 20 22 50 61 63 6b 61 67 65 20 27 61 67 27 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c or."Package.'ag'.is.not.availabl
33a60 65 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f e")))..;;;###autoload.(defun.pro
33a80 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 jectile-ripgrep.(search-term.&op
33aa0 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 52 75 6e 20 61 20 72 69 70 67 72 65 70 20 28 72 67 tional.arg)..."Run.a.ripgrep.(rg
33ac0 29 20 73 65 61 72 63 68 20 77 69 74 68 20 60 53 45 41 52 43 48 2d 54 45 52 4d 27 20 61 74 20 63 ).search.with.`SEARCH-TERM'.at.c
33ae0 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 0a 57 69 74 68 20 61 6e 20 6f 70 urrent.project.root...With.an.op
33b00 74 69 6f 6e 61 6c 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 53 45 41 52 43 tional.prefix.argument.ARG.SEARC
33b20 48 2d 54 45 52 4d 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 0a 72 65 67 75 6c H-TERM.is.interpreted.as.a.regul
33b40 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 64 65 70 ar.expression...This.command.dep
33b60 65 6e 64 73 20 6f 6e 20 6f 66 20 74 68 65 20 45 6d 61 63 73 20 70 61 63 6b 61 67 65 73 20 72 69 ends.on.of.the.Emacs.packages.ri
33b80 70 67 72 65 70 20 6f 72 20 72 67 20 62 65 69 6e 67 0a 69 6e 73 74 61 6c 6c 65 64 20 74 6f 20 77 pgrep.or.rg.being.installed.to.w
33ba0 6f 72 6b 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 70 ork."...(interactive....(list.(p
33bc0 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 61 64 2d 73 65 61 72 63 68 2d 73 74 72 69 6e 67 2d 77 69 rojectile--read-search-string-wi
33be0 74 68 2d 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 69 th-default...........(format."Ri
33c00 70 67 72 65 70 20 25 73 73 65 61 72 63 68 20 66 6f 72 22 20 28 69 66 20 63 75 72 72 65 6e 74 2d pgrep.%ssearch.for".(if.current-
33c20 70 72 65 66 69 78 2d 61 72 67 20 22 72 65 67 65 78 70 20 22 20 22 22 29 29 29 0a 20 20 20 20 20 prefix-arg."regexp."."")))......
33c40 20 20 20 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 6c 65 74 20 ....current-prefix-arg))...(let.
33c60 28 28 61 72 67 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 20 28 63 6f ((args.(mapcar.(lambda.(val).(co
33c80 6e 63 61 74 20 22 2d 2d 67 6c 6f 62 20 21 22 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 ncat."--glob.!".val))...........
33ca0 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 ............(append.projectile-g
33cc0 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 lobally-ignored-files...........
33ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 ....................projectile-g
33d00 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 29 0a lobally-ignored-directories)))).
33d20 20 20 20 20 3b 3b 20 77 65 20 72 65 6c 79 20 6f 6e 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 70 ....;;.we.rely.on.the.external.p
33d40 61 63 6b 61 67 65 73 20 72 69 70 67 72 65 70 20 61 6e 64 20 72 67 20 66 6f 72 20 74 68 65 20 61 ackages.ripgrep.and.rg.for.the.a
33d60 63 74 75 61 6c 20 73 65 61 72 63 68 0a 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 66 69 72 73 74 ctual.search.....;;.....;;.first
33d80 20 77 65 20 63 68 65 63 6b 20 69 66 20 77 65 20 63 61 6e 20 6c 6f 61 64 20 72 69 70 67 72 65 70 .we.check.if.we.can.load.ripgrep
33da0 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 72 65 71 75 69 72 65 20 27 72 69 70 67 72 65 70 20 6e 69 .....(cond.((require.'ripgrep.ni
33dc0 6c 20 27 6e 6f 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 69 70 67 72 65 70 2d l.'noerror)............(ripgrep-
33de0 72 65 67 65 78 70 20 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 regexp.search-term..............
33e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 ..............(projectile-acquir
33e20 65 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-root).........................
33e40 20 20 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(if.arg......................
33e60 20 20 20 20 20 20 20 20 20 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........args..................
33e80 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 2d 2d 66 69 78 65 64 2d 73 74 72 69 6e ............(cons."--fixed-strin
33ea0 67 73 20 2d 2d 68 69 64 64 65 6e 22 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 gs.--hidden".args))))...........
33ec0 3b 3b 20 61 6e 64 20 74 68 65 6e 20 77 65 20 74 72 79 20 72 67 0a 20 20 20 20 20 20 20 20 20 20 ;;.and.then.we.try.rg...........
33ee0 28 28 72 65 71 75 69 72 65 20 27 72 67 20 6e 69 6c 20 27 6e 6f 65 72 72 6f 72 29 0a 20 20 20 20 ((require.'rg.nil.'noerror).....
33f00 20 20 20 20 20 20 20 28 72 67 2d 72 75 6e 20 73 65 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 .......(rg-run.search-term......
33f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2a 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............."*"...............
33f40 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 ........;;.all.files............
33f60 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 ........(projectile-acquire-root
33f80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 61 72 67 29 20 20 )....................(not.arg)..
33fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61 6c 20 73 65 61 72 63 68 ...............;;.literal.search
33fc0 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 20 20 20 20 20 20 20 ?....................nil........
33fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 20 6e 65 65 64 20 74 6f 20 63 6f 6e ...............;;.no.need.to.con
34000 66 69 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 0a 20 firm....................args))..
34020 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 50 61 63 6b 61 67 65 73 20 60 72 69 .........(t.(error."Packages.`ri
34040 70 67 72 65 70 27 20 61 6e 64 20 60 72 67 27 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c pgrep'.and.`rg'.are.not.availabl
34060 65 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d e")))))..(defun.projectile-find-
34080 72 65 66 65 72 65 6e 63 65 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 79 6d 62 6f 6c 29 0a 20 20 references.(&optional.symbol)...
340a0 22 46 69 6e 64 20 61 6c 6c 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 53 59 4d 42 4f 4c 20 69 "Find.all.references.to.SYMBOL.i
340c0 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 41 20 74 68 69 6e 20 77 n.the.current.project...A.thin.w
340e0 72 61 70 70 65 72 20 61 72 6f 75 6e 64 20 60 78 72 65 66 2d 72 65 66 65 72 65 6e 63 65 73 2d 69 rapper.around.`xref-references-i
34100 6e 2d 64 69 72 65 63 74 6f 72 79 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 n-directory'."...(interactive)..
34120 20 28 77 68 65 6e 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d 72 65 66 65 72 .(when.(and.(fboundp.'xref-refer
34140 65 6e 63 65 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ences-in-directory).............
34160 20 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d 2d 73 68 6f 77 2d 78 72 65 66 73 29 29 0a 20 20 .(fboundp.'xref--show-xrefs))...
34180 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c ..(let.((project-root.(projectil
341a0 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 e-acquire-root))...........(symb
341c0 6f 6c 20 28 6f 72 20 73 79 6d 62 6f 6c 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 ol.(or.symbol.(read-from-minibuf
341e0 66 65 72 20 22 4c 6f 6f 6b 75 70 20 69 6e 20 70 72 6f 6a 65 63 74 3a 20 22 20 28 70 72 6f 6a 65 fer."Lookup.in.project:.".(proje
34200 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 ctile-symbol-at-point)))))......
34220 20 28 78 72 65 66 2d 2d 73 68 6f 77 2d 78 72 65 66 73 20 28 78 72 65 66 2d 72 65 66 65 72 65 6e .(xref--show-xrefs.(xref-referen
34240 63 65 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 73 79 6d 62 6f 6c 20 70 72 6f 6a 65 63 74 2d ces-in-directory.symbol.project-
34260 72 6f 6f 74 29 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 root).nil))))..(defun.projectile
34280 2d 74 61 67 73 2d 65 78 63 6c 75 64 65 2d 70 61 74 74 65 72 6e 73 20 28 29 0a 20 20 22 52 65 74 -tags-exclude-patterns.()..."Ret
342a0 75 72 6e 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 65 78 63 6c 75 64 65 20 70 61 74 74 65 72 urn.a.string.with.exclude.patter
342c0 6e 73 20 66 6f 72 20 63 74 61 67 73 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d ns.for.ctags."...(mapconcat.(lam
342e0 62 64 61 20 28 70 61 74 74 65 72 6e 29 20 28 66 6f 72 6d 61 74 20 22 2d 2d 65 78 63 6c 75 64 65 bda.(pattern).(format."--exclude
34300 3d 5c 22 25 73 5c 22 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 =\"%s\""........................
34320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d ................(directory-file-
34340 6e 61 6d 65 20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 name.pattern)))..............(ap
34360 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 pend...............(projectile-i
34380 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 2d 72 65 6c 29 0a 20 20 20 20 20 20 20 20 gnored-directories-rel).........
343a0 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 ......(projectile-patterns-to-ig
343c0 6e 6f 72 65 29 29 20 22 20 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 nore))."."))..;;;###autoload.(de
343e0 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 20 28 fun.projectile-regenerate-tags.(
34400 29 0a 20 20 22 52 65 67 65 6e 65 72 61 74 65 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 5b 65 )..."Regenerate.the.project's.[e
34420 7c 67 5d 74 61 67 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 |g]tags."...(interactive)...(if.
34440 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 67 67 74 61 67 73 2d 6d 6f 64 65 29 0a 20 20 20 20 20 (and.(boundp.'ggtags-mode)......
34460 20 20 20 20 20 20 28 6d 65 6d 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b ......(memq.projectile-tags-back
34480 65 6e 64 20 27 28 61 75 74 6f 20 67 67 74 61 67 73 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 end.'(auto.ggtags))).......(prog
344a0 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 67 67 74 61 67 73 2d 70 72 6f 6a 65 63 74 n.........(let*.((ggtags-project
344c0 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 -root.(projectile-acquire-root))
344e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f ................(default-directo
34500 72 79 20 67 67 74 61 67 73 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 ry.ggtags-project-root))........
34520 20 20 20 28 67 67 74 61 67 73 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 ...(ggtags-ensure-project)......
34540 20 20 20 20 20 28 67 67 74 61 67 73 2d 75 70 64 61 74 65 2d 74 61 67 73 20 74 29 29 29 0a 20 20 .....(ggtags-update-tags.t)))...
34560 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 ..(let*.((project-root.(projecti
34580 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 61 le-acquire-root))............(ta
345a0 67 73 2d 65 78 63 6c 75 64 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 65 78 63 6c gs-exclude.(projectile-tags-excl
345c0 75 64 65 2d 70 61 74 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 ude-patterns))............(defau
345e0 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 lt-directory.project-root)......
34600 20 20 20 20 20 20 28 74 61 67 73 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 ......(tags-file.(expand-file-na
34620 6d 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 me.projectile-tags-file-name))..
34640 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 66 6f 72 6d 61 74 20 70 72 6f 6a 65 ..........(command.(format.proje
34660 63 74 69 6c 65 2d 74 61 67 73 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ctile-tags-command..............
34680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d ...............(or.(file-remote-
346a0 70 20 74 61 67 73 2d 66 69 6c 65 20 27 6c 6f 63 61 6c 6e 61 6d 65 29 20 74 61 67 73 2d 66 69 6c p.tags-file.'localname).tags-fil
346c0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 e).............................t
346e0 61 67 73 2d 65 78 63 6c 75 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ags-exclude.....................
34700 20 20 20 20 20 20 20 20 22 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 68 65 6c 6c 2d 6f ........"."))............shell-o
34720 75 74 70 75 74 20 65 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d utput.exit-code).......(with-tem
34740 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 69 74 2d 63 6f 64 65 p-buffer.........(setq.exit-code
34760 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 66 69 6c 65 2d 73 68 65 ...............(process-file-she
34780 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 2d ll-command.command.nil.(current-
347a0 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 68 65 6c 6c 2d 6f 75 74 buffer))...............shell-out
347c0 70 75 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 put.(string-trim................
347e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 .............(buffer-substring.(
34800 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 point-min).(point-max)))))......
34820 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 65 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 .(unless.(zerop.exit-code)......
34840 20 20 20 28 65 72 72 6f 72 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 29 29 0a 20 20 20 20 20 20 28 ...(error.shell-output)).......(
34860 76 69 73 69 74 2d 74 61 67 73 2d 74 61 62 6c 65 20 74 61 67 73 2d 66 69 6c 65 29 0a 20 20 20 20 visit-tags-table.tags-file).....
34880 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 67 65 6e 65 72 61 74 65 64 20 25 73 22 20 74 61 67 73 ..(message."Regenerated.%s".tags
348a0 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 69 73 -file))))..(defun.projectile-vis
348c0 69 74 2d 70 72 6f 6a 65 63 74 2d 74 61 67 73 2d 74 61 62 6c 65 20 28 29 0a 20 20 22 56 69 73 69 it-project-tags-table.()..."Visi
348e0 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 74 61 67 73 20 74 61 62 t.the.current.project's.tags.tab
34900 6c 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 le."...(when.(projectile-project
34920 2d 70 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 61 67 73 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 -p).....(let.((tags-file.(projec
34940 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 tile-expand-root.projectile-tags
34960 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d -file-name))).......(when.(file-
34980 65 78 69 73 74 73 2d 70 20 74 61 67 73 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 exists-p.tags-file).........(wit
349a0 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 45 72 72 6f 72 20 6c 6f 61 64 69 6e 67 20 h-demoted-errors."Error.loading.
349c0 74 61 67 73 2d 66 69 6c 65 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 76 69 73 69 74 2d tags-file:.%s"...........(visit-
349e0 74 61 67 73 2d 74 61 62 6c 65 20 74 61 67 73 2d 66 69 6c 65 20 74 29 29 29 29 29 29 0a 0a 28 64 tags-table.tags-file.t))))))..(d
34a00 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 74 65 72 6d 69 6e 65 2d 66 69 6e 64 2d 74 efun.projectile-determine-find-t
34a20 61 67 2d 66 6e 20 28 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 66 75 6e 63 ag-fn.()..."Determine.which.func
34a40 74 69 6f 6e 20 74 6f 20 75 73 65 20 66 6f 72 20 61 20 63 61 6c 6c 20 74 6f 20 60 70 72 6f 6a 65 tion.to.use.for.a.call.to.`proje
34a60 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 27 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 63 6f 6e 64 ctile-find-tag'."...(or....(cond
34a80 0a 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e .....((eq.projectile-tags-backen
34aa0 64 20 27 61 75 74 6f 29 0a 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 66 62 6f 75 d.'auto)......(cond.......((fbou
34ac0 6e 64 70 20 27 67 67 74 61 67 73 2d 66 69 6e 64 2d 74 61 67 2d 64 77 69 6d 29 0a 20 20 20 20 20 ndp.'ggtags-find-tag-dwim)......
34ae0 20 20 27 67 67 74 61 67 73 2d 66 69 6e 64 2d 74 61 67 2d 64 77 69 6d 29 0a 20 20 20 20 20 20 28 ..'ggtags-find-tag-dwim).......(
34b00 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 (fboundp.'xref-find-definitions)
34b20 0a 20 20 20 20 20 20 20 27 78 72 65 66 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 0a ........'xref-find-definitions).
34b40 20 20 20 20 20 20 28 28 66 62 6f 75 6e 64 70 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 ......((fboundp.'etags-select-fi
34b60 6e 64 2d 74 61 67 29 0a 20 20 20 20 20 20 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 6e nd-tag)........'etags-select-fin
34b80 64 2d 74 61 67 29 29 29 0a 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 d-tag))).....((eq.projectile-tag
34ba0 73 2d 62 61 63 6b 65 6e 64 20 27 78 72 65 66 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f s-backend.'xref)......(when.(fbo
34bc0 75 6e 64 70 20 27 78 72 65 66 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 0a 20 20 20 undp.'xref-find-definitions)....
34be0 20 20 20 20 27 78 72 65 66 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 29 0a 20 20 20 ....'xref-find-definitions))....
34c00 20 28 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e 64 20 27 67 .((eq.projectile-tags-backend.'g
34c20 67 74 61 67 73 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 67 67 74 61 gtags)......(when.(fboundp.'ggta
34c40 67 73 2d 66 69 6e 64 2d 74 61 67 2d 64 77 69 6d 29 0a 20 20 20 20 20 20 20 27 67 67 74 61 67 73 gs-find-tag-dwim)........'ggtags
34c60 2d 66 69 6e 64 2d 74 61 67 2d 64 77 69 6d 29 29 0a 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 -find-tag-dwim)).....((eq.projec
34c80 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e 64 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 29 tile-tags-backend.'etags-select)
34ca0 0a 20 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 65 74 61 67 73 2d 73 65 6c 65 ......(when.(fboundp.'etags-sele
34cc0 63 74 2d 66 69 6e 64 2d 74 61 67 29 0a 20 20 20 20 20 20 20 27 65 74 61 67 73 2d 73 65 6c 65 63 ct-find-tag)........'etags-selec
34ce0 74 2d 66 69 6e 64 2d 74 61 67 29 29 29 0a 20 20 20 27 66 69 6e 64 2d 74 61 67 29 29 0a 0a 3b 3b t-find-tag)))....'find-tag))..;;
34d00 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 ;###autoload.(defun.projectile-f
34d20 69 6e 64 2d 74 61 67 20 28 29 0a 20 20 22 46 69 6e 64 20 74 61 67 20 69 6e 20 70 72 6f 6a 65 63 ind-tag.()..."Find.tag.in.projec
34d40 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c t."...(interactive)...(projectil
34d60 65 2d 76 69 73 69 74 2d 70 72 6f 6a 65 63 74 2d 74 61 67 73 2d 74 61 62 6c 65 29 0a 20 20 3b 3b e-visit-project-tags-table)...;;
34d80 20 41 75 74 6f 2d 64 69 73 63 6f 76 65 72 20 74 68 65 20 75 73 65 72 27 73 20 70 72 65 66 65 72 .Auto-discover.the.user's.prefer
34da0 65 6e 63 65 20 66 6f 72 20 74 61 67 73 0a 20 20 28 6c 65 74 20 28 28 66 69 6e 64 2d 74 61 67 2d ence.for.tags...(let.((find-tag-
34dc0 66 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 74 65 72 6d 69 6e 65 2d 66 69 6e 64 2d 74 61 fn.(projectile-determine-find-ta
34de0 67 2d 66 6e 29 29 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 g-fn))).....(call-interactively.
34e00 66 69 6e 64 2d 74 61 67 2d 66 6e 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 70 72 6f 6a 65 63 find-tag-fn)))..(defmacro.projec
34e20 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 28 64 69 72 20 26 72 65 73 74 tile-with-default-dir.(dir.&rest
34e40 20 62 6f 64 79 29 0a 20 20 22 49 6e 76 6f 6b 65 20 69 6e 20 44 49 52 20 74 68 65 20 42 4f 44 59 .body)..."Invoke.in.DIR.the.BODY
34e60 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 74 29 20 28 69 6e 64 65 6e 74 20 ."...(declare.(debug.t).(indent.
34e80 31 29 29 0a 20 20 60 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 1))...`(let.((default-directory.
34ea0 2c 64 69 72 29 29 0a 20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f ,dir))......,@body))..;;;###auto
34ec0 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f 6d 6d 61 load.(defun.projectile-run-comma
34ee0 6e 64 2d 69 6e 2d 72 6f 6f 74 20 28 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 65 78 65 63 75 74 65 nd-in-root.()..."Invoke.`execute
34f00 2d 65 78 74 65 6e 64 65 64 2d 63 6f 6d 6d 61 6e 64 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 -extended-command'.in.the.projec
34f20 74 27 73 20 72 6f 6f 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 70 72 t's.root."...(interactive)...(pr
34f40 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 28 70 72 6f 6a 65 ojectile-with-default-dir.(proje
34f60 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e ctile-acquire-root).....(call-in
34f80 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 65 78 65 63 75 74 65 2d 65 78 74 65 6e 64 65 64 2d 63 teractively.#'execute-extended-c
34fa0 6f 6d 6d 61 6e 64 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e ommand)))..;;;###autoload.(defun
34fc0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 6e .projectile-run-shell-command-in
34fe0 2d 72 6f 6f 74 20 28 63 6f 6d 6d 61 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 75 74 70 75 74 2d -root.(command.&optional.output-
35000 62 75 66 66 65 72 20 65 72 72 6f 72 2d 62 75 66 66 65 72 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 buffer.error-buffer)..."Invoke.`
35020 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 shell-command'.in.the.project's.
35040 72 6f 6f 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 root."...(interactive.(list.(rea
35060 64 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 22 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 3a 20 d-shell-command."Shell.command:.
35080 22 29 29 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d ")))...(projectile-with-default-
350a0 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 dir.(projectile-acquire-root)...
350c0 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 6f 75 74 70 75 74 2d ..(shell-command.command.output-
350e0 62 75 66 66 65 72 20 65 72 72 6f 72 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 buffer.error-buffer)))..;;;###au
35100 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 61 73 79 toload.(defun.projectile-run-asy
35120 6e 63 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 20 28 63 6f 6d 6d 61 6e nc-shell-command-in-root.(comman
35140 64 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 20 65 72 72 6f 72 2d d.&optional.output-buffer.error-
35160 62 75 66 66 65 72 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 buffer)..."Invoke.`async-shell-c
35180 6f 6d 6d 61 6e 64 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 22 0a ommand'.in.the.project's.root.".
351a0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 64 2d 73 68 65 6c 6c ..(interactive.(list.(read-shell
351c0 2d 63 6f 6d 6d 61 6e 64 20 22 41 73 79 6e 63 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 3a 20 22 -command."Async.shell.command:."
351e0 29 29 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 )))...(projectile-with-default-d
35200 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 20 ir.(projectile-acquire-root)....
35220 20 28 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 6f 75 .(async-shell-command.command.ou
35240 74 70 75 74 2d 62 75 66 66 65 72 20 65 72 72 6f 72 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b 3b tput-buffer.error-buffer)))..;;;
35260 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 ###autoload.(defun.projectile-ru
35280 6e 2d 67 64 62 20 28 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 67 64 62 27 20 69 6e 20 74 68 65 20 n-gdb.()..."Invoke.`gdb'.in.the.
352a0 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 project's.root."...(interactive)
352c0 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 ...(projectile-with-default-dir.
352e0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 20 20 28 63 (projectile-acquire-root).....(c
35300 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 67 64 62 29 29 29 0a 0a 3b 3b 3b 23 23 all-interactively.'gdb)))..;;;##
35320 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d #autoload.(defun.projectile-run-
35340 73 68 65 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 shell.(&optional.arg)..."Invoke.
35360 60 73 68 65 6c 6c 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 0a 0a `shell'.in.the.project's.root...
35380 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 20 73 Switch.to.the.project.specific.s
353a0 68 65 6c 6c 20 62 75 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 hell.buffer.if.it.already.exists
353c0 2e 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 74 6f 20 ...Use.a.prefix.argument.ARG.to.
353e0 69 6e 64 69 63 61 74 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 6e 65 77 20 70 72 6f 63 65 indicate.creation.of.a.new.proce
35400 73 73 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 ss.instead."...(interactive."P")
35420 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 ...(let.((project.(projectile-ac
35440 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 quire-root))).....(projectile-wi
35460 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 28 73 68 th-default-dir.project.......(sh
35480 65 6c 6c 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 ell.(projectile-generate-process
354a0 2d 6e 61 6d 65 20 22 73 68 65 6c 6c 22 20 61 72 67 20 70 72 6f 6a 65 63 74 29 29 29 29 29 0a 0a -name."shell".arg.project)))))..
354c0 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ;;;###autoload.(defun.projectile
354e0 2d 72 75 6e 2d 65 73 68 65 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 -run-eshell.(&optional.arg)..."I
35500 6e 76 6f 6b 65 20 60 65 73 68 65 6c 6c 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 nvoke.`eshell'.in.the.project's.
35520 72 6f 6f 74 2e 0a 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 73 70 65 root...Switch.to.the.project.spe
35540 63 69 66 69 63 20 65 73 68 65 6c 6c 20 62 75 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 65 61 64 cific.eshell.buffer.if.it.alread
35560 79 20 65 78 69 73 74 73 2e 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 y.exists...Use.a.prefix.argument
35580 20 41 52 47 20 74 6f 20 69 6e 64 69 63 61 74 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 6e .ARG.to.indicate.creation.of.a.n
355a0 65 77 20 70 72 6f 63 65 73 73 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 ew.process.instead."...(interact
355c0 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 ive."P")...(let.((project.(proje
355e0 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 ctile-acquire-root))).....(proje
35600 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 70 72 6f 6a 65 63 74 0a 20 ctile-with-default-dir.project..
35620 20 20 20 20 20 28 6c 65 74 20 28 28 65 73 68 65 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 .....(let.((eshell-buffer-name.(
35640 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 projectile-generate-process-name
35660 20 22 65 73 68 65 6c 6c 22 20 61 72 67 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 ."eshell".arg.project)))........
35680 20 28 65 73 68 65 6c 6c 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 .(eshell)))))..;;;###autoload.(d
356a0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 69 65 6c 6d 20 28 26 6f 70 74 69 6f efun.projectile-run-ielm.(&optio
356c0 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 69 65 6c 6d 27 20 69 6e 20 74 68 65 nal.arg)..."Invoke.`ielm'.in.the
356e0 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 0a 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 .project's.root...Switch.to.the.
35700 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 20 69 65 6c 6d 20 62 75 66 66 65 72 20 69 66 20 project.specific.ielm.buffer.if.
35720 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 it.already.exists...Use.a.prefix
35740 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 74 6f 20 69 6e 64 69 63 61 74 65 20 63 72 65 61 74 69 .argument.ARG.to.indicate.creati
35760 6f 6e 20 6f 66 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 on.of.a.new.process.instead."...
35780 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a (interactive."P")...(let*.((proj
357a0 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 ect.(projectile-acquire-root))..
357c0 20 20 20 20 20 20 20 20 28 69 65 6c 6d 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 ........(ielm-buffer-name.(proje
357e0 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 69 65 6c ctile-generate-process-name."iel
35800 6d 22 20 61 72 67 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 67 65 74 2d 62 m".arg.project))).....(if.(get-b
35820 75 66 66 65 72 20 69 65 6c 6d 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 uffer.ielm-buffer-name).........
35840 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 69 65 6c 6d 2d 62 75 66 66 65 72 2d 6e 61 (switch-to-buffer.ielm-buffer-na
35860 6d 65 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 me).......(projectile-with-defau
35880 6c 74 2d 64 69 72 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 28 69 65 6c 6d 29 29 0a 20 lt-dir.project.........(ielm))..
358a0 20 20 20 20 20 3b 3b 20 69 65 6c 6d 27 73 20 62 75 66 66 65 72 20 6e 61 6d 65 20 69 73 20 68 61 .....;;.ielm's.buffer.name.is.ha
358c0 72 64 63 6f 64 65 64 2c 20 73 6f 20 77 65 20 68 61 76 65 20 74 6f 20 72 65 6e 61 6d 65 20 69 74 rdcoded,.so.we.have.to.rename.it
358e0 20 61 66 74 65 72 20 63 72 65 61 74 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 6e 61 6d 65 2d 62 75 .after.creation.......(rename-bu
35900 66 66 65 72 20 69 65 6c 6d 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 ffer.ielm-buffer-name))))..;;;##
35920 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d #autoload.(defun.projectile-run-
35940 74 65 72 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 term.(&optional.arg)..."Invoke.`
35960 74 65 72 6d 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 0a 0a 53 77 term'.in.the.project's.root...Sw
35980 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 20 74 65 72 itch.to.the.project.specific.ter
359a0 6d 20 62 75 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 0a 0a m.buffer.if.it.already.exists...
359c0 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 74 6f 20 69 6e 64 Use.a.prefix.argument.ARG.to.ind
359e0 69 63 61 74 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 20 icate.creation.of.a.new.process.
35a00 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 instead."...(interactive."P")...
35a20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 (let*.((project.(projectile-acqu
35a40 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 ire-root))..........(buffer-name
35a60 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 .(projectile-generate-process-na
35a80 6d 65 20 22 74 65 72 6d 22 20 61 72 67 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 me."term".arg.project)).........
35aa0 20 28 64 65 66 61 75 6c 74 2d 70 72 6f 67 72 61 6d 20 28 6f 72 20 65 78 70 6c 69 63 69 74 2d 73 .(default-program.(or.explicit-s
35ac0 68 65 6c 6c 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hell-file-name..................
35ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 65 6e 76 20 22 45 53 48 45 4c 4c 22 29 0a 20 .............(getenv."ESHELL")..
35b00 20 20 20 20 20 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 67 65 .............................(ge
35b20 74 65 6e 76 20 22 53 48 45 4c 4c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tenv."SHELL")...................
35b40 20 20 20 20 20 20 20 20 20 20 20 20 22 2f 62 69 6e 2f 73 68 22 29 29 29 0a 20 20 20 20 28 75 6e ............"/bin/sh"))).....(un
35b60 6c 65 73 73 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 less.(get-buffer.buffer-name)...
35b80 20 20 20 20 28 72 65 71 75 69 72 65 20 27 74 65 72 6d 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 ....(require.'term).......(let.(
35ba0 28 70 72 6f 67 72 61 6d 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 (program.(read-from-minibuffer."
35bc0 52 75 6e 20 70 72 6f 67 72 61 6d 3a 20 22 20 64 65 66 61 75 6c 74 2d 70 72 6f 67 72 61 6d 29 29 Run.program:.".default-program))
35be0 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 ).........(projectile-with-defau
35c00 6c 74 2d 64 69 72 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 lt-dir.project...........(set-bu
35c20 66 66 65 72 20 28 74 65 72 6d 2d 61 6e 73 69 2d 6d 61 6b 65 2d 74 65 72 6d 20 62 75 66 66 65 72 ffer.(term-ansi-make-term.buffer
35c40 2d 6e 61 6d 65 20 70 72 6f 67 72 61 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 65 72 6d 2d -name.program))...........(term-
35c60 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 65 72 6d 2d 63 68 61 72 2d 6d 6f 64 65 29 mode)...........(term-char-mode)
35c80 29 29 29 0a 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 ))).....(switch-to-buffer.buffer
35ca0 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 76 74 65 -name)))..(defun.projectile--vte
35cc0 72 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6e 65 77 2d 70 72 6f 63 65 73 73 20 6f 74 68 65 72 2d rm.(&optional.new-process.other-
35ce0 77 69 6e 64 6f 77 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 76 74 65 72 6d 27 20 69 6e 20 74 68 65 window)..."Invoke.`vterm'.in.the
35d00 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 0a 0a 55 73 65 20 61 72 67 75 6d 65 6e 74 20 4e .project's.root...Use.argument.N
35d20 45 57 2d 50 52 4f 43 45 53 53 20 74 6f 20 69 6e 64 69 63 61 74 65 20 63 72 65 61 74 69 6f 6e 20 EW-PROCESS.to.indicate.creation.
35d40 6f 66 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 20 69 6e 73 74 65 61 64 2e 0a 55 73 65 20 61 72 of.a.new.process.instead..Use.ar
35d60 67 75 6d 65 6e 74 20 4f 54 48 45 52 2d 57 49 4e 44 4f 57 20 74 6f 20 69 6e 64 65 6e 74 61 74 69 gument.OTHER-WINDOW.to.indentati
35d80 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 62 75 66 66 65 72 20 73 68 6f 75 6c 64 0a 62 65 20 on.whether.the.buffer.should.be.
35da0 64 69 73 70 6c 61 79 65 64 20 69 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 77 69 6e 64 6f 77 2e displayed.in.a.different.window.
35dc0 0a 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 ..Switch.to.the.project.specific
35de0 20 74 65 72 6d 20 62 75 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 .term.buffer.if.it.already.exist
35e00 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c s."...(let*.((project.(projectil
35e20 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 e-acquire-root))..........(buffe
35e40 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e r.(projectile-generate-process-n
35e60 61 6d 65 20 22 76 74 65 72 6d 22 20 6e 65 77 2d 70 72 6f 63 65 73 73 20 70 72 6f 6a 65 63 74 29 ame."vterm".new-process.project)
35e80 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 72 65 71 75 69 72 65 20 27 76 74 65 72 6d 20 6e )).....(unless.(require.'vterm.n
35ea0 69 6c 20 27 6e 6f 65 72 72 6f 72 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 63 6b 61 il.'noerror).......(error."Packa
35ec0 67 65 20 27 76 74 65 72 6d 27 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 22 29 29 0a 20 ge.'vterm'.is.not.available"))..
35ee0 20 20 20 28 69 66 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 ...(if.(buffer-live-p.(get-buffe
35f00 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 6f 74 68 65 72 2d 77 69 6e r.buffer)).........(if.other-win
35f20 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 dow.............(switch-to-buffe
35f40 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 r-other-window.buffer)..........
35f60 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 .(switch-to-buffer.buffer)).....
35f80 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 70 ..(projectile-with-default-dir.p
35fa0 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 28 69 66 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a roject.........(if.other-window.
35fc0 20 20 20 20 20 20 20 20 20 20 20 20 28 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 ............(vterm-other-window.
35fe0 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 76 74 65 72 6d 20 62 75 66 66 65 72 29 buffer)...........(vterm.buffer)
36000 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f )))))..;;;###autoload.(defun.pro
36020 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 jectile-run-vterm.(&optional.arg
36040 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 76 74 65 72 6d 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 )..."Invoke.`vterm'.in.the.proje
36060 63 74 27 73 20 72 6f 6f 74 2e 0a 0a 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 ct's.root...Switch.to.the.projec
36080 74 20 73 70 65 63 69 66 69 63 20 74 65 72 6d 20 62 75 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 t.specific.term.buffer.if.it.alr
360a0 65 61 64 79 20 65 78 69 73 74 73 2e 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d eady.exists...Use.a.prefix.argum
360c0 65 6e 74 20 41 52 47 20 74 6f 20 69 6e 64 69 63 61 74 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 ent.ARG.to.indicate.creation.of.
360e0 61 20 6e 65 77 20 70 72 6f 63 65 73 73 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 69 6e 74 65 72 a.new.process.instead."...(inter
36100 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 76 74 65 72 6d active."P")...(projectile--vterm
36120 20 61 72 67 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 .arg))..;;;###autoload.(defun.pr
36140 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 ojectile-run-vterm-other-window.
36160 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 76 74 65 72 6d (&optional.arg)..."Invoke.`vterm
36180 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f 74 2e 0a 0a 53 77 69 74 63 68 '.in.the.project's.root...Switch
361a0 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 20 74 65 72 6d 20 62 75 .to.the.project.specific.term.bu
361c0 66 66 65 72 20 69 66 20 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 0a 0a 55 73 65 20 ffer.if.it.already.exists...Use.
361e0 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 74 6f 20 69 6e 64 69 63 61 74 a.prefix.argument.ARG.to.indicat
36200 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 20 69 6e 73 74 e.creation.of.a.new.process.inst
36220 65 61 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 70 72 6f ead."...(interactive."P")...(pro
36240 6a 65 63 74 69 6c 65 2d 2d 76 74 65 72 6d 20 61 72 67 20 27 6f 74 68 65 72 2d 77 69 6e 64 6f 77 jectile--vterm.arg.'other-window
36260 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 69 6e 2d 70 ))..(defun.projectile-files-in-p
36280 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 roject-directory.(directory)..."
362a0 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 69 6e 20 44 49 52 45 43 54 Return.a.list.of.files.in.DIRECT
362c0 4f 52 59 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 ORY."...(let*.((project.(project
362e0 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 ile-acquire-root))..........(dir
36300 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 28 65 78 70 61 6e 64 2d 66 69 6c .(file-relative-name.(expand-fil
36320 65 2d 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-name.directory)...............
36340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 ....................project)))..
36360 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 ...(cl-remove-if-not......(lambd
36380 61 20 28 66 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 64 69 72 20 66 29 29 0a 20 a.(f).(string-prefix-p.dir.f))..
363a0 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 70 72 ....(projectile-project-files.pr
363c0 6f 6a 65 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c oject))))..(defun.projectile-fil
363e0 65 73 2d 66 72 6f 6d 2d 63 6d 64 20 28 63 6d 64 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 55 es-from-cmd.(cmd.directory)..."U
36400 73 65 20 61 20 67 72 65 70 2d 6c 69 6b 65 20 43 4d 44 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 se.a.grep-like.CMD.to.search.for
36420 20 66 69 6c 65 73 20 77 69 74 68 69 6e 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 43 4d 44 20 73 68 .files.within.DIRECTORY...CMD.sh
36440 6f 75 6c 64 20 69 6e 63 6c 75 64 65 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 73 65 61 72 63 ould.include.the.necessary.searc
36460 68 20 70 61 72 61 6d 73 20 61 6e 64 20 73 68 6f 75 6c 64 20 6f 75 74 70 75 74 0a 65 71 75 69 76 h.params.and.should.output.equiv
36480 61 6c 65 6e 74 6c 79 20 74 6f 20 67 72 65 70 20 2d 48 6c 49 20 28 6f 6e 6c 79 20 75 6e 69 71 75 alently.to.grep.-HlI.(only.uniqu
364a0 65 20 6d 61 74 63 68 69 6e 67 20 66 69 6c 65 6e 61 6d 65 73 29 2e 0a 52 65 74 75 72 6e 73 20 61 e.matching.filenames)..Returns.a
364c0 20 6c 69 73 74 20 6f 66 20 65 78 70 61 6e 64 65 64 20 66 69 6c 65 6e 61 6d 65 73 2e 22 0a 20 20 .list.of.expanded.filenames."...
364e0 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f (let.((default-directory.directo
36500 72 79 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 0a 20 ry)).....(mapcar.(lambda.(str)..
36520 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 64 69 72 65 63 74 6f 72 79 0a 20 .............(concat.directory..
36540 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 73 74 72 69 6e 67 .....................(if.(string
36560 2d 70 72 65 66 69 78 2d 70 20 22 2e 2f 22 20 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -prefix-p."./".str).............
36580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 20 32 29 0a ..............(substring.str.2).
365a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 29 29 29 0a 20 ........................str)))..
365c0 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 ...........(split-string........
365e0 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e ......(string-trim.(shell-comman
36600 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 d-to-string.cmd)).............."
36620 5c 6e 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 \n+"..............t))))..(defvar
36640 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f .projectile-files-with-string-co
36660 6d 6d 61 6e 64 73 0a 20 20 27 28 28 72 67 20 2e 20 22 72 67 20 2d 6c 46 20 2d 2d 6e 6f 2d 68 65 mmands...'((rg..."rg.-lF.--no-he
36680 61 64 69 6e 67 20 2d 2d 63 6f 6c 6f 72 20 6e 65 76 65 72 20 22 29 0a 20 20 20 20 28 61 67 20 2e ading.--color.never.").....(ag..
366a0 20 22 61 67 20 2d 2d 6c 69 74 65 72 61 6c 20 2d 2d 6e 6f 63 6f 6c 6f 72 20 2d 2d 6e 6f 68 65 61 ."ag.--literal.--nocolor.--nohea
366c0 64 69 6e 67 20 2d 6c 20 22 29 0a 20 20 20 20 28 61 63 6b 20 2e 20 22 61 63 6b 20 2d 2d 6c 69 74 ding.-l.").....(ack..."ack.--lit
366e0 65 72 61 6c 20 2d 2d 6e 6f 63 6f 6c 6f 72 20 2d 6c 20 22 29 0a 20 20 20 20 28 67 69 74 20 2e 20 eral.--nocolor.-l.").....(git...
36700 22 67 69 74 20 67 72 65 70 20 2d 48 6c 49 20 22 29 0a 20 20 20 20 3b 3b 20 2d 72 3a 20 72 65 63 "git.grep.-HlI.").....;;.-r:.rec
36720 75 72 73 69 76 65 0a 20 20 20 20 3b 3b 20 2d 48 3a 20 73 68 6f 77 20 66 69 6c 65 6e 61 6d 65 20 ursive.....;;.-H:.show.filename.
36740 66 6f 72 20 65 61 63 68 20 6d 61 74 63 68 0a 20 20 20 20 3b 3b 20 2d 6c 3a 20 73 68 6f 77 20 6f for.each.match.....;;.-l:.show.o
36760 6e 6c 79 20 66 69 6c 65 20 6e 61 6d 65 73 20 77 69 74 68 20 6d 61 74 63 68 65 73 0a 20 20 20 20 nly.file.names.with.matches.....
36780 3b 3b 20 2d 49 3a 20 6e 6f 20 62 69 6e 61 72 79 20 66 69 6c 65 73 0a 20 20 20 20 28 67 72 65 70 ;;.-I:.no.binary.files.....(grep
367a0 20 2e 20 22 67 72 65 70 20 2d 72 48 6c 49 20 25 73 20 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 ..."grep.-rHlI.%s..")))..(defun.
367c0 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 67 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 projectile--rg-construct-command
367e0 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 2d 65 78 74 .(search-term.&optional.file-ext
36800 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 52 67 20 6f 70 74 69 6f 6e 20 74 6f 20 73 65 61 72 )..."Construct.Rg.option.to.sear
36820 63 68 20 66 69 6c 65 73 20 62 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 46 49 4c 45 2d 45 ch.files.by.the.extension.FILE-E
36840 58 54 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 XT."...(if.(stringp.file-ext)...
36860 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 72 67 20 70 72 6f 6a ....(concat.(cdr.(assoc.'rg.proj
36880 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 ectile-files-with-string-command
368a0 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 20 27 22 0a 20 20 20 20 20 20 20 s))..............."-g.'"........
368c0 20 20 20 20 20 20 20 66 69 6c 65 2d 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 27 .......file-ext..............."'
368e0 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 ."...............search-term)...
36900 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 72 67 20 70 72 6f 6a 65 63 ..(concat.(cdr.(assoc.'rg.projec
36920 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 tile-files-with-string-commands)
36940 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 29 29 0a 0a 28 64 ).............search-term)))..(d
36960 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 61 67 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f efun.projectile--ag-construct-co
36980 6d 6d 61 6e 64 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c mmand.(search-term.&optional.fil
369a0 65 2d 65 78 74 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 41 67 20 6f 70 74 69 6f 6e 20 74 6f e-ext)..."Construct.Ag.option.to
369c0 20 73 65 61 72 63 68 20 66 69 6c 65 73 20 62 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 46 .search.files.by.the.extension.F
369e0 49 4c 45 2d 45 58 54 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 2d 65 78 ILE-EXT."...(if.(stringp.file-ex
36a00 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 61 67 t).......(concat.(cdr.(assoc.'ag
36a20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f .projectile-files-with-string-co
36a40 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 47 20 22 0a 20 20 20 mmands))..............."-G."....
36a60 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 74 ...........(replace-regexp-in-st
36a80 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 2a 22 20 22 22 0a 20 20 20 ring................"\\*".""....
36aa0 20 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
36ac0 74 72 69 6e 67 20 22 5c 5c 2e 22 20 22 5c 5c 5c 5c 2e 22 20 66 69 6c 65 2d 65 78 74 29 29 0a 20 tring."\\."."\\\\.".file-ext))..
36ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 24 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............."$."...............
36b00 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 search-term).....(concat.(cdr.(a
36b20 73 73 6f 63 20 27 61 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 ssoc.'ag.projectile-files-with-s
36b40 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 tring-commands)).............sea
36b60 72 63 68 2d 74 65 72 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d rch-term)))..(defun.projectile--
36b80 61 63 6b 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 20 28 73 65 61 72 63 68 2d 74 65 ack-construct-command.(search-te
36ba0 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 43 6f 6e 73 74 72 rm.&optional.file-ext)..."Constr
36bc0 75 63 74 20 41 63 6b 20 6f 70 74 69 6f 6e 20 74 6f 20 73 65 61 72 63 68 20 66 69 6c 65 73 20 62 uct.Ack.option.to.search.files.b
36be0 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 46 49 4c 45 2d 45 58 54 2e 22 0a 20 20 28 69 66 y.the.extension.FILE-EXT."...(if
36c00 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 .(stringp.file-ext).......(conca
36c20 74 20 22 61 63 6b 20 2d 67 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c t."ack.-g.'"...............(repl
36c40 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 20 20 20 ace-regexp-in-string............
36c60 20 20 20 20 22 5c 5c 2a 22 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 ...."\\*".""................(rep
36c80 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5c 5c 2e 22 20 22 5c 5c 5c lace-regexp-in-string."\\."."\\\
36ca0 5c 2e 22 20 66 69 6c 65 2d 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 24 27 \.".file-ext))..............."$'
36cc0 20 7c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 .|."...............(cdr.(assoc.'
36ce0 61 63 6b 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 ack.projectile-files-with-string
36d00 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 78 20 22 0a -commands))..............."-x.".
36d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 0a 20 20 20 20 28 ..............search-term).....(
36d40 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 61 63 6b 20 70 72 6f 6a 65 63 74 69 concat.(cdr.(assoc.'ack.projecti
36d60 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a le-files-with-string-commands)).
36d80 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 68 2d 74 65 72 6d 29 29 29 0a 0a 28 64 65 66 ............search-term)))..(def
36da0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 69 74 2d 67 72 65 70 2d 63 6f 6e 73 74 72 75 63 un.projectile--git-grep-construc
36dc0 74 2d 63 6f 6d 6d 61 6e 64 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c t-command.(search-term.&optional
36de0 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 47 72 65 70 20 6f 70 74 .file-ext)..."Construct.Grep.opt
36e00 69 6f 6e 20 74 6f 20 73 65 61 72 63 68 20 66 69 6c 65 73 20 62 79 20 74 68 65 20 65 78 74 65 6e ion.to.search.files.by.the.exten
36e20 73 69 6f 6e 20 46 49 4c 45 2d 45 58 54 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 66 sion.FILE-EXT."...(if.(stringp.f
36e40 69 6c 65 2d 65 78 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 ile-ext).......(concat.(cdr.(ass
36e60 6f 63 20 27 67 69 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 oc.'git.projectile-files-with-st
36e80 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 ring-commands))...............se
36ea0 61 72 63 68 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 20 2d 2d 20 27 22 arch-term..............."..--.'"
36ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 2d 65 78 74 0a 20 20 20 20 20 20 20 20 ...............file-ext.........
36ee0 20 20 20 20 20 20 22 27 22 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 ......"'").....(concat.(cdr.(ass
36f00 6f 63 20 27 67 69 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 oc.'git.projectile-files-with-st
36f20 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 ring-commands)).............sear
36f40 63 68 2d 74 65 72 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 ch-term)))..(defun.projectile--g
36f60 72 65 70 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 20 28 73 65 61 72 63 68 2d 74 65 rep-construct-command.(search-te
36f80 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 43 6f 6e 73 74 72 rm.&optional.file-ext)..."Constr
36fa0 75 63 74 20 47 72 65 70 20 6f 70 74 69 6f 6e 20 74 6f 20 73 65 61 72 63 68 20 66 69 6c 65 73 20 uct.Grep.option.to.search.files.
36fc0 62 79 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 46 49 4c 45 2d 45 58 54 2e 22 0a 20 20 28 69 by.the.extension.FILE-EXT."...(i
36fe0 66 20 28 73 74 72 69 6e 67 70 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 f.(stringp.file-ext).......(conc
37000 61 74 20 28 66 6f 72 6d 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 67 72 65 70 20 70 72 6f at.(format.(cdr.(assoc.'grep.pro
37020 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e jectile-files-with-string-comman
37040 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 61 72 63 ds)).......................searc
37060 68 2d 74 65 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 2d 69 6e 63 6c 75 64 h-term)...............".--includ
37080 65 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 2d 65 78 74 0a 20 20 20 20 e.'"...............file-ext.....
370a0 20 20 20 20 20 20 20 20 20 20 22 27 22 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 28 63 64 72 20 .........."'").....(format.(cdr.
370c0 28 61 73 73 6f 63 20 27 67 72 65 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 (assoc.'grep.projectile-files-wi
370e0 74 68 2d 73 74 72 69 6e 67 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 th-string-commands))............
37100 20 73 65 61 72 63 68 2d 74 65 72 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 .search-term)))..(defun.projecti
37120 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 20 64 69 72 le-files-with-string.(string.dir
37140 65 63 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 52 65 ectory.&optional.file-ext)..."Re
37160 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 63 6f 6e 74 61 69 6e turn.a.list.of.all.files.contain
37180 69 6e 67 20 53 54 52 49 4e 47 20 69 6e 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 54 72 69 65 73 20 ing.STRING.in.DIRECTORY...Tries.
371a0 74 6f 20 75 73 65 20 72 67 2c 20 61 67 2c 20 61 63 6b 2c 20 67 69 74 2d 67 72 65 70 2c 20 61 6e to.use.rg,.ag,.ack,.git-grep,.an
371c0 64 20 67 72 65 70 20 69 6e 20 74 68 61 74 20 6f 72 64 65 72 2e 20 20 49 66 20 74 68 6f 73 65 0a d.grep.in.that.order...If.those.
371e0 61 72 65 20 69 6d 70 6f 73 73 69 62 6c 65 20 28 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 6f 6e 20 are.impossible.(for.instance.on.
37200 57 69 6e 64 6f 77 73 29 2c 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 0a Windows),.returns.a.list.of.all.
37220 66 69 6c 65 73 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 66 20 28 70 72 files.in.the.project."...(if.(pr
37240 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 78 79 2d 73 79 73 74 65 6d 2d 70 29 0a 20 20 20 20 20 20 28 ojectile-unixy-system-p).......(
37260 6c 65 74 2a 20 28 28 73 65 61 72 63 68 2d 74 65 72 6d 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d let*.((search-term.(shell-quote-
37280 61 72 67 75 6d 65 6e 74 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 argument.string))..............(
372a0 63 6d 64 20 28 63 6f 6e 64 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 72 67 22 cmd.(cond.((executable-find."rg"
372c0 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 28 70 72 6f 6a )..........................(proj
372e0 65 63 74 69 6c 65 2d 2d 72 67 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 20 73 65 61 ectile--rg-construct-command.sea
37300 72 63 68 2d 74 65 72 6d 20 66 69 6c 65 2d 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rch-term.file-ext)).............
37320 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 61 ............((executable-find."a
37340 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 g")..........................(pr
37360 6f 6a 65 63 74 69 6c 65 2d 2d 61 67 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 20 73 ojectile--ag-construct-command.s
37380 65 61 72 63 68 2d 74 65 72 6d 20 66 69 6c 65 2d 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 earch-term.file-ext))...........
373a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 ..............((executable-find.
373c0 22 61 63 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "ack")..........................
373e0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 61 63 6b 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 (projectile--ack-construct-comma
37400 6e 64 20 73 65 61 72 63 68 2d 74 65 72 6d 20 66 69 6c 65 2d 65 78 74 29 29 0a 20 20 20 20 20 20 nd.search-term.file-ext)).......
37420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 78 65 63 75 74 61 ..................((and.(executa
37440 62 6c 65 2d 66 69 6e 64 20 22 67 69 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ble-find."git").................
37460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 ..............(eq.(projectile-pr
37480 6f 6a 65 63 74 2d 76 63 73 29 20 27 67 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oject-vcs).'git))...............
374a0 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 69 74 2d 67 72 65 70 ...........(projectile--git-grep
374c0 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 2d 74 65 72 6d 20 66 -construct-command.search-term.f
374e0 69 6c 65 2d 65 78 74 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 ile-ext)).......................
37500 20 20 28 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 28 70 ..(t..........................(p
37520 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 72 65 70 2d 63 6f 6e 73 74 72 75 63 74 2d 63 6f 6d 6d 61 6e rojectile--grep-construct-comman
37540 64 20 73 65 61 72 63 68 2d 74 65 72 6d 20 66 69 6c 65 2d 65 78 74 29 29 29 29 29 0a 20 20 20 20 d.search-term.file-ext))))).....
37560 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 66 72 6f 6d 2d 63 6d 64 20 63 ....(projectile-files-from-cmd.c
37580 6d 64 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 68 61 76 65 20 74 6f md.directory)).....;;.we.have.to
375a0 20 72 65 6a 65 63 74 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 61 20 77 6f 72 6b 61 72 6f .reject.directories.as.a.workaro
375c0 75 6e 64 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 67 69 74 20 73 75 62 6d 6f 64 75 6c 65 73 0a und.to.work.with.git.submodules.
375e0 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 23 27 66 69 6c 65 2d 64 69 ....(cl-remove-if......#'file-di
37600 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 rectory-p......(mapcar.#'(lambda
37620 20 28 66 69 6c 65 29 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 .(file).(expand-file-name.file.d
37640 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 irectory))..............(project
37660 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a 0a 3b 3b ile-dir-files.directory)))))..;;
37680 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 ;###autoload.(defun.projectile-r
376a0 65 70 6c 61 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 52 65 70 6c 61 63 eplace.(&optional.arg)..."Replac
376c0 65 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 20 69 6e 20 70 72 6f 6a 65 63 74 20 75 73 69 6e e.literal.string.in.project.usin
376e0 67 20 6e 6f 6e 2d 72 65 67 65 78 70 20 60 74 61 67 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 g.non-regexp.`tags-query-replace
37700 27 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 70 '...With.a.prefix.argument.ARG.p
37720 72 6f 6d 70 74 73 20 79 6f 75 20 66 6f 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 66 rompts.you.for.a.directory.and.f
37740 69 6c 65 20 6e 61 6d 65 20 70 61 74 74 65 72 6e 73 0a 6f 6e 20 77 68 69 63 68 20 74 6f 20 72 75 ile.name.patterns.on.which.to.ru
37760 6e 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 n.the.replacement."...(interacti
37780 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 6f 72 79 20 28 69 66 20 ve."P")...(let*.((directory.(if.
377a0 61 72 67 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 28 66 69 6c arg.........................(fil
377c0 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-name-as-directory.............
377e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d .............(read-directory-nam
37800 65 20 22 52 65 70 6c 61 63 65 20 69 6e 20 64 69 72 65 63 74 6f 72 79 3a 20 22 29 29 0a 20 20 20 e."Replace.in.directory:."))....
37820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 ...................(projectile-a
37840 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 cquire-root)))..........(file-ex
37860 74 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.(if.arg.......................
37880 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 23 27 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 2d 66 69 .(if.(fboundp.#'helm-grep-get-fi
378a0 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-extensions)..................
378c0 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 2d 66 69 ..........(car.(helm-grep-get-fi
378e0 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 28 6c 69 73 74 20 64 69 72 65 63 74 6f 72 79 29 29 29 le-extensions.(list.directory)))
37900 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 28 72 65 61 64 2d ..........................(read-
37920 73 74 72 69 6e 67 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 string..........................
37940 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d .(projectile-prepend-project-nam
37960 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 57 69 e............................"Wi
37980 74 68 20 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 28 65 6d 70 74 79 20 73 74 72 69 6e 67 20 th.file.extension.(empty.string.
379a0 6d 65 61 6e 73 20 61 6c 6c 20 66 69 6c 65 73 29 3a 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 means.all.files):.")))..........
379c0 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 6c 64 2d ............nil))..........(old-
379e0 74 65 78 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 text.(read-string...............
37a00 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 ......(projectile-prepend-projec
37a20 74 2d 6e 61 6d 65 20 22 52 65 70 6c 61 63 65 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 t-name."Replace:.").............
37a40 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d 6f 72 2d 73 65 ........(projectile-symbol-or-se
37a60 6c 65 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 lection-at-point)))..........(ne
37a80 77 2d 74 65 78 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 w-text.(read-string.............
37aa0 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a ........(projectile-prepend-proj
37ac0 65 63 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 ect-name......................(f
37ae0 6f 72 6d 61 74 20 22 52 65 70 6c 61 63 65 20 25 73 20 77 69 74 68 3a 20 22 20 6f 6c 64 2d 74 65 ormat."Replace.%s.with:.".old-te
37b00 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 xt))))..........(files.(projecti
37b20 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 20 6f 6c 64 2d 74 65 78 74 20 64 69 le-files-with-string.old-text.di
37b40 72 65 63 74 6f 72 79 20 66 69 6c 65 2d 65 78 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f rectory.file-ext))).....(if.(fbo
37b60 75 6e 64 70 20 23 27 66 69 6c 65 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 29 0a 20 20 20 20 20 20 undp.#'fileloop-continue).......
37b80 20 20 3b 3b 20 45 6d 61 63 73 20 32 37 2b 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 66 ..;;.Emacs.27+.........(progn.(f
37ba0 69 6c 65 6c 6f 6f 70 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 72 65 70 6c 61 63 65 20 6f 6c 64 2d 74 ileloop-initialize-replace.old-t
37bc0 65 78 74 20 6e 65 77 2d 74 65 78 74 20 66 69 6c 65 73 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 ext.new-text.files.'default)....
37be0 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 29 29 ............(fileloop-continue))
37c00 0a 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 32 35 20 61 6e 64 20 32 36 0a 20 20 20 20 20 20 .......;;.Emacs.25.and.26.......
37c20 3b 3b 0a 20 20 20 20 20 20 3b 3b 20 41 64 61 70 74 65 64 20 66 72 6f 6d 20 60 74 61 67 73 2d 71 ;;.......;;.Adapted.from.`tags-q
37c40 75 65 72 79 2d 72 65 70 6c 61 63 65 27 20 66 6f 72 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 uery-replace'.for.literal.string
37c60 73 20 28 6e 6f 74 20 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 s.(not.regexp).......(with-no-wa
37c80 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 67 73 2d 6c 6f 6f 70 2d 73 rnings.........(setq.tags-loop-s
37ca0 63 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 20 2c 28 75 6e 6c 65 73 73 can...............`(let.,(unless
37cc0 20 28 65 71 75 61 6c 20 6f 6c 64 2d 74 65 78 74 20 28 64 6f 77 6e 63 61 73 65 20 6f 6c 64 2d 74 .(equal.old-text.(downcase.old-t
37ce0 65 78 74 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 27 28 28 ext))........................'((
37d00 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 case-fold-search.nil))).........
37d20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 27 2c 6f .........(if.(search-forward.',o
37d40 6c 64 2d 74 65 78 74 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ld-text.nil.t)..................
37d60 20 20 20 20 3b 3b 20 57 68 65 6e 20 77 65 20 66 69 6e 64 20 61 20 6d 61 74 63 68 2c 20 6d 6f 76 ....;;.When.we.find.a.match,.mov
37d80 65 20 62 61 63 6b 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 3b e.back.to......................;
37da0 3b 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 69 74 20 73 6f 0a 20 20 20 20 20 20 20 ;.the.beginning.of.it.so........
37dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 65 72 66 6f 72 6d 2d 72 65 70 6c 61 63 65 ..............;;.perform-replace
37de0 20 77 69 6c 6c 20 73 65 65 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .will.see.it....................
37e00 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
37e20 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 67 73 2d 6c 6f 6f 70 2d 6f 70 ))))).........(setq.tags-loop-op
37e40 65 72 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 70 65 72 66 6f 72 6d 2d 72 65 erate...............`(perform-re
37e60 70 6c 61 63 65 20 27 2c 6f 6c 64 2d 74 65 78 74 20 27 2c 6e 65 77 2d 74 65 78 74 20 74 20 6e 69 place.',old-text.',new-text.t.ni
37e80 6c 20 6e 69 6c 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 l.nil...........................
37ea0 20 20 20 20 20 20 6e 69 6c 20 6d 75 6c 74 69 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 2d 6d 61 ......nil.multi-query-replace-ma
37ec0 70 29 29 0a 20 20 20 20 20 20 20 20 28 74 61 67 73 2d 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 20 p)).........(tags-loop-continue.
37ee0 28 6f 72 20 28 63 6f 6e 73 20 27 6c 69 73 74 20 66 69 6c 65 73 29 20 74 29 29 29 29 29 29 0a 0a (or.(cons.'list.files).t))))))..
37f00 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ;;;###autoload.(defun.projectile
37f20 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a -replace-regexp.(&optional.arg).
37f40 20 20 22 52 65 70 6c 61 63 65 20 61 20 72 65 67 65 78 70 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 .."Replace.a.regexp.in.the.proje
37f60 63 74 20 75 73 69 6e 67 20 60 74 61 67 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 27 2e 0a 0a ct.using.`tags-query-replace'...
37f80 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 70 72 6f 6d 70 With.a.prefix.argument.ARG.promp
37fa0 74 73 20 79 6f 75 20 66 6f 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 6f 6e 20 77 68 69 63 68 0a ts.you.for.a.directory.on.which.
37fc0 74 6f 20 72 75 6e 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 to.run.the.replacement."...(inte
37fe0 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 6f 72 79 ractive."P")...(let*.((directory
38000 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(if.arg........................
38020 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 .(file-name-as-directory........
38040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 ..................(read-director
38060 79 2d 6e 61 6d 65 20 22 52 65 70 6c 61 63 65 20 72 65 67 65 78 70 20 69 6e 20 64 69 72 65 63 74 y-name."Replace.regexp.in.direct
38080 6f 72 79 3a 20 22 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 28 ory:.")).......................(
380a0 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 projectile-acquire-root)))......
380c0 20 20 20 20 28 6f 6c 64 2d 74 65 78 74 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 ....(old-text.(read-string......
380e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 ...............(projectile-prepe
38100 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 22 52 65 70 6c 61 63 65 20 72 65 67 65 78 70 3a nd-project-name."Replace.regexp:
38120 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 .").....................(project
38140 69 6c 65 2d 73 79 6d 62 6f 6c 2d 6f 72 2d 73 65 6c 65 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 ile-symbol-or-selection-at-point
38160 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 74 65 78 74 20 28 72 65 61 64 2d 73 74 72 )))..........(new-text.(read-str
38180 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 70 72 6f 6a 65 63 74 ing.....................(project
381a0 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 ile-prepend-project-name........
381c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6c 61 63 65 20 72 ..............(format."Replace.r
381e0 65 67 65 78 70 20 25 73 20 77 69 74 68 3a 20 22 20 6f 6c 64 2d 74 65 78 74 29 29 29 29 0a 20 20 egexp.%s.with:.".old-text))))...
38200 20 20 20 20 20 20 20 28 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 .......(files...........;;.We.ha
38220 76 65 20 74 6f 20 72 65 6a 65 63 74 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 61 20 77 6f ve.to.reject.directories.as.a.wo
38240 72 6b 61 72 6f 75 6e 64 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 67 69 74 20 73 75 62 6d 6f 64 rkaround.to.work.with.git.submod
38260 75 6c 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ules............;;...........;;.
38280 57 65 20 63 61 6e 27 74 20 6e 61 72 72 6f 77 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 We.can't.narrow.the.list.of.file
382a0 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d s.with...........;;.`projectile-
382c0 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 72 69 6e 67 27 20 62 65 63 61 75 73 65 20 74 68 6f 73 65 files-with-string'.because.those
382e0 20 72 65 67 65 78 70 20 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 .regexp.tools...........;;.don't
38300 20 73 75 70 70 6f 72 74 20 45 6d 61 63 73 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f .support.Emacs.regular.expressio
38320 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 ns............(cl-remove-if.....
38340 20 20 20 20 20 20 20 23 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 20 20 .......#'file-directory-p.......
38360 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 65 .....(mapcar.#'(lambda.(file).(e
38380 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 29 29 xpand-file-name.file.directory))
383a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ....................(projectile-
383c0 64 69 72 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 dir-files.directory))))).....;;.
383e0 46 49 58 4d 45 3a 20 50 72 6f 62 61 62 6c 79 20 77 6f 75 6c 64 20 66 61 69 6c 20 6f 6e 20 45 6d FIXME:.Probably.would.fail.on.Em
38400 61 63 73 20 32 37 2b 2c 20 66 6f 75 72 74 68 20 61 72 67 75 6d 65 6e 74 20 69 73 20 67 6f 6e 65 acs.27+,.fourth.argument.is.gone
38420 2e 0a 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 20 28 74 61 67 73 2d 71 75 ......(with-no-warnings.(tags-qu
38440 65 72 79 2d 72 65 70 6c 61 63 65 20 6f 6c 64 2d 74 65 78 74 20 6e 65 77 2d 74 65 78 74 20 6e 69 ery-replace.old-text.new-text.ni
38460 6c 20 28 63 6f 6e 73 20 27 6c 69 73 74 20 66 69 6c 65 73 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 l.(cons.'list.files)))))..;;;###
38480 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d autoload.(defun.projectile-kill-
384a0 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 4b 69 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 buffers.()..."Kill.project.buffe
384c0 72 73 2e 0a 0a 54 68 65 20 62 75 66 66 65 72 20 61 72 65 20 6b 69 6c 6c 65 64 20 61 63 63 6f 72 rs...The.buffer.are.killed.accor
384e0 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 60 70 72 6f 6a 65 63 74 69 6c 65 ding.to.the.value.of.`projectile
38500 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 27 2e 22 0a 20 20 28 69 6e 74 65 72 -kill-buffers-filter'."...(inter
38520 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 active)...(let*.((project.(proje
38540 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 ctile-acquire-root))..........(p
38560 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d roject-name.(projectile-project-
38580 6e 61 6d 65 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 73 name.project))..........(buffers
385a0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 70 72 6f .(projectile-project-buffers.pro
385c0 6a 65 63 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 0a 20 ject))).....(when.(yes-or-no-p..
385e0 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 41 72 65 20 79 6f 75 20 73 75 72 65 20 ..........(format."Are.you.sure.
38600 79 6f 75 20 77 61 6e 74 20 74 6f 20 6b 69 6c 6c 20 25 73 20 62 75 66 66 65 72 73 20 66 6f 72 20 you.want.to.kill.%s.buffers.for.
38620 27 25 73 27 3f 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 '%s'?."....................(leng
38640 74 68 20 62 75 66 66 65 72 73 29 20 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 th.buffers).project-name))......
38660 20 28 64 6f 6c 69 73 74 20 28 62 75 66 66 65 72 20 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 .(dolist.(buffer.buffers).......
38680 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 ..(when.(and................;;.w
386a0 65 20 74 61 6b 65 20 63 61 72 65 20 6e 6f 74 20 74 6f 20 6b 69 6c 6c 20 69 6e 64 69 72 65 63 74 e.take.care.not.to.kill.indirect
386c0 20 62 75 66 66 65 72 73 20 64 69 72 65 63 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .buffers.directly...............
386e0 20 3b 3b 20 61 73 20 77 65 20 6d 69 67 68 74 20 65 6e 63 6f 75 6e 74 65 72 20 74 68 65 6d 20 61 .;;.as.we.might.encounter.them.a
38700 66 74 65 72 20 74 68 65 69 72 20 62 61 73 65 20 62 75 66 66 65 72 73 20 61 72 65 20 6b 69 6c 6c fter.their.base.buffers.are.kill
38720 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 62 ed................(not.(buffer-b
38740 61 73 65 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ase-buffer.buffer)).............
38760 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c ...(if.(functionp.projectile-kil
38780 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-buffers-filter)...............
387a0 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 .....(funcall.projectile-kill-bu
387c0 66 66 65 72 73 2d 66 69 6c 74 65 72 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ffers-filter.buffer)............
387e0 20 20 20 20 20 20 28 70 63 61 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 ......(pcase.projectile-kill-buf
38800 66 65 72 73 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 fers-filter....................(
38820 27 6b 69 6c 6c 2d 61 6c 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'kill-all.t)....................
38840 28 27 6b 69 6c 6c 2d 6f 6e 6c 79 2d 66 69 6c 65 73 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e ('kill-only-files.(buffer-file-n
38860 61 6d 65 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ame.buffer))....................
38880 28 5f 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 70 72 6f 6a 65 63 74 69 (_.(user-error."Invalid.projecti
388a0 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 20 76 61 6c 75 65 3a 20 25 53 le-kill-buffers-filter.value:.%S
388c0 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 ".projectile-kill-buffers-filter
388e0 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 )))))...........(kill-buffer.buf
38900 66 65 72 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e fer))))))..;;;###autoload.(defun
38920 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 .projectile-save-project-buffers
38940 20 28 29 0a 20 20 22 53 61 76 65 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e .()..."Save.all.project.buffers.
38960 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a "...(interactive)...(let*.((proj
38980 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 ect.(projectile-acquire-root))..
389a0 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c ........(project-name.(projectil
389c0 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 e-project-name.project))........
389e0 20 20 28 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 ..(modified-buffers.(cl-remove-i
38a00 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 f-not.(lambda.(buf).............
38a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a40 20 20 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 0a 20 ...(and.(buffer-file-name.buf)..
38a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 ...................(buffer-modif
38aa0 69 65 64 2d 70 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ied-p.buf)))....................
38ac0 20 20 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 6f 6a 65 ..........................(proje
38ae0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 70 72 6f 6a 65 63 74 29 29 29 ctile-project-buffers.project)))
38b00 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 72 73 ).....(if.(null.modified-buffers
38b20 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 5b 25 73 5d 20 4e 6f 20 62 75 66 66 ).........(message."[%s].No.buff
38b40 65 72 73 20 6e 65 65 64 20 73 61 76 69 6e 67 22 20 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 0a 20 ers.need.saving".project-name)..
38b60 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 20 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 .....(dolist.(buf.modified-buffe
38b80 72 73 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 rs).........(with-current-buffer
38ba0 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 29 29 0a 20 .buf...........(save-buffer)))..
38bc0 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 5b 25 73 5d 20 53 61 76 65 64 20 25 64 20 62 75 66 .....(message."[%s].Saved.%d.buf
38be0 66 65 72 73 22 20 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 28 6c 65 6e 67 74 68 20 6d 6f 64 69 66 fers".project-name.(length.modif
38c00 69 65 64 2d 62 75 66 66 65 72 73 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 ied-buffers)))))..;;;###autoload
38c20 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 20 28 29 0a 20 20 22 4f .(defun.projectile-dired.()..."O
38c40 70 65 6e 20 60 64 69 72 65 64 27 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 70 pen.`dired'.at.the.root.of.the.p
38c60 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 69 72 65 roject."...(interactive)...(dire
38c80 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 0a 3b d.(projectile-acquire-root)))..;
38ca0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ;;###autoload.(defun.projectile-
38cc0 64 69 72 65 64 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a 20 20 22 4f 70 65 6e 20 60 64 dired-other-window.()..."Open.`d
38ce0 69 72 65 64 27 20 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 ired'..at.the.root.of.the.projec
38d00 74 20 69 6e 20 61 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 t.in.another.window."...(interac
38d20 74 69 76 65 29 0a 20 20 28 64 69 72 65 64 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 70 72 6f tive)...(dired-other-window.(pro
38d40 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 jectile-acquire-root)))..;;;###a
38d60 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 2d utoload.(defun.projectile-dired-
38d80 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 29 0a 20 20 22 4f 70 65 6e 20 60 64 69 72 65 64 27 20 61 other-frame.()..."Open.`dired'.a
38da0 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 69 6e 20 61 6e 6f t.the.root.of.the.project.in.ano
38dc0 74 68 65 72 20 66 72 61 6d 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ther.frame."...(interactive)...(
38de0 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 dired-other-frame.(projectile-ac
38e00 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 quire-root)))..;;;###autoload.(d
38e20 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 63 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 efun.projectile-vc.(&optional.pr
38e40 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 4f 70 65 6e 20 60 76 63 2d 64 69 72 27 20 61 74 20 oject-root)..."Open.`vc-dir'.at.
38e60 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 0a 46 6f 72 20 67 69 the.root.of.the.project...For.gi
38e80 74 20 70 72 6f 6a 65 63 74 73 20 60 6d 61 67 69 74 2d 73 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 t.projects.`magit-status-interna
38ea0 6c 27 20 69 73 20 75 73 65 64 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 46 6f 72 20 68 67 20 l'.is.used.if.available..For.hg.
38ec0 70 72 6f 6a 65 63 74 73 20 60 6d 6f 6e 6b 79 2d 73 74 61 74 75 73 27 20 69 73 20 75 73 65 64 20 projects.`monky-status'.is.used.
38ee0 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 49 66 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 69 if.available...If.PROJECT-ROOT.i
38f00 73 20 67 69 76 65 6e 2c 20 69 74 20 69 73 20 6f 70 65 6e 65 64 20 69 6e 73 74 65 61 64 20 6f 66 s.given,.it.is.opened.instead.of
38f20 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 .the.project.root.directory.of.t
38f40 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 69 6c 65 2e 20 20 49 66 20 69 6e 74 65 he.current.buffer.file...If.inte
38f60 72 61 63 74 69 76 65 6c 79 0a 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 ractively.called.with.a.prefix.a
38f80 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 66 6f rgument,.the.user.is.prompted.fo
38fa0 72 20 61 20 70 72 6f 6a 65 63 74 0a 64 69 72 65 63 74 6f 72 79 20 74 6f 20 6f 70 65 6e 2e 22 0a r.a.project.directory.to.open.".
38fc0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 61 6e 64 20 63 75 72 72 65 6e 74 2d 70 72 65 66 ..(interactive.(and.current-pref
38fe0 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 ix-arg.....................(list
39000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c ......................(projectil
39020 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-completing-read...............
39040 20 20 20 20 20 20 20 20 22 4f 70 65 6e 20 70 72 6f 6a 65 63 74 20 56 43 20 69 6e 3a 20 22 0a 20 ........"Open.project.VC.in:."..
39060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d .....................projectile-
39080 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 70 72 6f known-projects))))...(unless.pro
390a0 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 ject-root.....(setq.project-root
390c0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 28 .(projectile-acquire-root)))...(
390e0 6c 65 74 20 28 28 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 let.((vcs.(projectile-project-vc
39100 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 63 6c 2d 63 61 73 65 20 76 s.project-root))).....(cl-case.v
39120 63 73 0a 20 20 20 20 20 20 28 67 69 74 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 66 62 6f cs.......(git........(cond.((fbo
39140 75 6e 64 70 20 27 6d 61 67 69 74 2d 73 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 6c 29 0a 20 20 20 undp.'magit-status-internal)....
39160 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 67 69 74 2d 73 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 ...........(magit-status-interna
39180 6c 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 l.project-root))..............((
391a0 66 62 6f 75 6e 64 70 20 27 6d 61 67 69 74 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 fboundp.'magit-status)..........
391c0 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 20 28 6d 61 67 69 74 2d 73 74 .....(with-no-warnings.(magit-st
391e0 61 74 75 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 atus.project-root)))............
39200 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 2d 64 69 72 20 70 72 6f 6a 65 ..(t...............(vc-dir.proje
39220 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 20 20 28 68 67 0a 20 20 20 20 20 20 20 28 69 66 ct-root)))).......(hg........(if
39240 20 28 66 62 6f 75 6e 64 70 20 27 6d 6f 6e 6b 79 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 .(fboundp.'monky-status)........
39260 20 20 20 20 28 6d 6f 6e 6b 79 2d 73 74 61 74 75 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a ....(monky-status.project-root).
39280 20 20 20 20 20 20 20 20 20 28 76 63 2d 64 69 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 .........(vc-dir.project-root)))
392a0 0a 20 20 20 20 20 20 28 74 20 28 76 63 2d 64 69 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 .......(t.(vc-dir.project-root))
392c0 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 )))..;;;###autoload.(defun.proje
392e0 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 20 28 29 0a 20 20 22 53 68 6f 77 20 61 20 6c 69 73 74 20 ctile-recentf.()..."Show.a.list.
39300 6f 66 20 72 65 63 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 6c 65 73 20 69 6e 20 61 20 70 of.recently.visited.files.in.a.p
39320 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 roject."...(interactive)...(if.(
39340 62 6f 75 6e 64 70 20 27 72 65 63 65 6e 74 66 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 66 69 6e boundp.'recentf-list).......(fin
39360 64 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 d-file.(projectile-expand-root..
39380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d .................(projectile-com
393a0 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pleting-read....................
393c0 22 52 65 63 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 6c 65 73 3a 20 22 0a 20 20 20 20 20 "Recently.visited.files:."......
393e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 ..............(projectile-recent
39400 66 2d 66 69 6c 65 73 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 72 65 63 65 6e 74 f-files)))).....(message."recent
39420 66 20 69 73 20 6e 6f 74 20 65 6e 61 62 6c 65 64 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f f.is.not.enabled")))..(defun.pro
39440 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 jectile-recentf-files.()..."Retu
39460 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 72 65 63 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 rn.a.list.of.recently.visited.fi
39480 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 les.in.a.project."...(and.(bound
394a0 70 20 27 72 65 63 65 6e 74 66 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 p.'recentf-list)........(let.((p
394c0 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 70 roject-root.(expand-file-name.(p
394e0 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 20 rojectile-acquire-root))))......
39500 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 ....(mapcar...........(lambda.(f
39520 29 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 20 70 72 6f 6a 65 63 74 2d ).(file-relative-name.f.project-
39540 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e root))...........(cl-remove-if-n
39560 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 73 74 72 69 6e ot............(lambda.(f).(strin
39580 67 2d 70 72 65 66 69 78 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 65 78 70 61 6e 64 2d g-prefix-p.project-root.(expand-
395a0 66 69 6c 65 2d 6e 61 6d 65 20 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 72 65 63 65 6e 74 file-name.f)))............recent
395c0 66 2d 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 f-list)))))..(defun.projectile-p
395e0 72 6f 6a 65 63 74 2d 63 61 63 68 65 2d 66 69 6c 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f roject-cache-file.(&optional.pro
39600 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 54 68 65 20 70 61 74 68 20 74 6f 20 61 20 70 72 6f 6a ject-root)..."The.path.to.a.proj
39620 65 63 74 27 73 20 63 61 63 68 65 20 66 69 6c 65 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 52 4f 4f ect's.cache.file.for.PROJECT-ROO
39640 54 2e 0a 41 63 74 73 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 69 T..Acts.on.the.current.project.i
39660 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2e 22 0a 20 20 28 s.not.specified.explicitly."...(
39680 69 66 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 if.project-root.......(expand-fi
396a0 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 20 70 72 le-name.projectile-cache-file.pr
396c0 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 oject-root).....(projectile-expa
396e0 6e 64 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 29 nd-root.projectile-cache-file)))
39700 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 ..(defvar.projectile-configure-c
39720 6d 64 2d 6d 61 70 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 md-map...(make-hash-table.:test.
39740 27 65 71 75 61 6c 29 0a 20 20 22 41 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65 6e 20 70 72 6f 'equal)..."A.mapping.between.pro
39760 6a 65 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d jects.and.the.last.configure.com
39780 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 mand.used.on.them.")..(defvar.pr
397a0 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 ojectile-compilation-cmd-map...(
397c0 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 make-hash-table.:test.'equal)...
397e0 22 41 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 "A.mapping.between.projects.and.
39800 74 68 65 20 6c 61 73 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 75 73 65 the.last.compilation.command.use
39820 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 d.on.them.")..(defvar.projectile
39840 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 -install-cmd-map...(make-hash-ta
39860 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 41 20 6d 61 70 70 69 6e 67 20 62 ble.:test.'equal)..."A.mapping.b
39880 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 69 6e 73 etween.projects.and.the.last.ins
398a0 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a 28 64 tall.command.used.on.them.")..(d
398c0 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 63 6d 64 2d 6d 61 70 efvar.projectile-package-cmd-map
398e0 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c ...(make-hash-table.:test.'equal
39900 29 0a 20 20 22 41 20 6d 61 70 70 69 6e 67 20 62 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 )..."A.mapping.between.projects.
39920 61 6e 64 20 74 68 65 20 6c 61 73 74 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 75 73 65 and.the.last.package.command.use
39940 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 d.on.them.")..(defvar.projectile
39960 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 -test-cmd-map...(make-hash-table
39980 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 41 20 6d 61 70 70 69 6e 67 20 62 65 74 77 .:test.'equal)..."A.mapping.betw
399a0 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 74 65 73 74 20 63 een.projects.and.the.last.test.c
399c0 6f 6d 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 ommand.used.on.them.")..(defvar.
399e0 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 6d 61 6b 65 2d 68 projectile-run-cmd-map...(make-h
39a00 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 41 20 6d 61 70 ash-table.:test.'equal)..."A.map
39a20 70 69 6e 67 20 62 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 ping.between.projects.and.the.la
39a40 73 74 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 6d 2e 22 29 0a 0a st.run.command.used.on.them.")..
39a60 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 65 6e 61 62 6c (defvar.projectile-project-enabl
39a80 65 2d 63 6d 64 2d 63 61 63 68 69 6e 67 20 74 0a 20 20 22 45 6e 61 62 6c 65 73 20 63 6f 6d 6d 61 e-cmd-caching.t..."Enables.comma
39aa0 6e 64 20 63 61 63 68 69 6e 67 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 20 20 53 65 74 nd.caching.for.the.project...Set
39ac0 20 74 6f 20 6e 69 6c 20 74 6f 20 64 69 73 61 62 6c 65 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 .to.nil.to.disable..Should.be.se
39ae0 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 75 6e 20 t.via..dir-locals.el.")..(defun.
39b00 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e projectile--cache-project-comman
39b20 64 73 2d 70 20 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 20 63 61 63 68 65 20 70 72 6f 6a ds-p.()..."Whether.to.cache.proj
39b40 65 63 74 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 ect.commands."...(with-temp-buff
39b60 65 72 0a 20 20 20 20 28 68 61 63 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 er.....(hack-dir-local-variables
39b80 2d 6e 6f 6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 -non-file-buffer).....projectile
39ba0 2d 70 72 6f 6a 65 63 74 2d 65 6e 61 62 6c 65 2d 63 6d 64 2d 63 61 63 68 69 6e 67 29 29 0a 0a 28 -project-enable-cmd-caching))..(
39bc0 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6e 66 69 67 defvar.projectile-project-config
39be0 75 72 65 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 75 73 ure-cmd.nil..."The.command.to.us
39c00 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f e.with.`projectile-configure-pro
39c20 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 ject'..It.takes.precedence.over.
39c40 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 70 72 6f 6a the.default.command.for.the.proj
39c60 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 ect.type.when.set..Should.be.set
39c80 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 .via..dir-locals.el.")..(defvar.
39ca0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 projectile-project-compilation-c
39cc0 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 75 73 65 20 77 69 74 md.nil..."The.command.to.use.wit
39ce0 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 27 2e 0a h.`projectile-compile-project'..
39d00 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 64 65 66 It.takes.precedence.over.the.def
39d20 61 75 6c 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 ault.command.for.the.project.typ
39d40 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 e.when.set..Should.be.set.via..d
39d60 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 ir-locals.el.")..(defvar.project
39d80 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 6e 69 6c 0a ile-project-compilation-dir.nil.
39da0 20 20 22 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 75 73 65 20 77 69 74 68 20 60 70 72 .."The.directory.to.use.with.`pr
39dc0 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 27 2e 0a 54 68 65 20 64 ojectile-compile-project'..The.d
39de0 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 69 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 irectory.path.is.relative.to.the
39e00 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 .project.root..Should.be.set.via
39e20 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a ..dir-locals.el.")..(defvar.proj
39e40 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 ectile-project-test-cmd.nil..."T
39e60 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 75 73 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 he.command.to.use.with.`projecti
39e80 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 le-test-project'..It.takes.prece
39ea0 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 61 6e 64 20 66 dence.over.the.default.command.f
39ec0 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 or.the.project.type.when.set..Sh
39ee0 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 ould.be.set.via..dir-locals.el."
39f00 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e )..(defvar.projectile-project-in
39f20 73 74 61 6c 6c 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 stall-cmd.nil..."The.command.to.
39f40 75 73 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f use.with.`projectile-install-pro
39f60 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 ject'..It.takes.precedence.over.
39f80 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 70 72 6f 6a the.default.command.for.the.proj
39fa0 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 ect.type.when.set..Should.be.set
39fc0 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 .via..dir-locals.el.")..(defvar.
39fe0 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 61 63 6b 61 67 65 2d 63 6d 64 20 6e projectile-project-package-cmd.n
3a000 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 75 73 65 20 77 69 74 68 20 60 70 il..."The.command.to.use.with.`p
3a020 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 rojectile-package-project'..It.t
3a040 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 74 68 65 20 64 65 66 61 75 6c 74 akes.precedence.over.the.default
3a060 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 77 68 .command.for.the.project.type.wh
3a080 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c en.set..Should.be.set.via..dir-l
3a0a0 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d ocals.el.")..(defvar.projectile-
3a0c0 70 72 6f 6a 65 63 74 2d 72 75 6e 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d 61 project-run-cmd.nil..."The.comma
3a0e0 6e 64 20 74 6f 20 75 73 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 nd.to.use.with.`projectile-run-p
3a100 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 roject'..It.takes.precedence.ove
3a120 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 70 72 r.the.default.command.for.the.pr
3a140 6f 6a 65 63 74 20 74 79 70 65 20 77 68 65 6e 20 73 65 74 2e 0a 53 68 6f 75 6c 64 20 62 65 20 73 oject.type.when.set..Should.be.s
3a160 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 2e 22 29 0a 0a 28 64 65 66 75 6e et.via..dir-locals.el.")..(defun
3a180 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d .projectile-default-generic-comm
3a1a0 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a and.(project-type.command-type).
3a1c0 20 20 22 47 65 6e 65 72 69 63 20 72 65 74 72 69 65 76 61 6c 20 6f 66 20 43 4f 4d 4d 41 4e 44 2d .."Generic.retrieval.of.COMMAND-
3a1e0 54 59 50 45 73 20 64 65 66 61 75 6c 74 20 63 6d 64 2d 76 61 6c 75 65 20 66 6f 72 20 50 52 4f 4a TYPEs.default.cmd-value.for.PROJ
3a200 45 43 54 2d 54 59 50 45 2e 0a 0a 49 66 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 73 20 69 66 20 76 ECT-TYPE...If.found,.checks.if.v
3a220 61 6c 75 65 20 69 73 20 73 79 6d 62 6f 6c 20 6f 72 20 73 74 72 69 6e 67 2e 20 20 49 6e 20 63 61 alue.is.symbol.or.string...In.ca
3a240 73 65 20 6f 66 20 73 79 6d 62 6f 6c 0a 72 65 73 6f 6c 76 65 73 20 74 6f 20 66 75 6e 63 74 69 6f se.of.symbol.resolves.to.functio
3a260 6e 20 60 66 75 6e 63 61 6c 6c 27 73 2e 20 20 52 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 66 n.`funcall's...Return.value.of.f
3a280 75 6e 63 74 69 6f 6e 20 4d 55 53 54 0a 62 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 65 78 65 unction.MUST.be.string.to.be.exe
3a2a0 63 75 74 65 64 20 61 73 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d cuted.as.command."...(let.((comm
3a2c0 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 6a 65 63 and.(plist-get.(alist-get.projec
3a2e0 74 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 t-type.projectile-project-types)
3a300 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 .command-type))).....(cond......
3a320 28 28 6e 6f 74 20 63 6f 6d 6d 61 6e 64 29 20 6e 69 6c 29 0a 20 20 20 20 20 28 28 73 74 72 69 6e ((not.command).nil)......((strin
3a340 67 70 20 63 6f 6d 6d 61 6e 64 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 28 28 66 75 6e 63 gp.command).command)......((func
3a360 74 69 6f 6e 70 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 tionp.command).......(if.(fbound
3a380 70 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 73 p.command)...........(funcall.(s
3a3a0 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 ymbol-function.command))))......
3a3c0 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 20 76 61 6c 75 65 20 66 6f 72 3a 20 (t.......(error."The.value.for:.
3a3e0 25 73 20 69 6e 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 3a 20 25 73 20 77 61 73 20 6e 65 69 74 68 %s.in.project-type:.%s.was.neith
3a400 65 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 20 61 20 73 74 72 69 6e 67 22 20 63 6f 6d 6d er.a.function.nor.a.string".comm
3a420 61 6e 64 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 29 0a 0a 28 64 65 66 and-type.project-type)))))..(def
3a440 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6e 66 69 67 75 72 65 2d un.projectile-default-configure-
3a460 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 command.(project-type)..."Retrie
3a480 76 65 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 ve.default.configure.command.for
3a4a0 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 .PROJECT-TYPE."...(projectile-de
3a4c0 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 fault-generic-command.project-ty
3a4e0 70 65 20 27 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 pe.'configure-command))..(defun.
3a500 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 projectile-default-compilation-c
3a520 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 ommand.(project-type)..."Retriev
3a540 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f e.default.compilation.command.fo
3a560 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 r.PROJECT-TYPE."...(projectile-d
3a580 65 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 efault-generic-command.project-t
3a5a0 79 70 65 20 27 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 ype.'compile-command))..(defun.p
3a5c0 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 rojectile-default-compilation-di
3a5e0 72 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 r.(project-type)..."Retrieve.def
3a600 61 75 6c 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 50 ault.compilation.directory.for.P
3a620 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 ROJECT-TYPE."...(projectile-defa
3a640 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 ult-generic-command.project-type
3a660 20 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a .'compilation-dir))..(defun.proj
3a680 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f ectile-default-test-command.(pro
3a6a0 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 74 ject-type)..."Retrieve.default.t
3a6c0 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 est.command.for.PROJECT-TYPE."..
3a6e0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d .(projectile-default-generic-com
3a700 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 29 mand.project-type.'test-command)
3a720 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 69 6e 73 )..(defun.projectile-default-ins
3a740 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 tall-command.(project-type)..."R
3a760 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 etrieve.default.install.command.
3a780 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 for.PROJECT-TYPE."...(projectile
3a7a0 2d 64 65 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 -default-generic-command.project
3a7c0 2d 74 79 70 65 20 27 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e -type.'install-command))..(defun
3a7e0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 70 61 63 6b 61 67 65 2d 63 6f 6d 6d .projectile-default-package-comm
3a800 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 and.(project-type)..."Retrieve.d
3a820 65 66 61 75 6c 74 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 50 52 4f 4a 45 efault.package.command.for.PROJE
3a840 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d CT-TYPE."...(projectile-default-
3a860 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 61 generic-command.project-type.'pa
3a880 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 ckage-command))..(defun.projecti
3a8a0 6c 65 2d 64 65 66 61 75 6c 74 2d 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d le-default-run-command.(project-
3a8c0 74 79 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 72 75 6e 20 63 6f type)..."Retrieve.default.run.co
3a8e0 6d 6d 61 6e 64 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 72 6f 6a mmand.for.PROJECT-TYPE."...(proj
3a900 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 70 ectile-default-generic-command.p
3a920 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 75 6e 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 roject-type.'run-command))..(def
3a940 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 un.projectile-configure-command.
3a960 28 63 6f 6d 70 69 6c 65 2d 64 69 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 63 6f (compile-dir)..."Retrieve.the.co
3a980 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c 45 2d 44 49 52 2e nfigure.command.for.COMPILE-DIR.
3a9a0 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 6c 69 6b 65 ..The.command.is.determined.like
3a9c0 20 74 68 69 73 3a 0a 0a 2d 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 .this:..-.first.we.check.`projec
3a9e0 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 tile-configure-cmd-map'.for.the.
3aa00 6c 61 73 74 0a 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 last.configure.command.that.was.
3aa20 69 6e 76 6f 6b 65 64 20 6f 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 invoked.on.the.project..-.then.w
3aa40 65 20 63 68 65 63 6b 20 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d e.check.for.`projectile-project-
3aa60 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 configure-cmd'.supplied.via..dir
3aa80 2d 6c 6f 63 61 6c 73 2e 65 6c 0a 0a 2d 20 66 69 6e 61 6c 6c 79 20 77 65 20 63 68 65 63 6b 20 66 -locals.el..-.finally.we.check.f
3aaa0 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 or.the.default.configure.command
3aac0 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 20 6f 66 20 74 68 61 74 20 74 79 70 65 22 0a 20 20 28 .for.a.project.of.that.type"...(
3aae0 6f 72 20 28 67 65 74 68 61 73 68 20 63 6f 6d 70 69 6c 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 or.(gethash.compile-dir.projecti
3ab00 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f 6a le-configure-cmd-map).......proj
3ab20 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 0a 20 20 20 ectile-project-configure-cmd....
3ab40 20 20 20 28 6c 65 74 20 28 28 63 6d 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 28 70 72 6f ...(let.((cmd-format-string.(pro
3ab60 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e jectile-default-configure-comman
3ab80 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 d.(projectile-project-type))))..
3aba0 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6d 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 0a 20 .......(when.cmd-format-string..
3abc0 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 63 6d 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 .........(format.cmd-format-stri
3abe0 6e 67 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 20 63 6f 6d ng.(projectile-project-root).com
3ac00 70 69 6c 65 2d 64 69 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 pile-dir)))))..(defun.projectile
3ac20 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 6f 6d 70 69 6c -compilation-buffer-name.(compil
3ac40 61 74 69 6f 6e 2d 6d 6f 64 65 29 0a 20 20 22 4d 65 61 6e 74 20 74 6f 20 62 65 20 75 73 65 64 20 ation-mode)..."Meant.to.be.used.
3ac60 66 6f 72 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 2d 66 75 6e for.`compilation-buffer-name-fun
3ac80 63 74 69 6f 6e 60 2e 0a 41 72 67 75 6d 65 6e 74 20 43 4f 4d 50 49 4c 41 54 49 4f 4e 2d 4d 4f 44 ction`..Argument.COMPILATION-MOD
3aca0 45 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 E.is.the.name.of.the.major.mode.
3acc0 75 73 65 64 20 66 6f 72 20 74 68 65 0a 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 2e used.for.the.compilation.buffer.
3ace0 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 64 6f 77 6e 63 61 73 65 20 63 6f 6d 70 69 6c "...(concat."*".(downcase.compil
3ad00 61 74 69 6f 6e 2d 6d 6f 64 65 29 20 22 2a 22 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 ation-mode)."*"...........(if.(p
3ad20 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 20 28 63 6f 6e 63 61 74 20 22 3c 22 rojectile-project-p).(concat."<"
3ad40 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 20 22 3e 22 29 20 .(projectile-project-name).">").
3ad60 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 "")))..(defun.projectile-current
3ad80 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 28 29 0a 20 20 22 4d 65 61 6e 74 20 74 6f -project-buffer-p.()..."Meant.to
3ada0 20 62 65 20 75 73 65 64 20 66 6f 72 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 61 76 65 2d 62 .be.used.for.`compilation-save-b
3adc0 75 66 66 65 72 73 2d 70 72 65 64 69 63 61 74 65 60 2e 0a 54 68 69 73 20 69 6e 64 69 63 61 74 65 uffers-predicate`..This.indicate
3ade0 73 20 77 68 65 74 68 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 s.whether.the.current.buffer.is.
3ae00 69 6e 20 74 68 65 20 73 61 6d 65 20 70 72 6f 6a 65 63 74 20 61 73 20 74 68 65 20 63 75 72 72 65 in.the.same.project.as.the.curre
3ae20 6e 74 0a 77 69 6e 64 6f 77 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 74 75 72 6e 69 6e 67 20 74 nt.window.(including.returning.t
3ae40 72 75 65 20 69 66 20 6e 65 69 74 68 65 72 20 69 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 29 2e rue.if.neither.is.in.a.project).
3ae60 22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 "...(let.((root.(with-current-bu
3ae80 66 66 65 72 20 28 77 69 6e 64 6f 77 2d 62 75 66 66 65 72 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 ffer.(window-buffer).(projectile
3aea0 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 72 -project-root)))).....(or.(not.r
3aec0 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 oot).........(projectile-project
3aee0 2d 62 75 66 66 65 72 2d 70 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 72 6f 6f 74 29 -buffer-p.(current-buffer).root)
3af00 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 )))..(defun.projectile-compilati
3af20 6f 6e 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 70 69 6c 65 2d 64 69 72 29 0a 20 20 22 52 65 74 72 on-command.(compile-dir)..."Retr
3af40 69 65 76 65 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 ieve.the.compilation.command.for
3af60 20 43 4f 4d 50 49 4c 45 2d 44 49 52 2e 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 .COMPILE-DIR...The.command.is.de
3af80 74 65 72 6d 69 6e 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 2d 20 66 69 72 73 74 20 77 65 20 termined.like.this:..-.first.we.
3afa0 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d check.`projectile-compilation-cm
3afc0 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 63 6f 6d 70 69 6c 65 20 63 6f 6d 6d d-map'.for.the.last.compile.comm
3afe0 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b 65 64 20 6f 6e 20 74 68 65 20 70 72 6f 6a and.that.was.invoked.on.the.proj
3b000 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 60 70 72 6f 6a 65 63 ect..-.then.we.check.for.`projec
3b020 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 27 20 73 75 tile-project-compilation-cmd'.su
3b040 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 0a 0a 2d 20 66 69 6e pplied.via..dir-locals.el..-.fin
3b060 61 6c 6c 79 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f ally.we.check.for.the.default.co
3b080 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 20 mpilation.command.for.a.project.
3b0a0 6f 66 20 74 68 61 74 20 74 79 70 65 22 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 63 6f 6d of.that.type"...(or.(gethash.com
3b0c0 70 69 6c 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d pile-dir.projectile-compilation-
3b0e0 63 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 cmd-map).......projectile-projec
3b100 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 t-compilation-cmd.......(project
3b120 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6f 6d 6d 61 6e 64 20 ile-default-compilation-command.
3b140 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 0a 28 64 (projectile-project-type))))..(d
3b160 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f efun.projectile-test-command.(co
3b180 6d 70 69 6c 65 2d 64 69 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 74 65 73 74 20 mpile-dir)..."Retrieve.the.test.
3b1a0 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c 45 2d 44 49 52 2e 0a 0a 54 68 65 20 63 6f command.for.COMPILE-DIR...The.co
3b1c0 6d 6d 61 6e 64 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a mmand.is.determined.like.this:..
3b1e0 2d 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 -.first.we.check.`projectile-tes
3b200 74 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 74 65 73 74 20 63 6f 6d t-cmd-map'.for.the.last.test.com
3b220 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b 65 64 20 6f 6e 20 74 68 65 20 70 72 6f mand.that.was.invoked.on.the.pro
3b240 6a 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 60 70 72 6f 6a 65 ject..-.then.we.check.for.`proje
3b260 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 63 6d 64 27 20 73 75 70 70 6c 69 65 64 ctile-project-test-cmd'.supplied
3b280 0a 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 0a 0a 2d 20 66 69 6e 61 6c 6c 79 20 77 .via..dir-locals.el..-.finally.w
3b2a0 65 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 63 6f 6d e.check.for.the.default.test.com
3b2c0 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 20 6f 66 20 74 68 61 74 20 74 79 70 65 22 mand.for.a.project.of.that.type"
3b2e0 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 63 6f 6d 70 69 6c 65 2d 64 69 72 20 70 72 6f 6a ...(or.(gethash.compile-dir.proj
3b300 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 ectile-test-cmd-map).......proje
3b320 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 ctile-project-test-cmd.......(pr
3b340 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 28 70 ojectile-default-test-command.(p
3b360 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 0a 28 64 65 66 rojectile-project-type))))..(def
3b380 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 63 un.projectile-install-command.(c
3b3a0 6f 6d 70 69 6c 65 2d 64 69 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 69 6e 73 74 ompile-dir)..."Retrieve.the.inst
3b3c0 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c 45 2d 44 49 52 2e 0a 0a 54 68 all.command.for.COMPILE-DIR...Th
3b3e0 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 6c 69 6b 65 20 74 68 69 e.command.is.determined.like.thi
3b400 73 3a 0a 0a 2d 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 s:..-.first.we.check.`projectile
3b420 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 69 -install-cmd-map'.for.the.last.i
3b440 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b 65 64 20 nstall.command.that.was.invoked.
3b460 6f 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 65 20 63 68 65 63 6b 20 on.the.project..-.then.we.check.
3b480 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 73 74 61 6c 6c 2d for.`projectile-project-install-
3b4a0 63 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c cmd'.supplied.via..dir-locals.el
3b4c0 0a 0a 2d 20 66 69 6e 61 6c 6c 79 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 ..-.finally.we.check.for.the.def
3b4e0 61 75 6c 74 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 ault.install.command.for.a.proje
3b500 63 74 20 6f 66 20 74 68 61 74 20 74 79 70 65 22 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 ct.of.that.type"...(or.(gethash.
3b520 63 6f 6d 70 69 6c 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 63 compile-dir.projectile-install-c
3b540 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 md-map).......projectile-project
3b560 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 -install-cmd.......(projectile-d
3b580 65 66 61 75 6c 74 2d 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 efault-install-command.(projecti
3b5a0 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a le-project-type))))..(defun.proj
3b5c0 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 70 69 6c 65 2d ectile-package-command.(compile-
3b5e0 64 69 72 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 70 61 63 6b 61 67 65 20 63 6f 6d dir)..."Retrieve.the.package.com
3b600 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c 45 2d 44 49 52 2e 0a 0a 54 68 65 20 63 6f 6d 6d 61 mand.for.COMPILE-DIR...The.comma
3b620 6e 64 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 2d 20 66 nd.is.determined.like.this:..-.f
3b640 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 67 61 irst.we.check.`projectile-packga
3b660 67 65 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 69 6e 73 74 61 6c 6c ge-cmd-map'.for.the.last.install
3b680 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b 65 64 20 6f 6e 20 74 68 65 .command.that.was.invoked.on.the
3b6a0 20 70 72 6f 6a 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 60 70 .project..-.then.we.check.for.`p
3b6c0 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 61 63 6b 61 67 65 2d 63 6d 64 27 20 73 rojectile-project-package-cmd'.s
3b6e0 75 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 0a 0a 2d 20 66 69 upplied.via..dir-locals.el..-.fi
3b700 6e 61 6c 6c 79 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 nally.we.check.for.the.default.p
3b720 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 20 6f 66 20 ackage.command.for.a.project.of.
3b740 74 68 61 74 20 74 79 70 65 22 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 63 6f 6d 70 69 6c that.type"...(or.(gethash.compil
3b760 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 63 6d 64 2d 6d 61 70 e-dir.projectile-package-cmd-map
3b780 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 61 63 6b 61 ).......projectile-project-packa
3b7a0 67 65 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 ge-cmd.......(projectile-default
3b7c0 2d 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f -package-command.(projectile-pro
3b7e0 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ject-type))))..(defun.projectile
3b800 2d 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 70 69 6c 65 2d 64 69 72 29 0a 20 20 22 52 65 -run-command.(compile-dir)..."Re
3b820 74 72 69 65 76 65 20 74 68 65 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 trieve.the.run.command.for.COMPI
3b840 4c 45 2d 44 49 52 2e 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 64 65 74 65 72 6d 69 6e LE-DIR...The.command.is.determin
3b860 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 2d 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 ed.like.this:..-.first.we.check.
3b880 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 `projectile-run-cmd-map'.for.the
3b8a0 20 6c 61 73 74 0a 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b .last.run.command.that.was.invok
3b8c0 65 64 20 6f 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 0a 2d 20 74 68 65 6e 20 77 65 20 63 68 65 ed.on.the.project..-.then.we.che
3b8e0 63 6b 20 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 75 6e 2d 63 ck.for.`projectile-project-run-c
3b900 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 0a md'.supplied.via..dir-locals.el.
3b920 0a 2d 20 66 69 6e 61 6c 6c 79 20 77 65 20 63 68 65 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 .-.finally.we.check.for.the.defa
3b940 75 6c 74 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 20 6f 66 ult.run.command.for.a.project.of
3b960 20 74 68 61 74 20 74 79 70 65 22 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 63 6f 6d 70 69 .that.type"...(or.(gethash.compi
3b980 6c 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6d 64 2d 6d 61 70 29 0a 20 le-dir.projectile-run-cmd-map)..
3b9a0 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 75 6e 2d 63 6d 64 0a .....projectile-project-run-cmd.
3b9c0 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 72 75 6e 2d 63 6f ......(projectile-default-run-co
3b9e0 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 mmand.(projectile-project-type))
3ba00 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 64 2d 63 6f 6d 6d 61 ))..(defun.projectile-read-comma
3ba20 6e 64 20 28 70 72 6f 6d 70 74 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 22 41 64 61 70 74 65 64 20 66 nd.(prompt.command)..."Adapted.f
3ba40 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 rom.the.function.`compilation-re
3ba60 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 70 69 6c 65 2d 68 ad-command'."...(let.((compile-h
3ba80 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 65 74 63 68 20 74 68 65 20 63 6f 6d istory..........;;.fetch.the.com
3baa0 6d 61 6e 64 20 68 69 73 74 6f 72 79 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f mand.history.for.the.current.pro
3bac0 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 65 6c 65 6d 65 6e 74 73 20 28 70 72 ject..........(ring-elements.(pr
3bae0 6f 6a 65 63 74 69 6c 65 2d 2d 67 65 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 28 70 ojectile--get-command-history.(p
3bb00 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 29 0a 20 20 20 20 rojectile-acquire-root))))).....
3bb20 28 72 65 61 64 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6d 70 74 20 63 6f 6d 6d 61 (read-shell-command.prompt.comma
3bb40 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 nd.........................(if.(
3bb60 65 71 75 61 6c 20 28 63 61 72 20 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f 72 79 29 20 63 6f 6d 6d equal.(car.compile-history).comm
3bb80 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 and)............................
3bba0 20 27 28 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f 72 79 20 2e 20 31 29 0a 20 20 20 20 20 20 20 20 .'(compile-history...1).........
3bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f ..................'compile-histo
3bbe0 72 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c ry))))..(defun.projectile-compil
3bc00 61 74 69 6f 6e 2d 64 69 72 20 28 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 74 68 65 20 63 6f 6d ation-dir.()..."Retrieve.the.com
3bc20 70 69 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 74 68 69 73 20 70 72 6f 6a pilation.directory.for.this.proj
3bc40 65 63 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 ect."...(let*.((project-root.(pr
3bc60 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 ojectile-acquire-root)).........
3bc80 20 28 74 79 70 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 .(type.(projectile-project-type.
3bca0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 2d 64 69 project-root))..........(comp-di
3bcc0 72 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 r.(or.projectile-project-compila
3bce0 74 69 6f 6e 2d 64 69 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 tion-dir........................
3bd00 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e .(projectile-default-compilation
3bd20 2d 64 69 72 20 74 79 70 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 63 6f 6d 70 2d 64 69 72 0a 20 -dir.type)))).....(if.comp-dir..
3bd40 20 20 20 20 20 20 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 28 .......(file-truename..........(
3bd60 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 70 concat.(file-name-as-directory.p
3bd80 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 roject-root)..................(f
3bda0 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 63 6f 6d 70 2d 64 69 72 29 29 ile-name-as-directory.comp-dir))
3bdc0 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 ).......project-root)))..(defun.
3bde0 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 28 61 projectile-maybe-read-command.(a
3be00 72 67 20 64 65 66 61 75 6c 74 2d 63 6d 64 20 70 72 6f 6d 70 74 29 0a 20 20 22 50 72 6f 6d 70 74 rg.default-cmd.prompt)..."Prompt
3be20 20 75 73 65 72 20 66 6f 72 20 63 6f 6d 6d 61 6e 64 20 75 6e 6c 65 73 73 20 44 45 46 41 55 4c 54 .user.for.command.unless.DEFAULT
3be40 2d 43 4d 44 20 69 73 20 61 6e 20 45 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 69 -CMD.is.an.Elisp.function."...(i
3be60 66 20 28 61 6e 64 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 64 65 66 61 75 6c 74 2d 63 6d 64 29 f.(and.(or.(stringp.default-cmd)
3be80 20 28 6e 75 6c 6c 20 64 65 66 61 75 6c 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(null.default-cmd))............
3bea0 28 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 61 72 67 (or.compilation-read-command.arg
3bec0 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e )).......(projectile-read-comman
3bee0 64 20 70 72 6f 6d 70 74 20 64 65 66 61 75 6c 74 2d 63 6d 64 29 0a 20 20 20 20 64 65 66 61 75 6c d.prompt.default-cmd).....defaul
3bf00 74 2d 63 6d 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 t-cmd))..(defun.projectile-run-c
3bf20 6f 6d 70 69 6c 61 74 69 6f 6e 20 28 63 6d 64 20 26 6f 70 74 69 6f 6e 61 6c 20 75 73 65 2d 63 6f ompilation.(cmd.&optional.use-co
3bf40 6d 69 6e 74 2d 6d 6f 64 65 29 0a 20 20 22 52 75 6e 20 65 78 74 65 72 6e 61 6c 20 6f 72 20 45 6c mint-mode)..."Run.external.or.El
3bf60 69 73 70 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 43 4d 44 2e 22 0a 20 20 isp.compilation.command.CMD."...
3bf80 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 6d 64 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 (if.(functionp.cmd).......(funca
3bfa0 6c 6c 20 63 6d 64 29 0a 20 20 20 20 28 63 6f 6d 70 69 6c 65 20 63 6d 64 20 75 73 65 2d 63 6f 6d ll.cmd).....(compile.cmd.use-com
3bfc0 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d int-mode)))..(defvar.projectile-
3bfe0 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 28 6d 61 6b 65 2d 68 61 project-command-history.(make-ha
3c000 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 0a 20 20 22 54 68 65 20 68 69 sh-table.:test.'equal)..."The.hi
3c020 73 74 6f 72 79 20 6f 66 20 6c 61 73 74 20 65 78 65 63 75 74 65 64 20 70 72 6f 6a 65 63 74 20 63 story.of.last.executed.project.c
3c040 6f 6d 6d 61 6e 64 73 2c 20 70 65 72 20 70 72 6f 6a 65 63 74 2e 0a 0a 50 72 6f 6a 65 63 74 73 20 ommands,.per.project...Projects.
3c060 61 72 65 20 69 6e 64 65 78 65 64 20 62 79 20 74 68 65 69 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f are.indexed.by.their.project-roo
3c080 74 20 76 61 6c 75 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 t.value.")..(defun.projectile--g
3c0a0 65 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 et-command-history.(project-root
3c0c0 29 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 )...(or.(gethash.project-root.pr
3c0e0 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 ojectile-project-command-history
3c100 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 ).......(puthash.project-root...
3c120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 72 69 6e 67 20 31 36 29 0a 20 20 20 20 .............(make-ring.16).....
3c140 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f ...........projectile-project-co
3c160 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 6f 6a mmand-history)))..(cl-defun.proj
3c180 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 0a 20 20 20 20 28 63 6f 6d ectile--run-project-cmd.....(com
3c1a0 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 26 6b 65 79 20 73 68 6f 77 2d 70 72 6f 6d 70 mand.command-map.&key.show-promp
3c1c0 74 20 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 73 61 76 65 2d 62 75 66 66 65 72 73 20 75 73 65 t.prompt-prefix.save-buffers.use
3c1e0 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 0a 20 20 22 52 75 6e 20 61 20 70 72 6f 6a 65 63 74 20 43 -comint-mode)..."Run.a.project.C
3c200 4f 4d 4d 41 4e 44 2c 20 74 79 70 69 63 61 6c 6c 79 20 61 20 74 65 73 74 2d 20 6f 72 20 63 6f 6d OMMAND,.typically.a.test-.or.com
3c220 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 43 61 63 68 65 20 74 68 65 20 43 4f 4d 4d 41 4e 44 pile.command...Cache.the.COMMAND
3c240 20 66 6f 72 20 6c 61 74 65 72 20 75 73 65 20 69 6e 73 69 64 65 20 74 68 65 20 68 61 73 68 2d 74 .for.later.use.inside.the.hash-t
3c260 61 62 6c 65 20 43 4f 4d 4d 41 4e 44 2d 4d 41 50 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 79 6f 75 27 able.COMMAND-MAP...Normally.you'
3c280 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e ll.be.prompted.for.a.compilation
3c2a0 20 63 6f 6d 6d 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 20 60 63 6f 6d 70 69 .command,.unless.variable.`compi
3c2c0 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f 75 20 63 61 6e 20 66 lation-read-command'...You.can.f
3c2e0 6f 72 63 65 20 74 68 65 20 70 72 6f 6d 70 74 0a 62 79 20 73 65 74 74 69 6e 67 20 53 48 4f 57 2d orce.the.prompt.by.setting.SHOW-
3c300 50 52 4f 4d 50 54 2e 20 20 54 68 65 20 70 72 6f 6d 70 74 20 77 69 6c 6c 20 62 65 20 70 72 65 66 PROMPT...The.prompt.will.be.pref
3c320 69 78 65 64 20 77 69 74 68 20 50 52 4f 4d 50 54 2d 50 52 45 46 49 58 2e 0a 0a 49 66 20 53 41 56 ixed.with.PROMPT-PREFIX...If.SAV
3c340 45 2d 42 55 46 46 45 52 53 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 73 61 76 65 20 61 6c 6c 20 70 72 E-BUFFERS.is.non-nil.save.all.pr
3c360 6f 6a 65 63 74 69 6c 65 20 62 75 66 66 65 72 73 20 62 65 66 6f 72 65 0a 72 75 6e 6e 69 6e 67 20 ojectile.buffers.before.running.
3c380 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 54 68 65 20 63 6f 6d 6d 61 6e 64 20 61 63 74 75 61 6c the.command...The.command.actual
3c3a0 6c 79 20 72 75 6e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 ly.run.is.returned."...(let*.((p
3c3c0 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d roject-root.(projectile-project-
3c3e0 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f root))..........(default-directo
3c400 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 ry.(projectile-compilation-dir))
3c420 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d ..........(command.(projectile-m
3c440 61 79 62 65 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 73 68 6f 77 2d 70 72 6f 6d 70 74 0a 20 20 aybe-read-command.show-prompt...
3c460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 ...............command..........
3c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c4c0 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 ........prompt-prefix)).........
3c4e0 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f .compilation-buffer-name-functio
3c500 6e 0a 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 61 76 65 2d 62 75 66 66 n..........compilation-save-buff
3c520 65 72 73 2d 70 72 65 64 69 63 61 74 65 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6d 6d 61 6e 64 ers-predicate).....(when.command
3c540 2d 6d 61 70 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 64 65 66 61 75 6c 74 2d 64 69 72 65 -map.......(puthash.default-dire
3c560 63 74 6f 72 79 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 29 0a 20 20 20 20 20 ctory.command.command-map)......
3c580 20 28 6c 65 74 20 28 28 68 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 65 74 2d 63 6f .(let.((hist.(projectile--get-co
3c5a0 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 mmand-history.project-root)))...
3c5c0 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 ......(cond..........((eq.projec
3c5e0 74 69 6c 65 2d 63 6d 64 2d 68 69 73 74 2d 69 67 6e 6f 72 65 64 75 70 73 20 74 29 0a 20 20 20 20 tile-cmd-hist-ignoredups.t).....
3c600 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 28 63 61 72 2d 73 61 66 65 ......(unless.(string=.(car-safe
3c620 20 28 72 69 6e 67 2d 65 6c 65 6d 65 6e 74 73 20 68 69 73 74 29 29 20 63 6f 6d 6d 61 6e 64 29 0a .(ring-elements.hist)).command).
3c640 20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 69 6e 73 65 72 74 20 68 69 73 74 20 63 6f ............(ring-insert.hist.co
3c660 6d 6d 61 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 74 69 6c mmand)))..........((eq.projectil
3c680 65 2d 63 6d 64 2d 68 69 73 74 2d 69 67 6e 6f 72 65 64 75 70 73 20 27 65 72 61 73 65 29 0a 20 20 e-cmd-hist-ignoredups.'erase)...
3c6a0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 64 78 20 28 72 69 6e 67 2d 6d 65 6d 62 65 72 20 ........(let.((idx.(ring-member.
3c6c0 68 69 73 74 20 63 6f 6d 6d 61 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 hist.command))).............(whi
3c6e0 6c 65 20 69 64 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 72 65 6d 6f 76 le.idx...............(ring-remov
3c700 65 20 68 69 73 74 20 69 64 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 e.hist.idx)...............(setq.
3c720 69 64 78 20 28 72 69 6e 67 2d 6d 65 6d 62 65 72 20 68 69 73 74 20 63 6f 6d 6d 61 6e 64 29 29 29 idx.(ring-member.hist.command)))
3c740 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 69 6e 73 65 72 74 20 68 69 73 74 20 63 6f )...........(ring-insert.hist.co
3c760 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 72 69 6e 67 2d 69 6e 73 65 72 74 mmand))..........(t.(ring-insert
3c780 20 68 69 73 74 20 63 6f 6d 6d 61 6e 64 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 61 76 .hist.command))))).....(when.sav
3c7a0 65 2d 62 75 66 66 65 72 73 0a 20 20 20 20 20 20 28 73 61 76 65 2d 73 6f 6d 65 2d 62 75 66 66 65 e-buffers.......(save-some-buffe
3c7c0 72 73 20 28 6e 6f 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 61 73 6b 2d 61 62 6f 75 74 2d 73 61 rs.(not.compilation-ask-about-sa
3c7e0 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 ve)..........................(la
3c800 6d 62 64 61 20 28 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 mbda.().........................
3c820 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 ...(projectile-project-buffer-p.
3c840 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (current-buffer)................
3c860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c880 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 77 .........project-root)))).....(w
3c8a0 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 65 72 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 hen.projectile-per-project-compi
3c8c0 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 69 6c lation-buffer.......(setq.compil
3c8e0 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 70 72 6f ation-buffer-name-function.#'pro
3c900 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 jectile-compilation-buffer-name)
3c920 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 61 76 65 2d 62 75 .......(setq.compilation-save-bu
3c940 66 66 65 72 73 2d 70 72 65 64 69 63 61 74 65 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 ffers-predicate.#'projectile-cur
3c960 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 29 29 0a 20 20 20 20 28 75 6e 6c rent-project-buffer-p)).....(unl
3c980 65 73 73 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 65 66 61 75 6c 74 2d 64 69 ess.(file-directory-p.default-di
3c9a0 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 28 6d 6b 64 69 72 20 64 65 66 61 75 6c 74 2d 64 69 rectory).......(mkdir.default-di
3c9c0 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f rectory)).....(projectile-run-co
3c9e0 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 mpilation.command.use-comint-mod
3ca00 65 29 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f e).....command))..(defcustom.pro
3ca20 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 jectile-configure-use-comint-mod
3ca40 65 20 6e 69 6c 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 e.nil..."Make.the.output.buffer.
3ca60 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 of.`projectile-configure-project
3ca80 27 20 69 6e 74 65 72 61 63 74 69 76 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 '.interactive."...:group.'projec
3caa0 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 tile...:type.'boolean...:package
3cac0 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 35 2e 30 22 29 -version.'(projectile..."2.5.0")
3cae0 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 )..(defcustom.projectile-compile
3cb00 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 4d 61 6b 65 20 74 68 65 -use-comint-mode.nil..."Make.the
3cb20 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f .output.buffer.of.`projectile-co
3cb40 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 27 20 69 6e 74 65 72 61 63 74 69 76 65 2e 22 0a 20 20 3a mpile-project'.interactive."...:
3cb60 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 group.'projectile...:type.'boole
3cb80 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 an...:package-version.'(projecti
3cba0 6c 65 20 2e 20 22 32 2e 35 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 le..."2.5.0"))..(defcustom.proje
3cbc0 63 74 69 6c 65 2d 74 65 73 74 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 6e 69 6c 0a 20 ctile-test-use-comint-mode.nil..
3cbe0 20 22 4d 61 6b 65 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 6f 66 20 60 70 72 6f ."Make.the.output.buffer.of.`pro
3cc00 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 27 20 69 6e 74 65 72 61 63 74 69 76 jectile-test-project'.interactiv
3cc20 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 e."...:group.'projectile...:type
3cc40 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 .'boolean...:package-version.'(p
3cc60 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 35 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f rojectile..."2.5.0"))..(defcusto
3cc80 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d m.projectile-install-use-comint-
3cca0 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 4d 61 6b 65 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 mode.nil..."Make.the.output.buff
3ccc0 65 72 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 er.of.`projectile-install-projec
3cce0 74 27 20 69 6e 74 65 72 61 63 74 69 76 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 t'.interactive."...:group.'proje
3cd00 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 ctile...:type.'boolean...:packag
3cd20 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 35 2e 30 22 e-version.'(projectile..."2.5.0"
3cd40 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 ))..(defcustom.projectile-packag
3cd60 65 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 6e 69 6c 0a 20 20 22 4d 61 6b 65 20 74 68 e-use-comint-mode.nil..."Make.th
3cd80 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 e.output.buffer.of.`projectile-p
3cda0 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 27 20 69 6e 74 65 72 61 63 74 69 76 65 2e 22 0a 20 20 ackage-project'.interactive."...
3cdc0 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c :group.'projectile...:type.'bool
3cde0 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 ean...:package-version.'(project
3ce00 69 6c 65 20 2e 20 22 32 2e 35 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a ile..."2.5.0"))..(defcustom.proj
3ce20 65 63 74 69 6c 65 2d 72 75 6e 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 6e 69 6c 0a 20 ectile-run-use-comint-mode.nil..
3ce40 20 22 4d 61 6b 65 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 6f 66 20 60 70 72 6f ."Make.the.output.buffer.of.`pro
3ce60 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 27 20 69 6e 74 65 72 61 63 74 69 76 65 jectile-run-project'.interactive
3ce80 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 ."...:group.'projectile...:type.
3cea0 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 'boolean...:package-version.'(pr
3cec0 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 35 2e 30 22 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f ojectile..."2.5.0"))..;;;###auto
3cee0 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 load.(defun.projectile-configure
3cf00 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 52 75 6e 20 70 72 6f 6a 65 63 74 20 63 6f -project.(arg)..."Run.project.co
3cf20 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 79 6f 75 27 6c nfigure.command...Normally.you'l
3cf40 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 l.be.prompted.for.a.compilation.
3cf60 63 6f 6d 6d 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 20 60 63 6f 6d 70 69 6c command,.unless.variable.`compil
3cf80 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f 75 20 63 61 6e 20 66 6f ation-read-command'...You.can.fo
3cfa0 72 63 65 20 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 rce.the.prompt.with.a.prefix.ARG
3cfc0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 ."...(interactive."P")...(let.((
3cfe0 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f command.(projectile-configure-co
3d000 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 mmand.(projectile-compilation-di
3d020 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 28 69 66 20 28 70 r))).........(command-map.(if.(p
3d040 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 rojectile--cache-project-command
3d060 73 2d 70 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 2d 6d 61 s-p).projectile-configure-cmd-ma
3d080 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 p))).....(projectile--run-projec
3d0a0 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 20 20 20 20 t-cmd.command.command-map.......
3d0c0 20 20 20 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 73 68 6f 77 ...........................:show
3d0e0 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -prompt.arg.....................
3d100 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 22 43 6f 6e .............:prompt-prefix."Con
3d120 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 figure.command:."...............
3d140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 76 65 2d 62 75 66 66 65 72 73 ...................:save-buffers
3d160 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .t..............................
3d180 20 20 20 20 3a 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d ....:use-comint-mode.projectile-
3d1a0 63 6f 6e 66 69 67 75 72 65 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 3b 3b configure-use-comint-mode)))..;;
3d1c0 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 ;###autoload.(defun.projectile-c
3d1e0 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 52 75 6e 20 70 72 6f 6a ompile-project.(arg)..."Run.proj
3d200 65 63 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f 72 6d 61 6c ect.compilation.command...Normal
3d220 6c 79 20 79 6f 75 27 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 ly.you'll.be.prompted.for.a.comp
3d240 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 ilation.command,.unless.variable
3d260 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f .`compilation-read-command'...Yo
3d280 75 20 63 61 6e 20 66 6f 72 63 65 20 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 61 20 70 72 u.can.force.the.prompt.with.a.pr
3d2a0 65 66 69 78 20 41 52 47 2e 20 20 50 65 72 20 70 72 6f 6a 65 63 74 20 64 65 66 61 75 6c 74 20 63 efix.ARG...Per.project.default.c
3d2c0 6f 6d 6d 61 6e 64 20 63 61 6e 20 62 65 20 73 65 74 20 74 68 72 6f 75 67 68 0a 60 70 72 6f 6a 65 ommand.can.be.set.through.`proje
3d2e0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 27 2e 22 ctile-project-compilation-cmd'."
3d300 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 63 6f ...(interactive."P")...(let.((co
3d320 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6f mmand.(projectile-compilation-co
3d340 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 mmand.(projectile-compilation-di
3d360 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 28 69 66 20 28 70 r))).........(command-map.(if.(p
3d380 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 rojectile--cache-project-command
3d3a0 73 2d 70 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 2d s-p).projectile-compilation-cmd-
3d3c0 6d 61 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a map))).....(projectile--run-proj
3d3e0 65 63 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 20 20 ect-cmd.command.command-map.....
3d400 20 20 20 20 20 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 73 68 .............................:sh
3d420 6f 77 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ow-prompt.arg...................
3d440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 22 43 ...............:prompt-prefix."C
3d460 6f 6d 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ompile.command:."...............
3d480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 76 65 2d 62 75 66 66 65 72 73 ...................:save-buffers
3d4a0 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .t..............................
3d4c0 20 20 20 20 3a 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d ....:use-comint-mode.projectile-
3d4e0 63 6f 6d 70 69 6c 65 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 3b 3b 3b 23 compile-use-comint-mode)))..;;;#
3d500 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 ##autoload.(defun.projectile-tes
3d520 74 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 52 75 6e 20 70 72 6f 6a 65 63 74 20 74 t-project.(arg)..."Run.project.t
3d540 65 73 74 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 79 6f 75 27 6c 6c 20 62 65 est.command...Normally.you'll.be
3d560 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d .prompted.for.a.compilation.comm
3d580 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 20 60 63 6f 6d 70 69 6c 61 74 69 6f and,.unless.variable.`compilatio
3d5a0 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f 75 20 63 61 6e 20 66 6f 72 63 65 20 n-read-command'...You.can.force.
3d5c0 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 2e 22 0a 20 the.prompt.with.a.prefix.ARG."..
3d5e0 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d .(interactive."P")...(let.((comm
3d600 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 and.(projectile-test-command.(pr
3d620 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 29 0a 20 20 20 20 ojectile-compilation-dir))).....
3d640 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 ....(command-map.(if.(projectile
3d660 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 73 2d 70 29 20 70 72 6f 6a --cache-project-commands-p).proj
3d680 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a ectile-test-cmd-map))).....(proj
3d6a0 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 ectile--run-project-cmd.command.
3d6c0 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 command-map.....................
3d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 68 6f 77 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 .............:show-prompt.arg...
3d700 20 20 20 20 20 20 20 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 ...............................:
3d720 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 22 54 65 73 74 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 prompt-prefix."Test.command:."..
3d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3d760 3a 73 61 76 65 2d 62 75 66 66 65 72 73 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :save-buffers.t.................
3d780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 .................:use-comint-mod
3d7a0 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 e.projectile-test-use-comint-mod
3d7c0 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a e)))..;;;###autoload.(defun.proj
3d7e0 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 ectile-install-project.(arg)..."
3d800 52 75 6e 20 70 72 6f 6a 65 63 74 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f Run.project.install.command...No
3d820 72 6d 61 6c 6c 79 20 79 6f 75 27 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 rmally.you'll.be.prompted.for.a.
3d840 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 compilation.command,.unless.vari
3d860 61 62 6c 65 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e able.`compilation-read-command'.
3d880 20 20 59 6f 75 20 63 61 6e 20 66 6f 72 63 65 20 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 ..You.can.force.the.prompt.with.
3d8a0 61 20 70 72 65 66 69 78 20 41 52 47 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 a.prefix.ARG."...(interactive."P
3d8c0 22 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ")...(let.((command.(projectile-
3d8e0 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 install-command.(projectile-comp
3d900 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d ilation-dir))).........(command-
3d920 6d 61 70 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 map.(if.(projectile--cache-proje
3d940 63 74 2d 63 6f 6d 6d 61 6e 64 73 2d 70 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c ct-commands-p).projectile-instal
3d960 6c 2d 63 6d 64 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 l-cmd-map))).....(projectile--ru
3d980 6e 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 n-project-cmd.command.command-ma
3d9a0 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...............................
3d9c0 20 20 20 3a 73 68 6f 77 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...:show-prompt.arg.............
3d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 2d 70 72 65 .....................:prompt-pre
3da00 66 69 78 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 fix."Install.command:.".........
3da20 20 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 73 61 76 65 2d 62 .........................:save-b
3da40 75 66 66 65 72 73 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uffers.t........................
3da60 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 70 72 6f 6a 65 ..........:use-comint-mode.proje
3da80 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 ctile-install-use-comint-mode)))
3daa0 0a 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 6f 6a 65 63 74 69 ..;;;###autoload.(defun.projecti
3dac0 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 52 75 6e 20 le-package-project.(arg)..."Run.
3dae0 70 72 6f 6a 65 63 74 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f 72 6d 61 6c project.package.command...Normal
3db00 6c 79 20 79 6f 75 27 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 ly.you'll.be.prompted.for.a.comp
3db20 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 ilation.command,.unless.variable
3db40 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f .`compilation-read-command'...Yo
3db60 75 20 63 61 6e 20 66 6f 72 63 65 20 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 61 20 70 72 u.can.force.the.prompt.with.a.pr
3db80 65 66 69 78 20 41 52 47 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 efix.ARG."...(interactive."P")..
3dba0 20 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b .(let.((command.(projectile-pack
3dbc0 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 age-command.(projectile-compilat
3dbe0 69 6f 6e 2d 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 ion-dir))).........(command-map.
3dc00 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 (if.(projectile--cache-project-c
3dc20 6f 6d 6d 61 6e 64 73 2d 70 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 63 6d ommands-p).projectile-package-cm
3dc40 64 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 d-map))).....(projectile--run-pr
3dc60 6f 6a 65 63 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 oject-cmd.command.command-map...
3dc80 20 20 20 20 20 20 20 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 ...............................:
3dca0 73 68 6f 77 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 show-prompt.arg.................
3dcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 .................:prompt-prefix.
3dce0 22 50 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 "Package.command:.".............
3dd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 76 65 2d 62 75 66 66 65 .....................:save-buffe
3dd20 72 73 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rs.t............................
3dd40 20 20 20 20 20 20 3a 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 70 72 6f 6a 65 63 74 69 6c ......:use-comint-mode.projectil
3dd60 65 2d 70 61 63 6b 61 67 65 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 3b 3b e-package-use-comint-mode)))..;;
3dd80 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 ;###autoload.(defun.projectile-r
3dda0 75 6e 2d 70 72 6f 6a 65 63 74 20 28 61 72 67 29 0a 20 20 22 52 75 6e 20 70 72 6f 6a 65 63 74 20 un-project.(arg)..."Run.project.
3ddc0 72 75 6e 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 4e 6f 72 6d 61 6c 6c 79 20 79 6f 75 27 6c 6c 20 62 65 run.command...Normally.you'll.be
3dde0 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d .prompted.for.a.compilation.comm
3de00 61 6e 64 2c 20 75 6e 6c 65 73 73 0a 76 61 72 69 61 62 6c 65 20 60 63 6f 6d 70 69 6c 61 74 69 6f and,.unless.variable.`compilatio
3de20 6e 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 27 2e 20 20 59 6f 75 20 63 61 6e 20 66 6f 72 63 65 20 n-read-command'...You.can.force.
3de40 74 68 65 20 70 72 6f 6d 70 74 0a 77 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 2e 22 0a 20 the.prompt.with.a.prefix.ARG."..
3de60 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d .(interactive."P")...(let.((comm
3de80 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f and.(projectile-run-command.(pro
3dea0 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 29 29 0a 20 20 20 20 20 jectile-compilation-dir)))......
3dec0 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ...(command-map.(if.(projectile-
3dee0 2d 63 61 63 68 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 73 2d 70 29 20 70 72 6f 6a 65 -cache-project-commands-p).proje
3df00 63 74 69 6c 65 2d 72 75 6e 2d 63 6d 64 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 ctile-run-cmd-map))).....(projec
3df20 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 20 63 6f tile--run-project-cmd.command.co
3df40 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mmand-map.......................
3df60 20 20 20 20 20 20 20 20 20 20 20 3a 73 68 6f 77 2d 70 72 6f 6d 70 74 20 61 72 67 0a 20 20 20 20 ...........:show-prompt.arg.....
3df80 20 20 20 20 20 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 70 72 .............................:pr
3dfa0 6f 6d 70 74 2d 70 72 65 66 69 78 20 22 52 75 6e 20 63 6f 6d 6d 61 6e 64 3a 20 22 0a 20 20 20 20 ompt-prefix."Run.command:.".....
3dfc0 20 20 20 20 20 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 75 73 .............................:us
3dfe0 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 75 73 65 e-comint-mode.projectile-run-use
3e000 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a -comint-mode)))..;;;###autoload.
3e020 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 65 61 74 2d 6c 61 73 74 2d 63 6f (defun.projectile-repeat-last-co
3e040 6d 6d 61 6e 64 20 28 73 68 6f 77 2d 70 72 6f 6d 70 74 29 0a 20 20 22 52 75 6e 20 6c 61 73 74 20 mmand.(show-prompt)..."Run.last.
3e060 70 72 6f 6a 65 63 74 69 6c 65 20 65 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 45 78 projectile.external.command...Ex
3e080 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 ternal.commands.are:.`projectile
3e0a0 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 27 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 -configure-project',.`projectile
3e0c0 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 27 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 -compile-project',.`projectile-t
3e0e0 65 73 74 2d 70 72 6f 6a 65 63 74 27 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c est-project',.`projectile-instal
3e100 6c 2d 70 72 6f 6a 65 63 74 27 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d l-project',.`projectile-package-
3e120 70 72 6f 6a 65 63 74 27 2c 0a 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 project',.and.`projectile-run-pr
3e140 6f 6a 65 63 74 27 2e 0a 0a 49 66 20 74 68 65 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 oject'...If.the.prefix.argument.
3e160 53 48 4f 57 2d 50 52 4f 4d 50 54 20 69 73 20 6e 6f 6e 20 6e 69 6c 2c 20 74 68 65 20 63 6f 6d 6d SHOW-PROMPT.is.non.nil,.the.comm
3e180 61 6e 64 20 63 61 6e 20 62 65 20 65 64 69 74 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 and.can.be.edited."...(interacti
3e1a0 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 ve."P")...(let*.((project-root.(
3e1c0 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 projectile-acquire-root)).......
3e1e0 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ...(command-history.(projectile-
3e200 2d 67 65 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 70 72 6f 6a 65 63 74 2d 72 6f 6f -get-command-history.project-roo
3e220 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 63 61 72 2d 73 61 66 65 20 t))..........(command.(car-safe.
3e240 28 72 69 6e 67 2d 65 6c 65 6d 65 6e 74 73 20 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 29 29 (ring-elements.command-history))
3e260 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 2d 63 6f 6d )..........(compilation-read-com
3e280 6d 61 6e 64 20 73 68 6f 77 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 65 78 65 63 75 mand.show-prompt)..........execu
3e2a0 74 65 64 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 63 6f 6d 6d 61 6e 64 ted-command).....(unless.command
3e2c0 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 63 6f 6d 6d 61 6e 64 20 68 .......(user-error."No.command.h
3e2e0 61 73 20 62 65 65 6e 20 72 75 6e 20 79 65 74 20 66 6f 72 20 74 68 69 73 20 70 72 6f 6a 65 63 74 as.been.run.yet.for.this.project
3e300 22 29 29 0a 20 20 20 20 28 73 65 74 71 20 65 78 65 63 75 74 65 64 2d 63 6f 6d 6d 61 6e 64 0a 20 ")).....(setq.executed-command..
3e320 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 .........(projectile--run-projec
3e340 74 2d 63 6d 64 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-cmd.command...................
3e360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 .....................nil........
3e380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e3a0 3a 73 61 76 65 2d 62 75 66 66 65 72 73 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :save-buffers.t.................
3e3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 2d 70 .......................:prompt-p
3e3e0 72 65 66 69 78 20 22 45 78 65 63 75 74 65 20 63 6f 6d 6d 61 6e 64 3a 20 22 29 29 0a 20 20 20 20 refix."Execute.command:.")).....
3e400 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 63 6f 6d 6d 61 6e 64 20 65 78 65 63 75 74 65 (unless.(string=.command.execute
3e420 64 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 28 72 69 6e 67 2d 69 6e 73 65 72 74 20 63 6f d-command).......(ring-insert.co
3e440 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 65 78 65 63 75 74 65 64 2d 63 6f 6d 6d 61 6e 64 29 29 mmand-history.executed-command))
3e460 29 29 0a 0a 28 64 65 66 75 6e 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e 64 2d 66 69 6c 65 ))..(defun.compilation-find-file
3e480 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 -projectile-find-compilation-buf
3e4a0 66 65 72 20 28 6f 72 69 67 2d 66 75 6e 20 6d 61 72 6b 65 72 20 66 69 6c 65 6e 61 6d 65 20 64 69 fer.(orig-fun.marker.filename.di
3e4c0 72 65 63 74 6f 72 79 20 26 72 65 73 74 20 66 6f 72 6d 61 74 73 29 0a 20 20 22 41 64 76 69 63 65 rectory.&rest.formats)..."Advice
3e4e0 20 61 72 6f 75 6e 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e 64 2d 66 69 6c 65 2e 0a 57 .around.compilation-find-file..W
3e500 65 20 65 6e 68 61 6e 63 65 20 69 74 73 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 62 79 20 61 e.enhance.its.functionality.by.a
3e520 70 70 65 6e 64 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 64 ppending.the.current.project's.d
3e540 69 72 65 63 74 6f 72 69 65 73 0a 74 6f 20 69 74 73 20 73 65 61 72 63 68 20 70 61 74 68 2e 20 20 irectories.to.its.search.path...
3e560 54 68 69 73 20 77 61 79 20 77 68 65 6e 20 66 69 6c 65 6e 61 6d 65 73 20 69 6e 20 63 6f 6d 70 69 This.way.when.filenames.in.compi
3e580 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 73 20 63 61 6e 27 74 20 62 65 0a 66 6f 75 6e 64 20 62 79 lation.buffers.can't.be.found.by
3e5a0 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 6e 6f 72 6d 61 6c 20 6c 6f 67 69 63 20 74 68 65 79 .compilation's.normal.logic.they
3e5c0 20 61 72 65 20 73 65 61 72 63 68 65 64 20 66 6f 72 20 69 6e 20 70 72 6f 6a 65 63 74 0a 64 69 72 .are.searched.for.in.project.dir
3e5e0 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 3b 20 49 66 20 74 68 65 20 66 69 6c 65 20 61 6c 72 65 61 ectories."...;.If.the.file.alrea
3e600 64 79 20 65 78 69 73 74 73 2c 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 72 75 6e 6e 69 6e 67 20 dy.exists,.don't.bother.running.
3e620 74 68 65 20 65 78 74 72 61 20 6c 6f 67 69 63 20 61 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 the.extra.logic.as.the.project.d
3e640 69 72 65 63 74 6f 72 69 65 73 20 6d 69 67 68 74 20 62 65 20 6d 61 73 73 69 76 65 20 28 69 2e 65 irectories.might.be.massive.(i.e
3e660 2e 20 55 6e 72 65 61 6c 2d 73 69 7a 65 64 29 2e 0a 20 20 28 69 66 20 28 66 69 6c 65 2d 65 78 69 ..Unreal-sized)....(if.(file-exi
3e680 73 74 73 2d 70 20 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 6f 72 69 sts-p.filename).......(apply.ori
3e6a0 67 2d 66 75 6e 20 60 28 2c 6d 61 72 6b 65 72 20 2c 66 69 6c 65 6e 61 6d 65 20 2c 64 69 72 65 63 g-fun.`(,marker.,filename.,direc
3e6c0 74 6f 72 79 20 2c 40 66 6f 72 6d 61 74 73 29 29 0a 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 6f tory.,@formats))......(let*.((ro
3e6e0 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 ot.(projectile-project-root))...
3e700 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 61 72 63 68 2d 70 61 74 .........(compilation-search-pat
3e720 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 h.............(if.(projectile-pr
3e740 6f 6a 65 63 74 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 oject-p).................(append
3e760 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 20 28 6c 69 73 74 20 72 .compilation-search-path.(list.r
3e780 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 oot).........................(ma
3e7a0 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 pcar.(lambda.(f).(expand-file-na
3e7c0 6d 65 20 66 20 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me.f.root)).....................
3e7e0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d ............(projectile-current-
3e800 70 72 6f 6a 65 63 74 2d 64 69 72 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f project-dirs)))...............co
3e820 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 28 mpilation-search-path))).......(
3e840 61 70 70 6c 79 20 6f 72 69 67 2d 66 75 6e 20 60 28 2c 6d 61 72 6b 65 72 20 2c 66 69 6c 65 6e 61 apply.orig-fun.`(,marker.,filena
3e860 6d 65 20 2c 64 69 72 65 63 74 6f 72 79 20 2c 40 66 6f 72 6d 61 74 73 29 29 29 29 29 0a 0a 28 64 me.,directory.,@formats)))))..(d
3e880 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 efun.projectile-open-projects.()
3e8a0 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6f 70 65 6e 20 70 72 ..."Return.a.list.of.all.open.pr
3e8c0 6f 6a 65 63 74 73 2e 0a 41 6e 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 20 69 73 20 61 20 70 72 6f ojects..An.open.project.is.a.pro
3e8e0 6a 65 63 74 20 77 69 74 68 20 61 6e 79 20 6f 70 65 6e 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 ject.with.any.open.buffers."...(
3e900 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 28 64 65 6c 71 20 6e 69 6c 0a 20 20 20 20 20 20 20 delete-dups....(delq.nil........
3e920 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 20 ..(mapcar.(lambda.(buffer)......
3e940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 ..............(with-current-buff
3e960 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 er.buffer......................(
3e980 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 when-let*.((project-root.(projec
3e9a0 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 tile-project-root)))............
3e9c0 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 ............(when.(projectile-pr
3e9e0 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 2d 72 6f oject-buffer-p.buffer.project-ro
3ea00 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 62 ot)..........................(ab
3ea20 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 breviate-file-name.project-root)
3ea40 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 69 ))))..................(buffer-li
3ea60 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6d 6f st)))))..(defun.projectile--remo
3ea80 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 73 29 0a 20 20 ve-current-project.(projects)...
3eaa0 22 52 65 6d 6f 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 28 69 66 20 "Remove.the.current.project.(if.
3eac0 61 6e 79 29 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 50 52 4f 4a 45 43 54 53 2e 22 any).from.the.list.of.PROJECTS."
3eae0 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c ...(if-let*.((project.(projectil
3eb00 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 e-project-root))).......(project
3eb20 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 ile-difference.projects.........
3eb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 61 62 62 72 .....................(list.(abbr
3eb60 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 eviate-file-name.project))).....
3eb80 70 72 6f 6a 65 63 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d projects))..(defun.projectile--m
3eba0 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 74 6f 2d 65 6e 64 20 28 70 72 6f 6a ove-current-project-to-end.(proj
3ebc0 65 63 74 73 29 0a 20 20 22 4d 6f 76 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 28 69 ects)..."Move.current.project.(i
3ebe0 66 20 61 6e 79 29 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 6c 69 73 74 20 69 6e 20 74 68 65 f.any).to.the.end.of.list.in.the
3ec00 20 6c 69 73 74 20 6f 66 20 50 52 4f 4a 45 43 54 53 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 .list.of.PROJECTS."...(if-let*.(
3ec20 28 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f (project.(projectile-project-roo
3ec40 74 29 29 29 0a 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 28 70 72 6f 6a 65 t))).......(append........(proje
3ec60 63 74 69 6c 65 2d 2d 72 65 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 70 72 ctile--remove-current-project.pr
3ec80 6f 6a 65 63 74 73 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 61 62 62 72 65 76 69 61 74 65 ojects)........(list.(abbreviate
3eca0 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 70 72 6f 6a 65 63 -file-name.project))).....projec
3ecc0 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 ts))..(defun.projectile-known-pr
3ece0 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 6b 6e 6f 77 ojects.()..."Initialize.the.know
3ed00 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 0a 54 68 69 73 20 6d 69 67 68 74 20 70 6f 74 65 6e 74 69 61 n.projects...This.might.potentia
3ed20 6c 6c 79 20 63 6c 65 61 6e 20 75 70 20 72 65 64 75 6e 64 61 6e 74 20 70 72 6f 6a 65 63 74 73 20 lly.clean.up.redundant.projects.
3ed40 61 6e 64 20 64 69 73 63 6f 76 65 72 20 6e 65 77 20 6f 6e 65 73 20 69 66 0a 60 70 72 6f 6a 65 63 and.discover.new.ones.if.`projec
3ed60 74 69 6c 65 2d 61 75 74 6f 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 tile-auto-cleanup-known-projects
3ed80 27 20 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 64 69 73 63 6f 76 65 72 27 20 '.or.`projectile-auto-discover'.
3eda0 61 72 65 0a 65 6e 61 62 6c 65 64 2e 22 0a 20 20 3b 3b 20 6c 6f 61 64 20 74 68 65 20 6b 6e 6f 77 are.enabled."...;;.load.the.know
3edc0 6e 20 70 72 6f 6a 65 63 74 73 0a 20 20 28 75 6e 6c 65 73 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d n.projects...(unless.projectile-
3ede0 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c known-projects.....(projectile-l
3ee00 6f 61 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 28 77 68 65 6e 20 70 72 6f oad-known-projects))...(when.pro
3ee20 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 jectile-auto-cleanup-known-proje
3ee40 63 74 73 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f cts.....(projectile--cleanup-kno
3ee60 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 6f 6a 65 wn-projects))...(when.(and.proje
3ee80 63 74 69 6c 65 2d 61 75 74 6f 2d 64 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 ctile-auto-discover.projectile-p
3eea0 72 6f 6a 65 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 roject-search-path).....(project
3eec0 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d ile-discover-projects-in-search-
3eee0 70 61 74 68 29 29 0a 20 20 3b 3b 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b path))...;;.return.the.list.of.k
3ef00 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 0a 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e nown.projects...projectile-known
3ef20 2d 70 72 6f 6a 65 63 74 73 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 70 72 6f 6a 65 63 74 69 6c -projects)..(defalias.'projectil
3ef40 65 2d 2d 69 6e 69 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 27 70 72 6f 6a 65 63 74 69 e--init-known-projects.'projecti
3ef60 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 le-known-projects)..(defun.proje
3ef80 63 74 69 6c 65 2d 72 65 6c 65 76 61 6e 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 ctile-relevant-known-projects.()
3efa0 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 ..."Return.a.list.of.known.proje
3efc0 63 74 73 2e 0a 0a 49 74 20 66 61 63 74 6f 72 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 70 cts...It.factors.the.value.of.`p
3efe0 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 6f 6e 2d 73 77 69 rojectile-current-project-on-swi
3f000 74 63 68 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 tch'."...(let.((known-projects.(
3f020 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 projectile-known-projects)))....
3f040 20 28 70 63 61 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 .(pcase.projectile-current-proje
3f060 63 74 2d 6f 6e 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 28 27 72 65 6d 6f 76 65 20 28 70 72 6f ct-on-switch.......('remove.(pro
3f080 6a 65 63 74 69 6c 65 2d 2d 72 65 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 jectile--remove-current-project.
3f0a0 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 20 28 27 6d 6f 76 65 2d 74 6f known-projects)).......('move-to
3f0c0 2d 65 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 -end.(projectile--move-current-p
3f0e0 72 6f 6a 65 63 74 2d 74 6f 2d 65 6e 64 20 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 roject-to-end.known-projects))..
3f100 20 20 20 20 20 28 27 6b 65 65 70 20 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 29 0a 0a .....('keep.known-projects))))..
3f120 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 65 76 61 6e 74 2d 6f 70 65 6e 2d (defun.projectile-relevant-open-
3f140 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 projects.()..."Return.a.list.of.
3f160 6f 70 65 6e 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 70 65 6e 2d 70 72 open.projects."...(let.((open-pr
3f180 6f 6a 65 63 74 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 ojects.(projectile-open-projects
3f1a0 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 6e ))).....(pcase.projectile-curren
3f1c0 74 2d 70 72 6f 6a 65 63 74 2d 6f 6e 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 28 27 72 65 6d 6f t-project-on-switch.......('remo
3f1e0 76 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 ve.(projectile--remove-current-p
3f200 72 6f 6a 65 63 74 20 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 20 28 27 6d roject.open-projects)).......('m
3f220 6f 76 65 2d 74 6f 2d 65 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d 6f 76 65 2d 63 75 72 ove-to-end.(projectile--move-cur
3f240 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 74 6f 2d 65 6e 64 20 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 rent-project-to-end.open-project
3f260 73 29 29 0a 20 20 20 20 20 20 28 27 6b 65 65 70 20 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 s)).......('keep.open-projects))
3f280 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 ))..;;;###autoload.(defun.projec
3f2a0 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 tile-switch-project.(&optional.a
3f2c0 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 20 77 65 20 68 61 rg)..."Switch.to.a.project.we.ha
3f2e0 76 65 20 76 69 73 69 74 65 64 20 62 65 66 6f 72 65 2e 0a 49 6e 76 6f 6b 65 73 20 74 68 65 20 63 ve.visited.before..Invokes.the.c
3f300 6f 6d 6d 61 6e 64 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 ommand.referenced.by.`projectile
3f320 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 27 20 6f 6e 20 73 77 69 74 63 -switch-project-action'.on.switc
3f340 68 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 20 69 6e 76 6f 6b 65 73 20 60 70 72 h..With.a.prefix.ARG.invokes.`pr
3f360 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 27 20 69 6e 73 74 65 61 64 20 6f 66 0a 60 ojectile-commander'.instead.of.`
3f380 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e projectile-switch-project-action
3f3a0 2e 27 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 .'"...(interactive."P")...(let.(
3f3c0 28 70 72 6f 6a 65 63 74 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 65 76 61 6e 74 2d 6b (projects.(projectile-relevant-k
3f3e0 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 nown-projects))).....(if.project
3f400 73 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 s.........(projectile-completing
3f420 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 -read.........."Switch.to.projec
3f440 74 3a 20 22 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 20 3a 61 63 74 69 6f 6e 20 28 t:.".projects..........:action.(
3f460 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(project)................
3f480 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 62 ....(projectile-switch-project-b
3f4a0 79 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 20 61 72 67 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 y-name.project.arg))).......(use
3f4c0 72 2d 65 72 72 6f 72 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6b 6e 6f 77 6e 20 70 72 6f 6a r-error."There.are.no.known.proj
3f4e0 65 63 74 73 22 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e ects"))))..;;;###autoload.(defun
3f500 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 20 .projectile-switch-open-project.
3f520 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 (&optional.arg)..."Switch.to.a.p
3f540 72 6f 6a 65 63 74 20 77 65 20 68 61 76 65 20 63 75 72 72 65 6e 74 6c 79 20 6f 70 65 6e 65 64 2e roject.we.have.currently.opened.
3f560 0a 49 6e 76 6f 6b 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 66 65 72 65 6e 63 65 64 20 .Invokes.the.command.referenced.
3f580 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 by.`projectile-switch-project-ac
3f5a0 74 69 6f 6e 27 20 6f 6e 20 73 77 69 74 63 68 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 41 tion'.on.switch..With.a.prefix.A
3f5c0 52 47 20 69 6e 76 6f 6b 65 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 RG.invokes.`projectile-commander
3f5e0 27 20 69 6e 73 74 65 61 64 20 6f 66 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d '.instead.of.`projectile-switch-
3f600 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 2e 27 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 project-action.'"...(interactive
3f620 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 73 20 28 70 72 6f 6a 65 63 74 ."P")...(let.((projects.(project
3f640 69 6c 65 2d 72 65 6c 65 76 61 6e 74 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 ile-relevant-open-projects)))...
3f660 20 20 28 69 66 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 ..(if.projects.........(projecti
3f680 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 22 53 77 69 le-completing-read.........."Swi
3f6a0 74 63 68 20 74 6f 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 3a 20 22 20 70 72 6f 6a 65 63 74 73 0a tch.to.open.project:.".projects.
3f6c0 20 20 20 20 20 20 20 20 20 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 .........:action.(lambda.(projec
3f6e0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c t)....................(projectil
3f700 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 62 79 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 e-switch-project-by-name.project
3f720 20 61 72 67 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 65 72 65 .arg))).......(user-error."There
3f740 20 61 72 65 20 6e 6f 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 73 22 29 29 29 29 0a 0a 28 64 65 66 .are.no.open.projects"))))..(def
3f760 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 62 79 2d un.projectile-switch-project-by-
3f780 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 20 26 6f 70 74 69 6f 6e 61 name.(project-to-switch.&optiona
3f7a0 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 20 62 79 20 70 l.arg)..."Switch.to.project.by.p
3f7c0 72 6f 6a 65 63 74 20 6e 61 6d 65 20 50 52 4f 4a 45 43 54 2d 54 4f 2d 53 57 49 54 43 48 2e 0a 49 roject.name.PROJECT-TO-SWITCH..I
3f7e0 6e 76 6f 6b 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 nvokes.the.command.referenced.by
3f800 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 .`projectile-switch-project-acti
3f820 6f 6e 27 20 6f 6e 20 73 77 69 74 63 68 2e 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 41 52 47 on'.on.switch..With.a.prefix.ARG
3f840 20 69 6e 76 6f 6b 65 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 27 20 .invokes.`projectile-commander'.
3f860 69 6e 73 74 65 61 64 20 6f 66 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 instead.of.`projectile-switch-pr
3f880 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 2e 27 22 0a 20 20 3b 3b 20 6c 65 74 27 73 20 6d 61 6b 65 20 oject-action.'"...;;.let's.make.
3f8a0 73 75 72 65 20 74 68 61 74 20 74 68 65 20 74 61 72 67 65 74 20 64 69 72 65 63 74 6f 72 79 20 65 sure.that.the.target.directory.e
3f8c0 78 69 73 74 73 20 61 6e 64 20 69 73 20 61 63 74 75 61 6c 6c 79 20 61 20 70 72 6f 6a 65 63 74 0a xists.and.is.actually.a.project.
3f8e0 20 20 3b 3b 20 77 65 20 69 67 6e 6f 72 65 20 72 65 6d 6f 74 65 20 66 6f 6c 64 65 72 73 2c 20 61 ..;;.we.ignore.remote.folders,.a
3f900 73 20 74 68 65 20 63 68 65 63 6b 20 62 72 65 61 6b 73 20 66 6f 72 20 54 52 41 4d 50 20 75 6e 6c s.the.check.breaks.for.TRAMP.unl
3f920 65 73 73 20 61 6c 72 65 61 64 79 20 63 6f 6e 6e 65 63 74 65 64 0a 20 20 28 75 6e 6c 65 73 73 20 ess.already.connected...(unless.
3f940 28 6f 72 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 (or.(file-remote-p.project-to-sw
3f960 69 74 63 68 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a itch).(projectile-project-p.proj
3f980 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ect-to-switch)).....(projectile-
3f9a0 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 2d 74 6f 2d remove-known-project.project-to-
3f9c0 73 77 69 74 63 68 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 44 69 72 65 63 74 6f 72 79 20 25 73 switch).....(error."Directory.%s
3f9e0 20 69 73 20 6e 6f 74 20 61 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 .is.not.a.project".project-to-sw
3fa00 69 74 63 68 29 29 0a 20 20 28 6c 65 74 20 28 28 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 itch))...(let.((switch-project-a
3fa20 63 74 69 6f 6e 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ction.(if.arg...................
3fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d .................'projectile-com
3fa60 6d 61 6e 64 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 20 20 mander..........................
3fa80 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 ........projectile-switch-projec
3faa0 74 2d 61 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a t-action))).....(run-hooks.'proj
3fac0 65 63 74 69 6c 65 2d 62 65 66 6f 72 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f ectile-before-switch-project-hoo
3fae0 6b 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 k).....(let*.((default-directory
3fb00 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 .project-to-switch)............(
3fb20 73 77 69 74 63 68 65 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 switched-buffer.............;;.u
3fb40 73 65 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 74 6f 20 6c 6f 61 64 20 50 52 se.a.temporary.buffer.to.load.PR
3fb60 4f 4a 45 43 54 2d 54 4f 2d 53 57 49 54 43 48 27 73 20 64 69 72 2d 6c 6f 63 61 6c 73 0a 20 20 20 OJECT-TO-SWITCH's.dir-locals....
3fb80 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 53 57 49 54 43 .........;;.before.calling.SWITC
3fba0 48 2d 50 52 4f 4a 45 43 54 2d 41 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 H-PROJECT-ACTION.............(wi
3fbc0 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61 th-temp-buffer...............(ha
3fbe0 63 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 69 6c 65 2d ck-dir-local-variables-non-file-
3fc00 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 72 6d 61 6c 6c buffer)...............;;.Normall
3fc20 79 20 74 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 y.the.project.name.is.determined
3fc40 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .from.the.current...............
3fc60 3b 3b 20 62 75 66 66 65 72 2e 20 48 6f 77 65 76 65 72 2c 20 77 68 65 6e 20 77 65 27 72 65 20 73 ;;.buffer..However,.when.we're.s
3fc80 77 69 74 63 68 69 6e 67 20 70 72 6f 6a 65 63 74 73 2c 20 77 65 20 77 61 6e 74 20 74 6f 0a 20 20 witching.projects,.we.want.to...
3fca0 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 68 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 ............;;.show.the.name.of.
3fcc0 74 68 65 20 70 72 6f 6a 65 63 74 20 62 65 69 6e 67 20 73 77 69 74 63 68 65 64 20 74 6f 2c 20 72 the.project.being.switched.to,.r
3fce0 61 74 68 65 72 20 74 68 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 ather.than...............;;.the.
3fd00 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2c 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 current.project,.in.the.minibuff
3fd20 65 72 2e 20 54 68 69 73 20 69 73 20 61 20 73 69 6d 70 6c 65 20 68 61 63 6b 0a 20 20 20 20 20 20 er..This.is.a.simple.hack.......
3fd40 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 74 65 6c 6c 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 ........;;.to.tell.the.`projecti
3fd60 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 27 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 69 67 6e le-project-name'.function.to.ign
3fd80 6f 72 65 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 75 72 72 65 6e 74 ore.the...............;;.current
3fda0 20 62 75 66 66 65 72 20 61 6e 64 20 74 68 65 20 63 61 63 68 69 6e 67 20 6d 65 63 68 61 6e 69 73 .buffer.and.the.caching.mechanis
3fdc0 6d 2c 20 61 6e 64 20 6a 75 73 74 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 m,.and.just.return.the..........
3fde0 20 20 20 20 20 3b 3b 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 .....;;.value.of.the.`projectile
3fe00 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 27 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 -project-name'.variable.........
3fe20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 .......(let.((projectile-project
3fe40 2d 6e 61 6d 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 -name.(funcall.projectile-projec
3fe60 74 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-name-function.................
3fe80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3fea0 20 20 20 20 20 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 29 29 0a 20 20 20 20 20 ......project-to-switch)))......
3fec0 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 77 69 74 63 68 2d 70 72 6f 6a 65 ...........(funcall.switch-proje
3fee0 63 74 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 ct-action).................(curr
3ff00 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 73 77 69 74 ent-buffer))))).......;;.If.swit
3ff20 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 20 73 77 69 74 63 68 65 64 20 62 75 66 66 65 ch-project-action.switched.buffe
3ff40 72 73 20 74 68 65 6e 20 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 77 69 6c 6c 0a 20 20 rs.then.with-temp-buffer.will...
3ff60 20 20 20 20 3b 3b 20 68 61 76 65 20 6c 6f 73 74 20 74 68 61 74 20 63 68 61 6e 67 65 2c 20 73 6f ....;;.have.lost.that.change,.so
3ff80 20 73 77 69 74 63 68 20 62 61 63 6b 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 62 75 66 66 .switch.back.to.the.correct.buff
3ffa0 65 72 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 73 er........(when.(buffer-live-p.s
3ffc0 77 69 74 63 68 65 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d witched-buffer).........(switch-
3ffe0 74 6f 2d 62 75 66 66 65 72 20 73 77 69 74 63 68 65 64 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 to-buffer.switched-buffer)))....
40000 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 61 66 74 65 72 2d 73 77 .(run-hooks.'projectile-after-sw
40020 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f itch-project-hook)))..;;;###auto
40040 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 load.(defun.projectile-find-file
40060 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 6f -in-directory.(&optional.directo
40080 72 79 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 66 69 6c 65 20 69 6e 20 61 20 28 6d 61 79 62 ry)..."Jump.to.a.file.in.a.(mayb
400a0 65 20 72 65 67 75 6c 61 72 29 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d e.regular).DIRECTORY...This.comm
400c0 61 6e 64 20 77 69 6c 6c 20 66 69 72 73 74 20 70 72 6f 6d 70 74 20 66 6f 72 20 74 68 65 20 64 69 and.will.first.prompt.for.the.di
400e0 72 65 63 74 6f 72 79 20 74 68 65 20 66 69 6c 65 20 69 73 20 69 6e 2e 22 0a 20 20 28 69 6e 74 65 rectory.the.file.is.in."...(inte
40100 72 61 63 74 69 76 65 20 22 44 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 64 69 72 65 63 74 6f 72 79 ractive."DFind.file.in.directory
40120 3a 20 22 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 64 69 72 65 :.")...(unless.(projectile--dire
40140 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 ctory-p.directory).....(user-err
40160 6f 72 20 22 44 69 72 65 63 74 6f 72 79 20 25 53 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 or."Directory.%S.does.not.exist"
40180 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 .directory))...(let.((default-di
401a0 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 69 66 20 28 70 72 6f rectory.directory)).....(if.(pro
401c0 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 61 jectile-project-p).........;;.ta
401e0 72 67 65 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 0a 20 rget.directory.is.in.a.project..
40200 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 .......(let.((file.(projectile-c
40220 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 46 69 6e 64 20 66 69 6c 65 3a 20 22 0a 20 20 20 ompleting-read."Find.file:."....
40240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40260 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c .............(projectile-dir-fil
40280 65 73 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 es.directory))))...........(find
402a0 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 20 64 69 72 -file.(expand-file-name.file.dir
402c0 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 70 ectory))...........(run-hooks.'p
402e0 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 rojectile-find-file-hook))......
40300 20 3b 3b 20 74 61 72 67 65 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 69 6e 20 61 .;;.target.directory.is.not.in.a
40320 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d .project.......(projectile-find-
40340 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 6c 6c 2d file))))..(defun.projectile-all-
40360 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f project-files.()..."Get.a.list.o
40380 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 61 6c 6c 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 f.all.files.in.all.projects."...
403a0 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 29 0a (cl-mapcan....(lambda.(project).
403c0 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 70 72 6f 6a 65 63 .....(when.(file-exists-p.projec
403e0 74 29 0a 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 t)........(mapcar.(lambda.(file)
40400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e ..................(expand-file-n
40420 61 6d 65 20 66 69 6c 65 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ame.file.project))..............
40440 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 70 72 6f 6a ..(projectile-project-files.proj
40460 65 63 74 29 29 29 29 0a 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a ect))))....projectile-known-proj
40480 65 63 74 73 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 ects))..;;;###autoload.(defun.pr
404a0 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a ojectile-find-file-in-known-proj
404c0 65 63 74 73 20 28 29 0a 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 66 69 6c 65 20 69 6e 20 61 6e 79 ects.()..."Jump.to.a.file.in.any
404e0 20 6f 66 20 74 68 65 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 .of.the.known.projects."...(inte
40500 72 61 63 74 69 76 65 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c ractive)...(find-file.(projectil
40520 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 e-completing-read."Find.file.in.
40540 70 72 6f 6a 65 63 74 73 3a 20 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 6c 6c 2d 70 72 6f 6a projects:.".(projectile-all-proj
40560 65 63 74 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ect-files))))..(defun.projectile
40580 2d 6b 65 65 70 2d 70 72 6f 6a 65 63 74 2d 70 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 22 44 65 74 -keep-project-p.(project)..."Det
405a0 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20 77 65 20 73 68 6f 75 6c 64 20 63 6c 65 61 6e 75 70 ermine.whether.we.should.cleanup
405c0 20 28 72 65 6d 6f 76 65 29 20 50 52 4f 4a 45 43 54 20 6f 72 20 6e 6f 74 2e 0a 0a 49 74 20 68 61 .(remove).PROJECT.or.not...It.ha
405e0 6e 64 6c 65 73 20 74 68 65 20 63 61 73 65 20 6f 66 20 72 65 6d 6f 74 65 20 70 72 6f 6a 65 63 74 ndles.the.case.of.remote.project
40600 73 20 61 73 20 77 65 6c 6c 2e 0a 53 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6c 65 61 s.as.well..See.`projectile--clea
40620 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 3b 3b 20 54 61 6b 65 6e nup-known-projects'."...;;.Taken
40640 20 66 72 6f 6d 20 66 72 6f 6d 20 60 72 65 63 65 6e 74 66 2d 6b 65 65 70 2d 64 65 66 61 75 6c 74 .from.from.`recentf-keep-default
40660 2d 70 72 65 64 69 63 61 74 65 27 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 -predicate'...(cond....((file-re
40680 6d 6f 74 65 2d 70 20 70 72 6f 6a 65 63 74 20 6e 69 6c 20 74 29 20 28 66 69 6c 65 2d 72 65 61 64 mote-p.project.nil.t).(file-read
406a0 61 62 6c 65 2d 70 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 6d 6f 74 able-p.project))....((file-remot
406c0 65 2d 70 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 e-p.project))....((file-readable
406e0 2d 70 20 70 72 6f 6a 65 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c -p.project))))..(defun.projectil
40700 65 2d 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 e--cleanup-known-projects.()..."
40720 52 65 6d 6f 76 65 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 74 68 61 74 20 64 6f 6e 27 74 Remove.known.projects.that.don't
40740 20 65 78 69 73 74 20 61 6e 79 6d 6f 72 65 2e 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 .exist.anymore..Return.a.list.of
40760 20 70 72 6f 6a 65 63 74 73 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c .projects.removed."...(projectil
40780 65 2d 6d 65 72 67 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 28 6c 65 74 20 28 e-merge-known-projects)...(let.(
407a0 28 70 72 6f 6a 65 63 74 73 2d 6b 65 70 74 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 (projects-kept.(cl-remove-if-not
407c0 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f .#'projectile-keep-project-p.pro
407e0 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 20 20 jectile-known-projects))........
40800 20 28 70 72 6f 6a 65 63 74 73 2d 72 65 6d 6f 76 65 64 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 .(projects-removed.(cl-remove-if
40820 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f .#'projectile-keep-project-p.pro
40840 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 28 73 jectile-known-projects))).....(s
40860 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 70 72 etq.projectile-known-projects.pr
40880 6f 6a 65 63 74 73 2d 6b 65 70 74 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 65 72 ojects-kept).....(projectile-mer
408a0 67 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 73 2d ge-known-projects).....projects-
408c0 72 65 6d 6f 76 65 64 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e removed))..;;;###autoload.(defun
408e0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 .projectile-cleanup-known-projec
40900 74 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 74 ts.()..."Remove.known.projects.t
40920 68 61 74 20 64 6f 6e 27 74 20 65 78 69 73 74 20 61 6e 79 6d 6f 72 65 2e 22 0a 20 20 28 69 6e 74 hat.don't.exist.anymore."...(int
40940 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 73 2d eractive)...(if-let*.((projects-
40960 72 65 6d 6f 76 65 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f removed.(projectile--cleanup-kno
40980 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 50 wn-projects))).......(message."P
409a0 72 6f 6a 65 63 74 73 20 72 65 6d 6f 76 65 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 rojects.removed:.%s"............
409c0 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 70 72 6f 6a 65 63 ....(mapconcat.#'identity.projec
409e0 74 73 2d 72 65 6d 6f 76 65 64 20 22 2c 20 22 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 ts-removed.",.")).....(message."
40a00 4e 6f 20 70 72 6f 6a 65 63 74 73 20 6e 65 65 64 65 64 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64 No.projects.needed.to.be.removed
40a20 2e 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f .")))..;;;###autoload.(defun.pro
40a40 6a 65 63 74 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a jectile-clear-known-projects.().
40a60 20 20 22 43 6c 65 61 72 20 62 6f 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d .."Clear.both.`projectile-known-
40a80 70 72 6f 6a 65 63 74 73 27 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d projects'.and.`projectile-known-
40aa0 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 projects-file'."...(interactive)
40ac0 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 ...(setq.projectile-known-projec
40ae0 74 73 20 6e 69 6c 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 6b 6e 6f 77 6e ts.nil)...(projectile-save-known
40b00 2d 70 72 6f 6a 65 63 74 73 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 -projects))..;;;###autoload.(def
40b20 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 73 65 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 un.projectile-reset-known-projec
40b40 74 73 20 28 29 0a 20 20 22 43 6c 65 61 72 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e ts.()..."Clear.known.projects.an
40b60 64 20 72 65 64 69 73 63 6f 76 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 d.rediscover."...(interactive)..
40b80 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 .(projectile-clear-known-project
40ba0 73 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 s)...(projectile-discover-projec
40bc0 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c ts-in-search-path))..;;;###autol
40be0 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f oad.(defun.projectile-remove-kno
40c00 77 6e 2d 70 72 6f 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a 20 wn-project.(&optional.project)..
40c20 20 22 52 65 6d 6f 76 65 20 50 52 4f 4a 45 43 54 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f ."Remove.PROJECT.from.the.list.o
40c40 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 f.known.projects."...(interactiv
40c60 65 20 28 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 e.(list.(projectile-completing-r
40c80 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 ead......................."Remov
40ca0 65 20 66 72 6f 6d 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 3a 20 22 20 70 72 6f 6a 65 63 74 e.from.known.projects:.".project
40cc0 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ile-known-projects..............
40ce0 20 20 20 20 20 20 20 20 20 3a 61 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d .........:action.'projectile-rem
40d00 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 ove-known-project)))...(unless.(
40d20 63 61 6c 6c 65 64 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2d 70 20 27 61 6e 79 29 0a 20 20 20 called-interactively-p.'any)....
40d40 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 .(setq.projectile-known-projects
40d60 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 20 20 ...........(cl-remove-if........
40d80 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 29 20 28 73 74 72 69 6e 67 3d 20 70 72 6f 6a ....(lambda.(proj).(string=.proj
40da0 65 63 74 20 70 72 6f 6a 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 ect.proj))............projectile
40dc0 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c -known-projects)).....(projectil
40de0 65 2d 6d 65 72 67 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 28 77 68 65 e-merge-known-projects).....(whe
40e00 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 62 6f 73 65 0a 20 20 20 20 20 20 28 6d 65 73 73 n.projectile-verbose.......(mess
40e20 61 67 65 20 22 50 72 6f 6a 65 63 74 20 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 age."Project.%s.removed.from.the
40e40 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 22 20 70 72 6f 6a 65 63 .list.of.known.projects.".projec
40e60 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f t))))..;;;###autoload.(defun.pro
40e80 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 jectile-remove-current-project-f
40ea0 72 6f 6d 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 rom-known-projects.()..."Remove.
40ec0 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 the.current.project.from.the.lis
40ee0 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 t.of.known.projects."...(interac
40f00 74 69 76 65 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e tive)...(projectile-remove-known
40f20 2d 70 72 6f 6a 65 63 74 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 -project.(abbreviate-file-name.(
40f40 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 projectile-acquire-root))))..(de
40f60 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 73 20 fun.projectile-ignored-projects.
40f80 28 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 73 20 74 68 61 74 20 73 68 ()..."A.list.of.projects.that.sh
40fa0 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 61 76 65 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d ould.not.be.save.in.`projectile-
40fc0 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 23 27 66 69 known-projects'."...(mapcar.#'fi
40fe0 6c 65 2d 74 72 75 65 6e 61 6d 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 le-truename.projectile-ignored-p
41000 72 6f 6a 65 63 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e rojects))..(defun.projectile-ign
41020 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 70 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 ored-project-p.(project-root)...
41040 22 52 65 74 75 72 6e 20 74 20 69 66 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 73 68 6f 75 6c 64 "Return.t.if.PROJECT-ROOT.should
41060 20 6e 6f 74 20 62 65 20 61 64 64 65 64 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f .not.be.added.to.`projectile-kno
41080 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 70 72 6f wn-projects'."...(or.(member.pro
410a0 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 ject-root.(projectile-ignored-pr
410c0 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 ojects)).......(and.(functionp.p
410e0 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 66 75 6e 63 74 69 rojectile-ignored-project-functi
41100 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 on)............(funcall.projecti
41120 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a le-ignored-project-function.proj
41140 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 ect-root))))..;;;###autoload.(de
41160 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 fun.projectile-add-known-project
41180 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 41 64 64 20 50 52 4f 4a 45 43 54 2d 52 .(project-root)..."Add.PROJECT-R
411a0 4f 4f 54 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 OOT.to.the.list.of.known.project
411c0 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 64 2d 64 s."...(interactive.(list.(read-d
411e0 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 41 64 64 20 74 6f 20 6b 6e 6f 77 6e 20 70 72 6f 6a irectory-name."Add.to.known.proj
41200 65 63 74 73 3a 20 22 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 ects:.")))...(unless.(projectile
41220 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 -ignored-project-p.project-root)
41240 0a 20 20 20 20 28 70 75 73 68 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f .....(push.(file-name-as-directo
41260 72 79 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 ry.(abbreviate-file-name.project
41280 2d 72 6f 6f 74 29 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 -root)).projectile-known-project
412a0 73 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b s).....(delete-dups.projectile-k
412c0 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d nown-projects).....(projectile-m
412e0 65 72 67 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 erge-known-projects)))..(defun.p
41300 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 61 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 rojectile-load-known-projects.()
41320 0a 20 20 22 4c 6f 61 64 20 73 61 76 65 64 20 70 72 6f 6a 65 63 74 73 20 66 72 6f 6d 20 60 70 72 ..."Load.saved.projects.from.`pr
41340 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 27 2e 0a 41 ojectile-known-projects-file'..A
41360 6c 73 6f 20 73 65 74 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 lso.set.`projectile-known-projec
41380 74 73 27 2e 22 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 ts'."...(setq.projectile-known-p
413a0 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 73 65 rojects.........(projectile-unse
413c0 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 rialize.projectile-known-project
413e0 73 2d 66 69 6c 65 29 29 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 s-file))...(setq.projectile-know
41400 6e 2d 70 72 6f 6a 65 63 74 73 2d 6f 6e 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 n-projects-on-file.........(and.
41420 28 73 65 71 75 65 6e 63 65 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a (sequencep.projectile-known-proj
41440 65 63 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 ects)..............(copy-sequenc
41460 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 29 0a e.projectile-known-projects)))).
41480 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 6b 6e 6f 77 6e 2d 70 72 .(defun.projectile-save-known-pr
414a0 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 53 61 76 65 20 50 52 4f 4a 45 43 54 49 4c 45 2d 4b 4e 4f ojects.()..."Save.PROJECTILE-KNO
414c0 57 4e 2d 50 52 4f 4a 45 43 54 53 20 74 6f 20 50 52 4f 4a 45 43 54 49 4c 45 2d 4b 4e 4f 57 4e 2d WN-PROJECTS.to.PROJECTILE-KNOWN-
414e0 50 52 4f 4a 45 43 54 53 2d 46 49 4c 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 PROJECTS-FILE."...(projectile-se
41500 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 rialize.projectile-known-project
41520 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 s.........................projec
41540 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 tile-known-projects-file)...(set
41560 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 6f 6e 2d 66 q.projectile-known-projects-on-f
41580 69 6c 65 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 71 75 65 6e 63 65 70 20 70 72 6f 6a ile.........(and.(sequencep.proj
415a0 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 20 20 20 20 20 ectile-known-projects)..........
415c0 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e ....(copy-sequence.projectile-kn
415e0 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 own-projects))))..(defun.project
41600 69 6c 65 2d 6d 65 72 67 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 4d ile-merge-known-projects.()..."M
41620 65 72 67 65 20 61 6e 79 20 63 68 61 6e 67 65 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 erge.any.change.from.`projectile
41640 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 27 20 61 6e 64 20 73 61 76 65 20 74 -known-projects-file'.and.save.t
41660 6f 20 64 69 73 6b 2e 0a 0a 54 68 69 73 20 65 6e 61 62 6c 65 73 20 6d 75 6c 74 69 70 6c 65 20 45 o.disk...This.enables.multiple.E
41680 6d 61 63 73 20 70 72 6f 63 65 73 73 65 73 20 74 6f 20 6d 61 6b 65 20 63 68 61 6e 67 65 73 20 77 macs.processes.to.make.changes.w
416a0 69 74 68 6f 75 74 0a 6f 76 65 72 77 72 69 74 69 6e 67 20 65 61 63 68 20 6f 74 68 65 72 27 73 20 ithout.overwriting.each.other's.
416c0 63 68 61 6e 67 65 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 6e 6f 77 6e 2d 6e 6f 77 20 70 72 changes."...(let*.((known-now.pr
416e0 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 20 20 20 ojectile-known-projects)........
41700 20 20 28 6b 6e 6f 77 6e 2d 6f 6e 2d 6c 61 73 74 2d 73 79 6e 63 20 70 72 6f 6a 65 63 74 69 6c 65 ..(known-on-last-sync.projectile
41720 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 6f 6e 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 -known-projects-on-file)........
41740 20 20 28 6b 6e 6f 77 6e 2d 6f 6e 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a ..(known-on-file...........(proj
41760 65 63 74 69 6c 65 2d 75 6e 73 65 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e ectile-unserialize.projectile-kn
41780 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 own-projects-file))..........(re
417a0 6d 6f 76 65 64 2d 61 66 74 65 72 2d 73 79 6e 63 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 moved-after-sync.(projectile-dif
417c0 66 65 72 65 6e 63 65 20 6b 6e 6f 77 6e 2d 6f 6e 2d 6c 61 73 74 2d 73 79 6e 63 20 6b 6e 6f 77 6e ference.known-on-last-sync.known
417e0 2d 6e 6f 77 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 64 2d 69 6e 2d 6f 74 68 65 -now))..........(removed-in-othe
41800 72 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d r-process...........(projectile-
41820 64 69 66 66 65 72 65 6e 63 65 20 6b 6e 6f 77 6e 2d 6f 6e 2d 6c 61 73 74 2d 73 79 6e 63 20 6b 6e difference.known-on-last-sync.kn
41840 6f 77 6e 2d 6f 6e 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 own-on-file))..........(result.(
41860 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 delete-dups...................(p
41880 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 rojectile-difference............
418a0 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 6b 6e 6f 77 6e 2d 6e 6f 77 20 6b 6e 6f 77 6e 2d ........(append.known-now.known-
418c0 6f 6e 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 on-file)....................(app
418e0 65 6e 64 20 72 65 6d 6f 76 65 64 2d 61 66 74 65 72 2d 73 79 6e 63 20 72 65 6d 6f 76 65 64 2d 69 end.removed-after-sync.removed-i
41900 6e 2d 6f 74 68 65 72 2d 70 72 6f 63 65 73 73 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 n-other-process))))).....(setq.p
41920 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 72 65 73 75 6c 74 29 rojectile-known-projects.result)
41940 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a .....(projectile-save-known-proj
41960 65 63 74 73 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 49 42 75 66 66 65 72 20 69 6e 74 65 67 72 61 74 69 ects)))....;;;.IBuffer.integrati
41980 6f 6e 0a 28 64 65 66 69 6e 65 2d 69 62 75 66 66 65 72 2d 66 69 6c 74 65 72 20 70 72 6f 6a 65 63 on.(define-ibuffer-filter.projec
419a0 74 69 6c 65 2d 66 69 6c 65 73 0a 20 20 20 20 22 53 68 6f 77 20 49 62 75 66 66 65 72 20 77 69 74 tile-files....."Show.Ibuffer.wit
419c0 68 20 61 6c 6c 20 62 75 66 66 65 72 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f h.all.buffers.in.the.current.pro
419e0 6a 65 63 74 2e 22 0a 20 20 28 3a 72 65 61 64 65 72 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 ject."...(:reader.(read-director
41a00 79 2d 6e 61 6d 65 20 22 50 72 6f 6a 65 63 74 20 72 6f 6f 74 3a 20 22 20 28 70 72 6f 6a 65 63 74 y-name."Project.root:.".(project
41a20 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 64 ile-project-root))............:d
41a40 65 73 63 72 69 70 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d escription.nil)...(with-current-
41a60 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 65 63 74 6f 72 79 20 buffer.buf.....(let.((directory.
41a80 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 28 65 78 70 61 6e 64 2d (file-name-as-directory.(expand-
41aa0 66 69 6c 65 2d 6e 61 6d 65 20 71 75 61 6c 69 66 69 65 72 29 29 29 29 0a 20 20 20 20 20 20 28 61 file-name.qualifier)))).......(a
41ac0 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 nd.(projectile-project-buffer-p.
41ae0 62 75 66 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c buf.directory)............(equal
41b00 20 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 20 28 70 72 .directory...................(pr
41b20 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 29 0a 0a 28 64 65 ojectile-project-root))))))..(de
41b40 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 65 72 2d 62 79 2d 70 72 6f 6a 65 63 fun.projectile-ibuffer-by-projec
41b60 74 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 4f 70 65 6e 20 61 6e 20 49 42 75 66 t.(project-root)..."Open.an.IBuf
41b80 66 65 72 20 77 69 6e 64 6f 77 20 73 68 6f 77 69 6e 67 20 61 6c 6c 20 62 75 66 66 65 72 73 20 69 fer.window.showing.all.buffers.i
41ba0 6e 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 n.PROJECT-ROOT."...(let.((projec
41bc0 74 2d 6e 61 6d 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 t-name.(funcall.projectile-proje
41be0 63 74 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 ct-name-function.project-root)))
41c00 0a 20 20 20 20 28 69 62 75 66 66 65 72 20 6e 69 6c 20 28 66 6f 72 6d 61 74 20 22 2a 25 73 20 42 .....(ibuffer.nil.(format."*%s.B
41c20 75 66 66 65 72 73 2a 22 20 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 uffers*".project-name)..........
41c40 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 ....(list.(cons.'projectile-file
41c60 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c s.project-root)))))..;;;###autol
41c80 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 65 72 20 28 70 oad.(defun.projectile-ibuffer.(p
41ca0 72 6f 6d 70 74 2d 66 6f 72 2d 70 72 6f 6a 65 63 74 29 0a 20 20 22 4f 70 65 6e 20 61 6e 20 49 42 rompt-for-project)..."Open.an.IB
41cc0 75 66 66 65 72 20 77 69 6e 64 6f 77 20 73 68 6f 77 69 6e 67 20 61 6c 6c 20 62 75 66 66 65 72 73 uffer.window.showing.all.buffers
41ce0 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 4c 65 74 20 75 73 .in.the.current.project...Let.us
41d00 65 72 20 63 68 6f 6f 73 65 20 61 6e 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 20 77 68 65 6e 20 50 er.choose.another.project.when.P
41d20 52 4f 4d 50 54 2d 46 4f 52 2d 50 52 4f 4a 45 43 54 20 69 73 20 73 75 70 70 6c 69 65 64 2e 22 0a ROMPT-FOR-PROJECT.is.supplied.".
41d40 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f ..(interactive."P")...(let.((pro
41d60 6a 65 63 74 2d 72 6f 6f 74 20 28 69 66 20 70 72 6f 6d 70 74 2d 66 6f 72 2d 70 72 6f 6a 65 63 74 ject-root.(if.prompt-for-project
41d80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a ...........................(proj
41da0 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 ectile-completing-read..........
41dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 50 72 6f 6a 65 63 74 20 6e 61 6d 65 3a .................."Project.name:
41de0 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 20 28 70 ."............................(p
41e00 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 65 76 61 6e 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 rojectile-relevant-known-project
41e20 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f s)).........................(pro
41e40 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 70 72 jectile-acquire-root)))).....(pr
41e60 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 65 72 2d 62 79 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a ojectile-ibuffer-by-project.proj
41e80 65 63 74 2d 72 6f 6f 74 29 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 ect-root)))....;;;;.projectile-c
41ea0 6f 6d 6d 61 6e 64 65 72 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 ommander..(defconst.projectile-c
41ec0 6f 6d 6d 61 6e 64 65 72 2d 68 65 6c 70 2d 62 75 66 66 65 72 20 22 2a 50 72 6f 6a 65 63 74 69 6c ommander-help-buffer."*Projectil
41ee0 65 20 43 6f 6d 6d 61 6e 64 65 72 20 48 65 6c 70 2a 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f e.Commander.Help*")..(defvar.pro
41f00 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 73 20 6e 69 6c 0a 20 20 jectile-commander-methods.nil...
41f20 22 4c 69 73 74 20 6f 66 20 66 69 6c 65 2d 73 65 6c 65 63 74 69 6f 6e 20 6d 65 74 68 6f 64 73 20 "List.of.file-selection.methods.
41f40 66 6f 72 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 27 20 63 for.the.`projectile-commander'.c
41f60 6f 6d 6d 61 6e 64 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 20 6c 69 73 74 20 28 ommand..Each.element.is.a.list.(
41f80 4b 45 59 20 44 45 53 43 52 49 50 54 49 4f 4e 20 46 55 4e 43 54 49 4f 4e 29 2e 0a 44 45 53 43 52 KEY.DESCRIPTION.FUNCTION)..DESCR
41fa0 49 50 54 49 4f 4e 20 69 73 20 61 20 6f 6e 65 2d 6c 69 6e 65 20 64 65 73 63 72 69 70 74 69 6f 6e IPTION.is.a.one-line.description
41fc0 20 6f 66 20 77 68 61 74 20 74 68 65 20 6b 65 79 20 73 65 6c 65 63 74 73 2e 22 29 0a 0a 3b 3b 3b .of.what.the.key.selects.")..;;;
41fe0 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f ###autoload.(defun.projectile-co
42000 6d 6d 61 6e 64 65 72 20 28 29 0a 20 20 22 45 78 65 63 75 74 65 20 61 20 50 72 6f 6a 65 63 74 69 mmander.()..."Execute.a.Projecti
42020 6c 65 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 6c 65 74 74 65 72 2e le.command.with.a.single.letter.
42040 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 73 69 6e 67 .The.user.is.prompted.for.a.sing
42060 6c 65 20 63 68 61 72 61 63 74 65 72 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20 61 63 74 69 le.character.indicating.the.acti
42080 6f 6e 20 74 6f 20 69 6e 76 6f 6b 65 2e 0a 54 68 65 20 60 3f 27 20 63 68 61 72 61 63 74 65 72 20 on.to.invoke..The.`?'.character.
420a0 64 65 73 63 72 69 62 65 73 20 74 68 65 6e 0a 61 76 61 69 6c 61 62 6c 65 20 61 63 74 69 6f 6e 73 describes.then.available.actions
420c0 2e 0a 0a 53 65 65 20 60 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 ...See.`def-projectile-commander
420e0 2d 6d 65 74 68 6f 64 27 20 66 6f 72 20 64 65 66 69 6e 69 6e 67 20 6e 65 77 20 6d 65 74 68 6f 64 -method'.for.defining.new.method
42100 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 s."...(interactive)...(let*.((ch
42120 6f 69 63 65 73 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 oices.(mapcar.#'car.projectile-c
42140 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f ommander-methods))..........(pro
42160 6d 70 74 20 28 63 6f 6e 63 61 74 20 22 53 65 6c 65 63 74 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 mpt.(concat."Select.Projectile.c
42180 6f 6d 6d 61 6e 64 20 5b 22 20 63 68 6f 69 63 65 73 20 22 5d 3a 20 22 29 29 0a 20 20 20 20 20 20 ommand.[".choices."]:.")).......
421a0 20 20 20 28 63 68 20 28 72 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 20 70 72 6f 6d 70 74 20 ...(ch.(read-char-choice.prompt.
421c0 63 68 6f 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 6e 20 28 6e 74 68 20 32 20 28 61 choices))..........(fn.(nth.2.(a
421e0 73 73 71 20 63 68 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 ssq.ch.projectile-commander-meth
42200 6f 64 73 29 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 0a 0a 28 64 65 66 ods)))).....(funcall.fn)))..(def
42220 6d 61 63 72 6f 20 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d macro.def-projectile-commander-m
42240 65 74 68 6f 64 20 28 6b 65 79 20 64 65 73 63 72 69 70 74 69 6f 6e 20 26 72 65 73 74 20 62 6f 64 ethod.(key.description.&rest.bod
42260 79 29 0a 20 20 22 44 65 66 69 6e 65 20 61 20 6e 65 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 y)..."Define.a.new.`projectile-c
42280 6f 6d 6d 61 6e 64 65 72 27 20 6d 65 74 68 6f 64 2e 0a 0a 4b 45 59 20 69 73 20 74 68 65 20 6b 65 ommander'.method...KEY.is.the.ke
422a0 79 20 74 68 65 20 75 73 65 72 20 77 69 6c 6c 20 65 6e 74 65 72 20 74 6f 20 63 68 6f 6f 73 65 20 y.the.user.will.enter.to.choose.
422c0 74 68 69 73 20 6d 65 74 68 6f 64 2e 0a 0a 44 45 53 43 52 49 50 54 49 4f 4e 20 69 73 20 61 20 6f this.method...DESCRIPTION.is.a.o
422e0 6e 65 2d 6c 69 6e 65 20 73 65 6e 74 65 6e 63 65 20 64 65 73 63 72 69 62 69 6e 67 20 68 6f 77 20 ne-line.sentence.describing.how.
42300 74 68 65 20 6d 65 74 68 6f 64 2e 0a 0a 42 4f 44 59 20 69 73 20 61 20 73 65 72 69 65 73 20 6f 66 the.method...BODY.is.a.series.of
42320 20 66 6f 72 6d 73 20 77 68 69 63 68 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 77 68 65 6e 20 .forms.which.are.evaluated.when.
42340 74 68 65 20 66 69 6e 64 0a 69 73 20 63 68 6f 73 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 65 the.find.is.chosen."...(let.((me
42360 74 68 6f 64 20 60 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 thod.`(lambda.()................
42380 20 20 20 20 2c 40 62 6f 64 79 29 29 29 0a 20 20 20 20 60 28 73 65 74 71 20 70 72 6f 6a 65 63 74 ....,@body))).....`(setq.project
423a0 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 20 20 20 20 ile-commander-methods...........
423c0 20 28 63 6c 2d 73 6f 72 74 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 0a 20 20 20 20 20 20 20 .(cl-sort.(copy-sequence........
423e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 2c 6b 65 79 20 2c ..............(cons.(list.,key.,
42400 64 65 73 63 72 69 70 74 69 6f 6e 20 2c 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 description.,method)............
42420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c ................(assq-delete-all
42440 20 2c 6b 65 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f .,key.projectile-commander-metho
42460 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 ds))).....................(lambd
42480 61 20 28 61 20 62 29 20 28 3c 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 29 29 29 a.(a.b).(<.(car.a).(car.b)))))))
424a0 0a 0a 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 ..(def-projectile-commander-meth
424c0 6f 64 20 3f 3f 20 22 43 6f 6d 6d 61 6e 64 65 72 20 68 65 6c 70 20 62 75 66 66 65 72 2e 22 0a 20 od.??."Commander.help.buffer."..
424e0 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f .(ignore-errors.(kill-buffer.pro
42500 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 68 65 6c 70 2d 62 75 66 66 65 72 29 29 0a jectile-commander-help-buffer)).
42520 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 ..(with-current-buffer.(get-buff
42540 65 72 2d 63 72 65 61 74 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 68 er-create.projectile-commander-h
42560 65 6c 70 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 50 72 6f 6a 65 63 74 elp-buffer).....(insert."Project
42580 69 6c 65 20 43 6f 6d 6d 61 6e 64 65 72 20 4d 65 74 68 6f 64 73 3a 5c 6e 5c 6e 22 29 0a 20 20 20 ile.Commander.Methods:\n\n")....
425a0 20 28 64 6f 6c 69 73 74 20 28 6d 65 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 .(dolist.(met.projectile-command
425c0 65 72 2d 6d 65 74 68 6f 64 73 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 er-methods).......(insert.(forma
425e0 74 20 22 25 63 3a 5c 74 25 73 5c 6e 22 20 28 63 61 72 20 6d 65 74 29 20 28 63 61 64 72 20 6d 65 t."%c:\t%s\n".(car.met).(cadr.me
42600 74 29 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 t)))).....(goto-char.(point-min)
42620 29 0a 20 20 20 20 28 68 65 6c 70 2d 6d 6f 64 65 29 0a 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 ).....(help-mode).....(display-b
42640 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 74 29 29 0a 20 20 28 70 72 uffer.(current-buffer).t))...(pr
42660 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f ojectile-commander))..(defun.pro
42680 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 62 69 6e 64 69 6e 67 73 20 28 29 0a 20 20 jectile-commander-bindings.()...
426a0 22 53 65 74 75 70 20 74 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 74 68 65 20 50 "Setup.the.keybindings.for.the.P
426c0 72 6f 6a 65 63 74 69 6c 65 20 43 6f 6d 6d 61 6e 64 65 72 2e 22 0a 20 20 28 64 65 66 2d 70 72 6f rojectile.Commander."...(def-pro
426e0 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 66 0a 20 20 20 20 jectile-commander-method.?f.....
42700 22 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f "Find.file.in.project.".....(pro
42720 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a jectile-find-file))....(def-proj
42740 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 54 0a 20 20 20 20 22 ectile-commander-method.?T....."
42760 46 69 6e 64 20 74 65 73 74 20 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 Find.test.file.in.project.".....
42780 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 29 29 0a 0a 20 20 (projectile-find-test-file))....
427a0 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 (def-projectile-commander-method
427c0 20 3f 62 0a 20 20 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 .?b....."Switch.to.project.buffe
427e0 72 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 r.".....(projectile-switch-to-bu
42800 66 66 65 72 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e ffer))....(def-projectile-comman
42820 64 65 72 2d 6d 65 74 68 6f 64 20 3f 64 0a 20 20 20 20 22 46 69 6e 64 20 64 69 72 65 63 74 6f 72 der-method.?d....."Find.director
42840 79 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 y.in.project.".....(projectile-f
42860 69 6e 64 2d 64 69 72 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d ind-dir))....(def-projectile-com
42880 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 44 0a 20 20 20 20 22 4f 70 65 6e 20 70 72 6f 6a 65 mander-method.?D....."Open.proje
428a0 63 74 20 72 6f 6f 74 20 69 6e 20 64 69 72 65 64 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 ct.root.in.dired.".....(projecti
428c0 6c 65 2d 64 69 72 65 64 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f le-dired))....(def-projectile-co
428e0 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 76 0a 20 20 20 20 22 4f 70 65 6e 20 70 72 6f 6a mmander-method.?v....."Open.proj
42900 65 63 74 20 72 6f 6f 74 20 69 6e 20 76 63 2d 64 69 72 20 6f 72 20 6d 61 67 69 74 2e 22 0a 20 20 ect.root.in.vc-dir.or.magit."...
42920 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 63 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 ..(projectile-vc))....(def-proje
42940 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 56 0a 20 20 20 20 22 42 ctile-commander-method.?V....."B
42960 72 6f 77 73 65 20 64 69 72 74 79 20 70 72 6f 6a 65 63 74 73 22 0a 20 20 20 20 28 70 72 6f 6a 65 rowse.dirty.projects".....(proje
42980 63 74 69 6c 65 2d 62 72 6f 77 73 65 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 29 29 0a 0a 20 ctile-browse-dirty-projects))...
429a0 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f .(def-projectile-commander-metho
429c0 64 20 3f 72 0a 20 20 20 20 22 52 65 70 6c 61 63 65 20 61 20 73 74 72 69 6e 67 20 69 6e 20 74 68 d.?r....."Replace.a.string.in.th
429e0 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c e.project.".....(projectile-repl
42a00 61 63 65 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 ace))....(def-projectile-command
42a20 65 72 2d 6d 65 74 68 6f 64 20 3f 52 0a 20 20 20 20 22 52 65 67 65 6e 65 72 61 74 65 20 74 68 65 er-method.?R....."Regenerate.the
42a40 20 70 72 6f 6a 65 63 74 27 73 20 5b 65 7c 67 5d 74 61 67 73 2e 22 0a 20 20 20 20 28 70 72 6f 6a .project's.[e|g]tags.".....(proj
42a60 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 29 29 0a 0a 20 20 28 64 65 66 ectile-regenerate-tags))....(def
42a80 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 67 0a -projectile-commander-method.?g.
42aa0 20 20 20 20 22 52 75 6e 20 67 72 65 70 20 6f 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 ...."Run.grep.on.project.".....(
42ac0 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 projectile-grep))....(def-projec
42ae0 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 70 0a 20 20 20 20 22 52 75 tile-commander-method.?p....."Ru
42b00 6e 20 72 69 70 67 72 65 70 20 6f 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 63 61 6c 6c n.ripgrep.on.project.".....(call
42b20 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 -interactively.#'projectile-ripg
42b40 72 65 70 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 rep))....(def-projectile-command
42b60 65 72 2d 6d 65 74 68 6f 64 20 3f 61 0a 20 20 20 20 22 52 75 6e 20 61 67 20 6f 6e 20 70 72 6f 6a er-method.?a....."Run.ag.on.proj
42b80 65 63 74 2e 22 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 ect.".....(call-interactively.#'
42ba0 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 projectile-ag))....(def-projecti
42bc0 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 73 0a 20 20 20 20 22 53 77 69 74 le-commander-method.?s....."Swit
42be0 63 68 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 ch.project.".....(projectile-swi
42c00 74 63 68 2d 70 72 6f 6a 65 63 74 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 tch-project))....(def-projectile
42c20 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 6f 0a 20 20 20 20 22 52 75 6e 20 6d 75 -commander-method.?o....."Run.mu
42c40 6c 74 69 2d 6f 63 63 75 72 20 6f 6e 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 0a 20 lti-occur.on.project.buffers."..
42c60 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 6c 74 69 2d 6f 63 63 75 72 29 29 0a 0a 20 20 ...(projectile-multi-occur))....
42c80 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 (def-projectile-commander-method
42ca0 20 3f 6a 0a 20 20 20 20 22 46 69 6e 64 20 74 61 67 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 .?j....."Find.tag.in.project."..
42cc0 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 29 29 0a 0a 20 20 28 64 65 ...(projectile-find-tag))....(de
42ce0 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 6b f-projectile-commander-method.?k
42d00 0a 20 20 20 20 22 4b 69 6c 6c 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 ....."Kill.all.project.buffers."
42d20 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 29 29 0a .....(projectile-kill-buffers)).
42d40 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 ...(def-projectile-commander-met
42d60 68 6f 64 20 3f 65 0a 20 20 20 20 22 46 69 6e 64 20 72 65 63 65 6e 74 6c 79 20 76 69 73 69 74 65 hod.?e....."Find.recently.visite
42d80 64 20 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 d.file.in.project.".....(project
42da0 69 6c 65 2d 72 65 63 65 6e 74 66 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 44 69 72 74 79 20 28 6d 6f 64 ile-recentf)))....;;;.Dirty.(mod
42dc0 69 66 69 65 64 29 20 70 72 6f 6a 65 63 74 20 63 68 65 63 6b 20 72 65 6c 61 74 65 64 20 66 75 6e ified).project.check.related.fun
42de0 63 74 69 6f 6e 61 6c 69 74 79 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 68 65 ctionality.(defun.projectile-che
42e00 63 6b 2d 76 63 73 2d 73 74 61 74 75 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 ck-vcs-status.(&optional.project
42e20 2d 70 61 74 68 29 0a 20 20 22 43 68 65 63 6b 20 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 -path)..."Check.the.status.of.th
42e40 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 49 66 20 50 52 4f 4a 45 43 54 2d 50 41 e.current.project..If.PROJECT-PA
42e60 54 48 20 69 73 20 61 20 70 72 6f 6a 65 63 74 2c 20 63 68 65 63 6b 20 74 68 69 73 20 6f 6e 65 20 TH.is.a.project,.check.this.one.
42e80 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 70 61 74 68 20 instead."...(let.((project-path.
42ea0 28 6f 72 20 70 72 6f 6a 65 63 74 2d 70 61 74 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 (or.project-path.(projectile-acq
42ec0 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 73 74 uire-root))).........(project-st
42ee0 61 74 75 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 atus.nil)).....(save-excursion..
42f00 20 20 20 20 20 28 76 63 2d 64 69 72 20 70 72 6f 6a 65 63 74 2d 70 61 74 68 29 0a 20 20 20 20 20 .....(vc-dir.project-path)......
42f20 20 3b 3b 20 77 61 69 74 20 75 6e 74 69 6c 20 76 63 2d 64 69 72 20 69 73 20 64 6f 6e 65 0a 20 20 .;;.wait.until.vc-dir.is.done...
42f40 20 20 20 20 28 77 68 69 6c 65 20 28 76 63 2d 64 69 72 2d 62 75 73 79 29 20 28 73 6c 65 65 70 2d ....(while.(vc-dir-busy).(sleep-
42f60 66 6f 72 20 30 2e 31 29 29 0a 20 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 66 6f 72 20 73 74 61 for.0.1)).......;;.check.for.sta
42f80 74 75 73 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 tus.......(save-excursion.......
42fa0 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f ..(save-match-data...........(do
42fc0 6c 69 73 74 20 28 63 68 65 63 6b 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 63 73 2d 64 69 72 74 79 list.(check.projectile-vcs-dirty
42fe0 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 -state).............(goto-char.(
43000 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 point-min)).............(when.(s
43020 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 63 68 65 63 6b 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 earch-forward.check.nil.t)......
43040 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 2d 73 74 61 74 75 73 20 28 63 .........(setq.project-status.(c
43060 6f 6e 73 20 63 68 65 63 6b 20 70 72 6f 6a 65 63 74 2d 73 74 61 74 75 73 29 29 29 29 29 29 0a 20 ons.check.project-status))))))..
43080 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 .....(kill-buffer).......project
430a0 2d 73 74 61 74 75 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 -status)))..(defvar.projectile-c
430c0 61 63 68 65 64 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 2d 73 74 61 74 75 73 20 6e 69 6c 0a ached-dirty-projects-status.nil.
430e0 20 20 22 43 61 63 68 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 64 69 72 74 79 20 70 72 6f 6a 65 .."Cache.of.the.last.dirty.proje
43100 63 74 73 20 63 68 65 63 6b 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d cts.check.")..(defun.projectile-
43120 63 68 65 63 6b 2d 76 63 73 2d 73 74 61 74 75 73 2d 6f 66 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 check-vcs-status-of-known-projec
43140 74 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 64 69 72 74 ts.()..."Return.the.list.of.dirt
43160 79 20 70 72 6f 6a 65 63 74 73 2e 0a 54 68 65 20 6c 69 73 74 20 69 73 20 63 6f 6d 70 6f 73 65 64 y.projects..The.list.is.composed
43180 20 6f 66 20 73 75 62 6c 69 73 74 73 7e 3a 20 28 70 72 6f 6a 65 63 74 2d 70 61 74 68 2c 20 70 72 .of.sublists~:.(project-path,.pr
431a0 6f 6a 65 63 74 2d 73 74 61 74 75 73 29 2e 0a 52 61 69 73 65 20 61 6e 20 65 72 72 6f 72 20 69 66 oject-status)..Raise.an.error.if
431c0 20 74 68 65 69 72 20 69 73 20 6e 6f 20 64 69 72 74 79 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 .their.is.no.dirty.project."...(
431e0 73 61 76 65 2d 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 6d 65 73 73 61 save-window-excursion.....(messa
43200 67 65 20 22 43 68 65 63 6b 69 6e 67 20 66 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 69 ge."Checking.for.modifications.i
43220 6e 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 2e 2e 22 29 0a 20 20 20 20 28 6c 65 74 20 28 n.known.projects...").....(let.(
43240 28 70 72 6f 6a 65 63 74 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 (projects.projectile-known-proje
43260 63 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 61 74 75 73 20 28 29 29 29 0a 20 20 20 20 cts)...........(status.())).....
43280 20 20 28 64 6f 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 ..(dolist.(project.projects)....
432a0 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 .....(when.(and.(projectile-keep
432c0 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 29 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 -project-p.project).(not.(string
432e0 3d 20 27 6e 6f 6e 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 =.'none.(projectile-project-vcs.
43300 70 72 6f 6a 65 63 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6d 70 project))))...........(let.((tmp
43320 2d 73 74 61 74 75 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 68 65 63 6b 2d 76 63 73 2d 73 74 -status.(projectile-check-vcs-st
43340 61 74 75 73 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 atus.project))).............(whe
43360 6e 20 74 6d 70 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 n.tmp-status...............(setq
43380 20 73 74 61 74 75 73 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 20 74 6d 70 2d .status.(cons.(list.project.tmp-
433a0 73 74 61 74 75 73 29 20 73 74 61 74 75 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e status).status)))))).......(when
433c0 20 28 3d 20 28 6c 65 6e 67 74 68 20 73 74 61 74 75 73 29 20 30 29 0a 20 20 20 20 20 20 20 20 28 .(=.(length.status).0).........(
433e0 6d 65 73 73 61 67 65 20 22 4e 6f 20 64 69 72 74 79 20 70 72 6f 6a 65 63 74 73 20 68 61 76 65 20 message."No.dirty.projects.have.
43400 62 65 65 6e 20 66 6f 75 6e 64 22 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 been.found")).......(setq.projec
43420 74 69 6c 65 2d 63 61 63 68 65 64 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 2d 73 74 61 74 75 tile-cached-dirty-projects-statu
43440 73 20 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 73 74 61 74 75 73 29 29 29 0a 0a 3b 3b 3b 23 23 s.status).......status)))..;;;##
43460 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f 77 #autoload.(defun.projectile-brow
43480 73 65 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 61 63 se-dirty-projects.(&optional.cac
434a0 68 65 64 29 0a 20 20 22 42 72 6f 77 73 65 20 64 69 72 74 79 20 76 65 72 73 69 6f 6e 20 63 6f 6e hed)..."Browse.dirty.version.con
434c0 74 72 6f 6c 6c 65 64 20 70 72 6f 6a 65 63 74 73 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 trolled.projects...With.a.prefix
434e0 20 61 72 67 75 6d 65 6e 74 2c 20 6f 72 20 69 66 20 43 41 43 48 45 44 20 69 73 20 6e 6f 6e 2d 6e .argument,.or.if.CACHED.is.non-n
43500 69 6c 2c 20 74 72 79 20 74 6f 20 75 73 65 20 74 68 65 20 63 61 63 68 65 64 0a 64 69 72 74 79 20 il,.try.to.use.the.cached.dirty.
43520 70 72 6f 6a 65 63 74 20 6c 69 73 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 project.list."...(interactive."P
43540 22 29 0a 20 20 28 6c 65 74 20 28 28 73 74 61 74 75 73 20 28 69 66 20 28 61 6e 64 20 63 61 63 68 ")...(let.((status.(if.(and.cach
43560 65 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 64 2d 64 69 72 74 79 2d 70 72 6f 6a 65 ed.projectile-cached-dirty-proje
43580 63 74 73 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cts-status).....................
435a0 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 64 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 projectile-cached-dirty-projects
435c0 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 -status...................(proje
435e0 63 74 69 6c 65 2d 63 68 65 63 6b 2d 76 63 73 2d 73 74 61 74 75 73 2d 6f 66 2d 6b 6e 6f 77 6e 2d ctile-check-vcs-status-of-known-
43600 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 64 2d 70 72 6f 6a 20 6e 69 projects))).........(mod-proj.ni
43620 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 3d 20 28 6c 65 6e 67 74 68 20 73 l)).....(while.(not.(=.(length.s
43640 74 61 74 75 73 29 20 30 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 2d 70 72 6f 6a 20 tatus).0)).......(setq.mod-proj.
43660 28 63 6f 6e 73 20 28 63 61 72 20 28 70 6f 70 20 73 74 61 74 75 73 29 29 20 6d 6f 64 2d 70 72 6f (cons.(car.(pop.status)).mod-pro
43680 6a 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d j))).....(projectile-completing-
436a0 72 65 61 64 20 22 53 65 6c 65 63 74 20 70 72 6f 6a 65 63 74 3a 20 22 20 6d 6f 64 2d 70 72 6f 6a read."Select.project:.".mod-proj
436c0 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 ................................
436e0 20 3a 61 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 76 63 29 29 29 0a 0a 0c 0a 3b 3b .:action.'projectile-vc)))....;;
43700 3b 20 46 69 6e 64 20 6e 65 78 74 2f 70 72 65 76 69 6f 75 73 20 70 72 6f 6a 65 63 74 20 62 75 66 ;.Find.next/previous.project.buf
43720 66 65 72 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 70 65 61 74 2d 75 6e fer.(defun.projectile--repeat-un
43740 74 69 6c 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 20 28 6f 72 69 67 2d 66 75 6e 20 26 72 65 til-project-buffer.(orig-fun.&re
43760 73 74 20 61 72 67 73 29 0a 20 20 22 52 65 70 65 61 74 20 4f 52 49 47 2d 46 55 4e 20 77 69 74 68 st.args)..."Repeat.ORIG-FUN.with
43780 20 41 52 47 53 20 75 6e 74 69 6c 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 .ARGS.until.the.current.buffer.i
437a0 73 20 61 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 28 70 72 6f 6a s.a.project.buffer."...(if.(proj
437c0 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 28 6c 65 74 2a ectile-project-root).......(let*
437e0 20 28 28 6f 74 68 65 72 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 6d 61 6b 65 2d 68 .((other-project-buffers.(make-h
43800 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 29 29 0a 20 20 20 20 20 20 20 20 20 20 ash-table.:test.'eq))...........
43820 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 ...(projectile-project-buffers.(
43840 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 0a 20 20 20 projectile-project-buffers))....
43860 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 2d 69 74 65 72 61 74 69 6f 6e 73 20 28 6c 65 6e 67 74 ..........(max-iterations.(lengt
43880 68 20 28 62 75 66 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 h.(buffer-list)))..............(
438a0 63 6f 75 6e 74 65 72 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 counter.0)).........(dolist.(buf
438c0 66 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 0a fer.projectile-project-buffers).
438e0 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 62 75 66 66 65 72 20 28 63 75 ..........(unless.(eq.buffer.(cu
43900 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 rrent-buffer)).............(puth
43920 61 73 68 20 62 75 66 66 65 72 20 74 20 6f 74 68 65 72 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 ash.buffer.t.other-project-buffe
43940 72 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 64 72 2d 73 61 66 65 20 70 72 rs))).........(when.(cdr-safe.pr
43960 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 ojectile-project-buffers).......
43980 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 3c 20 63 6f 75 6e 74 65 72 20 6d 61 78 2d 69 ....(while.(and.(<.counter.max-i
439a0 74 65 72 61 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 terations)......................
439c0 20 28 6e 6f 74 20 28 67 65 74 68 61 73 68 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 .(not.(gethash.(current-buffer).
439e0 6f 74 68 65 72 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 0a 20 20 20 20 20 20 20 other-project-buffers)))........
43a00 20 20 20 20 20 28 61 70 70 6c 79 20 6f 72 69 67 2d 66 75 6e 20 61 72 67 73 29 0a 20 20 20 20 20 .....(apply.orig-fun.args)......
43a20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 63 6f 75 6e 74 65 72 29 29 29 29 0a 20 20 20 20 .......(cl-incf.counter)))).....
43a40 28 61 70 70 6c 79 20 6f 72 69 67 2d 66 75 6e 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 (apply.orig-fun.args)))..(defun.
43a60 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 65 78 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 20 28 projectile-next-project-buffer.(
43a80 29 0a 20 20 22 49 6e 20 73 65 6c 65 63 74 65 64 20 77 69 6e 64 6f 77 20 73 77 69 74 63 68 20 74 )..."In.selected.window.switch.t
43aa0 6f 20 74 68 65 20 6e 65 78 74 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 74 o.the.next.project.buffer...If.t
43ac0 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 64 6f 65 73 20 6e 6f 74 20 62 65 6c 6f 6e he.current.buffer.does.not.belon
43ae0 67 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 2c 20 63 61 6c 6c 20 60 6e 65 78 74 2d 62 75 66 66 65 g.to.a.project,.call.`next-buffe
43b00 72 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 r'."...(interactive)...(projecti
43b20 6c 65 2d 2d 72 65 70 65 61 74 2d 75 6e 74 69 6c 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 20 le--repeat-until-project-buffer.
43b40 23 27 6e 65 78 74 2d 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 #'next-buffer))..(defun.projecti
43b60 6c 65 2d 70 72 65 76 69 6f 75 73 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 le-previous-project-buffer.()...
43b80 22 49 6e 20 73 65 6c 65 63 74 65 64 20 77 69 6e 64 6f 77 20 73 77 69 74 63 68 20 74 6f 20 74 68 "In.selected.window.switch.to.th
43ba0 65 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 74 e.previous.project.buffer...If.t
43bc0 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 64 6f 65 73 20 6e 6f 74 20 62 65 6c 6f 6e he.current.buffer.does.not.belon
43be0 67 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 2c 20 63 61 6c 6c 20 60 70 72 65 76 69 6f 75 73 2d 62 g.to.a.project,.call.`previous-b
43c00 75 66 66 65 72 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 70 72 6f 6a uffer'."...(interactive)...(proj
43c20 65 63 74 69 6c 65 2d 2d 72 65 70 65 61 74 2d 75 6e 74 69 6c 2d 70 72 6f 6a 65 63 74 2d 62 75 66 ectile--repeat-until-project-buf
43c40 66 65 72 20 23 27 70 72 65 76 69 6f 75 73 2d 62 75 66 66 65 72 29 29 0a 0a 0c 0a 3b 3b 3b 20 45 fer.#'previous-buffer))....;;;.E
43c60 64 69 74 69 6e 67 20 61 20 70 72 6f 6a 65 63 74 27 73 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 0a 28 diting.a.project's..dir-locals.(
43c80 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 20 28 defun.projectile-read-variable.(
43ca0 29 0a 20 20 22 50 72 6f 6d 70 74 20 66 6f 72 20 61 20 76 61 72 69 61 62 6c 65 20 61 6e 64 20 72 )..."Prompt.for.a.variable.and.r
43cc0 65 74 75 72 6e 20 69 74 73 20 6e 61 6d 65 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 eturn.its.name."...(completing-r
43ce0 65 61 64 20 22 56 61 72 69 61 62 6c 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ead."Variable:."................
43d00 20 20 20 20 6f 62 61 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....obarray....................(
43d20 6c 61 6d 62 64 61 20 28 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(v)......................
43d40 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 76 29 20 28 6e 6f 74 20 28 6b 65 79 77 6f 72 64 70 20 76 (and.(boundp.v).(not.(keywordp.v
43d60 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 0a 0a 28 64 65 ))))....................t))..(de
43d80 66 69 6e 65 2d 73 6b 65 6c 65 74 6f 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6b 65 6c 2d 76 61 fine-skeleton.projectile-skel-va
43da0 72 69 61 62 6c 65 2d 63 6f 6e 73 0a 20 20 22 49 6e 73 65 72 74 20 61 20 76 61 72 69 61 62 6c 65 riable-cons..."Insert.a.variable
43dc0 2d 6e 61 6d 65 20 61 6e 64 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 63 6f 6e 73 2d 63 65 6c 6c -name.and.a.value.in.a.cons-cell
43de0 2e 22 0a 20 20 22 56 61 6c 75 65 3a 20 22 0a 20 20 22 28 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 ."..."Value:."..."("...(projecti
43e00 6c 65 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 22 20 2e 20 22 0a 20 20 73 74 72 0a le-read-variable)..."..."...str.
43e20 20 20 22 29 22 29 0a 0a 28 64 65 66 69 6e 65 2d 73 6b 65 6c 65 74 6f 6e 20 70 72 6f 6a 65 63 74 ..")")..(define-skeleton.project
43e40 69 6c 65 2d 73 6b 65 6c 2d 64 69 72 2d 6c 6f 63 61 6c 73 0a 20 20 22 49 6e 73 65 72 74 20 61 20 ile-skel-dir-locals..."Insert.a.
43e60 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 20 74 65 6d 70 6c 61 74 65 2e 22 0a 20 20 6e 69 6c 0a .dir-locals.el.template."...nil.
43e80 20 20 22 28 28 6e 69 6c 20 2e 20 28 22 0a 20 20 28 22 22 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 .."((nil...("...("".'(projectile
43ea0 2d 73 6b 65 6c 2d 76 61 72 69 61 62 6c 65 2d 63 6f 6e 73 29 20 5c 6e 29 0a 20 20 72 65 73 75 6d -skel-variable-cons).\n)...resum
43ec0 65 3a 0a 20 20 22 29 29 29 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 e:...")))")..;;;###autoload.(def
43ee0 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 64 69 74 2d 64 69 72 2d 6c 6f 63 61 6c 73 20 28 29 un.projectile-edit-dir-locals.()
43f00 0a 20 20 22 45 64 69 74 20 6f 72 20 63 72 65 61 74 65 20 61 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 ..."Edit.or.create.a..dir-locals
43f20 2e 65 6c 20 66 69 6c 65 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 .el.file.of.the.project."...(int
43f40 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 65 78 70 61 6e 64 2d eractive)...(let.((file.(expand-
43f60 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 22 20 28 70 72 6f 6a file-name.".dir-locals.el".(proj
43f80 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 66 69 6e ectile-acquire-root)))).....(fin
43fa0 64 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 66 69 6c d-file.file).....(when.(not.(fil
43fc0 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d e-exists-p.file)).......(unwind-
43fe0 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6b protect...........(projectile-sk
44000 65 6c 2d 64 69 72 2d 6c 6f 63 61 6c 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 el-dir-locals).........(save-buf
44020 66 65 72 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 50 72 6f 6a 65 63 74 69 6c 65 20 4d 69 6e 6f 72 fer)))))....;;;.Projectile.Minor
44040 20 6d 6f 64 65 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 .mode..(defcustom.projectile-mod
44060 65 2d 6c 69 6e 65 2d 70 72 65 66 69 78 0a 20 20 22 20 50 72 6f 6a 65 63 74 69 6c 65 22 0a 20 20 e-line-prefix...".Projectile"...
44080 22 4d 6f 64 65 20 6c 69 6e 65 20 6c 69 67 68 74 65 72 20 70 72 65 66 69 78 20 66 6f 72 20 50 72 "Mode.line.lighter.prefix.for.Pr
440a0 6f 6a 65 63 74 69 6c 65 2e 0a 49 74 27 73 20 75 73 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 ojectile..It's.used.by.`projecti
440c0 6c 65 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 2d 6c 69 6e 65 27 0a 77 68 65 6e 20 75 73 69 6e 67 le-default-mode-line'.when.using
440e0 20 64 79 6e 61 6d 69 63 20 6d 6f 64 65 20 6c 69 6e 65 20 6c 69 67 68 74 65 72 20 61 6e 64 20 69 .dynamic.mode.line.lighter.and.i
44100 73 20 74 68 65 20 6f 6e 6c 79 0a 74 68 69 6e 67 20 73 68 6f 77 6e 20 69 6e 20 74 68 65 20 6d 6f s.the.only.thing.shown.in.the.mo
44120 64 65 20 6c 69 6e 65 20 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 de.line.otherwise."...:group.'pr
44140 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 70 61 63 6b ojectile...:type.'string...:pack
44160 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 32 age-version.'(projectile..."0.12
44180 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 68 6f .0"))..(defcustom.projectile-sho
441a0 77 2d 6d 65 6e 75 20 74 0a 20 20 22 43 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 20 74 6f 20 w-menu.t..."Controls.whether.to.
441c0 64 69 73 70 6c 61 79 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 6d 65 6e 75 2e 22 0a 20 20 3a 67 display.Projectile's.menu."...:g
441e0 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 roup.'projectile...:type.'boolea
44200 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c n...:package-version.'(projectil
44220 65 20 2e 20 22 32 2e 36 2e 30 22 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 70 72 6f e..."2.6.0"))..(defvar-local.pro
44240 6a 65 63 74 69 6c 65 2d 2d 6d 6f 64 65 2d 6c 69 6e 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f jectile--mode-line.projectile-mo
44260 64 65 2d 6c 69 6e 65 2d 70 72 65 66 69 78 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 de-line-prefix)..(defun.projecti
44280 6c 65 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 52 65 70 6f 72 le-default-mode-line.()..."Repor
442a0 74 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 61 6e 64 20 74 79 70 65 20 69 6e 20 74 68 65 20 6d t.project.name.and.type.in.the.m
442c0 6f 64 65 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 odeline."...(let.((project-name.
442e0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 (projectile-project-name))......
44300 20 20 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f ...(project-type.(projectile-pro
44320 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 5b 25 73 25 ject-type))).....(format."%s[%s%
44340 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d s]".............projectile-mode-
44360 6c 69 6e 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 70 72 6f 6a line-prefix.............(or.proj
44380 65 63 74 2d 6e 61 6d 65 20 22 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 ect-name."-").............(if.pr
443a0 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d oject-type.................(form
443c0 61 74 20 22 3a 25 73 22 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 at.":%s".project-type)..........
443e0 20 20 20 20 20 22 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 75 .....""))))..(defun.projectile-u
44400 70 64 61 74 65 2d 6d 6f 64 65 2d 6c 69 6e 65 20 28 29 0a 20 20 22 55 70 64 61 74 65 20 74 68 65 pdate-mode-line.()..."Update.the
44420 20 50 72 6f 6a 65 63 74 69 6c 65 20 6d 6f 64 65 2d 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 .Projectile.mode-line."...(let.(
44440 28 6d 6f 64 65 2d 6c 69 6e 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d (mode-line.(funcall.projectile-m
44460 6f 64 65 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 ode-line-function))).....(setq.p
44480 72 6f 6a 65 63 74 69 6c 65 2d 2d 6d 6f 64 65 2d 6c 69 6e 65 20 6d 6f 64 65 2d 6c 69 6e 65 29 29 rojectile--mode-line.mode-line))
444a0 0a 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 0a 0a 28 64 ...(force-mode-line-update))..(d
444c0 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 28 efvar.projectile-command-map...(
444e0 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 let.((map.(make-sparse-keymap)))
44500 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 61 22 29 .....(define-key.map.(kbd."4.a")
44520 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 6f 74 .#'projectile-find-other-file-ot
44540 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 her-window).....(define-key.map.
44560 28 6b 62 64 20 22 34 20 62 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d (kbd."4.b").#'projectile-switch-
44580 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 28 64 65 66 to-buffer-other-window).....(def
445a0 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 43 2d 6f 22 29 20 23 27 70 72 6f 6a ine-key.map.(kbd."4.C-o").#'proj
445c0 65 63 74 69 6c 65 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 ectile-display-buffer).....(defi
445e0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 64 22 29 20 23 27 70 72 6f 6a 65 63 74 ne-key.map.(kbd."4.d").#'project
44600 69 6c 65 2d 66 69 6e 64 2d 64 69 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 28 ile-find-dir-other-window).....(
44620 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 44 22 29 20 23 27 70 72 6f define-key.map.(kbd."4.D").#'pro
44640 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 jectile-dired-other-window).....
44660 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 66 22 29 20 23 27 70 72 (define-key.map.(kbd."4.f").#'pr
44680 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 ojectile-find-file-other-window)
446a0 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 34 20 67 22 29 .....(define-key.map.(kbd."4.g")
446c0 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 .#'projectile-find-file-dwim-oth
446e0 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 er-window).....(define-key.map.(
44700 6b 62 64 20 22 34 20 74 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 kbd."4.t").#'projectile-find-imp
44720 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 lementation-or-test-other-window
44740 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 35 20 61 22 ).....(define-key.map.(kbd."5.a"
44760 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 6f ).#'projectile-find-other-file-o
44780 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ther-frame).....(define-key.map.
447a0 28 6b 62 64 20 22 35 20 62 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d (kbd."5.b").#'projectile-switch-
447c0 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 20 28 64 65 66 69 to-buffer-other-frame).....(defi
447e0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 35 20 64 22 29 20 23 27 70 72 6f 6a 65 63 74 ne-key.map.(kbd."5.d").#'project
44800 69 6c 65 2d 66 69 6e 64 2d 64 69 72 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 20 28 64 ile-find-dir-other-frame).....(d
44820 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 35 20 44 22 29 20 23 27 70 72 6f 6a efine-key.map.(kbd."5.D").#'proj
44840 65 63 74 69 6c 65 2d 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 20 28 64 ectile-dired-other-frame).....(d
44860 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 35 20 66 22 29 20 23 27 70 72 6f 6a efine-key.map.(kbd."5.f").#'proj
44880 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 ectile-find-file-other-frame)...
448a0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 35 20 67 22 29 20 23 27 ..(define-key.map.(kbd."5.g").#'
448c0 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 2d 6f 74 68 65 72 2d projectile-find-file-dwim-other-
448e0 66 72 61 6d 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 frame).....(define-key.map.(kbd.
44900 22 35 20 74 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 "5.t").#'projectile-find-impleme
44920 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 6f 74 68 65 72 2d 66 72 61 6d 65 29 0a 20 20 20 ntation-or-test-other-frame)....
44940 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 21 22 29 20 23 27 70 72 6f .(define-key.map.(kbd."!").#'pro
44960 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f jectile-run-shell-command-in-roo
44980 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 26 22 29 t).....(define-key.map.(kbd."&")
449a0 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 6f .#'projectile-run-async-shell-co
449c0 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d mmand-in-root).....(define-key.m
449e0 61 70 20 28 6b 62 64 20 22 3f 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 72 ap.(kbd."?").#'projectile-find-r
44a00 65 66 65 72 65 6e 63 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 eferences).....(define-key.map.(
44a20 6b 62 64 20 22 61 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 kbd."a").#'projectile-find-other
44a40 2d 66 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 -file).....(define-key.map.(kbd.
44a60 22 62 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 "b").#'projectile-switch-to-buff
44a80 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 64 22 er).....(define-key.map.(kbd."d"
44aa0 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 29 0a 20 20 20 20 28 64 65 ).#'projectile-find-dir).....(de
44ac0 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 44 22 29 20 23 27 70 72 6f 6a 65 63 74 fine-key.map.(kbd."D").#'project
44ae0 69 6c 65 2d 64 69 72 65 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ile-dired).....(define-key.map.(
44b00 6b 62 64 20 22 65 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 29 0a 20 kbd."e").#'projectile-recentf)..
44b20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 45 22 29 20 23 27 70 ...(define-key.map.(kbd."E").#'p
44b40 72 6f 6a 65 63 74 69 6c 65 2d 65 64 69 74 2d 64 69 72 2d 6c 6f 63 61 6c 73 29 0a 20 20 20 20 28 rojectile-edit-dir-locals).....(
44b60 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 66 22 29 20 23 27 70 72 6f 6a 65 define-key.map.(kbd."f").#'proje
44b80 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 ctile-find-file).....(define-key
44ba0 20 6d 61 70 20 28 6b 62 64 20 22 67 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 .map.(kbd."g").#'projectile-find
44bc0 2d 66 69 6c 65 2d 64 77 69 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 -file-dwim).....(define-key.map.
44be0 28 6b 62 64 20 22 46 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 (kbd."F").#'projectile-find-file
44c00 2d 69 6e 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 3b 3b 20 74 68 65 20 68 -in-known-projects).....;;.the.h
44c20 20 6b 65 79 20 69 73 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 68 65 6c 6d 2d 70 72 6f 6a 65 63 .key.is.reserved.for.helm-projec
44c40 74 69 6c 65 0a 20 20 20 20 3b 3b 20 74 68 65 20 62 69 6e 64 69 6e 67 20 62 65 6c 6f 77 20 77 69 tile.....;;.the.binding.below.wi
44c60 6c 6c 20 62 65 20 61 64 64 65 64 20 77 68 65 6e 20 68 65 6c 6d 2d 70 72 6f 6a 65 63 74 69 6c 65 ll.be.added.when.helm-projectile
44c80 20 69 73 20 65 6e 61 62 6c 65 64 0a 20 20 20 20 3b 3b 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 70 .is.enabled.....;;.(define-key.p
44ca0 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 28 6b 62 64 20 22 68 22 29 20 rojectile-command-map.(kbd."h").
44cc0 23 27 68 65 6c 6d 2d 70 72 6f 6a 65 63 74 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b #'helm-projectile).....(define-k
44ce0 65 79 20 6d 61 70 20 28 6b 62 64 20 22 69 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e ey.map.(kbd."i").#'projectile-in
44d00 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 validate-cache).....(define-key.
44d20 6d 61 70 20 28 6b 62 64 20 22 49 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 map.(kbd."I").#'projectile-ibuff
44d40 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6a 22 er).....(define-key.map.(kbd."j"
44d60 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 29 0a 20 20 20 20 28 64 65 ).#'projectile-find-tag).....(de
44d80 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6b 22 29 20 23 27 70 72 6f 6a 65 63 74 fine-key.map.(kbd."k").#'project
44da0 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 ile-kill-buffers).....(define-ke
44dc0 79 20 6d 61 70 20 28 6b 62 64 20 22 6c 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e y.map.(kbd."l").#'projectile-fin
44de0 64 2d 66 69 6c 65 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 64 65 66 69 6e 65 d-file-in-directory).....(define
44e00 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6d 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d -key.map.(kbd."m").#'projectile-
44e20 63 6f 6d 6d 61 6e 64 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 commander).....(define-key.map.(
44e40 6b 62 64 20 22 6f 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 6c 74 69 2d 6f 63 63 75 kbd."o").#'projectile-multi-occu
44e60 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 r).....(define-key.map.(kbd."p")
44e80 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 29 0a 20 20 .#'projectile-switch-project)...
44ea0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 70 72 ..(define-key.map.(kbd."q").#'pr
44ec0 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 29 0a 20 20 ojectile-switch-open-project)...
44ee0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 70 72 ..(define-key.map.(kbd."r").#'pr
44f00 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 ojectile-replace).....(define-ke
44f20 79 20 6d 61 70 20 28 6b 62 64 20 22 52 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 y.map.(kbd."R").#'projectile-reg
44f40 65 6e 65 72 61 74 65 2d 74 61 67 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 enerate-tags).....(define-key.ma
44f60 70 20 28 6b 62 64 20 22 73 20 67 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 29 p.(kbd."s.g").#'projectile-grep)
44f80 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 72 22 29 .....(define-key.map.(kbd."s.r")
44fa0 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 29 0a 20 20 20 20 28 64 65 66 69 .#'projectile-ripgrep).....(defi
44fc0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 20 73 22 29 20 23 27 70 72 6f 6a 65 63 74 ne-key.map.(kbd."s.s").#'project
44fe0 69 6c 65 2d 61 67 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 ile-ag).....(define-key.map.(kbd
45000 20 22 73 20 78 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 72 65 66 65 72 65 ."s.x").#'projectile-find-refere
45020 6e 63 65 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 nces).....(define-key.map.(kbd."
45040 53 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 70 72 6f 6a 65 63 74 2d 62 75 S").#'projectile-save-project-bu
45060 66 66 65 72 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 ffers).....(define-key.map.(kbd.
45080 22 74 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e "t").#'projectile-toggle-between
450a0 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 29 0a 20 20 20 20 28 64 -implementation-and-test).....(d
450c0 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 54 22 29 20 23 27 70 72 6f 6a 65 63 efine-key.map.(kbd."T").#'projec
450e0 74 69 6c 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 tile-find-test-file).....(define
45100 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 76 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d -key.map.(kbd."v").#'projectile-
45120 76 63 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 56 22 vc).....(define-key.map.(kbd."V"
45140 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f 77 73 65 2d 64 69 72 74 79 2d 70 72 6f 6a ).#'projectile-browse-dirty-proj
45160 65 63 74 73 29 0a 20 20 20 20 3b 3b 20 70 72 6f 6a 65 63 74 20 6c 69 66 65 63 79 63 6c 65 20 65 ects).....;;.project.lifecycle.e
45180 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 xternal.commands.....(define-key
451a0 20 6d 61 70 20 28 6b 62 64 20 22 63 20 6f 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f .map.(kbd."c.o").#'projectile-co
451c0 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 nfigure-project).....(define-key
451e0 20 6d 61 70 20 28 6b 62 64 20 22 63 20 63 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f .map.(kbd."c.c").#'projectile-co
45200 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d mpile-project).....(define-key.m
45220 61 70 20 28 6b 62 64 20 22 63 20 70 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b ap.(kbd."c.p").#'projectile-pack
45240 61 67 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 age-project).....(define-key.map
45260 20 28 6b 62 64 20 22 63 20 69 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c .(kbd."c.i").#'projectile-instal
45280 6c 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 l-project).....(define-key.map.(
452a0 6b 62 64 20 22 63 20 74 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f kbd."c.t").#'projectile-test-pro
452c0 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 ject).....(define-key.map.(kbd."
452e0 63 20 72 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 29 0a c.r").#'projectile-run-project).
45300 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 4c 65 67 61 63 79 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 ....;;.TODO:.Legacy.keybindings.
45320 74 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 69 6e 20 50 72 6f 6a 65 63 74 69 that.will.be.removed.in.Projecti
45340 6c 65 20 33 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 le.3.....(define-key.map.(kbd."C
45360 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 ").#'projectile-configure-projec
45380 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4b 22 29 t).....(define-key.map.(kbd."K")
453a0 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 29 0a 20 .#'projectile-package-project)..
453c0 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4c 22 29 20 23 27 70 ...(define-key.map.(kbd."L").#'p
453e0 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 rojectile-install-project).....(
45400 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 50 22 29 20 23 27 70 72 6f 6a 65 define-key.map.(kbd."P").#'proje
45420 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d ctile-test-project).....(define-
45440 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 75 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 key.map.(kbd."u").#'projectile-r
45460 75 6e 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 3b 3b 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 77 un-project).....;;.integration.w
45480 69 74 68 20 75 74 69 6c 69 74 69 65 73 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 ith.utilities.....(define-key.ma
454a0 70 20 28 6b 62 64 20 22 78 20 65 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 65 p.(kbd."x.e").#'projectile-run-e
454c0 73 68 65 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 shell).....(define-key.map.(kbd.
454e0 22 78 20 69 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 69 65 6c 6d 29 0a 20 20 "x.i").#'projectile-run-ielm)...
45500 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 74 22 29 20 23 27 ..(define-key.map.(kbd."x.t").#'
45520 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 74 65 72 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 projectile-run-term).....(define
45540 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 73 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c -key.map.(kbd."x.s").#'projectil
45560 65 2d 72 75 6e 2d 73 68 65 6c 6c 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 e-run-shell).....(define-key.map
45580 20 28 6b 62 64 20 22 78 20 67 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 67 64 .(kbd."x.g").#'projectile-run-gd
455a0 62 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 76 b).....(define-key.map.(kbd."x.v
455c0 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 29 0a 20 20 20 20 28 ").#'projectile-run-vterm).....(
455e0 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 34 20 76 22 29 20 23 27 70 define-key.map.(kbd."x.4.v").#'p
45600 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 rojectile-run-vterm-other-window
45620 29 0a 20 20 20 20 3b 3b 20 6d 69 73 63 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 ).....;;.misc.....(define-key.ma
45640 70 20 28 6b 62 64 20 22 7a 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 63 p.(kbd."z").#'projectile-cache-c
45660 75 72 72 65 6e 74 2d 66 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 urrent-file).....(define-key.map
45680 20 28 6b 62 64 20 22 3c 6c 65 66 74 3e 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 .(kbd."<left>").#'projectile-pre
456a0 76 69 6f 75 73 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e vious-project-buffer).....(defin
456c0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 72 69 67 68 74 3e 22 29 20 23 27 70 72 6f 6a e-key.map.(kbd."<right>").#'proj
456e0 65 63 74 69 6c 65 2d 6e 65 78 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 ectile-next-project-buffer).....
45700 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 45 53 43 22 29 20 23 27 70 72 (define-key.map.(kbd."ESC").#'pr
45720 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 2d 6f 74 68 65 72 2d 62 ojectile-project-buffers-other-b
45740 75 66 66 65 72 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 50 72 uffer).....map)..."Keymap.for.Pr
45760 6f 6a 65 63 74 69 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 61 66 74 65 72 20 60 70 72 6f 6a 65 63 74 ojectile.commands.after.`project
45780 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 27 2e 22 29 0a 28 66 73 65 74 20 27 70 72 6f ile-keymap-prefix'.").(fset.'pro
457a0 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 jectile-command-map.projectile-c
457c0 6f 6d 6d 61 6e 64 2d 6d 61 70 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d ommand-map)..(defvar.projectile-
457e0 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 mode-map...(let.((map.(make-spar
45800 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c se-keymap))).....(when.projectil
45820 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 e-keymap-prefix.......(define-ke
45840 79 20 6d 61 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 20 27 y.map.projectile-keymap-prefix.'
45860 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 29 29 0a 20 20 20 20 28 65 61 projectile-command-map)).....(ea
45880 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d sy-menu-define.projectile-mode-m
458a0 65 6e 75 20 6d 61 70 0a 20 20 20 20 20 20 22 4d 65 6e 75 20 66 6f 72 20 50 72 6f 6a 65 63 74 69 enu.map......."Menu.for.Projecti
458c0 6c 65 22 0a 20 20 20 20 20 20 27 28 22 50 72 6f 6a 65 63 74 69 6c 65 22 20 3a 76 69 73 69 62 6c le".......'("Projectile".:visibl
458e0 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 68 6f 77 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 28 e.projectile-show-menu.........(
45900 22 46 69 6e 64 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 66 69 6c 65 22 20 "Find..."..........["Find.file".
45920 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 20 20 20 5b projectile-find-file]..........[
45940 22 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 22 20 70 72 "Find.file.in.known.projects".pr
45960 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a ojectile-find-file-in-known-proj
45980 65 63 74 73 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 74 65 73 74 20 66 69 6c 65 22 ects]..........["Find.test.file"
459a0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 5d 0a 20 20 20 20 .projectile-find-test-file].....
459c0 20 20 20 20 20 5b 22 46 69 6e 64 20 64 69 72 65 63 74 6f 72 79 22 20 70 72 6f 6a 65 63 74 69 6c .....["Find.directory".projectil
459e0 65 2d 66 69 6e 64 2d 64 69 72 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 66 69 6c 65 e-find-dir]..........["Find.file
45a00 20 69 6e 20 64 69 72 65 63 74 6f 72 79 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 .in.directory".projectile-find-f
45a20 69 6c 65 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e ile-in-directory]..........["Fin
45a40 64 20 6f 74 68 65 72 20 66 69 6c 65 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 d.other.file".projectile-find-ot
45a60 68 65 72 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4a 75 6d 70 20 62 65 74 77 65 65 her-file]..........["Jump.betwee
45a80 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 61 6e 64 20 74 65 73 74 20 66 n.implementation.file.and.test.f
45aa0 69 6c 65 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 ile".projectile-toggle-between-i
45ac0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 5d 29 0a 20 20 20 20 20 20 20 mplementation-and-test])........
45ae0 20 28 22 42 75 66 66 65 72 73 22 0a 20 20 20 20 20 20 20 20 20 5b 22 53 77 69 74 63 68 20 74 6f .("Buffers"..........["Switch.to
45b00 20 62 75 66 66 65 72 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 .buffer".projectile-switch-to-bu
45b20 66 66 65 72 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4b 69 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 ffer]..........["Kill.project.bu
45b40 66 66 65 72 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 5d 0a ffers".projectile-kill-buffers].
45b60 20 20 20 20 20 20 20 20 20 5b 22 53 61 76 65 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 22 .........["Save.project.buffers"
45b80 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 .projectile-save-project-buffers
45ba0 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 65 63 65 6e 74 20 66 69 6c 65 73 22 20 70 72 6f 6a 65 ]..........["Recent.files".proje
45bc0 63 74 69 6c 65 2d 72 65 63 65 6e 74 66 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 50 72 65 76 69 6f ctile-recentf]..........["Previo
45be0 75 73 20 62 75 66 66 65 72 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 76 69 6f 75 73 2d 70 us.buffer".projectile-previous-p
45c00 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4e 65 78 74 20 62 roject-buffer]..........["Next.b
45c20 75 66 66 65 72 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 65 78 74 2d 70 72 6f 6a 65 63 74 2d 62 uffer".projectile-next-project-b
45c40 75 66 66 65 72 5d 29 0a 20 20 20 20 20 20 20 20 28 22 50 72 6f 6a 65 63 74 73 22 0a 20 20 20 20 uffer]).........("Projects".....
45c60 20 20 20 20 20 5b 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 .....["Switch.to.project".projec
45c80 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 tile-switch-project]..........["
45ca0 53 77 69 74 63 68 20 74 6f 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 Switch.to.open.project".projecti
45cc0 6c 65 2d 73 77 69 74 63 68 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 le-switch-open-project].........
45ce0 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 44 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 ."--"..........["Discover.projec
45d00 74 73 20 69 6e 20 64 69 72 65 63 74 6f 72 79 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 ts.in.directory".projectile-disc
45d20 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 5d 0a 20 20 20 20 over-projects-in-directory].....
45d40 20 20 20 20 20 5b 22 44 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 73 65 61 72 .....["Discover.projects.in.sear
45d60 63 68 20 70 61 74 68 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f ch.path".projectile-discover-pro
45d80 6a 65 63 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 5d 0a 20 20 20 20 20 20 20 20 20 5b jects-in-search-path]..........[
45da0 22 43 6c 65 61 72 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 22 20 70 72 6f 6a 65 63 74 69 6c "Clear.known.projects".projectil
45dc0 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 5d 0a 20 20 20 20 20 20 20 20 e-clear-known-projects].........
45de0 20 5b 22 52 65 73 65 74 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 22 20 70 72 6f 6a 65 63 74 .["Reset.known.projects".project
45e00 69 6c 65 2d 72 65 73 65 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 5d 0a 20 20 20 20 20 20 ile-reset-known-projects].......
45e20 20 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 4f 70 65 6e 20 70 72 6f 6a 65 63 74 20 ..."--"..........["Open.project.
45e40 69 6e 20 64 69 72 65 64 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 5d 0a 20 20 20 20 in.dired".projectile-dired].....
45e60 20 20 20 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 42 72 6f 77 73 65 20 64 69 72 74 ....."--"..........["Browse.dirt
45e80 79 20 70 72 6f 6a 65 63 74 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f 77 73 65 2d 64 69 y.projects".projectile-browse-di
45ea0 72 74 79 2d 70 72 6f 6a 65 63 74 73 5d 0a 20 20 20 20 20 20 20 20 20 22 2d 2d 22 0a 20 20 20 20 rty-projects].........."--".....
45ec0 20 20 20 20 20 5b 22 43 61 63 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 22 20 70 72 6f 6a 65 .....["Cache.current.file".proje
45ee0 63 74 69 6c 65 2d 63 61 63 68 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 ctile-cache-current-file].......
45f00 20 20 20 5b 22 49 6e 76 61 6c 69 64 61 74 65 20 63 61 63 68 65 22 20 70 72 6f 6a 65 63 74 69 6c ...["Invalidate.cache".projectil
45f20 65 2d 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 e-invalidate-cache]..........["R
45f40 65 67 65 6e 65 72 61 74 65 20 5b 65 7c 67 5d 74 61 67 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d egenerate.[e|g]tags".projectile-
45f60 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 5d 0a 20 20 20 20 20 20 20 20 20 22 2d 2d 22 0a 20 regenerate-tags].........."--"..
45f80 20 20 20 20 20 20 20 20 5b 22 54 6f 67 67 6c 65 20 70 72 6f 6a 65 63 74 20 77 69 64 65 20 72 65 ........["Toggle.project.wide.re
45fa0 61 64 2d 6f 6e 6c 79 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 70 72 6f 6a 65 ad-only".projectile-toggle-proje
45fc0 63 74 2d 72 65 61 64 2d 6f 6e 6c 79 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 45 64 69 74 20 2e 64 ct-read-only]..........["Edit..d
45fe0 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 64 69 74 2d 64 69 ir-locals.el".projectile-edit-di
46000 72 2d 6c 6f 63 61 6c 73 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 50 72 6f 6a 65 63 74 20 69 6e 66 r-locals]..........["Project.inf
46020 6f 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 66 6f 5d 29 0a 20 20 20 o".projectile-project-info])....
46040 20 20 20 20 20 28 22 53 65 61 72 63 68 22 0a 20 20 20 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 .....("Search"..........["Search
46060 20 77 69 74 68 20 67 72 65 70 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 5d 0a 20 20 20 .with.grep".projectile-grep]....
46080 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 20 77 69 74 68 20 61 67 22 20 70 72 6f 6a 65 63 74 69 ......["Search.with.ag".projecti
460a0 6c 65 2d 61 67 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 20 77 69 74 68 20 72 69 le-ag]..........["Search.with.ri
460c0 70 67 72 65 70 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 5d 0a 20 20 20 20 20 pgrep".projectile-ripgrep]......
460e0 20 20 20 20 5b 22 52 65 70 6c 61 63 65 20 69 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 ....["Replace.in.project".projec
46100 74 69 6c 65 2d 72 65 70 6c 61 63 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4d 75 6c 74 69 2d 6f tile-replace]..........["Multi-o
46120 63 63 75 72 20 69 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 6c 74 ccur.in.project".projectile-mult
46140 69 2d 6f 63 63 75 72 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 72 65 66 65 72 65 6e i-occur]..........["Find.referen
46160 63 65 73 20 69 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d ces.in.project".projectile-find-
46180 72 65 66 65 72 65 6e 63 65 73 5d 29 0a 20 20 20 20 20 20 20 20 28 22 52 75 6e 2e 2e 2e 22 0a 20 references]).........("Run..."..
461a0 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 73 68 65 6c 6c 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d ........["Run.shell".projectile-
461c0 72 75 6e 2d 73 68 65 6c 6c 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 65 73 68 65 6c 6c run-shell]..........["Run.eshell
461e0 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 65 73 68 65 6c 6c 5d 0a 20 20 20 20 20 20 20 ".projectile-run-eshell]........
46200 20 20 5b 22 52 75 6e 20 69 65 6c 6d 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 69 65 6c ..["Run.ielm".projectile-run-iel
46220 6d 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 74 65 72 6d 22 20 70 72 6f 6a 65 63 74 69 m]..........["Run.term".projecti
46240 6c 65 2d 72 75 6e 2d 74 65 72 6d 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 76 74 65 72 le-run-term]..........["Run.vter
46260 6d 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 5d 0a 20 20 20 20 20 20 20 m".projectile-run-vterm]........
46280 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 47 44 42 22 20 70 72 6f 6a 65 .."--"..........["Run.GDB".proje
462a0 63 74 69 6c 65 2d 72 75 6e 2d 67 64 62 5d 29 0a 20 20 20 20 20 20 20 20 28 22 42 75 69 6c 64 22 ctile-run-gdb]).........("Build"
462c0 0a 20 20 20 20 20 20 20 20 20 5b 22 43 6f 6e 66 69 67 75 72 65 20 70 72 6f 6a 65 63 74 22 20 70 ..........["Configure.project".p
462e0 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 rojectile-configure-project]....
46300 20 20 20 20 20 20 5b 22 43 6f 6d 70 69 6c 65 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 ......["Compile.project".project
46320 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 ile-compile-project]..........["
46340 54 65 73 74 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 Test.project".projectile-test-pr
46360 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 49 6e 73 74 61 6c 6c 20 70 72 6f 6a 65 63 oject]..........["Install.projec
46380 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 5d 0a 20 t".projectile-install-project]..
463a0 20 20 20 20 20 20 20 20 5b 22 50 61 63 6b 61 67 65 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 ........["Package.project".proje
463c0 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 ctile-package-project]..........
463e0 5b 22 52 75 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 ["Run.project".projectile-run-pr
46400 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 oject].........."--"..........["
46420 52 65 70 65 61 74 20 6c 61 73 74 20 62 75 69 6c 64 20 63 6f 6d 6d 61 6e 64 22 20 70 72 6f 6a 65 Repeat.last.build.command".proje
46440 63 74 69 6c 65 2d 72 65 70 65 61 74 2d 6c 61 73 74 2d 63 6f 6d 6d 61 6e 64 5d 29 0a 20 20 20 20 ctile-repeat-last-command]).....
46460 20 20 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 5b 22 41 62 6f 75 74 22 20 70 72 6f 6a 65 63 ...."--".........["About".projec
46480 74 69 6c 65 2d 76 65 72 73 69 6f 6e 5d 29 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d tile-version])).....map)..."Keym
464a0 61 70 20 66 6f 72 20 50 72 6f 6a 65 63 74 69 6c 65 20 6d 6f 64 65 2e 22 29 0a 0a 28 64 65 66 75 ap.for.Projectile.mode.")..(defu
464c0 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 2d 66 75 6e 63 n.projectile-find-file-hook-func
464e0 74 69 6f 6e 20 28 29 0a 20 20 22 43 61 6c 6c 65 64 20 62 79 20 60 66 69 6e 64 2d 66 69 6c 65 2d tion.()..."Called.by.`find-file-
46500 68 6f 6f 6b 27 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 27 20 69 73 20 hook'.when.`projectile-mode'.is.
46520 6f 6e 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 70 72 65 74 74 79 20 6d 75 on...The.function.does.pretty.mu
46540 63 68 20 6e 6f 74 68 69 6e 67 20 77 68 65 6e 20 74 72 69 67 67 65 72 65 64 20 6f 6e 20 72 65 6d ch.nothing.when.triggered.on.rem
46560 6f 74 65 20 66 69 6c 65 73 0a 61 73 20 61 6c 6c 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 ote.files.as.all.the.operations.
46580 69 74 20 6e 6f 72 6d 61 6c 6c 79 20 70 65 72 66 6f 72 6d 73 20 61 72 65 20 65 78 74 72 65 6d 65 it.normally.performs.are.extreme
465a0 6c 79 20 73 6c 6f 77 20 6f 76 65 72 0a 74 72 61 6d 70 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 ly.slow.over.tramp."...(projecti
465c0 6c 65 2d 6d 61 79 62 65 2d 6c 69 6d 69 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 62 75 66 66 le-maybe-limit-project-file-buff
465e0 65 72 73 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 64 65 ers)...(unless.(file-remote-p.de
46600 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 fault-directory).....(when.proje
46620 63 74 69 6c 65 2d 64 79 6e 61 6d 69 63 2d 6d 6f 64 65 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 70 ctile-dynamic-mode-line.......(p
46640 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 6d 6f 64 65 2d 6c 69 6e 65 29 29 0a 20 20 20 rojectile-update-mode-line))....
46660 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 75 70 64 61 74 65 2d 63 61 .(when.projectile-auto-update-ca
46680 63 68 65 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 che.......(projectile-cache-file
466a0 73 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 s-find-file-hook)).....(projecti
466c0 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6e 64 2d 66 69 6c le-track-known-projects-find-fil
466e0 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 69 73 69 74 2d 70 72 e-hook).....(projectile-visit-pr
46700 6f 6a 65 63 74 2d 74 61 67 73 2d 74 61 62 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a oject-tags-table)))..(defun.proj
46720 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 6c 69 6d 69 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d ectile-maybe-limit-project-file-
46740 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 4c 69 6d 69 74 20 74 68 65 20 6f 70 65 6e 65 64 20 66 buffers.()..."Limit.the.opened.f
46760 69 6c 65 20 62 75 66 66 65 72 73 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 2e 0a 0a 54 68 65 20 ile.buffers.for.a.project...The.
46780 66 75 6e 63 74 69 6f 6e 20 73 69 6d 70 6c 79 20 6b 69 6c 6c 73 20 74 68 65 20 6c 61 73 74 20 62 function.simply.kills.the.last.b
467a0 75 66 66 65 72 2c 20 61 73 20 69 74 27 73 20 6e 6f 72 6d 61 6c 6c 79 20 63 61 6c 6c 65 64 0a 77 uffer,.as.it's.normally.called.w
467c0 68 65 6e 20 6f 70 65 6e 69 6e 67 20 6e 65 77 20 66 69 6c 65 73 2e 22 0a 20 20 28 77 68 65 6e 20 hen.opening.new.files."...(when.
467e0 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 78 2d 66 69 6c 65 2d 62 75 66 66 65 72 2d 63 6f 75 6e 74 projectile-max-file-buffer-count
46800 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 70 72 6f .....(let.((project-buffers.(pro
46820 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 29 29 29 0a jectile-project-buffer-files))).
46840 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 70 72 6f 6a 65 63 74 2d 62 ......(when.(>.(length.project-b
46860 75 66 66 65 72 73 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 78 2d 66 69 6c 65 2d 62 75 66 66 uffers).projectile-max-file-buff
46880 65 72 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 er-count).........(kill-buffer.(
468a0 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 29 29 29 29 car.(last.project-buffers)))))))
468c0 0a 0a 3b 3b 3b 3b 20 70 72 6f 6a 65 63 74 2e 65 6c 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 3b 3b ..;;;;.project.el.integration.;;
468e0 0a 3b 3b 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 74 68 65 20 64 .;;.Projectile.will.become.the.d
46900 65 66 61 75 6c 74 20 70 72 6f 76 69 64 65 72 20 66 6f 72 0a 3b 3b 20 70 72 6f 6a 65 63 74 2e 65 efault.provider.for.;;.project.e
46920 6c 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 6c 6f 6f 6b l.project.and.project.files.look
46940 75 70 20 77 68 65 6e 0a 3b 3b 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 20 69 73 20 65 6e up.when.;;.projectile-mode.is.en
46960 61 62 6c 65 64 2e 0a 3b 3b 0a 3b 3b 20 54 68 65 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 63 61 6e abled..;;.;;.The.integration.can
46980 20 61 6c 73 6f 20 62 65 20 6d 61 6e 75 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 6c 69 6b 65 20 74 .also.be.manually.enabled.like.t
469a0 68 69 73 3a 0a 3b 3b 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 72 6f 6a 65 63 74 2d 66 69 his:.;;.;;.(add-hook.'project-fi
469c0 6e 64 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 70 72 6f 6a 65 63 74 2d 70 72 6f 6a 65 63 74 69 6c nd-functions.#'project-projectil
469e0 65 29 0a 3b 3b 0a 3b 3b 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f e).;;.;;.See.https://github.com/
46a00 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 35 39 31 20 66 bbatsov/projectile/issues/1591.f
46a20 6f 72 0a 3b 3b 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 69 74 27 73 20 73 61 66 or.;;.more.details...;;.it's.saf
46a40 65 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 69 73 20 64 69 72 65 63 74 6c 79 2c 20 61 73 20 69 e.to.require.this.directly,.as.i
46a60 74 20 77 61 73 20 61 64 64 65 64 20 69 6e 20 45 6d 61 63 73 20 32 35 2e 31 0a 28 72 65 71 75 69 t.was.added.in.Emacs.25.1.(requi
46a80 72 65 20 27 70 72 6f 6a 65 63 74 29 0a 0a 3b 3b 20 4f 6e 6c 79 20 64 65 66 69 6e 65 20 61 6e 20 re.'project)..;;.Only.define.an.
46aa0 6f 76 65 72 72 69 64 65 20 66 6f 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 69 66 20 74 68 65 override.for.project-root.if.the
46ac0 20 6d 65 74 68 6f 64 20 65 78 69 73 74 73 2e 20 20 46 6f 72 20 76 65 72 73 69 6f 6e 73 0a 3b 3b .method.exists...For.versions.;;
46ae0 20 62 65 66 6f 72 65 20 65 6d 61 63 73 20 32 38 2c 20 70 72 6f 6a 65 63 74 2e 65 6c 20 70 72 6f .before.emacs.28,.project.el.pro
46b00 76 69 64 65 64 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 70 vided.project-roots.instead.of.p
46b20 72 6f 6a 65 63 74 2e 72 6f 6f 74 2e 0a 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 70 72 6f 6a 65 roject.root..(if.(fboundp.'proje
46b40 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 70 72 6f 6a 65 ct-root).....(cl-defmethod.proje
46b60 63 74 2d 72 6f 6f 74 20 28 28 70 72 6f 6a 65 63 74 20 28 68 65 61 64 20 70 72 6f 6a 65 63 74 69 ct-root.((project.(head.projecti
46b80 6c 65 29 29 29 0a 20 20 20 20 20 20 28 63 64 72 20 70 72 6f 6a 65 63 74 29 29 29 0a 0a 28 63 6c le))).......(cdr.project)))..(cl
46ba0 2d 64 65 66 6d 65 74 68 6f 64 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 28 70 72 6f 6a 65 -defmethod.project-files.((proje
46bc0 63 74 20 28 68 65 61 64 20 70 72 6f 6a 65 63 74 69 6c 65 29 29 20 26 6f 70 74 69 6f 6e 61 6c 20 ct.(head.projectile)).&optional.
46be0 5f 64 69 72 73 29 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 2d 72 6f _dirs)...(let.((root.(project-ro
46c00 6f 74 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 3b 3b 20 4d 61 6b 65 20 70 61 74 68 73 20 ot.project))).....;;.Make.paths.
46c20 61 62 73 6f 6c 75 74 65 20 61 6e 64 20 69 67 6e 6f 72 65 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c absolute.and.ignore.the.optional
46c40 20 64 69 72 73 20 61 72 67 75 6d 65 6e 74 2c 0a 20 20 20 20 3b 3b 20 73 65 65 20 68 74 74 70 73 .dirs.argument,.....;;.see.https
46c60 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 ://github.com/bbatsov/projectile
46c80 2f 69 73 73 75 65 73 2f 31 35 39 31 23 69 73 73 75 65 63 6f 6d 6d 65 6e 74 2d 38 39 36 34 32 33 /issues/1591#issuecomment-896423
46ca0 39 36 35 0a 20 20 20 20 3b 3b 20 54 68 61 74 27 73 20 6e 65 65 64 65 64 20 62 65 63 61 75 73 65 965.....;;.That's.needed.because
46cc0 20 50 72 6f 6a 65 63 74 69 6c 65 20 75 73 65 73 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 .Projectile.uses.relative.paths.
46ce0 66 6f 72 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 0a 20 20 20 20 3b 3b 20 61 6e 64 20 70 72 6f for.project.files.....;;.and.pro
46d00 6a 65 63 74 2e 65 6c 20 65 78 70 65 63 74 73 20 74 68 65 6d 20 74 6f 20 62 65 20 61 62 73 6f 6c ject.el.expects.them.to.be.absol
46d20 75 74 65 2e 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 68 61 74 27 73 20 70 72 6f 62 61 62 ute......;;.FIXME:.That's.probab
46d40 6c 79 20 67 6f 69 6e 67 20 74 6f 20 62 65 20 76 65 72 79 20 73 6c 6f 77 20 69 6e 20 6c 61 72 67 ly.going.to.be.very.slow.in.larg
46d60 65 20 70 72 6f 6a 65 63 74 73 2e 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 e.projects......(mapcar.(lambda.
46d80 28 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 72 6f 6f 74 20 66 (f)...............(concat.root.f
46da0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 )).............(projectile-proje
46dc0 63 74 2d 66 69 6c 65 73 20 72 6f 6f 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 ct-files.root))))..;;;###autoloa
46de0 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 2d 70 72 6f 6a 65 63 74 69 6c 65 20 28 64 69 72 d.(defun.project-projectile.(dir
46e00 29 0a 20 20 22 52 65 74 75 72 6e 20 50 72 6f 6a 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 6f )..."Return.Projectile.project.o
46e20 66 20 66 6f 72 6d 20 28 27 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 72 6f 6f 74 2d 64 69 72 29 20 f.form.('projectile...root-dir).
46e40 66 6f 72 20 44 49 52 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 for.DIR."...(let.((root.(project
46e60 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 29 29 0a 20 20 20 20 28 77 68 65 ile-project-root.dir))).....(whe
46e80 6e 20 72 6f 6f 74 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 20 72 n.root.......(cons.'projectile.r
46ea0 6f 6f 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d oot))))..;;;###autoload.(define-
46ec0 6d 69 6e 6f 72 2d 6d 6f 64 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 0a 20 20 22 4d 69 minor-mode.projectile-mode..."Mi
46ee0 6e 6f 72 20 6d 6f 64 65 20 74 6f 20 61 73 73 69 73 74 20 70 72 6f 6a 65 63 74 20 6d 61 6e 61 67 nor.mode.to.assist.project.manag
46f00 65 6d 65 6e 74 20 61 6e 64 20 6e 61 76 69 67 61 74 69 6f 6e 2e 0a 0a 57 68 65 6e 20 63 61 6c 6c ement.and.navigation...When.call
46f20 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 74 6f 67 67 6c 65 20 60 70 72 6f 6a 65 63 ed.interactively,.toggle.`projec
46f40 74 69 6c 65 2d 6d 6f 64 65 27 2e 20 20 57 69 74 68 20 70 72 65 66 69 78 0a 41 52 47 2c 20 65 6e tile-mode'...With.prefix.ARG,.en
46f60 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 27 20 69 66 20 41 52 47 20 69 73 able.`projectile-mode'.if.ARG.is
46f80 20 70 6f 73 69 74 69 76 65 2c 20 6f 74 68 65 72 77 69 73 65 20 64 69 73 61 62 6c 65 0a 69 74 2e .positive,.otherwise.disable.it.
46fa0 0a 0a 57 68 65 6e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 4c 69 73 70 2c 20 65 6e 61 62 6c 65 20 ..When.called.from.Lisp,.enable.
46fc0 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 27 20 69 66 20 41 52 47 20 69 73 20 6f 6d 69 74 `projectile-mode'.if.ARG.is.omit
46fe0 74 65 64 2c 0a 6e 69 6c 20 6f 72 20 70 6f 73 69 74 69 76 65 2e 20 20 49 66 20 41 52 47 20 69 73 ted,.nil.or.positive...If.ARG.is
47000 20 60 74 6f 67 67 6c 65 27 2c 20 74 6f 67 67 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f .`toggle',.toggle.`projectile-mo
47020 64 65 27 2e 0a 4f 74 68 65 72 77 69 73 65 20 62 65 68 61 76 65 20 61 73 20 69 66 20 63 61 6c 6c de'..Otherwise.behave.as.if.call
47040 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 0a 0a 5c 5c 7b 70 72 6f 6a 65 63 74 69 6c 65 ed.interactively...\\{projectile
47060 2d 6d 6f 64 65 2d 6d 61 70 7d 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 70 72 6f 6a 65 63 74 69 6c -mode-map}"...:lighter.projectil
47080 65 2d 2d 6d 6f 64 65 2d 6c 69 6e 65 0a 20 20 3a 6b 65 79 6d 61 70 20 70 72 6f 6a 65 63 74 69 6c e--mode-line...:keymap.projectil
470a0 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a e-mode-map...:group.'projectile.
470c0 20 20 3a 72 65 71 75 69 72 65 20 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 3a 67 6c 6f 62 61 6c ..:require.'projectile...:global
470e0 20 74 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 0a 20 .t...(cond....(projectile-mode..
47100 20 20 20 3b 3b 20 73 65 74 75 70 20 74 68 65 20 63 6f 6d 6d 61 6e 64 65 72 20 62 69 6e 64 69 6e ...;;.setup.the.commander.bindin
47120 67 73 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 62 69 6e gs.....(projectile-commander-bin
47140 64 69 6e 67 73 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 72 6f 6a 65 63 74 2d 66 69 dings).....(add-hook.'project-fi
47160 6e 64 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 70 72 6f 6a 65 63 74 2d 70 72 6f 6a 65 63 74 69 6c nd-functions.#'project-projectil
47180 65 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b e).....(add-hook.'find-file-hook
471a0 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 2d 66 75 6e 63 .'projectile-find-file-hook-func
471c0 74 69 6f 6e 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d tion).....(add-hook.'projectile-
471e0 66 69 6e 64 2d 64 69 72 2d 68 6f 6f 6b 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b find-dir-hook.#'projectile-track
47200 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 74 -known-projects-find-file-hook.t
47220 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 64 69 72 65 64 2d 62 65 66 6f 72 65 2d 72 65 ).....(add-hook.'dired-before-re
47240 61 64 69 6e 2d 68 6f 6f 6b 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f adin-hook.#'projectile-track-kno
47260 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 20 74 20 74 29 0a wn-projects-find-file-hook.t.t).
47280 20 20 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e ....(advice-add.'compilation-fin
472a0 64 2d 66 69 6c 65 20 3a 61 72 6f 75 6e 64 20 23 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e d-file.:around.#'compilation-fin
472c0 64 2d 66 69 6c 65 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 63 6f 6d 70 69 6c 61 74 69 d-file-projectile-find-compilati
472e0 6f 6e 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 64 65 6c 65 on-buffer).....(advice-add.'dele
47300 74 65 2d 66 69 6c 65 20 3a 62 65 66 6f 72 65 20 23 27 64 65 6c 65 74 65 2d 66 69 6c 65 2d 70 72 te-file.:before.#'delete-file-pr
47320 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 66 72 6f 6d 2d 63 61 63 68 65 29 29 0a 20 20 20 ojectile-remove-from-cache))....
47340 28 74 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 70 72 6f 6a 65 63 74 2d 66 69 6e (t.....(remove-hook.'project-fin
47360 64 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 70 72 6f 6a 65 63 74 2d 70 72 6f 6a 65 63 74 69 6c 65 d-functions.#'project-projectile
47380 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 66 69 6e 64 2d 66 69 6c 65 2d 68 6f ).....(remove-hook.'find-file-ho
473a0 6f 6b 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 2d 66 ok.#'projectile-find-file-hook-f
473c0 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 64 69 72 65 64 unction).....(remove-hook.'dired
473e0 2d 62 65 66 6f 72 65 2d 72 65 61 64 69 6e 2d 68 6f 6f 6b 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 -before-readin-hook.#'projectile
47400 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6e 64 2d 66 69 6c 65 2d -track-known-projects-find-file-
47420 68 6f 6f 6b 20 74 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 72 65 6d 6f 76 65 20 27 63 6f 6d 70 hook.t).....(advice-remove.'comp
47440 69 6c 61 74 69 6f 6e 2d 66 69 6e 64 2d 66 69 6c 65 20 23 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d ilation-find-file.#'compilation-
47460 66 69 6e 64 2d 66 69 6c 65 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 63 6f 6d 70 69 6c find-file-projectile-find-compil
47480 61 74 69 6f 6e 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 61 64 76 69 63 65 2d 72 65 6d 6f 76 65 ation-buffer).....(advice-remove
474a0 20 27 64 65 6c 65 74 65 2d 66 69 6c 65 20 23 27 64 65 6c 65 74 65 2d 66 69 6c 65 2d 70 72 6f 6a .'delete-file.#'delete-file-proj
474c0 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 66 72 6f 6d 2d 63 61 63 68 65 29 29 29 29 0a 0a 3b 3b ectile-remove-from-cache))))..;;
474e0 3b 20 73 61 76 65 68 69 73 74 2d 6d 6f 64 65 20 2d 20 57 68 65 6e 20 60 73 61 76 65 68 69 73 74 ;.savehist-mode.-.When.`savehist
47500 2d 6d 6f 64 65 27 20 69 73 20 74 2c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d -mode'.is.t,.projectile-project-
47520 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 20 77 69 6c 6c 20 62 65 20 73 61 76 65 64 2e 0a 3b command-history.will.be.saved..;
47540 3b 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 ;.See.https://github.com/bbatsov
47560 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 36 33 37 20 66 6f 72 20 6d 6f 72 65 /projectile/issues/1637.for.more
47580 20 64 65 74 61 69 6c 73 0a 28 64 65 66 76 61 72 20 73 61 76 65 68 69 73 74 2d 61 64 64 69 74 69 .details.(defvar.savehist-additi
475a0 6f 6e 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 6e 69 6c 29 0a 0a 28 69 66 20 28 62 6f 75 6e 64 2d onal-variables.nil)..(if.(bound-
475c0 61 6e 64 2d 74 72 75 65 2d 70 20 73 61 76 65 68 69 73 74 2d 6c 6f 61 64 65 64 29 0a 20 20 20 20 and-true-p.savehist-loaded).....
475e0 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 73 61 76 65 68 69 73 74 2d 61 64 64 69 74 69 6f 6e 61 (add-to-list.'savehist-additiona
47600 6c 2d 76 61 72 69 61 62 6c 65 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d l-variables.'projectile-project-
47620 63 6f 6d 6d 61 6e 64 2d 68 69 73 74 6f 72 79 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 73 61 command-history)...(add-hook.'sa
47640 76 65 68 69 73 74 2d 6d 6f 64 65 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 vehist-mode-hook.............(la
47660 6d 62 64 61 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 mbda()...............(add-to-lis
47680 74 20 27 73 61 76 65 68 69 73 74 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 76 61 72 69 61 62 6c 65 73 t.'savehist-additional-variables
476a0 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 2d 68 69 73 .'projectile-project-command-his
476c0 74 6f 72 79 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 tory))))..;;;###autoload.(define
476e0 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 70 72 6f 6a 65 63 -obsolete-function-alias.'projec
47700 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 6d 6f 64 65 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 tile-global-mode.'projectile-mod
47720 65 20 22 31 2e 30 22 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 70 72 6f 6a 65 63 74 69 6c 65 29 0a e."1.0")..(provide.'projectile).
47740 0a 3b 3b 3b 20 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 .;;;.projectile.el.ends.here....
47760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
477e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47800 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 00 projectile-2.9.1/README.md......
47820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47860 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
47880 30 30 31 37 33 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 31 32 00 20 30 00 00 00 0017344.00000000000.013612..0...
478a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
478c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
478e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47900 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...................
47920 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...................
47940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
479a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
479c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
479e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a00 23 20 50 72 6f 6a 65 63 74 69 6c 65 0a 0a 5b 21 5b 42 75 69 6c 64 20 53 74 61 74 75 73 5d 28 68 #.Projectile..[![Build.Status](h
47a20 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
47a40 74 69 6c 65 2f 77 6f 72 6b 66 6c 6f 77 73 2f 43 49 2f 62 61 64 67 65 2e 73 76 67 29 5d 28 68 74 tile/workflows/CI/badge.svg)](ht
47a60 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
47a80 69 6c 65 2f 61 63 74 69 6f 6e 73 3f 71 75 65 72 79 3d 77 6f 72 6b 66 6c 6f 77 25 33 41 43 49 29 ile/actions?query=workflow%3ACI)
47aa0 0a 5b 21 5b 4d 45 4c 50 41 5d 28 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 6b .[![MELPA](http://melpa.org/pack
47ac0 61 67 65 73 2f 70 72 6f 6a 65 63 74 69 6c 65 2d 62 61 64 67 65 2e 73 76 67 29 5d 28 68 74 74 70 ages/projectile-badge.svg)](http
47ae0 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 70 72 6f 6a 65 63 74 69 6c 65 29 0a 5b 21 5b 4d 45 ://melpa.org/#/projectile).[![ME
47b00 4c 50 41 20 53 74 61 62 6c 65 5d 28 68 74 74 70 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c 70 61 2e LPA.Stable](http://stable.melpa.
47b20 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 70 72 6f 6a 65 63 74 69 6c 65 2d 62 61 64 67 65 2e 73 76 org/packages/projectile-badge.sv
47b40 67 29 5d 28 68 74 74 70 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 70 72 g)](http://stable.melpa.org/#/pr
47b60 6f 6a 65 63 74 69 6c 65 29 0a 5b 21 5b 4e 6f 6e 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 73 3a ojectile).[![NonGNU.ELPA](https:
47b80 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f 70 72 6f 6a 65 63 74 //elpa.nongnu.org/nongnu/project
47ba0 69 6c 65 2e 73 76 67 29 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 ile.svg)](https://elpa.nongnu.or
47bc0 67 2f 6e 6f 6e 67 6e 75 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 68 74 6d 6c 29 0a 5b 21 5b 4c 69 63 g/nongnu/projectile.html).[![Lic
47be0 65 6e 73 65 20 47 50 4c 20 33 5d 5b 62 61 64 67 65 2d 6c 69 63 65 6e 73 65 5d 5d 28 68 74 74 70 ense.GPL.3][badge-license]](http
47c00 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 67 70 6c 2d 33 2e 30 2e ://www.gnu.org/licenses/gpl-3.0.
47c20 74 78 74 29 0a 5b 21 5b 44 69 73 63 6f 72 64 5d 28 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 txt).[![Discord](https://img.shi
47c40 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 63 68 61 74 2d 6f 6e 25 32 30 64 69 73 63 6f 72 64 2d elds.io/badge/chat-on%20discord-
47c60 37 32 38 39 64 61 2e 73 76 67 3f 73 61 6e 69 74 69 7a 65 3d 74 72 75 65 29 5d 28 68 74 74 70 73 7289da.svg?sanitize=true)](https
47c80 3a 2f 2f 64 69 73 63 6f 72 64 2e 67 67 2f 33 43 66 32 51 70 79 72 79 35 29 0a 0a 23 23 20 53 79 ://discord.gg/3Cf2Qpyry5)..##.Sy
47ca0 6e 6f 70 73 69 73 0a 0a 2a 2a 50 72 6f 6a 65 63 74 69 6c 65 2a 2a 20 69 73 20 61 20 70 72 6f 6a nopsis..**Projectile**.is.a.proj
47cc0 65 63 74 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 6c 69 62 72 61 72 79 20 66 6f 72 20 45 6d 61 63 ect.interaction.library.for.Emac
47ce0 73 2e 0a 49 74 20 70 72 6f 76 69 64 65 73 20 61 20 70 6f 77 65 72 66 75 6c 20 73 65 74 20 6f 66 s..It.provides.a.powerful.set.of
47d00 20 66 65 61 74 75 72 65 73 20 6f 70 65 72 61 74 69 6e 67 20 61 74 20 74 68 65 20 70 72 6f 6a 65 .features.operating.at.the.proje
47d20 63 74 0a 6c 65 76 65 6c 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 73 69 6d 70 6c 65 20 68 65 75 72 ct.level,.as.well.as.simple.heur
47d40 69 73 74 69 63 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 70 72 6f 6a 65 63 74 73 2e 0a 0a 48 65 istics.to.identify.projects...He
47d60 72 65 20 61 72 65 20 73 6f 6d 65 20 6f 66 20 65 73 73 65 6e 74 69 61 6c 20 50 72 6f 6a 65 63 74 re.are.some.of.essential.Project
47d80 69 6c 65 27 73 20 66 65 61 74 75 72 65 73 3a 0a 0a 2a 20 6a 75 6d 70 20 74 6f 20 61 20 66 69 6c ile's.features:..*.jump.to.a.fil
47da0 65 20 69 6e 20 70 72 6f 6a 65 63 74 0a 2a 20 6a 75 6d 70 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 e.in.project.*.jump.to.a.project
47dc0 20 62 75 66 66 65 72 0a 2a 20 6a 75 6d 70 20 74 6f 20 61 20 74 65 73 74 20 69 6e 20 70 72 6f 6a .buffer.*.jump.to.a.test.in.proj
47de0 65 63 74 0a 2a 20 74 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 20 ect.*.toggle.between.files.with.
47e00 73 61 6d 65 20 6e 61 6d 65 73 20 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 same.names.but.different.extensi
47e20 6f 6e 73 20 28 65 2e 67 2e 20 60 2e 68 60 20 3c 2d 3e 20 60 2e 63 2f 2e 63 70 70 60 2c 20 60 47 ons.(e.g..`.h`.<->.`.c/.cpp`,.`G
47e40 65 6d 66 69 6c 65 60 20 3c 2d 3e 20 60 47 65 6d 66 69 6c 65 2e 6c 6f 63 6b 60 29 0a 2a 20 74 6f emfile`.<->.`Gemfile.lock`).*.to
47e60 67 67 6c 65 20 62 65 74 77 65 65 6e 20 63 6f 64 65 20 61 6e 64 20 69 74 73 20 74 65 73 74 20 28 ggle.between.code.and.its.test.(
47e80 65 2e 67 2e 20 60 6d 61 69 6e 2e 73 65 72 76 69 63 65 2e 6a 73 60 20 3c 2d 3e 20 60 6d 61 69 6e e.g..`main.service.js`.<->.`main
47ea0 2e 73 65 72 76 69 63 65 2e 73 70 65 63 2e 6a 73 60 29 0a 2a 20 6a 75 6d 70 20 74 6f 20 72 65 63 .service.spec.js`).*.jump.to.rec
47ec0 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 ently.visited.files.in.the.proje
47ee0 63 74 0a 2a 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 74 73 20 79 6f 75 ct.*.switch.between.projects.you
47f00 20 68 61 76 65 20 77 6f 72 6b 65 64 20 6f 6e 0a 2a 20 6b 69 6c 6c 20 28 63 6c 6f 73 65 29 20 61 .have.worked.on.*.kill.(close).a
47f20 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 0a 2a 20 67 72 65 70 20 28 73 65 61 72 63 ll.project.buffers.*.grep.(searc
47f40 68 29 20 69 6e 20 70 72 6f 6a 65 63 74 0a 2a 20 72 65 70 6c 61 63 65 20 69 6e 20 70 72 6f 6a 65 h).in.project.*.replace.in.proje
47f60 63 74 0a 2a 20 66 69 6e 64 20 72 65 66 65 72 65 6e 63 65 73 20 69 6e 20 70 72 6f 6a 65 63 74 20 ct.*.find.references.in.project.
47f80 28 75 73 69 6e 67 20 60 78 72 65 66 60 20 69 6e 74 65 72 6e 61 6c 6c 79 29 0a 2a 20 72 75 6e 20 (using.`xref`.internally).*.run.
47fa0 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 20 28 65 2e 67 shell.commands.in.a.project.(e.g
47fc0 2e 20 60 6d 61 6b 65 60 2c 20 60 6c 65 69 6e 60 29 0a 2a 20 73 75 70 70 6f 72 74 20 66 6f 72 20 ..`make`,.`lein`).*.support.for.
47fe0 6d 75 6c 74 69 70 6c 65 20 6d 69 6e 69 62 75 66 66 65 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2f 73 multiple.minibuffer.completion/s
48000 65 6c 65 63 74 69 6f 6e 20 6c 69 62 72 61 72 69 65 73 20 28 60 69 64 6f 60 2c 20 60 69 76 79 60 election.libraries.(`ido`,.`ivy`
48020 2c 20 60 68 65 6c 6d 60 2c 20 61 6e 64 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 70 6c 65 ,.`helm`,.and.the.default.comple
48040 74 69 6f 6e 20 73 79 73 74 65 6d 29 0a 2a 20 61 75 74 6f 6d 61 74 69 63 20 70 72 6f 6a 65 63 74 tion.system).*.automatic.project
48060 20 64 69 73 63 6f 76 65 72 79 20 28 73 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a .discovery.(see.`projectile-proj
48080 65 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 60 29 0a 2a 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 ect-search-path`).*.integration.
480a0 77 69 74 68 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 60 70 72 6f 6a 65 63 74 2e 65 6c 60 20 6c with.the.built-in.`project.el`.l
480c0 69 62 72 61 72 79 0a 0a 54 68 65 72 65 27 73 20 61 6c 73 6f 20 61 20 72 69 63 68 20 65 63 6f 73 ibrary..There's.also.a.rich.ecos
480e0 79 73 74 65 6d 20 6f 66 20 74 68 69 72 64 2d 70 61 72 74 79 20 5b 50 72 6f 6a 65 63 74 69 6c 65 ystem.of.third-party.[Projectile
48100 20 65 78 74 65 6e 73 69 6f 6e 73 5d 28 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 .extensions](https://melpa.org/#
48120 2f 3f 71 3d 70 72 6f 6a 65 63 74 69 6c 65 29 20 74 68 61 74 20 61 64 64 20 65 76 65 6e 20 6d 6f /?q=projectile).that.add.even.mo
48140 72 65 20 66 65 61 74 75 72 65 73 2e 0a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 5b 21 re.features...---------------.[!
48160 5b 50 61 74 72 65 6f 6e 5d 28 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 2e 69 6f [Patreon](https://img.shields.io
48180 2f 62 61 64 67 65 2f 70 61 74 72 65 6f 6e 2d 64 6f 6e 61 74 65 2d 6f 72 61 6e 67 65 2e 73 76 67 /badge/patreon-donate-orange.svg
481a0 29 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 70 61 74 72 65 6f 6e 2e 63 6f 6d 2f 62 62 61 74 73 )](https://www.patreon.com/bbats
481c0 6f 76 29 0a 5b 21 5b 50 61 79 70 61 6c 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 70 61 79 70 61 ov).[![Paypal](https://www.paypa
481e0 6c 6f 62 6a 65 63 74 73 2e 63 6f 6d 2f 65 6e 5f 55 53 2f 69 2f 62 74 6e 2f 62 74 6e 5f 64 6f 6e lobjects.com/en_US/i/btn/btn_don
48200 61 74 65 5f 53 4d 2e 67 69 66 29 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 70 61 79 70 61 6c 2e ate_SM.gif)](https://www.paypal.
48220 63 6f 6d 2f 63 67 69 2d 62 69 6e 2f 77 65 62 73 63 72 3f 63 6d 64 3d 5f 73 2d 78 63 6c 69 63 6b com/cgi-bin/webscr?cmd=_s-xclick
48240 26 68 6f 73 74 65 64 5f 62 75 74 74 6f 6e 5f 69 64 3d 47 52 51 4b 4e 42 4d 36 50 38 56 52 51 29 &hosted_button_id=GRQKNBM6P8VRQ)
48260 0a 0a 49 27 76 65 20 62 65 65 6e 20 64 65 76 65 6c 6f 70 69 6e 67 20 50 72 6f 6a 65 63 74 69 6c ..I've.been.developing.Projectil
48280 65 20 66 6f 72 20 6f 76 65 72 20 61 20 64 65 63 61 64 65 20 6e 6f 77 20 28 73 69 6e 63 65 20 32 e.for.over.a.decade.now.(since.2
482a0 30 31 31 29 2e 20 57 68 69 6c 65 20 69 74 27 73 20 61 20 66 75 6e 0a 70 72 6f 6a 65 63 74 20 74 011)..While.it's.a.fun.project.t
482c0 6f 20 77 6f 72 6b 20 6f 6e 2c 20 69 74 20 73 74 69 6c 6c 20 72 65 71 75 69 72 65 73 20 61 20 6c o.work.on,.it.still.requires.a.l
482e0 6f 74 20 6f 66 20 74 69 6d 65 20 61 6e 64 20 65 6e 65 72 67 79 20 74 6f 0a 6d 61 69 6e 74 61 69 ot.of.time.and.energy.to.maintai
48300 6e 2e 0a 0a 59 6f 75 20 63 61 6e 20 73 75 70 70 6f 72 74 20 6d 79 20 77 6f 72 6b 20 6f 6e 20 50 n...You.can.support.my.work.on.P
48320 72 6f 6a 65 63 74 69 6c 65 20 76 69 61 0a 20 5b 50 61 79 50 61 6c 5d 28 68 74 74 70 73 3a 2f 2f rojectile.via..[PayPal](https://
48340 77 77 77 2e 70 61 79 70 61 6c 2e 6d 65 2f 62 62 61 74 73 6f 76 29 2c 0a 20 5b 50 61 74 72 65 6f www.paypal.me/bbatsov),..[Patreo
48360 6e 5d 28 68 74 74 70 73 3a 2f 2f 77 77 77 2e 70 61 74 72 65 6f 6e 2e 63 6f 6d 2f 62 62 61 74 73 n](https://www.patreon.com/bbats
48380 6f 76 29 20 61 6e 64 0a 20 5b 47 69 74 48 75 62 20 53 70 6f 6e 73 6f 72 73 5d 28 68 74 74 70 73 ov).and..[GitHub.Sponsors](https
483a0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 70 6f 6e 73 6f 72 73 2f 62 62 61 74 73 6f 76 29 2e ://github.com/sponsors/bbatsov).
483c0 0a 0a 23 23 20 50 72 6f 6a 65 63 74 69 6c 65 20 69 6e 20 41 63 74 69 6f 6e 0a 0a 48 65 72 65 27 ..##.Projectile.in.Action..Here'
483e0 73 20 61 20 67 6c 69 6d 70 73 65 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 20 69 6e 20 61 63 74 s.a.glimpse.of.Projectile.in.act
48400 69 6f 6e 20 28 75 73 69 6e 67 20 60 69 76 79 60 29 3a 0a 0a 21 5b 50 72 6f 6a 65 63 74 69 6c 65 ion.(using.`ivy`):..![Projectile
48420 20 44 65 6d 6f 5d 28 64 6f 63 2f 6d 6f 64 75 6c 65 73 2f 52 4f 4f 54 2f 61 73 73 65 74 73 2f 69 .Demo](doc/modules/ROOT/assets/i
48440 6d 61 67 65 73 2f 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 6d 6f 2e 67 69 66 29 0a 0a 49 6e 20 74 mages/projectile-demo.gif)..In.t
48460 68 69 73 20 73 68 6f 72 74 20 64 65 6d 6f 20 79 6f 75 20 63 61 6e 20 73 65 65 3a 0a 0a 2a 20 66 his.short.demo.you.can.see:..*.f
48480 69 6e 64 69 6e 67 20 66 69 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 0a 2a 20 73 77 69 74 inding.files.in.a.project.*.swit
484a0 63 68 69 6e 67 20 62 65 74 77 65 65 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 ching.between.implementation.and
484c0 20 74 65 73 74 0a 2a 20 73 77 69 74 63 68 69 6e 67 20 62 65 74 77 65 65 6e 20 70 72 6f 6a 65 63 .test.*.switching.between.projec
484e0 74 73 0a 0a 23 23 20 51 75 69 63 6b 73 74 61 72 74 0a 0a 54 68 65 20 69 6e 73 74 72 75 63 74 69 ts..##.Quickstart..The.instructi
48500 6f 6e 73 20 74 68 61 74 20 66 6f 6c 6c 6f 77 20 61 72 65 20 6d 65 61 6e 74 20 74 6f 20 67 65 74 ons.that.follow.are.meant.to.get
48520 20 79 6f 75 20 66 72 6f 6d 20 7a 65 72 6f 20 74 6f 20 61 20 72 75 6e 6e 69 6e 67 20 50 72 6f 6a .you.from.zero.to.a.running.Proj
48540 65 63 74 69 6c 65 20 73 65 74 75 70 0a 69 6e 20 61 20 6d 69 6e 75 74 65 2e 20 20 56 69 73 69 74 ectile.setup.in.a.minute...Visit
48560 20 74 68 65 0a 5b 6f 6e 6c 69 6e 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5d 28 68 74 74 70 .the.[online.documentation](http
48580 73 3a 2f 2f 64 6f 63 73 2e 70 72 6f 6a 65 63 74 69 6c 65 2e 6d 78 29 20 66 6f 72 20 28 77 61 79 s://docs.projectile.mx).for.(way
485a0 29 20 6d 6f 72 65 0a 64 65 74 61 69 6c 73 2e 0a 0a 23 23 23 20 49 6e 73 74 61 6c 6c 61 74 69 6f ).more.details...###.Installatio
485c0 6e 0a 0a 60 70 61 63 6b 61 67 65 2e 65 6c 60 20 69 73 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 n..`package.el`.is.the.built-in.
485e0 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 72 20 69 6e 20 45 6d 61 63 73 2e 0a 0a 50 72 6f 6a 65 package.manager.in.Emacs...Proje
48600 63 74 69 6c 65 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 61 6c 6c 20 6d 61 6a 6f 72 20 ctile.is.available.on.all.major.
48620 60 70 61 63 6b 61 67 65 2e 65 6c 60 20 63 6f 6d 6d 75 6e 69 74 79 0a 6d 61 69 6e 74 61 69 6e 65 `package.el`.community.maintaine
48640 64 20 72 65 70 6f 73 20 2d 20 5b 4e 6f 6e 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f d.repos.-.[NonGNU.ELPA](https://
48660 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 29 2c 0a 5b 4d 45 4c 50 41 20 53 74 61 62 6c 65 5d elpa.nongnu.org),.[MELPA.Stable]
48680 28 68 74 74 70 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 29 0a 61 6e 64 20 5b 4d (http://stable.melpa.org).and.[M
486a0 45 4c 50 41 5d 28 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 29 2e 0a 0a 59 6f 75 20 63 61 ELPA](http://melpa.org)...You.ca
486c0 6e 20 69 6e 73 74 61 6c 6c 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 74 68 20 74 68 65 20 66 6f n.install.Projectile.with.the.fo
486e0 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 3a 0a 0a 3c 6b 62 64 3e 4d 2d 78 3c 2f 6b 62 64 3e llowing.command:..<kbd>M-x</kbd>
48700 20 60 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 60 20 3c 6b 62 64 3e 5b 52 45 54 5d 3c 2f 6b .`package-install`.<kbd>[RET]</k
48720 62 64 3e 20 60 70 72 6f 6a 65 63 74 69 6c 65 60 20 3c 6b 62 64 3e 5b 52 45 54 5d 3c 2f 6b 62 64 bd>.`projectile`.<kbd>[RET]</kbd
48740 3e 0a 0a 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 75 73 65 72 73 20 6f 66 20 44 65 62 69 61 >..Alternatively,.users.of.Debia
48760 6e 20 39 20 6f 72 20 6c 61 74 65 72 20 6f 72 20 55 62 75 6e 74 75 20 31 36 2e 30 34 20 6f 72 20 n.9.or.later.or.Ubuntu.16.04.or.
48780 6c 61 74 65 72 20 6d 61 79 0a 73 69 6d 70 6c 79 20 60 61 70 74 2d 67 65 74 20 69 6e 73 74 61 6c later.may.simply.`apt-get.instal
487a0 6c 20 65 6c 70 61 2d 70 72 6f 6a 65 63 74 69 6c 65 60 2e 0a 0a 46 69 6e 61 6c 6c 79 20 61 64 64 l.elpa-projectile`...Finally.add
487c0 20 74 68 69 73 20 74 6f 20 79 6f 75 72 20 45 6d 61 63 73 20 63 6f 6e 66 69 67 3a 0a 0a 60 60 60 .this.to.your.Emacs.config:..```
487e0 65 6c 69 73 70 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 20 2b 31 29 0a 3b 3b 20 52 65 elisp.(projectile-mode.+1).;;.Re
48800 63 6f 6d 6d 65 6e 64 65 64 20 6b 65 79 6d 61 70 20 70 72 65 66 69 78 20 6f 6e 20 6d 61 63 4f 53 commended.keymap.prefix.on.macOS
48820 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 .(define-key.projectile-mode-map
48840 20 28 6b 62 64 20 22 73 2d 70 22 29 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 .(kbd."s-p").'projectile-command
48860 2d 6d 61 70 29 0a 3b 3b 20 52 65 63 6f 6d 6d 65 6e 64 65 64 20 6b 65 79 6d 61 70 20 70 72 65 66 -map).;;.Recommended.keymap.pref
48880 69 78 20 6f 6e 20 57 69 6e 64 6f 77 73 2f 4c 69 6e 75 78 0a 28 64 65 66 69 6e 65 2d 6b 65 79 20 ix.on.Windows/Linux.(define-key.
488a0 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 70 22 projectile-mode-map.(kbd."C-c.p"
488c0 29 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 29 0a 60 60 60 0a 0a ).'projectile-command-map).```..
488e0 54 68 6f 73 65 20 6b 65 79 6d 61 70 20 70 72 65 66 69 78 65 73 20 61 72 65 20 6a 75 73 74 20 61 Those.keymap.prefixes.are.just.a
48900 20 73 75 67 67 65 73 74 69 6f 6e 2e 20 46 65 65 6c 20 66 72 65 65 20 74 6f 20 70 75 74 20 74 68 .suggestion..Feel.free.to.put.th
48920 65 72 65 20 77 68 61 74 65 76 65 72 20 77 6f 72 6b 73 20 62 65 73 74 20 66 6f 72 20 79 6f 75 2e ere.whatever.works.best.for.you.
48940 0a 0a 23 23 23 20 42 61 73 69 63 20 55 73 61 67 65 0a 0a 45 6e 61 62 6c 65 20 60 70 72 6f 6a 65 ..###.Basic.Usage..Enable.`proje
48960 63 74 69 6c 65 2d 6d 6f 64 65 60 2c 20 6f 70 65 6e 20 61 20 66 69 6c 65 20 69 6e 20 6f 6e 65 20 ctile-mode`,.open.a.file.in.one.
48980 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 74 79 70 65 20 61 20 63 6f 6d 6d of.your.projects.and.type.a.comm
489a0 61 6e 64 20 73 75 63 68 20 61 73 20 3c 6b 62 64 3e 43 2d 63 20 70 20 66 3c 2f 6b 62 64 3e 2e 0a and.such.as.<kbd>C-c.p.f</kbd>..
489c0 0a 53 65 65 20 74 68 65 20 5b 6f 6e 6c 69 6e 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5d 28 .See.the.[online.documentation](
489e0 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 72 6f 6a 65 63 74 69 6c 65 2e 6d 78 2f 70 72 6f 6a 65 https://docs.projectile.mx/proje
48a00 63 74 69 6c 65 2f 75 73 61 67 65 2e 68 74 6d 6c 29 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 ctile/usage.html).for.more.detai
48a20 6c 73 2e 0a 0a 54 6f 20 67 65 74 20 74 68 65 20 6d 6f 73 74 20 6f 66 20 50 72 6f 6a 65 63 74 69 ls...To.get.the.most.of.Projecti
48a40 6c 65 20 79 6f 75 20 61 6c 73 6f 20 6e 65 65 64 20 74 6f 20 65 6e 61 62 6c 65 20 28 61 6e 64 20 le.you.also.need.to.enable.(and.
48a60 70 6f 74 65 6e 74 69 61 6c 6c 79 20 69 6e 73 74 61 6c 6c 29 0a 73 6f 6d 65 20 6d 69 6e 69 62 75 potentially.install).some.minibu
48a80 66 66 65 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 72 61 6d 65 77 6f 72 6b 20 28 65 2e 67 2e 20 ffer.completion.framework.(e.g..
48aa0 60 69 64 6f 60 2c 20 60 69 76 79 60 20 6f 72 20 60 76 65 72 74 69 63 6f 60 29 2e 20 53 65 65 0a `ido`,.`ivy`.or.`vertico`)..See.
48ac0 5b 74 68 69 73 0a 73 65 63 74 69 6f 6e 5d 28 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 72 6f 6a [this.section](https://docs.proj
48ae0 65 63 74 69 6c 65 2e 6d 78 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 63 6f 6e 66 69 67 75 72 61 74 69 ectile.mx/projectile/configurati
48b00 6f 6e 2e 68 74 6d 6c 23 63 6f 6d 70 6c 65 74 69 6f 6e 2d 6f 70 74 69 6f 6e 73 29 0a 6f 66 20 74 on.html#completion-options).of.t
48b20 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c he.documentation.for.more.detail
48b40 73 2e 0a 0a 3e 20 5b 21 43 41 55 54 49 4f 4e 5d 0a 3e 0a 3e 20 48 69 73 74 6f 72 69 63 61 6c 6c s...>.[!CAUTION].>.>.Historicall
48b60 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 79 73 74 65 6d 60 y.`projectile-completion-system`
48b80 20 64 65 66 61 75 6c 74 65 64 20 74 6f 20 60 69 64 6f 60 2c 20 62 75 74 20 74 68 69 73 20 77 61 .defaulted.to.`ido`,.but.this.wa
48ba0 73 0a 3e 20 63 68 61 6e 67 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 33 2e 20 59 6f 75 20 s.>.changed.in.version.2.3..You.
48bc0 6d 61 79 20 6e 65 65 64 20 74 6f 20 65 6e 61 62 6c 65 20 60 69 64 6f 2d 6d 6f 64 65 60 20 69 6e may.need.to.enable.`ido-mode`.in
48be0 20 79 6f 75 72 20 45 6d 61 63 73 0a 3e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 66 20 75 .your.Emacs.>.configuration.if.u
48c00 70 64 61 74 69 6e 67 20 66 72 6f 6d 20 61 6e 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 20 6f 66 pdating.from.an.older.version.of
48c20 20 50 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 23 23 20 44 65 73 69 67 6e 20 47 6f 61 6c 73 0a 0a 49 .Projectile...##.Design.Goals..I
48c40 6e 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 79 6f 75 27 6c 6c 20 66 69 6e 64 20 73 6f 6d 65 20 n.this.section.you'll.find.some.
48c60 6e 6f 74 65 73 20 6f 6e 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 64 65 73 69 67 6e 20 67 6f 61 notes.on.Projectile's.design.goa
48c80 6c 73 2c 20 74 68 61 74 0a 68 61 76 65 20 62 65 65 6e 20 75 70 68 65 6c 64 20 73 69 6e 63 65 20 ls,.that.have.been.upheld.since.
48ca0 74 68 65 20 65 61 72 6c 69 65 73 74 20 64 61 79 73 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 the.earliest.days.of.the.project
48cc0 2e 0a 0a 23 23 23 20 50 6f 72 74 61 62 69 6c 69 74 79 0a 0a 50 72 6f 6a 65 63 74 69 6c 65 20 70 ...###.Portability..Projectile.p
48ce0 72 6f 76 69 64 65 20 61 20 6e 69 63 65 20 73 65 74 20 6f 66 20 66 65 61 74 75 72 65 73 20 6f 70 rovide.a.nice.set.of.features.op
48d00 65 72 61 74 69 6e 67 20 6f 6e 20 61 20 70 72 6f 6a 65 63 74 20 6c 65 76 65 6c 20 77 69 74 68 6f erating.on.a.project.level.witho
48d20 75 74 0a 69 6e 74 72 6f 64 75 63 69 6e 67 20 65 78 74 65 72 6e 61 6c 20 64 65 70 65 6e 64 65 6e ut.introducing.external.dependen
48d40 63 69 65 73 20 28 77 68 65 6e 20 66 65 61 73 69 62 6c 65 29 2e 20 46 6f 72 20 69 6e 73 74 61 6e cies.(when.feasible)..For.instan
48d60 63 65 20 2d 0a 66 69 6e 64 69 6e 67 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 68 61 73 20 61 ce.-.finding.project.files.has.a
48d80 20 70 6f 72 74 61 62 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 77 72 69 74 74 65 6e .portable.implementation.written
48da0 20 69 6e 20 70 75 72 65 0a 45 6d 61 63 73 20 4c 69 73 70 20 77 69 74 68 6f 75 74 20 74 68 65 20 .in.pure.Emacs.Lisp.without.the.
48dc0 75 73 65 20 6f 66 20 47 4e 55 20 60 66 69 6e 64 60 20 28 62 75 74 20 66 6f 72 20 70 65 72 66 6f use.of.GNU.`find`.(but.for.perfo
48de0 72 6d 61 6e 63 65 27 73 20 73 61 6b 65 20 61 6e 0a 69 6e 64 65 78 69 6e 67 20 6d 65 63 68 61 6e rmance's.sake.an.indexing.mechan
48e00 69 73 6d 20 62 61 63 6b 65 64 20 62 79 20 65 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 ism.backed.by.external.commands.
48e20 65 78 69 73 74 73 20 61 73 20 77 65 6c 6c 29 2e 0a 0a 23 23 23 20 53 69 6d 70 6c 69 63 69 74 79 exists.as.well)...###.Simplicity
48e40 0a 0a 54 68 69 73 20 6c 69 62 72 61 72 79 20 70 72 6f 76 69 64 65 73 20 65 61 73 79 20 70 72 6f ..This.library.provides.easy.pro
48e60 6a 65 63 74 20 6d 61 6e 61 67 65 6d 65 6e 74 20 61 6e 64 20 6e 61 76 69 67 61 74 69 6f 6e 2e 20 ject.management.and.navigation..
48e80 54 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 61 0a 70 72 6f 6a 65 63 74 20 69 73 20 70 72 65 74 The.concept.of.a.project.is.pret
48ea0 74 79 20 62 61 73 69 63 20 2d 20 6a 75 73 74 20 61 20 66 6f 6c 64 65 72 20 63 6f 6e 74 61 69 6e ty.basic.-.just.a.folder.contain
48ec0 69 6e 67 20 73 6f 6d 65 20 73 70 65 63 69 61 6c 20 66 69 6c 65 20 28 65 2e 67 2e 20 61 20 56 43 ing.some.special.file.(e.g..a.VC
48ee0 53 0a 6d 61 72 6b 65 72 20 6f 72 20 61 20 70 72 6f 6a 65 63 74 20 64 65 73 63 72 69 70 74 6f 72 S.marker.or.a.project.descriptor
48f00 20 66 69 6c 65 20 6c 69 6b 65 20 60 70 6f 6d 2e 78 6d 6c 60 20 6f 72 20 60 47 65 6d 66 69 6c 65 .file.like.`pom.xml`.or.`Gemfile
48f20 60 29 2e 20 50 72 6f 6a 65 63 74 69 6c 65 0a 77 69 6c 6c 20 61 75 74 6f 2d 64 65 74 65 63 74 20 `)..Projectile.will.auto-detect.
48f40 70 72 65 74 74 79 20 6d 75 63 68 20 65 76 65 72 79 20 70 6f 70 75 6c 61 72 20 70 72 6f 6a 65 63 pretty.much.every.popular.projec
48f60 74 20 74 79 70 65 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 0a 61 6e 64 20 79 6f 75 20 63 61 t.type.out.of.the.box.and.you.ca
48f80 6e 20 65 61 73 69 6c 79 20 65 78 74 65 6e 64 20 69 74 20 77 69 74 68 20 61 64 64 69 74 69 6f 6e n.easily.extend.it.with.addition
48fa0 61 6c 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 2e 0a 0a 23 23 23 20 45 61 73 79 20 74 6f 20 55 al.project.types...###.Easy.to.U
48fc0 73 65 0a 0a 54 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 64 65 66 61 75 6c 74 73 20 61 se..The.configuration.defaults.a
48fe0 72 65 20 70 72 65 74 74 79 20 72 65 61 73 6f 6e 61 62 6c 65 20 61 6e 64 20 6d 6f 73 74 20 75 73 re.pretty.reasonable.and.most.us
49000 65 72 73 0a 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 6e 65 76 65 72 20 66 65 65 6c 20 61 20 73 ers.will.probably.never.feel.a.s
49020 74 72 6f 6e 67 20 6e 65 65 64 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 6d 2e 0a 0a 41 6c 6c 20 trong.need.to.change.them...All.
49040 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 65 61 73 69 6c 79 20 64 69 73 63 6f 76 65 72 61 62 6c 65 commands.are.easily.discoverable
49060 20 61 6e 64 20 61 72 65 20 75 6e 6c 69 6b 65 6c 79 20 74 6f 20 73 75 72 70 72 69 73 65 20 79 6f .and.are.unlikely.to.surprise.yo
49080 75 0a 77 69 74 68 20 74 68 65 69 72 20 62 65 68 61 76 69 6f 72 2e 0a 0a 23 23 23 20 50 72 61 63 u.with.their.behavior...###.Prac
490a0 74 69 63 61 6c 69 74 79 0a 0a 50 72 6f 6a 65 63 74 69 6c 65 20 74 72 69 65 73 20 74 6f 20 62 65 ticality..Projectile.tries.to.be
490c0 20 70 72 61 63 74 69 63 61 6c 20 2d 20 70 6f 72 74 61 62 69 6c 69 74 79 20 69 73 20 67 72 65 61 .practical.-.portability.is.grea
490e0 74 2c 20 62 75 74 20 69 66 20 73 6f 6d 65 0a 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 63 6f t,.but.if.some.external.tools.co
49100 75 6c 64 20 73 70 65 65 64 20 75 70 20 73 6f 6d 65 20 74 61 73 6b 20 73 75 62 73 74 61 6e 74 69 uld.speed.up.some.task.substanti
49120 61 6c 6c 79 20 61 6e 64 20 74 68 65 20 74 6f 6f 6c 73 0a 61 72 65 20 61 76 61 69 6c 61 62 6c 65 ally.and.the.tools.are.available
49140 2c 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 6c 65 76 65 72 61 67 65 20 74 68 65 6d 2e ,.Projectile.will.leverage.them.
49160 0a 0a 23 23 23 20 46 6c 65 78 69 62 69 6c 69 74 79 0a 0a 49 6e 20 74 68 65 20 63 6c 61 73 73 69 ..###.Flexibility..In.the.classi
49180 63 20 73 70 69 72 69 74 20 6f 66 20 45 6d 61 63 73 20 61 6c 6d 6f 73 74 20 65 76 65 72 79 20 61 c.spirit.of.Emacs.almost.every.a
491a0 73 70 65 63 74 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 62 65 68 61 76 69 6f 72 20 69 spect.of.Projectile's.behavior.i
491c0 73 0a 63 6f 6e 66 69 67 75 72 61 62 6c 65 2e 0a 0a 23 23 20 43 61 76 65 61 74 73 0a 0a 2a 20 53 s.configurable...##.Caveats..*.S
491e0 6f 6d 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 6c 69 6b 65 20 73 65 61 72 63 68 20 28 67 72 65 70 ome.operations.like.search.(grep
49200 29 20 64 65 70 65 6e 64 20 28 70 72 65 73 65 6e 74 6c 79 29 20 6f 6e 20 65 78 74 65 72 6e 61 6c ).depend.(presently).on.external
49220 0a 20 20 75 74 69 6c 69 74 69 65 73 20 73 75 63 68 20 61 73 20 60 66 69 6e 64 60 20 6f 72 20 60 ...utilities.such.as.`find`.or.`
49240 66 64 60 20 28 76 65 72 73 69 6f 6e 20 38 2e 33 2e 30 2b 29 2e 0a 20 20 2a 20 66 6f 72 20 6f 6c fd`.(version.8.3.0+)....*.for.ol
49260 64 65 72 20 60 66 64 60 20 76 65 72 73 69 6f 6e 20 61 64 64 20 60 28 73 65 74 71 20 70 72 6f 6a der.`fd`.version.add.`(setq.proj
49280 65 63 74 69 6c 65 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 22 66 64 20 2e 20 2d 30 20 ectile-generic-command."fd...-0.
492a0 2d 2d 74 79 70 65 20 66 20 2d 2d 63 6f 6c 6f 72 3d 6e 65 76 65 72 22 29 60 20 74 6f 20 79 6f 75 --type.f.--color=never")`.to.you
492c0 72 20 69 6e 69 74 2d 66 69 6c 65 0a 2a 20 43 6f 6d 6d 61 6e 64 73 20 64 65 70 65 6e 64 69 6e 67 r.init-file.*.Commands.depending
492e0 20 6f 6e 20 65 78 74 65 72 6e 61 6c 20 75 74 69 6c 69 74 69 65 73 20 6d 69 67 68 74 20 6d 69 73 .on.external.utilities.might.mis
49300 62 65 68 61 76 65 20 6f 6e 20 74 68 65 20 60 66 69 73 68 60 20 73 68 65 6c 6c 2e 0a 2a 20 55 73 behave.on.the.`fish`.shell..*.Us
49320 69 6e 67 20 50 72 6f 6a 65 63 74 69 6c 65 20 6f 76 65 72 20 54 52 41 4d 50 20 6d 69 67 68 74 20 ing.Projectile.over.TRAMP.might.
49340 62 65 20 73 6c 6f 77 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 2e 0a 2a 20 53 6f 6d 65 be.slow.in.certain.cases..*.Some
49360 20 63 6f 6d 6d 61 6e 64 73 20 6d 69 67 68 74 20 6d 69 73 62 65 68 61 76 65 20 6f 6e 20 63 6f 6d .commands.might.misbehave.on.com
49380 70 6c 65 78 20 70 72 6f 6a 65 63 74 20 73 65 74 75 70 73 20 28 65 2e 67 2e 20 61 20 67 69 74 20 plex.project.setups.(e.g..a.git.
493a0 70 72 6f 6a 65 63 74 20 77 69 74 68 20 73 75 62 6d 6f 64 75 6c 65 73 29 2e 0a 2a 20 50 72 6f 6a project.with.submodules)..*.Proj
493c0 65 63 74 69 6c 65 20 77 61 73 20 6d 6f 73 74 6c 79 20 74 65 73 74 65 64 20 6f 6e 20 55 6e 69 78 ectile.was.mostly.tested.on.Unix
493e0 20 4f 53 2d 65 73 20 28 65 2e 67 2e 20 47 4e 55 2f 4c 69 6e 75 78 20 61 6e 64 20 6d 61 63 4f 53 .OS-es.(e.g..GNU/Linux.and.macOS
49400 29 2c 20 73 6f 20 73 6f 6d 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 6d 69 67 68 74 20 6e ),.so.some.functionality.might.n
49420 6f 74 20 77 6f 72 6b 20 77 65 6c 6c 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 0a 2a 20 49 6e 20 47 69 ot.work.well.on.Windows..*.In.Gi
49440 74 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 64 65 6c 65 74 65 64 20 66 69 6c 65 73 20 61 72 t.repositories,.deleted.files.ar
49460 65 20 73 74 69 6c 6c 20 73 68 6f 77 6e 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e e.still.shown.in.`projectile-fin
49480 64 2d 66 69 6c 65 60 0a 20 20 75 6e 74 69 6c 20 74 68 65 69 72 20 64 65 6c 65 74 69 6f 6e 73 20 d-file`...until.their.deletions.
494a0 61 72 65 20 73 74 61 67 65 64 2c 20 64 75 65 20 74 6f 20 61 20 6c 69 6d 69 74 61 74 69 6f 6e 20 are.staged,.due.to.a.limitation.
494c0 6f 66 20 60 67 69 74 20 6c 73 2d 66 69 6c 65 73 60 2e 20 49 66 0a 20 20 79 6f 75 20 69 6e 73 74 of.`git.ls-files`..If...you.inst
494e0 61 6c 6c 20 5b 66 64 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 68 61 72 all.[fd](https://github.com/shar
49500 6b 64 70 2f 66 64 29 20 74 68 65 6e 20 69 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 kdp/fd).then.it.is.automatically
49520 20 75 73 65 64 0a 20 20 69 6e 73 74 65 61 64 2c 20 61 6e 64 20 64 6f 65 73 20 6e 6f 74 20 68 61 .used...instead,.and.does.not.ha
49540 76 65 20 74 68 69 73 20 70 72 6f 62 6c 65 6d 2e 20 28 59 6f 75 20 63 61 6e 20 69 6e 68 69 62 69 ve.this.problem..(You.can.inhibi
49560 74 20 74 68 65 20 75 73 65 20 6f 66 20 60 66 64 60 20 62 79 0a 20 20 73 65 74 74 69 6e 67 20 60 t.the.use.of.`fd`.by...setting.`
49580 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 75 73 65 2d 66 64 60 20 74 6f 20 60 6e 69 6c 60 2e projectile-git-use-fd`.to.`nil`.
495a0 29 0a 0a 23 23 20 4b 6e 6f 77 6e 20 69 73 73 75 65 73 0a 0a 43 68 65 63 6b 20 6f 75 74 20 74 68 )..##.Known.issues..Check.out.th
495c0 65 20 70 72 6f 6a 65 63 74 27 73 0a 5b 69 73 73 75 65 20 6c 69 73 74 5d 28 68 74 74 70 73 3a 2f e.project's.[issue.list](https:/
495e0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 /github.com/bbatsov/projectile/i
49600 73 73 75 65 73 3f 73 6f 72 74 3d 63 72 65 61 74 65 64 26 64 69 72 65 63 74 69 6f 6e 3d 64 65 73 ssues?sort=created&direction=des
49620 63 26 73 74 61 74 65 3d 6f 70 65 6e 29 0a 61 20 6c 69 73 74 20 6f 66 20 75 6e 72 65 73 6f 6c 76 c&state=open).a.list.of.unresolv
49640 65 64 20 69 73 73 75 65 73 2e 20 42 79 20 74 68 65 20 77 61 79 20 2d 20 66 65 65 6c 20 66 72 65 ed.issues..By.the.way.-.feel.fre
49660 65 20 74 6f 20 66 69 78 20 61 6e 79 20 6f 66 20 74 68 65 6d 0a 61 6e 64 20 73 65 6e 64 20 6d 65 e.to.fix.any.of.them.and.send.me
49680 20 61 20 70 75 6c 6c 20 72 65 71 75 65 73 74 2e 20 3a 2d 29 0a 0a 23 23 20 43 6f 6e 74 72 69 62 .a.pull.request..:-)..##.Contrib
496a0 75 74 6f 72 73 0a 0a 48 65 72 65 27 73 20 61 20 5b 6c 69 73 74 5d 28 68 74 74 70 73 3a 2f 2f 67 utors..Here's.a.[list](https://g
496c0 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 63 6f 6e ithub.com/bbatsov/projectile/con
496e0 74 72 69 62 75 74 6f 72 73 29 20 6f 66 20 61 6c 6c 20 74 68 65 20 70 65 6f 70 6c 65 20 77 68 6f tributors).of.all.the.people.who
49700 20 68 61 76 65 20 63 6f 6e 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 0a 64 65 76 65 6c 6f 70 .have.contributed.to.the.develop
49720 6d 65 6e 74 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 20 28 61 2e 6b 2e 61 2e 20 50 72 6f 6a 65 ment.of.Projectile.(a.k.a..Proje
49740 63 74 69 6c 65 27 73 20 48 61 6c 6c 20 6f 66 20 46 61 6d 65 29 2e 0a 0a 4a 6f 69 6e 69 6e 67 20 ctile's.Hall.of.Fame)...Joining.
49760 74 68 69 73 20 65 73 74 65 65 6d 65 64 20 67 72 6f 75 70 20 6f 66 20 70 65 6f 70 6c 65 20 69 73 this.esteemed.group.of.people.is
49780 20 6f 6e 6c 79 20 61 20 63 6f 6d 6d 69 74 20 61 77 61 79 21 0a 0a 23 23 20 43 68 61 6e 67 65 6c .only.a.commit.away!..##.Changel
497a0 6f 67 0a 0a 41 20 66 61 69 72 6c 79 20 65 78 74 65 6e 73 69 76 65 20 63 68 61 6e 67 65 6c 6f 67 og..A.fairly.extensive.changelog
497c0 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 5b 68 65 72 65 5d 28 43 48 41 4e 47 45 4c 4f 47 2e 6d .is.available.[here](CHANGELOG.m
497e0 64 29 2e 0a 0a 5b 62 61 64 67 65 2d 6c 69 63 65 6e 73 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d d)...[badge-license]:.https://im
49800 67 2e 73 68 69 65 6c 64 73 2e 69 6f 2f 62 61 64 67 65 2f 6c 69 63 65 6e 73 65 2d 47 50 4c 5f 33 g.shields.io/badge/license-GPL_3
49820 2d 67 72 65 65 6e 2e 73 76 67 0a 0a 23 23 20 4c 69 63 65 6e 73 65 0a 0a 43 6f 70 79 72 69 67 68 -green.svg..##.License..Copyrigh
49840 74 20 c2 a9 20 32 30 31 31 2d 32 30 32 35 20 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 20 61 t....2011-2025.Bozhidar.Batsov.a
49860 6e 64 0a 5b 63 6f 6e 74 72 69 62 75 74 6f 72 73 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 nd.[contributors](https://github
49880 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 63 6f 6e 74 72 69 62 75 .com/bbatsov/projectile/contribu
498a0 74 6f 72 73 29 2e 0a 0a 44 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65 20 47 4e tors)...Distributed.under.the.GN
498c0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 76 65 72 73 69 6f U.General.Public.License,.versio
498e0 6e 20 33 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 n.3.............................
49900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
499a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
499c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
499e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 70 72 6f 6a 65 63 74 69 6c 65 2d 70 6b 67 2e projectile-2.9.1/projectile-pkg.
49a20 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..............................
49a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a60 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
49a80 30 30 30 30 36 37 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 37 34 00 20 30 00 00 00 0000676.00000000000.015574..0...
49aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b00 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...................
49b20 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...................
49b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c00 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
49c20 20 66 72 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 20 20 2d 2a 2d 20 6d 6f 64 65 3a 20 6c .from.projectile.el..-*-.mode:.l
49c40 69 73 70 2d 64 61 74 61 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d isp-data;.no-byte-compile:.t.-*-
49c60 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 70 72 6f 6a 65 63 74 69 6c 65 22 20 22 32 .(define-package."projectile"."2
49c80 2e 39 2e 31 22 20 22 4d 61 6e 61 67 65 20 61 6e 64 20 6e 61 76 69 67 61 74 65 20 70 72 6f 6a 65 .9.1"."Manage.and.navigate.proje
49ca0 63 74 73 20 69 6e 20 45 6d 61 63 73 20 65 61 73 69 6c 79 22 20 27 28 28 65 6d 61 63 73 20 22 32 cts.in.Emacs.easily".'((emacs."2
49cc0 36 2e 31 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 65 66 31 37 64 32 39 37 31 62 62 63 63 65 31 33 6.1")).:commit."ef17d2971bbcce13
49ce0 62 31 61 63 31 36 65 30 65 33 36 64 34 34 66 61 30 64 65 66 63 61 36 33 22 20 3a 61 75 74 68 6f b1ac16e0e36d44fa0defca63".:autho
49d00 72 73 20 27 28 28 22 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 22 20 2e 20 22 62 6f 7a 68 69 rs.'(("Bozhidar.Batsov"..."bozhi
49d20 64 61 72 40 62 61 74 73 6f 76 2e 64 65 76 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 20 27 28 dar@batsov.dev")).:maintainer.'(
49d40 22 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 22 20 2e 20 22 62 6f 7a 68 69 64 61 72 40 62 61 "Bozhidar.Batsov"..."bozhidar@ba
49d60 74 73 6f 76 2e 64 65 76 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 70 72 6f 6a 65 63 74 22 tsov.dev").:keywords.'("project"
49d80 20 22 63 6f 6e 76 65 6e 69 65 6e 63 65 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 ."convenience").:url."https://gi
49da0 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 22 29 0a 00 00 thub.com/bbatsov/projectile")...
49dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 00 00 00 projectile-2.9.1/CHANGELOG.md...
49e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e60 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
49e80 30 31 32 36 36 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 31 34 37 00 20 30 00 00 00 0126634.00000000000.014147..0...
49ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f00 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...................
49f20 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...................
49f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4a000 23 20 43 68 61 6e 67 65 6c 6f 67 0a 0a 23 23 20 6d 61 73 74 65 72 20 28 75 6e 72 65 6c 65 61 73 #.Changelog..##.master.(unreleas
4a020 65 64 29 0a 0a 23 23 20 32 2e 39 2e 31 20 28 32 30 32 35 2d 30 32 2d 31 33 29 0a 0a 23 23 23 20 ed)..##.2.9.1.(2025-02-13)..###.
4a040 42 75 67 73 20 46 69 78 65 64 0a 0a 2a 20 5b 23 31 39 32 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 Bugs.Fixed..*.[#1929](https://gi
4a060 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c thub.com/bbatsov/projectile/pull
4a080 2f 31 39 32 39 29 3a 20 44 6f 6e 27 74 20 63 72 65 61 74 65 20 63 61 63 68 65 20 66 69 6c 65 73 /1929):.Don't.create.cache.files
4a0a0 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 73 65 2d 63 61 63 68 69 6e 67 60 20 69 .when.`projectile-use-caching`.i
4a0c0 73 20 6e 6f 74 20 73 65 74 20 74 6f 20 60 70 65 72 73 69 73 74 65 6e 74 60 2e 0a 0a 23 23 20 32 s.not.set.to.`persistent`...##.2
4a0e0 2e 39 2e 30 20 28 32 30 32 35 2d 30 32 2d 31 32 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 .9.0.(2025-02-12)..###.New.featu
4a100 72 65 73 0a 0a 2a 20 5b 23 31 38 37 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f res..*.[#1870](https://github.co
4a120 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 37 30 29 3a m/bbatsov/projectile/pull/1870):
4a140 20 41 64 64 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4d 61 6b 65 20 70 .Add.package.command.for.CMake.p
4a160 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 38 37 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 rojects..*.[#1875](https://githu
4a180 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 b.com/bbatsov/projectile/pull/18
4a1a0 37 35 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 61 70 6c 69 6e 67 20 56 43 53 75):.Add.support.for.Sapling.VCS
4a1c0 2e 0a 2a 20 5b 23 31 38 37 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1876](https://github.com/b
4a1e0 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 37 36 29 3a 20 41 64 batsov/projectile/pull/1876):.Ad
4a200 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4a 75 6a 75 74 73 75 20 56 43 53 2e 0a 2a 20 5b 23 31 d.support.for.Jujutsu.VCS..*.[#1
4a220 38 37 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 877](https://github.com/bbatsov/
4a240 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 37 37 29 3a 20 41 64 64 20 63 75 73 74 6f projectile/pull/1877):.Add.custo
4a260 6d 20 76 61 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6d 64 2d 68 69 73 74 2d m.variable.`projectile-cmd-hist-
4a280 69 67 6e 6f 72 65 64 75 70 73 60 2e 0a 2a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 45 ignoredups`..*.Add.support.for.E
4a2a0 61 73 6b 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 38 39 32 5d 28 68 74 74 70 73 3a 2f 2f ask.projects..*.[#1892](https://
4a2c0 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 github.com/bbatsov/projectile/pu
4a2e0 6c 6c 2f 31 38 39 32 29 3a 20 41 64 64 20 63 61 74 65 67 6f 72 79 20 6d 65 74 61 64 61 74 61 20 ll/1892):.Add.category.metadata.
4a300 74 6f 20 60 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 60 2e 20 28 69 74 27 73 20 75 73 65 64 to.`completing-read`..(it's.used
4a320 20 62 79 20 70 61 63 6b 61 67 65 73 20 6c 69 6b 65 20 60 6d 61 72 67 69 6e 61 6c 69 61 60 20 61 .by.packages.like.`marginalia`.a
4a340 6e 64 20 60 65 6d 62 61 72 6b 60 29 0a 2a 20 5b 23 31 38 39 39 5d 28 68 74 74 70 73 3a 2f 2f 67 nd.`embark`).*.[#1899](https://g
4a360 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c ithub.com/bbatsov/projectile/pul
4a380 6c 2f 31 38 39 39 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 78 6d 61 6b 65 20 62 l/1899):.Add.support.for.xmake.b
4a3a0 75 69 6c 64 20 75 74 69 6c 69 74 79 2e 0a 2a 20 5b 23 31 38 39 35 5d 28 68 74 74 70 73 3a 2f 2f uild.utility..*.[#1895](https://
4a3c0 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 github.com/bbatsov/projectile/pu
4a3e0 6c 6c 2f 31 38 39 35 29 3a 20 4d 6f 64 69 66 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 ll/1895):.Modify.projectile-mode
4a400 20 74 6f 20 61 64 64 20 61 20 68 6f 6f 6b 20 74 6f 20 60 62 75 66 66 65 72 2d 6c 69 73 74 2d 75 .to.add.a.hook.to.`buffer-list-u
4a420 70 64 61 74 65 2d 68 6f 6f 6b 60 20 73 75 63 68 20 74 68 61 74 20 61 6e 79 20 63 68 61 6e 67 65 pdate-hook`.such.that.any.change
4a440 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 6c 69 73 74 20 77 69 6c 6c 20 75 70 64 61 74 65 20 .in.the.buffer.list.will.update.
4a460 74 68 65 20 73 65 6c 65 63 74 65 64 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 5b 23 31 39 31 38 5d 28 the.selected.project..*.[#1918](
4a480 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
4a4a0 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 39 35 29 3a 20 41 64 64 20 5a 69 67 20 70 72 6f 6a 65 63 ctile/pull/1895):.Add.Zig.projec
4a4c0 74 20 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 t.discovery..*.Add.support.for.S
4a4e0 77 69 66 74 20 70 72 6f 6a 65 63 74 20 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 49 6e 74 72 6f 64 wift.project.discovery..*.Introd
4a500 75 63 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 2d 69 67 6e 6f 72 65 2d 66 69 uce.`projectile-global-ignore-fi
4a520 6c 65 2d 70 61 74 74 65 72 6e 73 60 20 63 6f 6e 66 69 67 20 74 68 61 74 20 61 6c 6c 6f 77 73 20 le-patterns`.config.that.allows.
4a540 74 6f 20 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 to.ignore.files.and.directories.
4a560 77 69 74 68 20 72 65 67 65 78 70 20 70 61 74 74 65 72 6e 73 2e 0a 2a 20 49 6e 74 72 6f 64 75 63 with.regexp.patterns..*.Introduc
4a580 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 6e e.`projectile-auto-cleanup-known
4a5a0 2d 70 72 6f 6a 65 63 74 73 60 20 6f 70 74 69 6f 6e 20 74 68 61 74 20 61 6c 6c 6f 77 73 20 79 6f -projects`.option.that.allows.yo
4a5c0 75 20 74 6f 20 61 75 74 6f 2d 63 6c 65 61 6e 75 70 20 6d 69 73 73 69 6e 67 20 70 72 6f 6a 65 63 u.to.auto-cleanup.missing.projec
4a5e0 74 73 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 38 38 31 5d 28 68 ts...###.Bugs.fixed..*.[#1881](h
4a600 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4a620 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 38 31 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 tile/issues/1881):.Fix.`projecti
4a640 6c 65 2d 72 65 63 65 6e 74 66 60 20 77 68 65 6e 20 63 61 6c 6c 65 64 20 6f 75 74 73 69 64 65 20 le-recentf`.when.called.outside.
4a660 61 6e 79 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 5b 23 31 39 31 30 5d 28 68 74 74 70 73 3a 2f 2f 67 any.project..*.[#1910](https://g
4a680 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c ithub.com/bbatsov/projectile/pul
4a6a0 6c 2f 31 39 31 30 29 3a 20 52 65 76 65 72 74 73 20 5b 23 31 38 39 35 5d 28 68 74 74 70 73 3a 2f l/1910):.Reverts.[#1895](https:/
4a6c0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 /github.com/bbatsov/projectile/p
4a6e0 75 6c 6c 2f 31 38 39 35 29 20 61 73 20 74 68 6f 73 65 20 63 68 61 6e 67 65 73 20 61 70 70 65 61 ull/1895).as.those.changes.appea
4a700 72 20 74 6f 20 63 61 75 73 65 20 61 20 73 69 67 6e 69 66 69 63 61 6e 74 20 70 65 72 66 6f 72 6d r.to.cause.a.significant.perform
4a720 61 6e 63 65 20 72 65 67 72 65 73 73 69 6f 6e 20 61 63 72 6f 73 73 20 61 20 6e 75 6d 62 65 72 20 ance.regression.across.a.number.
4a740 6f 66 20 75 73 65 2d 63 61 73 65 73 2e 0a 2a 20 5b 23 31 39 31 35 5d 28 68 74 74 70 73 3a 2f 2f of.use-cases..*.[#1915](https://
4a760 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 github.com/bbatsov/projectile/pu
4a780 6c 6c 2f 31 39 31 35 29 3a 20 46 69 78 20 64 6f 74 6e 65 74 2d 73 6c 6e 20 70 72 6f 6a 65 63 74 ll/1915):.Fix.dotnet-sln.project
4a7a0 2d 74 79 70 65 20 72 65 63 6f 67 6e 69 74 69 6f 6e 2e 20 28 63 68 65 63 6b 20 60 2a 2e 73 6c 6e -type.recognition..(check.`*.sln
4a7c0 60 20 66 69 6c 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 60 73 72 63 2f 60 29 0a 2a 20 5b 23 31 `.files.instead.of.`src/`).*.[#1
4a7e0 38 35 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 850](https://github.com/bbatsov/
4a800 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 35 30 29 3a 20 45 6e 73 75 72 65 20 projectile/issues/1850):.Ensure.
4a820 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 20 69 6e 20 60 70 72 the.presence.of.a.project.in.`pr
4a840 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 60 2e 0a 2a 20 5b 23 31 ojectile-compilation-dir`..*.[#1
4a860 38 31 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 811](https://github.com/bbatsov/
4a880 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 31 31 29 3a 20 52 65 76 65 72 74 20 projectile/issues/1811):.Revert.
4a8a0 61 20 63 68 61 6e 67 65 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d a.change.to.`projectile-ignored-
4a8c0 64 69 72 65 63 74 6f 72 69 65 73 60 20 74 68 61 74 20 68 61 64 20 63 6f 6e 76 65 72 74 65 64 20 directories`.that.had.converted.
4a8e0 74 68 65 6d 20 69 6e 74 6f 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 2a them.into.regular.expressions..*
4a900 20 5b 23 31 38 39 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 .[#1893](https://github.com/bbat
4a920 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 39 33 29 3a 20 46 69 78 sov/projectile/issues/1893):.Fix
4a940 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 .`projectile-discover-projects-i
4a960 6e 2d 64 69 72 65 63 74 6f 72 79 60 20 77 68 65 6e 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 n-directory`.when.called.interac
4a980 74 69 76 65 6c 79 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 38 37 34 5d 28 tively...###.Changes..*.[#1874](
4a9a0 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
4a9c0 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 37 34 29 3a 20 43 68 61 6e 67 65 73 20 60 63 6f 6d 70 69 ctile/pull/1874):.Changes.`compi
4a9e0 6c 61 74 69 6f 6e 2d 66 69 6e 64 2d 66 69 6c 65 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 lation-find-file-projectile-find
4aa00 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 60 20 74 6f 20 6e 61 76 69 67 61 74 65 -compilation-buffer`.to.navigate
4aa20 20 64 69 72 65 63 74 6c 79 20 74 6f 20 74 68 65 20 66 69 6c 65 20 69 66 20 61 6c 72 65 61 64 79 .directly.to.the.file.if.already
4aa40 20 70 72 65 73 65 6e 74 20 6f 6e 20 64 69 73 6b 20 74 6f 20 68 65 6c 70 20 69 6d 70 72 6f 76 65 .present.on.disk.to.help.improve
4aa60 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 20 73 63 65 6e 61 72 69 6f 73 20 77 68 65 72 65 20 .performance.in.scenarios.where.
4aa80 74 68 65 72 65 20 61 72 65 20 61 20 6c 61 72 67 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 6a there.are.a.large.number.of.proj
4aaa0 65 63 74 20 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 2a 20 44 72 6f 70 20 73 75 70 70 6f 72 74 20 ect.directories..*.Drop.support.
4aac0 66 6f 72 20 45 6d 61 63 73 20 32 35 2e 0a 2a 20 52 65 77 6f 72 6b 20 74 68 65 20 63 61 63 68 69 for.Emacs.25..*.Rework.the.cachi
4aae0 6e 67 20 6c 6f 67 69 63 2e 20 54 68 65 20 6d 61 69 6e 20 63 68 61 6e 67 65 73 20 66 72 6f 6d 20 ng.logic..The.main.changes.from.
4ab00 62 65 66 6f 72 65 20 61 72 65 3a 0a 0a 20 20 20 20 2d 20 45 61 63 68 20 70 72 6f 6a 65 63 74 20 before.are:......-.Each.project.
4ab20 68 61 73 20 69 74 73 20 6f 77 6e 20 63 61 63 68 65 20 66 69 6c 65 0a 20 20 20 20 2d 20 43 61 63 has.its.own.cache.file.....-.Cac
4ab40 68 65 20 66 69 6c 65 73 20 61 72 65 20 63 6f 6e 73 75 6c 74 65 64 20 6f 6e 6c 79 20 77 68 65 6e he.files.are.consulted.only.when
4ab60 20 79 6f 75 20 72 65 71 75 65 73 74 20 74 68 65 20 66 69 6c 65 73 20 6f 66 20 73 6f 6d 65 20 70 .you.request.the.files.of.some.p
4ab80 72 6f 6a 65 63 74 0a 0a 20 20 20 20 54 68 69 73 20 6d 61 6b 65 73 20 63 61 63 68 69 6e 67 20 62 roject......This.makes.caching.b
4aba0 6f 74 68 20 6d 6f 72 65 20 72 6f 62 75 73 74 20 61 6e 64 20 66 61 73 74 65 72 2c 20 61 73 20 62 oth.more.robust.and.faster,.as.b
4abc0 65 66 6f 72 65 20 74 68 65 20 63 61 63 68 65 20 66 69 6c 65 0a 20 20 20 20 66 6f 72 20 61 6c 6c efore.the.cache.file.....for.all
4abe0 20 70 72 6f 6a 65 63 74 73 20 77 61 73 20 6c 6f 61 64 65 64 20 77 68 65 6e 20 70 72 6f 6a 65 63 .projects.was.loaded.when.projec
4ac00 74 69 6c 65 2d 6d 6f 64 65 20 77 61 73 20 65 6e 61 62 6c 65 64 2e 0a 2a 20 4d 61 6b 65 20 74 68 tile-mode.was.enabled..*.Make.th
4ac20 65 20 63 61 63 68 65 20 74 72 61 6e 73 69 65 6e 74 20 62 79 20 64 65 66 61 75 6c 74 2e 20 28 6d e.cache.transient.by.default..(m
4ac40 65 61 6e 69 6e 67 20 69 74 20 6c 69 76 65 73 20 6f 6e 6c 79 20 69 6e 20 6d 65 6d 6f 72 79 20 61 eaning.it.lives.only.in.memory.a
4ac60 6e 64 20 69 73 20 6e 6f 74 20 70 65 72 73 69 73 74 65 64 20 74 6f 20 61 20 66 69 6c 65 29 0a 20 nd.is.not.persisted.to.a.file)..
4ac80 20 2a 20 54 6f 20 65 6e 61 62 6c 65 20 70 65 72 73 69 73 74 65 6e 74 20 63 61 63 68 69 6e 67 20 .*.To.enable.persistent.caching.
4aca0 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 65 74 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 you.need.to.set.`projectile-enab
4acc0 6c 65 2d 63 61 63 68 69 6e 67 60 20 74 6f 20 60 27 70 65 72 73 69 73 74 65 6e 74 60 2e 0a 2a 20 le-caching`.to.`'persistent`..*.
4ace0 53 70 65 65 64 2d 75 70 20 6c 6f 61 64 20 74 69 6d 65 20 62 79 20 6d 6f 76 69 6e 67 20 6b 6e 6f Speed-up.load.time.by.moving.kno
4ad00 77 6e 20 70 72 6f 6a 65 63 74 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 6f 75 74 73 69 wn.projects.initialization.outsi
4ad20 64 65 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 60 27 73 20 69 6e 69 74 2e 0a de.of.`projectile-mode`'s.init..
4ad40 20 20 2a 20 41 73 20 61 20 73 69 64 65 20 65 66 66 65 63 74 20 74 68 65 20 6b 6e 6f 77 6e 20 70 ..*.As.a.side.effect.the.known.p
4ad60 72 6f 6a 65 63 74 73 20 77 69 6c 6c 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 70 72 6f 70 rojects.will.be.initialized.prop
4ad80 65 72 6c 79 20 65 76 65 6e 20 69 66 20 79 6f 75 27 72 65 20 6e 6f 74 20 75 73 69 6e 67 20 60 70 erly.even.if.you're.not.using.`p
4ada0 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 60 2e 0a 20 20 2a 20 54 68 65 20 70 72 6f 6a 65 63 74 rojectile-mode`....*.The.project
4adc0 73 20 61 72 65 20 72 65 61 64 20 66 72 6f 6d 20 64 69 73 6b 20 74 68 65 20 66 69 72 73 74 20 74 s.are.read.from.disk.the.first.t
4ade0 69 6d 65 20 79 6f 75 20 69 6e 76 6f 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 ime.you.invoke.`projectile-switc
4ae00 68 2d 70 72 6f 6a 65 63 74 60 20 6f 72 20 61 20 73 69 6d 69 6c 61 72 20 63 6f 6d 6d 61 6e 64 2e h-project`.or.a.similar.command.
4ae20 0a 2a 20 49 6e 74 72 6f 64 75 63 65 20 61 20 63 6f 6d 6d 6f 6e 20 70 72 65 66 69 78 20 66 6f 72 .*.Introduce.a.common.prefix.for
4ae40 20 70 72 6f 6a 65 63 74 20 6c 69 66 65 63 79 63 6c 65 20 63 6f 6d 6d 61 6e 64 20 6b 65 79 62 69 .project.lifecycle.command.keybi
4ae60 6e 64 69 6e 67 73 3a 0a 20 20 2a 20 60 63 20 6f 60 20 2d 3e 20 60 70 72 6f 6a 65 63 74 69 6c 65 ndings:...*.`c.o`.->.`projectile
4ae80 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 60 0a 20 20 2a 20 60 63 20 63 60 20 2d 3e -configure-project`...*.`c.c`.->
4aea0 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 60 0a 20 20 .`projectile-compile-project`...
4aec0 2a 20 60 63 20 70 60 20 2d 3e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 *.`c.p`.->.`projectile-package-p
4aee0 72 6f 6a 65 63 74 60 0a 20 20 2a 20 60 63 20 69 60 20 2d 3e 20 60 70 72 6f 6a 65 63 74 69 6c 65 roject`...*.`c.i`.->.`projectile
4af00 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 60 0a 20 20 2a 20 60 63 20 74 60 20 2d 3e 20 60 -install-project`...*.`c.t`.->.`
4af20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 60 0a 20 20 2a 20 60 63 20 projectile-test-project`...*.`c.
4af40 72 60 20 2d 3e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 60 0a 20 r`.->.`projectile-run-project`..
4af60 20 2a 20 54 68 65 20 6f 6c 64 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 77 69 6c 6c 20 62 65 20 72 .*.The.old.keybindings.will.be.r
4af80 65 6d 6f 76 65 64 20 69 6e 20 61 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 72 emoved.in.a.future.version.of.Pr
4afa0 6f 6a 65 63 74 69 6c 65 2e 0a 0a 23 23 20 32 2e 38 2e 30 20 28 32 30 32 33 2d 31 30 2d 31 33 29 ojectile...##.2.8.0.(2023-10-13)
4afc0 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 38 36 32 5d 28 68 74 ..###.New.features..*.[#1862](ht
4afe0 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4b000 69 6c 65 2f 70 75 6c 6c 2f 31 38 36 32 29 3a 20 41 64 64 20 70 72 6f 6a 65 63 74 20 74 79 70 65 ile/pull/1862):.Add.project.type
4b020 73 20 22 79 61 72 6e 22 20 61 6e 64 20 22 70 6e 70 6d 22 20 73 65 70 61 72 61 74 65 20 66 72 6f s."yarn".and."pnpm".separate.fro
4b040 6d 20 22 6e 70 6d 22 2e 0a 2a 20 5b 23 31 38 35 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 m."npm"..*.[#1851](https://githu
4b060 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 b.com/bbatsov/projectile/pull/18
4b080 35 31 29 3a 20 41 64 64 20 72 69 70 67 72 65 70 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 51):.Add.ripgrep.to.`projectile-
4b0a0 63 6f 6d 6d 61 6e 64 65 72 60 20 77 69 74 68 20 62 69 6e 64 69 6e 67 20 60 3f 70 60 2e 0a 2a 20 commander`.with.binding.`?p`..*.
4b0c0 5b 23 31 38 33 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 [#1833](https://github.com/bbats
4b0e0 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 33 33 29 3a 20 41 64 64 20 4a 75 ov/projectile/pull/1833):.Add.Ju
4b100 6c 69 61 20 70 72 6f 6a 65 63 74 20 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 5b 23 31 38 32 38 5d lia.project.discovery..*.[#1828]
4b120 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
4b140 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 32 38 29 3a 20 41 64 64 20 4e 69 6d 62 6c 65 2d 62 61 ectile/pull/1828):.Add.Nimble-ba
4b160 73 65 64 20 4e 69 6d 20 70 72 6f 6a 65 63 74 20 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 41 64 64 sed.Nim.project.discovery..*.Add
4b180 20 65 6c 6d 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 5b 23 31 38 32 31 5d 28 68 74 74 .elm.project.type..*.[#1821](htt
4b1a0 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
4b1c0 6c 65 2f 70 75 6c 6c 2f 31 38 32 31 29 3a 20 41 64 64 20 60 70 79 70 72 6f 6a 65 63 74 2e 74 6f le/pull/1821):.Add.`pyproject.to
4b1e0 6d 6c 60 20 64 69 73 63 6f 76 65 72 79 20 66 6f 72 20 70 79 74 68 6f 6e 20 70 72 6f 6a 65 63 74 ml`.discovery.for.python.project
4b200 73 2e 0a 2a 20 5b 23 31 38 33 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f s..*.[#1830](https://github.com/
4b220 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 33 30 29 3a bbatsov/projectile/issues/1830):
4b240 20 41 64 64 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 .Add.command.`projectile-run-vte
4b260 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 60 20 61 6e 64 20 62 69 6e 64 20 69 74 20 74 6f 20 rm-other-window`.and.bind.it.to.
4b280 60 78 20 34 20 76 60 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 38 33 39 5d `x.4.v`...###.Changes..*.[#1839]
4b2a0 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
4b2c0 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 33 39 29 3a 20 45 6e 73 75 72 65 20 60 70 72 6f ectile/issues/1839):.Ensure.`pro
4b2e0 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d 65 6e 74 jectile-toggle-between-implement
4b300 61 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 60 20 61 6c 73 6f 20 6f 62 65 79 73 20 60 70 72 6f 6a ation-and-test`.also.obeys.`proj
4b320 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 73 74 2d 64 69 72 60 20 61 6e 64 20 60 70 72 ectile-project-test-dir`.and.`pr
4b340 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 72 63 2d 64 69 72 60 2e 0a 2a 20 5b 23 31 ojectile-project-src-dir`..*.[#1
4b360 32 38 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 285](https://github.com/bbatsov/
4b380 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 32 35 29 3a 20 42 79 20 64 65 66 61 75 6c projectile/pull/1825):.By.defaul
4b3a0 74 2c 20 75 73 65 20 5b 66 64 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 t,.use.[fd](https://github.com/s
4b3c0 68 61 72 6b 64 70 2f 66 64 29 20 69 6e 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 69 harkdp/fd).in.Git.repositories.i
4b3e0 6e 73 74 65 61 64 20 6f 66 20 60 67 69 74 20 6c 73 2d 66 69 6c 65 73 60 20 77 68 65 6e 20 69 74 nstead.of.`git.ls-files`.when.it
4b400 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 6f 6c 76 65 .is.installed,.in.order.to.solve
4b420 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 77 68 65 72 65 20 64 65 6c 65 74 65 64 20 66 69 6c 65 73 .the.problem.where.deleted.files
4b440 20 77 65 72 65 20 73 74 69 6c 6c 20 73 68 6f 77 6e 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 .were.still.shown.in.`projectile
4b460 2d 66 69 6e 64 2d 66 69 6c 65 60 20 75 6e 74 69 6c 20 74 68 65 69 72 20 64 65 6c 65 74 69 6f 6e -find-file`.until.their.deletion
4b480 73 20 77 65 72 65 20 73 74 61 67 65 64 2e 20 54 68 65 20 75 73 65 72 2d 66 61 63 69 6e 67 20 62 s.were.staged..The.user-facing.b
4b4a0 65 68 61 76 69 6f 72 20 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 73 61 6d 65 2c 20 61 6c 74 68 ehavior.should.be.the.same,.alth
4b4c0 6f 75 67 68 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 ough.potentially.with.different.
4b4e0 70 65 72 66 6f 72 6d 61 6e 63 65 20 63 68 61 72 61 63 74 65 72 69 73 74 69 63 73 20 69 6e 20 6c performance.characteristics.in.l
4b500 61 72 67 65 20 47 69 74 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 20 54 68 65 20 6f 6c 64 20 62 arge.Git.repositories..The.old.b
4b520 65 68 61 76 69 6f 72 20 63 61 6e 20 62 65 20 72 65 63 6c 61 69 6d 65 64 20 62 79 20 73 65 74 74 ehavior.can.be.reclaimed.by.sett
4b540 69 6e 67 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 75 73 65 2d 66 64 60 20 74 6f 20 6e ing.`projectile-git-use-fd`.to.n
4b560 69 6c 2e 0a 2a 20 5b 23 31 38 33 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d il..*.[#1831](https://github.com
4b580 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 33 31 29 /bbatsov/projectile/issues/1831)
4b5a0 3a 20 45 6e 61 62 6c 65 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 65 6c 20 69 6e 74 65 67 72 61 74 :.Enable.the.project.el.integrat
4b5c0 69 6f 6e 20 6f 6e 6c 79 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 60 20 ion.only.when.`projectile-mode`.
4b5e0 69 73 20 61 63 74 69 76 65 2e 0a 2a 20 5b 23 31 38 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 is.active..*.[#1847](https://git
4b600 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 hub.com/bbatsov/projectile/issue
4b620 73 2f 31 38 34 37 29 3a 20 55 73 65 20 6c 69 74 65 72 61 6c 20 64 69 72 65 63 74 6f 72 79 20 6e s/1847):.Use.literal.directory.n
4b640 61 6d 65 20 63 61 73 69 6e 67 20 77 68 65 6e 20 74 6f 67 67 6c 69 6e 67 20 62 65 74 77 65 65 6e ame.casing.when.toggling.between
4b660 20 69 6d 70 6c 20 61 6e 64 20 74 65 73 74 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a .impl.and.test...###.Bugs.fixed.
4b680 0a 2a 20 46 69 78 20 60 66 64 60 20 69 6e 73 65 72 74 69 6e 67 20 63 6f 6c 6f 72 20 63 6f 6e 74 .*.Fix.`fd`.inserting.color.cont
4b6a0 72 6f 6c 20 73 65 71 75 65 6e 63 65 73 20 77 68 65 6e 20 75 73 65 64 20 6f 76 65 72 20 74 72 61 rol.sequences.when.used.over.tra
4b6c0 6d 70 2e 0a 2a 20 5b 23 31 38 33 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d mp..*.[#1835](https://github.com
4b6e0 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 38 33 35 29 /bbatsov/projectile/issues/1835)
4b700 3a 20 52 65 6f 70 65 6e 69 6e 67 20 65 78 69 73 74 69 6e 67 20 76 74 65 72 6d 20 62 75 66 66 65 :.Reopening.existing.vterm.buffe
4b720 72 20 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 0a 2a 20 5b 23 31 38 36 35 5d 28 68 74 74 70 r.in.other.window.*.[#1865](http
4b740 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
4b760 65 2f 70 75 6c 6c 2f 31 38 36 35 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 69 e/pull/1865):.`projectile-generi
4b780 63 2d 63 6f 6d 6d 61 6e 64 60 20 73 68 6f 75 6c 64 20 75 73 65 20 60 70 72 6f 6a 65 63 74 69 6c c-command`.should.use.`projectil
4b7a0 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 60 20 74 6f 20 66 69 6e 64 20 74 68 65 20 70 61 74 e-fd-executable`.to.find.the.pat
4b7c0 68 20 66 6f 72 20 66 64 2e 0a 0a 23 23 20 32 2e 37 2e 30 20 28 32 30 32 32 2d 31 31 2d 32 32 29 h.for.fd...##.2.7.0.(2022-11-22)
4b7e0 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 35 39 31 5d 28 68 74 ..###.New.features..*.[#1591](ht
4b800 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4b820 69 6c 65 2f 69 73 73 75 65 73 2f 31 35 39 31 29 3a 20 41 64 64 20 60 70 72 6f 6a 65 63 74 2e 65 ile/issues/1591):.Add.`project.e
4b840 6c 60 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 6d 61 6b 65 20 50 72 l`.integration.that.will.make.Pr
4b860 6f 6a 65 63 74 69 6c 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 72 6f 76 69 64 65 72 20 66 6f ojectile.the.default.provider.fo
4b880 72 20 70 72 6f 6a 65 63 74 20 6c 6f 6f 6b 75 70 2e 0a 2a 20 41 64 64 20 6e 65 77 20 63 6f 6d 6d r.project.lookup..*.Add.new.comm
4b8a0 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 72 65 66 65 72 65 6e 63 65 73 60 and.`projectile-find-references`
4b8c0 20 28 62 6f 75 6e 64 20 74 6f 20 60 43 2d 63 20 43 2d 70 20 3f 60 20 61 6e 64 20 60 43 2d 63 20 .(bound.to.`C-c.C-p.?`.and.`C-c.
4b8e0 43 2d 70 20 73 20 78 60 29 2e 0a 2a 20 5b 23 31 37 33 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 C-p.s.x`)..*.[#1737](https://git
4b900 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f hub.com/bbatsov/projectile/pull/
4b920 31 37 33 37 29 3a 20 41 64 64 20 68 65 6c 70 65 72 73 20 66 6f 72 20 60 64 69 72 2d 6c 6f 63 61 1737):.Add.helpers.for.`dir-loca
4b940 6c 2d 76 61 72 69 61 62 6c 65 73 60 20 66 6f 72 20 33 72 64 20 70 61 72 74 79 20 75 73 65 2e 20 l-variables`.for.3rd.party.use..
4b960 46 75 6e 63 74 69 6f 6e 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 64 69 72 2d 6c 6f Functions.`projectile-add-dir-lo
4b980 63 61 6c 2d 76 61 72 69 61 62 6c 65 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 cal-variable`.and.`projectile-de
4b9a0 6c 65 74 65 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 60 20 77 72 61 70 20 74 68 lete-dir-local-variable`.wrap.th
4b9c0 65 69 72 20 62 75 69 6c 74 2d 69 6e 20 63 6f 75 6e 74 65 72 70 61 72 74 73 2e 20 54 68 65 79 20 eir.built-in.counterparts..They.
4b9e0 61 6c 77 61 79 73 20 75 73 65 20 60 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 60 20 66 72 6f 6d always.use.`.dir-locals.el`.from
4ba00 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 50 72 6f 6a 65 63 74 .the.root.of.the.current.Project
4ba20 69 6c 65 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 41 64 64 20 61 20 6e 65 77 20 64 65 66 63 75 73 74 ile.project..*.Add.a.new.defcust
4ba40 6f 6d 20 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 60 29 om.(`projectile-dirconfig-file`)
4ba60 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c .controlling.the.name.of.the.fil
4ba80 65 20 75 73 65 64 20 61 73 20 50 72 6f 6a 65 63 74 69 6c 65 e2 80 99 73 20 72 6f 6f 74 20 6d 61 e.used.as.Projectile...s.root.ma
4baa0 72 6b 65 72 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 69 6c 65 2e 0a 2a 20 5b rker.and.configuration.file..*.[
4bac0 23 31 38 31 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f #1813](https://github.com/bbatso
4bae0 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 31 33 29 3a 20 41 6c 6c 6f 77 20 70 v/projectile/pull/1813):.Allow.p
4bb00 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 74 6f 20 63 6f 6e 74 61 69 6e 20 77 69 6c 64 63 61 72 64 roject-files.to.contain.wildcard
4bb20 73 20 61 6e 64 20 61 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c s.and.allow.multiple.project-fil
4bb40 65 73 20 70 65 72 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e es.per.project.type.registration
4bb60 2e 20 41 64 64 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 66 6f 72 20 2e 4e 45 ..Add.a.new.project-type.for..NE
4bb80 54 20 73 6f 6c 75 74 69 6f 6e 73 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 T.solutions...###.Changes..*.[#1
4bba0 38 31 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 812](https://github.com/bbatsov/
4bbc0 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 31 32 29 3a 20 41 64 64 20 61 20 60 70 72 projectile/pull/1812):.Add.a.`pr
4bbe0 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 6d 61 72 6b 65 64 60 20 66 75 6e 63 74 69 6f 6e 20 66 ojectile-root-marked`.function.f
4bc00 6f 72 20 66 69 6e 64 69 6e 67 20 72 6f 6f 74 73 20 6d 61 72 6b 65 64 20 62 79 20 60 2e 70 72 6f or.finding.roots.marked.by.`.pro
4bc20 6a 65 63 74 69 6c 65 60 2e 20 50 72 69 6f 72 69 74 69 7a 65 20 60 2e 70 72 6f 6a 65 63 74 69 6c jectile`..Prioritize.`.projectil
4bc40 65 60 20 61 62 6f 76 65 20 6f 74 68 65 72 20 62 6f 74 74 6f 6d 2d 75 70 20 72 6f 6f 74 20 66 69 e`.above.other.bottom-up.root.fi
4bc60 6c 65 73 2e 0a 0a 23 23 23 20 42 75 67 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 37 39 36 5d 28 68 les...###.Bug.fixed..*.[#1796](h
4bc80 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4bca0 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 37 39 36 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 tile/issues/1796):.Fix.`projecti
4bcc0 6c 65 2d 72 6f 6f 74 2d 62 6f 74 74 6f 6d 2d 75 70 60 20 64 6f 65 73 6e 27 74 20 61 6c 77 61 79 le-root-bottom-up`.doesn't.alway
4bce0 73 20 66 69 6e 64 20 62 6f 74 74 6f 6d 2d 6d 6f 73 74 20 66 69 6c 65 2e 0a 2a 20 5b 23 31 37 39 s.find.bottom-most.file..*.[#179
4bd00 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 9](https://github.com/bbatsov/pr
4bd20 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 39 39 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 ojectile/pull/1799):.Fix.`projec
4bd40 74 69 6c 65 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 60 20 6c 69 73 74 73 20 70 72 6f 6a 65 63 tile-open-projects`.lists.projec
4bd60 74 73 20 66 6f 72 20 77 68 69 63 68 20 61 6c 6c 20 62 75 66 66 65 72 73 20 61 72 65 20 63 6c 6f ts.for.which.all.buffers.are.clo
4bd80 73 65 64 2e 0a 2a 20 5b 23 31 38 30 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f sed..*.[#1806](https://github.co
4bda0 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 38 30 36 29 3a m/bbatsov/projectile/pull/1806):
4bdc0 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 60 20 74 .Fix.`projectile-project-type`.t
4bde0 6f 20 72 65 74 75 72 6e 20 74 68 65 20 63 6f 72 72 65 63 74 20 70 72 6f 6a 65 63 74 20 74 79 70 o.return.the.correct.project.typ
4be00 65 20 65 76 65 6e 20 77 68 65 6e 20 77 65 20 70 61 73 73 20 69 74 20 74 68 65 20 44 49 52 20 61 e.even.when.we.pass.it.the.DIR.a
4be20 72 67 2e 20 41 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 66 69 78 2c 0a 60 70 72 6f rg..As.a.result.of.the.fix,.`pro
4be40 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 60 2c 20 60 70 72 6f 6a 65 63 74 69 6c jectile-expand-root`,.`projectil
4be60 65 2d 64 65 74 65 63 74 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 60 2c 20 60 70 72 6f 6a 65 63 74 e-detect-project-type`,.`project
4be80 69 6c 65 2d 76 65 72 69 66 79 2d 66 69 6c 65 73 60 20 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d ile-verify-files`.,.`projectile-
4bea0 76 65 72 69 66 79 2d 66 69 6c 65 60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 69 66 79 2d verify-file`.`projectile-verify-
4bec0 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 60 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 62 61 file-wildcard`,.`projectile-caba
4bee0 6c 2d 70 72 6f 6a 65 63 74 2d 70 60 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 6f 74 6e 65 74 l-project-p`,.`projectile-dotnet
4bf00 2d 70 72 6f 6a 65 63 74 2d 70 60 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6f 2d 70 72 6f 6a -project-p`,.`projectile-go-proj
4bf20 65 63 74 2d 70 60 20 61 6e 64 20 74 68 65 20 6e 65 77 6c 79 20 66 61 63 74 6f 72 65 64 20 6f 75 ect-p`.and.the.newly.factored.ou
4bf40 74 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6c 64 65 76 2d 70 72 6f 6a 65 63 74 2d 70 60 20 6e t.`projectile-eldev-project-p`.n
4bf60 6f 77 20 61 6c 73 6f 20 74 61 6b 65 73 20 61 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 44 49 52 20 61 ow.also.takes.an.&optional.DIR.a
4bf80 72 67 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 69 74 20 69 rg.to.specify.the.directory.it.i
4bfa0 73 20 61 63 74 69 6e 67 20 6f 6e 2e 0a 0a 23 23 20 32 2e 36 2e 30 20 28 32 30 32 32 2d 31 30 2d s.acting.on...##.2.6.0.(2022-10-
4bfc0 32 35 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 37 39 30 5d 25)..###.New.features..*.[#1790]
4bfe0 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
4c000 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 39 30 29 3a 20 41 64 64 20 60 73 72 63 2d 64 69 72 60 ectile/pull/1790):.Add.`src-dir`
4c020 20 61 6e 64 20 60 74 65 73 74 2d 64 69 72 60 20 70 72 6f 70 65 72 74 69 65 73 20 66 6f 72 20 74 .and.`test-dir`.properties.for.t
4c040 68 65 20 6d 69 6c 6c 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 5b 23 31 37 37 38 5d 28 he.mill.project.type..*.[#1778](
4c060 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
4c080 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 37 38 29 3a 20 41 6c 6c 6f 77 20 60 70 72 6f 6a 65 63 74 ctile/pull/1778):.Allow.`project
4c0a0 69 6c 65 2d 72 65 70 6c 61 63 65 60 20 74 6f 20 73 65 6c 65 63 74 20 66 69 6c 65 20 65 78 74 65 ile-replace`.to.select.file.exte
4c0c0 6e 73 69 6f 6e 73 20 77 68 65 6e 20 75 73 69 6e 67 20 70 72 65 66 69 78 20 61 72 67 20 28 60 43 nsions.when.using.prefix.arg.(`C
4c0e0 2d 75 60 29 2e 0a 2a 20 5b 23 31 37 35 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 -u`)..*.[#1757](https://github.c
4c100 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 35 37 29 om/bbatsov/projectile/pull/1757)
4c120 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 50 69 6a 75 6c 20 56 43 53 2e :.Add.support.for.the.Pijul.VCS.
4c140 0a 2a 20 5b 23 31 37 34 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 .*.[#1745](https://github.com/bb
4c160 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 34 35 29 3a 20 41 6c 6c atsov/projectile/pull/1745):.All
4c180 6f 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 70 72 6f 6a 65 63 74 2d 74 79 ow.`projectile-update-project-ty
4c1a0 70 65 60 20 74 6f 20 63 68 61 6e 67 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 70 72 65 63 65 pe`.to.change.project.type.prece
4c1c0 64 65 6e 63 65 20 61 6e 64 20 72 65 6d 6f 76 65 20 70 72 6f 6a 65 63 74 20 6f 70 74 69 6f 6e 73 dence.and.remove.project.options
4c1e0 2e 0a 2a 20 5b 23 31 36 39 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1699](https://github.com/b
4c200 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 39 39 29 3a 20 60 70 batsov/projectile/pull/1699):.`p
4c220 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 60 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 rojectile-ripgrep`.now.supports.
4c240 5b 72 67 2e 65 6c 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 61 6a 76 61 [rg.el](https://github.com/dajva
4c260 2f 72 67 2e 65 6c 29 2e 0a 2a 20 5b 23 31 37 31 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 /rg.el)..*.[#1712](https://githu
4c280 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f b.com/bbatsov/projectile/issues/
4c2a0 31 37 31 32 29 3a 20 4d 61 6b 65 20 69 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 69 64 65 20 1712):.Make.it.possible.to.hide.
4c2c0 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 6d 65 6e 75 2e 20 53 65 65 20 60 70 72 6f 6a 65 63 74 69 Projectile's.menu..See.`projecti
4c2e0 6c 65 2d 73 68 6f 77 2d 6d 65 6e 75 60 2e 0a 2a 20 5b 23 31 37 31 38 5d 28 68 74 74 70 73 3a 2f le-show-menu`..*.[#1718](https:/
4c300 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 /github.com/bbatsov/projectile/i
4c320 73 73 75 65 73 2f 31 37 31 38 29 3a 20 41 64 64 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 ssues/1718):.Add.a.project.type.
4c340 64 65 66 69 6e 69 74 69 6f 6e 20 66 6f 72 20 60 47 4e 55 4d 61 6b 65 66 69 6c 65 60 2e 0a 2a 20 definition.for.`GNUMakefile`..*.
4c360 5b 23 31 37 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 [#1747](https://github.com/bbats
4c380 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 34 37 29 3a 20 41 64 64 20 73 75 ov/projectile/pull/1747):.Add.su
4c3a0 70 70 6f 72 74 20 66 6f 72 20 70 72 65 73 65 74 2d 62 61 73 65 64 20 69 6e 73 74 61 6c 6c 2d 63 pport.for.preset-based.install-c
4c3c0 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 43 4d 61 6b 65 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 ommands.for.CMake.projects..*.[#
4c3e0 31 37 36 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 1768](https://github.com/bbatsov
4c400 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 36 38 29 3a 20 41 64 64 20 73 75 70 70 /projectile/pull/1768):.Add.supp
4c420 6f 72 74 20 66 6f 72 20 64 69 73 61 62 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 63 61 63 68 69 6e ort.for.disabling.command.cachin
4c440 67 20 6f 6e 20 61 20 70 65 72 2d 70 72 6f 6a 65 63 74 20 62 61 73 69 73 2e 0a 2a 20 5b 23 31 37 g.on.a.per-project.basis..*.[#17
4c460 39 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 97](https://github.com/bbatsov/p
4c480 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 39 37 29 3a 20 4d 61 6b 65 20 61 6c 6c 20 70 rojectile/pull/1797):.Make.all.p
4c4a0 72 6f 6a 65 63 74 20 74 79 70 65 20 61 74 74 72 69 62 75 74 65 73 20 6c 6f 63 61 6c 6c 79 20 6f roject.type.attributes.locally.o
4c4c0 76 65 72 72 69 64 61 62 6c 65 2e 0a 2a 20 5b 23 31 38 30 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 verridable..*.[#1803](https://gi
4c4e0 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c thub.com/bbatsov/projectile/pull
4c500 2f 31 38 30 33 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 67 6f 2d 74 61 73 6b 2f 74 61 73 6b /1803):.Add.support.go-task/task
4c520 2e 0a 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 37 38 31 5d 28 68 74 ....###.Bugs.fixed..*.[#1781](ht
4c540 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4c560 69 6c 65 2f 70 75 6c 6c 2f 31 37 38 31 29 3a 20 46 69 78 20 60 72 61 69 6c 73 2d 72 73 70 65 63 ile/pull/1781):.Fix.`rails-rspec
4c580 60 20 61 6e 64 20 60 72 61 69 6c 73 2d 74 65 73 74 60 20 74 6f 20 75 73 65 20 60 61 70 70 60 20 `.and.`rails-test`.to.use.`app`.
4c5a0 69 6e 73 74 65 61 64 20 6f 66 20 60 6c 69 62 60 20 61 73 20 60 73 72 63 2d 64 69 72 60 2e 0a 2a instead.of.`lib`.as.`src-dir`..*
4c5c0 20 5b 23 31 37 36 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 .[#1762](https://github.com/bbat
4c5e0 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 36 32 29 3a 20 46 69 78 20 60 sov/projectile/pull/1762):.Fix.`
4c600 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 projectile-globally-ignored-dire
4c620 63 74 6f 72 69 65 73 60 20 75 6e 65 73 63 61 70 65 64 20 72 65 67 65 78 2e 0a 2a 20 5b 23 31 37 ctories`.unescaped.regex..*.[#17
4c640 31 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 13](https://github.com/bbatsov/p
4c660 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 37 33 31 29 3a 20 46 69 78 20 60 70 72 6f rojectile/issues/1731):.Fix.`pro
4c680 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 jectile-discover-projects-in-dir
4c6a0 65 63 74 6f 72 79 60 20 72 65 6f 72 64 65 72 69 6e 67 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 ectory`.reordering.known.project
4c6c0 73 2e 0a 2a 20 5b 23 31 35 31 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f s..*.[#1514](https://github.com/
4c6e0 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 35 31 34 29 3a bbatsov/projectile/issues/1514):
4c700 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 60 20 67 6c 6f 62 61 6c 20 69 67 6e 6f .Fix.`projectile-ag`.global.igno
4c720 72 65 73 20 6e 6f 74 20 69 6e 20 65 66 66 65 63 74 2e 0a 2a 20 5b 23 31 37 31 34 5d 28 68 74 74 res.not.in.effect..*.[#1714](htt
4c740 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
4c760 6c 65 2f 69 73 73 75 65 73 2f 31 37 31 34 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c 65 le/issues/1714):.Fix.`projectile
4c780 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 60 -discover-projects-in-directory`
4c7a0 20 6e 6f 74 20 69 6e 74 65 72 61 63 74 69 76 65 2e 0a 2a 20 5b 23 31 37 33 34 5d 28 68 74 74 70 .not.interactive..*.[#1734](http
4c7c0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
4c7e0 65 2f 70 75 6c 6c 2f 31 37 33 34 29 3a 20 4d 61 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d e/pull/1734):.Make.`projectile--
4c800 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 74 65 73 74 60 20 75 73 65 20 60 73 72 63 2d 64 69 72 find-matching-test`.use.`src-dir
4c820 2f 74 65 73 74 2d 64 69 72 60 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 2a 20 5b 23 31 37 35 30 5d /test-dir`.properties..*.[#1750]
4c840 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
4c860 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 37 35 30 29 3a 20 46 69 78 20 73 6f 75 72 63 65 20 ectile/issues/1750):.Fix.source.
4c880 61 6e 64 20 74 65 73 74 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 4d 61 76 65 6e 20 70 and.test.directories.for.Maven.p
4c8a0 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 37 36 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 rojects..*.[#1765](https://githu
4c8c0 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f b.com/bbatsov/projectile/issues/
4c8e0 31 37 36 35 29 3a 20 46 69 78 20 60 73 72 63 2d 64 69 72 60 2f 60 74 65 73 74 2d 64 69 72 60 20 1765):.Fix.`src-dir`/`test-dir`.
4c900 6e 6f 74 20 64 65 66 61 75 6c 74 69 6e 67 20 74 6f 20 60 22 73 72 63 2f 22 60 20 61 6e 64 20 60 not.defaulting.to.`"src/"`.and.`
4c920 22 74 65 73 74 2f 22 60 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 "test/"`.with.`projectile-toggle
4c940 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 -between-implementation-and-test
4c960 60 2e 0a 2a 20 46 69 78 20 76 65 72 73 69 6f 6e 20 65 78 74 72 61 63 74 69 6f 6e 20 6c 6f 67 69 `..*.Fix.version.extraction.logi
4c980 63 2e 0a 2a 20 5b 31 36 35 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 c..*.[1654](https://github.com/b
4c9a0 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 36 35 34 29 20 46 batsov/projectile/issues/1654).F
4c9c0 69 78 20 63 6f 6e 73 65 63 75 74 69 76 65 20 64 75 70 6c 69 63 61 74 65 73 20 61 70 70 65 61 72 ix.consecutive.duplicates.appear
4c9e0 69 6e 67 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 68 69 73 74 6f 72 79 2e 0a 2a 20 5b 23 31 37 35 35 ing.in.command.history..*.[#1755
4ca00 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f ](https://github.com/bbatsov/pro
4ca20 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 37 35 35 29 20 43 61 63 68 65 20 66 61 69 6c 75 jectile/issues/1755).Cache.failu
4ca40 72 65 20 74 6f 20 66 69 6e 64 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 0a 23 23 23 20 43 68 re.to.find.project.root...###.Ch
4ca60 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 37 38 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e anges..*.[#1785](https://github.
4ca80 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 38 35 com/bbatsov/projectile/pull/1785
4caa0 29 3a 20 47 69 76 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 22 67 6f 22 20 68 69 ):.Give.the.project.type."go".hi
4cac0 67 68 65 72 20 70 72 65 63 65 64 65 6e 63 65 20 74 68 61 6e 20 75 6e 69 76 65 72 73 61 6c 20 74 gher.precedence.than.universal.t
4cae0 79 70 65 73 2c 20 6e 61 6d 65 6c 79 20 22 6d 61 6b 65 22 2e 0a 2a 20 5b 23 31 34 34 37 5d 28 68 ypes,.namely."make"..*.[#1447](h
4cb00 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4cb20 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 34 34 37 29 3a 20 52 65 73 74 72 75 63 74 75 72 65 20 74 tile/issues/1447):.Restructure.t
4cb40 68 65 20 6d 65 6e 75 2e 0a 2a 20 5b 23 31 36 39 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 he.menu..*.[#1692](https://githu
4cb60 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f b.com/bbatsov/projectile/issues/
4cb80 31 36 39 32 29 3a 20 45 6e 61 62 6c 65 20 6d 69 6e 69 62 75 66 66 65 72 20 63 6f 6d 70 6c 65 74 1692):.Enable.minibuffer.complet
4cba0 69 6f 6e 73 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 73 ions.when.reading.shell-commands
4cbc0 2e 0a 2a 20 43 68 61 6e 67 65 20 74 68 65 20 47 72 61 69 6c 73 20 70 72 6f 6a 65 63 74 20 6d 61 ..*.Change.the.Grails.project.ma
4cbe0 72 6b 65 72 20 74 6f 20 60 61 70 70 6c 69 63 61 74 69 6f 6e 2e 79 6d 6c 60 2e 0a 2a 20 5b 23 31 rker.to.`application.yml`..*.[#1
4cc00 37 38 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 789](https://github.com/bbatsov/
4cc20 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 37 38 39 29 3a 20 50 72 6f 67 72 65 73 73 20 projectile/pull/1789):.Progress.
4cc40 72 65 70 6f 72 74 65 72 20 66 6f 72 20 72 65 63 75 72 73 69 76 65 20 70 72 6f 67 72 65 73 73 20 reporter.for.recursive.progress.
4cc60 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 5b 23 31 37 30 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 discovery..*.[#1708](https://git
4cc80 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 hub.com/bbatsov/projectile/issue
4cca0 73 2f 31 37 30 38 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 60 20 6e 6f s/1708):.`projectile-ripgrep`.no
4ccc0 77 20 63 6f 6e 73 69 73 74 65 6e 74 6c 79 20 73 65 61 72 63 68 65 73 20 68 69 64 64 65 6e 20 66 w.consistently.searches.hidden.f
4cce0 69 6c 65 73 2e 0a 0a 23 23 20 32 2e 35 2e 30 20 28 32 30 32 31 2d 30 38 2d 31 30 29 0a 0a 23 23 iles...##.2.5.0.(2021-08-10)..##
4cd00 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 36 38 30 5d 28 68 74 74 70 73 3a #.New.features..*.[#1680](https:
4cd20 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f //github.com/bbatsov/projectile/
4cd40 70 75 6c 6c 2f 31 36 38 30 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 65 63 75 pull/1680):.Add.support.for.recu
4cd60 72 73 69 76 65 20 70 72 6f 6a 65 63 74 20 64 69 73 63 6f 76 65 72 79 2e 0a 2a 20 5b 23 31 36 37 rsive.project.discovery..*.[#167
4cd80 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 1](https://github.com/bbatsov/pr
4cda0 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 37 31 29 2f 5b 23 31 36 37 39 5d 28 68 74 74 70 ojectile/pull/1671)/[#1679](http
4cdc0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
4cde0 65 2f 70 75 6c 6c 2f 31 36 37 39 29 3a 20 41 6c 6c 6f 77 20 74 68 65 20 60 3a 74 65 73 74 2d 64 e/pull/1679):.Allow.the.`:test-d
4ce00 69 72 60 20 61 6e 64 20 60 3a 73 72 63 2d 64 69 72 60 20 6f 70 74 69 6f 6e 73 20 6f 66 20 61 20 ir`.and.`:src-dir`.options.of.a.
4ce20 70 72 6f 6a 65 63 74 20 74 6f 20 62 65 20 73 65 74 20 74 6f 20 66 75 6e 63 74 69 6f 6e 73 20 66 project.to.be.set.to.functions.f
4ce40 6f 72 20 6d 6f 72 65 20 66 6c 65 78 69 62 6c 65 20 74 65 73 74 20 73 77 69 74 63 68 69 6e 67 2e or.more.flexible.test.switching.
4ce60 0a 2a 20 5b 23 31 36 37 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 .*.[#1672](https://github.com/bb
4ce80 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 37 32 29 3a 20 41 64 64 atsov/projectile/pull/1672):.Add
4cea0 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 3c 63 6d 64 3e 2d 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f .`projectile-<cmd>-use-comint-mo
4cec0 64 65 60 20 76 61 72 69 61 62 6c 65 73 20 28 77 68 65 72 65 20 60 3c 63 6d 64 3e 60 20 69 73 20 de`.variables.(where.`<cmd>`.is.
4cee0 60 63 6f 6e 66 69 67 75 72 65 60 2c 20 60 63 6f 6d 70 69 6c 65 60 2c 20 60 74 65 73 74 60 2c 20 `configure`,.`compile`,.`test`,.
4cf00 60 69 6e 73 74 61 6c 6c 60 2c 20 60 70 61 63 6b 61 67 65 60 2c 20 6f 72 20 60 72 75 6e 60 29 2e `install`,.`package`,.or.`run`).
4cf20 20 54 68 65 73 65 20 65 6e 61 62 6c 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 70 69 6c .These.enable.interactive.compil
4cf40 61 74 69 6f 6e 20 62 75 66 66 65 72 73 2e 0a 2a 20 5b 23 31 37 30 35 5d 28 68 74 74 70 73 3a 2f ation.buffers..*.[#1705](https:/
4cf60 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 /github.com/bbatsov/projectile/p
4cf80 75 6c 6c 2f 31 37 30 35 29 3a 20 41 64 64 20 70 72 6f 6a 65 63 74 20 64 65 74 65 63 74 69 6f 6e ull/1705):.Add.project.detection
4cfa0 20 66 6f 72 20 4e 69 78 20 66 6c 61 6b 65 73 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 .for.Nix.flakes...###.Bugs.fixed
4cfc0 0a 0a 2a 20 5b 23 31 35 35 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1550](https://github.com/b
4cfe0 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 35 35 30 29 3a 20 batsov/projectile/issues/1550):.
4d000 4d 61 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 Make.`projectile-regenerate-tags
4d020 60 20 74 72 61 6d 70 2d 61 77 61 72 65 2e 0a 2a 20 5b 23 31 36 37 33 5d 28 68 74 74 70 73 3a 2f `.tramp-aware..*.[#1673](https:/
4d040 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 /github.com/bbatsov/projectile/i
4d060 73 73 75 65 73 2f 31 36 37 33 29 3a 20 46 69 78 20 43 4d 61 6b 65 20 73 79 73 74 65 6d 2d 70 72 ssues/1673):.Fix.CMake.system-pr
4d080 65 73 65 74 20 66 69 6c 65 6e 61 6d 65 2e 0a 2a 20 5b 23 31 36 39 31 5d 28 68 74 74 70 73 3a 2f eset.filename..*.[#1691](https:/
4d0a0 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 /github.com/bbatsov/projectile/p
4d0c0 75 6c 6c 2f 31 36 39 31 29 3a 20 46 69 78 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e 64 ull/1691):.Fix.`compilation-find
4d0e0 2d 66 69 6c 65 60 20 61 64 76 69 63 65 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 64 69 72 65 63 74 -file`.advice.handling.of.direct
4d100 6f 72 79 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 52 65 6d 6f 76 65 20 60 70 6b 67 ory...###.Changes..*.Remove.`pkg
4d120 2d 69 6e 66 6f 60 20 64 65 70 65 6e 64 65 6e 63 79 2e 0a 0a 23 23 20 32 2e 34 2e 30 20 28 32 30 -info`.dependency...##.2.4.0.(20
4d140 32 31 2d 30 35 2d 32 37 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 41 21-05-27)..###.New.features..*.A
4d160 64 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 70 72 6f 6a 65 63 74 2d 74 79 dd.`projectile-update-project-ty
4d180 70 65 60 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 75 70 64 61 74 69 6e 67 20 74 68 65 20 70 72 pe`.function.for.updating.the.pr
4d1a0 6f 70 65 72 74 69 65 73 20 6f 66 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6a 65 63 74 20 74 79 70 operties.of.existing.project.typ
4d1c0 65 73 2e 0a 2a 20 5b 23 31 36 35 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d es..*.[#1658](https://github.com
4d1e0 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 35 38 29 3a 20 /bbatsov/projectile/pull/1658):.
4d200 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 73 65 74 2d 6b 6e New.command.`projectile-reset-kn
4d220 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 60 2e 0a 2a 20 5b 23 31 36 35 36 5d 28 68 74 74 70 73 3a 2f own-projects`..*.[#1656](https:/
4d240 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 /github.com/bbatsov/projectile/p
4d260 75 6c 6c 2f 31 36 35 36 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 4d 61 6b 65 ull/1656):.Add.support.for.CMake
4d280 20 63 6f 6e 66 69 67 75 72 65 2c 20 62 75 69 6c 64 20 61 6e 64 20 74 65 73 74 20 70 72 65 73 65 .configure,.build.and.test.prese
4d2a0 74 73 2e 20 45 6e 61 62 6c 65 64 20 62 79 20 73 65 74 74 69 6e 67 20 60 70 72 6f 6a 65 63 74 69 ts..Enabled.by.setting.`projecti
4d2c0 6c 65 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 73 60 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 69 le-cmake-presets`.to.non-nil,.di
4d2e0 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 2a 20 41 64 64 20 6f 70 74 69 6f 6e 61 sabled.by.default..*.Add.optiona
4d300 6c 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d l.parameters.to.`projectile-run-
4d320 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 60 20 61 6e 64 20 60 70 72 6f 6a shell-command-in-root`.and.`proj
4d340 65 63 74 69 6c 65 2d 72 75 6e 2d 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 ectile-run-async-shell-command-i
4d360 6e 2d 72 6f 6f 74 60 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 41 64 64 20 60 70 72 6f n-root`..###.Changes..*.Add.`pro
4d380 6a 65 63 74 60 20 70 61 72 61 6d 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 ject`.param.to.`projectile-gener
4d3a0 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 60 2e 0a 2a 20 5b 23 31 36 30 38 5d 28 68 74 74 ate-process-name`..*.[#1608](htt
4d3c0 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
4d3e0 6c 65 2f 70 75 6c 6c 2f 31 36 30 38 29 3a 20 55 73 65 20 72 65 62 61 72 33 20 62 75 69 6c 64 20 le/pull/1608):.Use.rebar3.build.
4d400 73 79 73 74 65 6d 20 62 79 20 64 65 66 61 75 6c 74 20 66 6f 72 20 45 72 6c 61 6e 67 20 70 72 6f system.by.default.for.Erlang.pro
4d420 6a 65 63 74 73 2e 0a 2a 20 52 65 6e 61 6d 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a jects..*.Rename.`projectile-proj
4d440 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 66 75 6e 63 74 69 6f 6e 73 60 20 74 6f 20 60 70 72 ect-root-files-functions`.to.`pr
4d460 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 60 ojectile-project-root-functions`
4d480 2e 0a 2a 20 5b 23 31 36 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1647](https://github.com/b
4d4a0 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 36 34 37 29 3a 20 batsov/projectile/issues/1647):.
4d4c0 55 73 65 20 22 2d 42 22 20 69 6e 20 74 68 65 20 6d 76 6e 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 Use."-B".in.the.mvn.commands.to.
4d4e0 61 76 6f 69 64 20 41 4e 53 49 20 63 6f 6c 6f 72 69 6e 67 20 63 6c 75 74 74 65 72 20 69 6e 20 74 avoid.ANSI.coloring.clutter.in.t
4d500 68 65 20 63 6f 6d 70 69 6c 65 20 62 75 66 66 65 72 0a 2a 20 5b 23 31 36 35 37 5d 28 68 74 74 70 he.compile.buffer.*.[#1657](http
4d520 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
4d540 65 2f 70 75 6c 6c 2f 31 36 35 37 29 3a 20 41 64 64 20 70 72 6f 6a 65 63 74 20 64 65 74 65 63 74 e/pull/1657):.Add.project.detect
4d560 69 6f 6e 20 66 6f 72 20 44 65 62 69 61 6e 20 70 61 63 6b 61 67 69 6e 67 20 64 69 72 65 63 74 6f ion.for.Debian.packaging.directo
4d580 72 69 65 73 2e 0a 2a 20 5b 23 31 36 35 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 ries..*.[#1656](https://github.c
4d5a0 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 35 36 29 om/bbatsov/projectile/pull/1656)
4d5c0 3a 20 43 4d 61 6b 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 72 65 6d 6f 76 65 64 20 :.CMake.compilation-dir.removed.
4d5e0 74 6f 20 61 63 63 6f 6d 6d 6f 64 61 74 65 20 70 72 65 73 65 74 20 73 75 70 70 6f 72 74 2c 20 63 to.accommodate.preset.support,.c
4d600 6f 6d 6d 61 6e 64 73 20 61 64 6a 75 73 74 65 64 20 74 6f 20 72 75 6e 20 66 72 6f 6d 20 70 72 6f ommands.adjusted.to.run.from.pro
4d620 6a 65 63 74 2d 72 6f 6f 74 2c 20 77 69 74 68 20 22 62 75 69 6c 64 22 20 73 74 69 6c 6c 20 62 65 ject-root,.with."build".still.be
4d640 69 6e 67 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 75 69 6c 64 2d 64 69 72 65 63 74 6f 72 79 2e ing.the.default.build-directory.
4d660 20 54 68 65 20 6e 6f 6e 2d 70 72 65 73 65 74 20 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 6e 6f 77 .The.non-preset.test-command.now
4d680 20 75 73 65 73 20 22 63 6d 61 6b 65 22 20 77 69 74 68 20 22 2d 2d 74 61 72 67 65 74 20 74 65 73 .uses."cmake".with."--target.tes
4d6a0 74 22 20 69 6e 73 74 65 61 64 20 6f 66 20 22 63 74 65 73 74 22 2e 0a 0a 23 23 23 20 42 75 67 73 t".instead.of."ctest"...###.Bugs
4d6c0 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 36 33 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 .fixed..*.[#1639](https://github
4d6e0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 33 .com/bbatsov/projectile/pull/163
4d700 39 29 3a 20 44 6f 20 6e 6f 74 20 61 73 6b 20 74 77 69 63 65 20 66 6f 72 20 70 72 6f 6a 65 63 74 9):.Do.not.ask.twice.for.project
4d720 20 72 75 6e 6e 69 6e 67 20 69 65 6c 6d 2c 20 74 65 72 6d 20 61 6e 64 20 76 74 65 72 6d 2e 0a 2a .running.ielm,.term.and.vterm..*
4d740 20 5b 23 31 32 35 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 .[#1250](https://github.com/bbat
4d760 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 32 35 30 29 3a 20 46 69 78 sov/projectile/issues/1250):.Fix
4d780 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 .`projectile-globally-ignored-di
4d7a0 72 65 63 74 6f 72 69 65 73 60 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 77 69 74 68 20 6e 61 74 69 rectories`.not.working.with.nati
4d7c0 76 65 20 69 6e 64 65 78 69 6e 67 2e 0a 2a 20 5b 23 31 34 33 38 5d 28 68 74 74 70 73 3a 2f 2f 67 ve.indexing..*.[#1438](https://g
4d7e0 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c ithub.com/bbatsov/projectile/pul
4d800 6c 2f 31 34 33 38 29 3a 20 4d 61 6b 65 20 73 75 72 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 l/1438):.Make.sure.`projectile-f
4d820 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 60 20 72 65 74 75 72 6e 73 20 66 69 iles-via-ext-command`.returns.fi
4d840 6c 65 73 2c 20 6e 6f 74 20 65 72 72 6f 72 73 2e 0a 2a 20 5b 23 31 34 35 30 5d 28 68 74 74 70 73 les,.not.errors..*.[#1450](https
4d860 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 ://github.com/bbatsov/projectile
4d880 2f 70 75 6c 6c 2f 31 34 35 30 29 3a 20 43 61 6c 6c 20 60 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 /pull/1450):.Call.`switch-projec
4d8a0 74 2d 61 63 74 69 6f 6e 60 20 77 69 74 68 69 6e 20 70 72 6f 6a 65 63 74 27 73 20 74 65 6d 70 20 t-action`.within.project's.temp.
4d8c0 62 75 66 66 65 72 2e 0a 2a 20 5b 23 31 33 34 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 buffer..*.[#1340](https://github
4d8e0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 33 34 .com/bbatsov/projectile/pull/134
4d900 30 29 3a 20 46 69 78 20 72 65 6d 6f 74 65 20 70 72 6f 6a 65 63 74 73 20 62 65 69 6e 67 20 72 65 0):.Fix.remote.projects.being.re
4d920 6d 6f 76 65 64 20 69 66 20 54 52 41 4d 50 20 63 61 6e 27 74 20 63 6f 6e 6e 65 63 74 2e 0a 2a 20 moved.if.TRAMP.can't.connect..*.
4d940 5b 23 31 36 35 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 [#1655](https://github.com/bbats
4d960 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 35 35 29 3a 20 46 69 78 20 60 70 ov/projectile/pull/1655):.Fix.`p
4d980 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 60 20 73 65 61 72 63 68 rojectile-replace-regexp`.search
4d9a0 69 6e 67 20 74 68 65 20 77 72 6f 6e 67 20 66 69 6c 65 73 20 77 68 65 6e 20 63 61 6c 6c 65 64 20 ing.the.wrong.files.when.called.
4d9c0 77 69 74 68 20 70 72 65 66 69 78 20 61 72 67 2e 0a 2a 20 5b 23 31 36 35 39 5d 28 68 74 74 70 73 with.prefix.arg..*.[#1659](https
4d9e0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 ://github.com/bbatsov/projectile
4da00 2f 69 73 73 75 65 73 2f 31 36 35 39 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 /issues/1659):.Fix.`projectile-p
4da20 72 6f 6a 65 63 74 2d 76 63 73 60 20 74 6f 20 77 6f 72 6b 20 6f 75 74 73 69 64 65 20 61 20 70 72 roject-vcs`.to.work.outside.a.pr
4da40 6f 6a 65 63 74 2e 0a 2a 20 5b 23 31 36 33 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e oject..*.[#1637](https://github.
4da60 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 36 31 com/bbatsov/projectile/pull/1661
4da80 29 3a 20 49 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 73 61 76 65 68 69 73 74 2d 6d 6f 64 65 2e ):.Integrate.with.savehist-mode.
4daa0 0a 0a 23 23 20 32 2e 33 2e 30 20 28 32 30 32 30 2d 31 31 2d 32 37 29 0a 0a 23 23 23 20 4e 65 77 ..##.2.3.0.(2020-11-27)..###.New
4dac0 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 35 31 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 .features..*.[#1517](https://git
4dae0 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 hub.com/bbatsov/projectile/issue
4db00 73 2f 31 35 31 37 29 3a 20 41 64 64 20 70 72 6f 6a 65 63 74 2d 73 70 65 63 69 66 69 63 20 63 6f s/1517):.Add.project-specific.co
4db20 6d 70 69 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 73 20 61 6e 64 20 6f 6e 6c 79 20 61 73 6b 20 74 mpilation.buffers.and.only.ask.t
4db40 6f 20 73 61 76 65 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 68 65 6e o.save.files.in.the.project.when
4db60 20 63 6f 6d 70 69 6c 69 6e 67 2e 0a 2a 20 4e 65 77 20 66 75 6e 63 74 69 6f 6e 73 20 60 70 72 6f .compiling..*.New.functions.`pro
4db80 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 60 20 61 6e 64 20 60 70 72 6f 6a 65 jectile-acquire-root`.and.`proje
4dba0 63 74 69 6c 65 2d 70 72 6f 63 65 73 73 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 ctile-process-current-project-bu
4dbc0 66 66 65 72 73 2d 63 75 72 72 65 6e 74 60 0a 2a 20 4e 65 77 20 70 72 6f 6a 65 63 74 20 63 6f 6d ffers-current`.*.New.project.com
4dbe0 6d 61 6e 64 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 mands.`projectile-package-projec
4dc00 74 60 2c 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 60 t`,.`projectile-install-project`
4dc20 2e 0a 2a 20 5b 23 31 35 33 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1539](https://github.com/b
4dc40 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 35 33 39 29 3a 20 4e 65 batsov/projectile/pull/1539):.Ne
4dc60 77 20 64 65 66 63 75 73 74 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 64 69 73 w.defcustom.`projectile-auto-dis
4dc80 63 6f 76 65 72 60 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 77 68 65 74 68 65 72 20 74 6f 20 61 75 cover`.controlling.whether.to.au
4dca0 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 69 6e tomatically.discover.projects.in
4dcc0 20 74 68 65 20 73 65 61 72 63 68 20 70 61 74 68 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 6c .the.search.path.when.`projectil
4dce0 65 2d 6d 6f 64 65 60 20 61 63 74 69 76 61 74 65 73 2e 0a 2a 20 41 64 64 20 5b 65 6d 61 63 73 2d e-mode`.activates..*.Add.[emacs-
4dd00 65 6c 64 65 76 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 62 6c 65 eldev](https://github.com/double
4dd20 70 2f 65 6c 64 65 76 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 41 64 64 20 44 61 72 p/eldev).project.type..*.Add.Dar
4dd40 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 5b 23 31 35 35 35 5d 28 68 74 74 70 73 3a t.project.type..*.[#1555](https:
4dd60 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f //github.com/bbatsov/projectile/
4dd80 70 75 6c 6c 2f 31 35 35 35 29 3a 20 41 64 64 20 73 65 61 72 63 68 20 77 69 74 68 20 72 69 70 67 pull/1555):.Add.search.with.ripg
4dda0 72 65 70 2e 0a 2a 20 41 64 64 20 50 79 74 68 6f 6e 2d 70 6f 65 74 72 79 20 70 72 6f 6a 65 63 74 rep..*.Add.Python-poetry.project
4ddc0 20 74 79 70 65 2e 0a 2a 20 5b 23 31 35 37 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e .type..*.[#1576](https://github.
4dde0 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 35 37 36 com/bbatsov/projectile/pull/1576
4de00 29 3a 20 41 64 64 20 4f 43 61 6d 6c 20 5b 44 75 6e 65 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 ):.Add.OCaml.[Dune](https://gith
4de20 75 62 2e 63 6f 6d 2f 6f 63 61 6d 6c 2f 64 75 6e 65 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e ub.com/ocaml/dune).project.type.
4de40 0a 2a 20 41 64 64 20 5b 4d 69 6c 6c 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 6c 69 68 61 6f 79 69 .*.Add.[Mill](http://www.lihaoyi
4de60 2e 63 6f 6d 2f 6d 69 6c 6c 2f 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 41 75 74 6f .com/mill/).project.type..*.Auto
4de80 2d 64 65 74 65 63 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 79 73 74 65 6d 2c 20 73 75 70 70 6f -detect.completion.system,.suppo
4dea0 72 74 69 6e 67 20 60 69 64 6f 60 2c 20 60 69 76 79 60 2c 20 60 68 65 6c 6d 60 20 61 6e 64 20 74 rting.`ido`,.`ivy`,.`helm`.and.t
4dec0 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 79 73 74 65 6d 2e 0a 0a 23 he.default.completion.system...#
4dee0 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 35 34 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 ##.Changes..*.[#1540](https://gi
4df00 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c thub.com/bbatsov/projectile/pull
4df20 2f 31 35 34 30 29 3a 20 41 64 64 20 64 65 66 61 75 6c 74 20 60 74 65 73 74 2d 73 75 66 66 69 78 /1540):.Add.default.`test-suffix
4df40 60 20 74 6f 20 41 6e 67 75 6c 61 72 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 20 61 20 60 `.to.Angular.projects..*.Add.a.`
4df60 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 60 20 70 61 72 61 6d 20 74 6f 20 60 70 72 6f 6a 65 63 74 :project-file`.param.to.`project
4df80 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 60 2e 0a 2a 20 5b 23 ile-register-project-type`..*.[#
4dfa0 31 35 38 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 1588](https://github.com/bbatsov
4dfc0 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 35 38 38 29 3a 20 49 6d 70 72 6f 76 65 20 /projectile/pull/1588):.Improve.
4dfe0 70 65 72 66 6f 72 6d 61 6e 63 65 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 performance.of.`projectile-ibuff
4e000 65 72 60 20 77 69 74 68 20 6d 61 6e 79 20 62 75 66 66 65 72 73 20 6e 6f 74 20 69 6e 20 70 72 6f er`.with.many.buffers.not.in.pro
4e020 6a 65 63 74 2e 0a 2a 20 5b 23 31 36 30 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 ject..*.[#1601](https://github.c
4e040 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 36 30 31 29 om/bbatsov/projectile/pull/1601)
4e060 3a 20 49 6d 70 6c 65 6d 65 6e 74 20 73 65 70 61 72 61 74 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e :.Implement.separate.compilation
4e080 20 63 6f 6d 6d 61 6e 64 20 68 69 73 74 6f 72 79 20 66 6f 72 20 65 61 63 68 20 70 72 6f 6a 65 63 .command.history.for.each.projec
4e0a0 74 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 33 37 37 5d 28 68 74 t...###.Bugs.fixed..*.[#1377](ht
4e0c0 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4e0e0 69 6c 65 2f 69 73 73 75 65 73 2f 31 33 37 37 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c ile/issues/1377):.Fix.`projectil
4e100 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 60 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 23 e-regenerate-tags`.directory...#
4e120 23 20 32 2e 32 2e 30 20 28 32 30 32 30 2d 30 36 2d 31 30 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 #.2.2.0.(2020-06-10)..###.New.fe
4e140 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 35 32 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 atures..*.[#1523](https://github
4e160 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 .com/bbatsov/projectile/issues/1
4e180 35 32 33 29 3a 20 41 64 64 20 61 20 6e 65 77 20 64 65 66 63 75 73 74 6f 6d 20 28 60 70 72 6f 6a 523):.Add.a.new.defcustom.(`proj
4e1a0 65 63 74 69 6c 65 2d 6d 61 78 2d 66 69 6c 65 2d 62 75 66 66 65 72 2d 63 6f 75 6e 74 60 29 20 63 ectile-max-file-buffer-count`).c
4e1c0 6f 6e 74 72 6f 6c 6c 69 6e 67 20 68 6f 77 20 6d 61 6e 79 20 6f 70 65 6e 65 64 20 66 69 6c 65 20 ontrolling.how.many.opened.file.
4e1e0 62 75 66 66 65 72 73 20 73 68 6f 75 6c 64 20 50 72 6f 6a 65 63 74 69 6c 65 20 6d 61 69 6e 74 61 buffers.should.Projectile.mainta
4e200 69 6e 20 70 65 72 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 4f 70 74 69 6f 6e 61 6c 20 73 75 70 70 6f in.per.project..*.Optional.suppo
4e220 72 74 20 66 6f 72 20 63 6f 6d 6d 65 6e 74 73 20 69 6e 20 2e 70 72 6f 6a 65 63 74 69 6c 65 20 64 rt.for.comments.in..projectile.d
4e240 69 72 63 6f 6e 66 69 67 20 66 69 6c 65 73 20 75 73 69 6e 67 20 60 70 72 6f 6a 65 63 74 69 6c 65 irconfig.files.using.`projectile
4e260 2d 64 69 72 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 2d 70 72 65 66 69 78 60 2e 0a 2a 20 5b 23 -dirconfig-comment-prefix`..*.[#
4e280 31 34 39 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 1497](https://github.com/bbatsov
4e2a0 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 34 39 37 29 3a 20 4e 65 77 20 63 6f 6d 6d /projectile/pull/1497):.New.comm
4e2c0 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 67 64 62 60 20 28 3c 6b 62 64 3e 78 and.`projectile-run-gdb`.(<kbd>x
4e2e0 20 67 3c 2f 6b 62 64 3e 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d .g</kbd>.in.`projectile-command-
4e300 6d 61 70 60 29 2e 0a 2a 20 41 64 64 20 5b 42 61 7a 65 6c 5d 28 68 74 74 70 73 3a 2f 2f 62 61 7a map`)..*.Add.[Bazel](https://baz
4e320 65 6c 2e 62 75 69 6c 64 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 0a 23 23 23 20 42 75 67 el.build).project.type...###.Bug
4e340 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 35 30 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 s.fixed..*.[#1503](https://githu
4e360 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 35 b.com/bbatsov/projectile/pull/15
4e380 30 33 29 3a 20 4c 65 61 76 65 20 61 72 63 68 69 76 65 20 62 65 66 6f 72 65 20 73 65 61 72 63 68 03):.Leave.archive.before.search
4e3a0 69 6e 67 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 0a 23 23 23 20 43 ing.for.the.project.root...###.C
4e3c0 68 61 6e 67 65 73 0a 0a 2a 20 5b 23 31 35 32 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 hanges..*.[#1528](https://github
4e3e0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 35 32 .com/bbatsov/projectile/pull/152
4e400 38 29 3a 20 49 6d 70 72 6f 76 65 20 6d 61 73 73 69 76 65 6c 79 20 74 68 65 20 70 65 72 66 6f 72 8):.Improve.massively.the.perfor
4e420 6d 61 6e 63 65 20 6f 66 20 6e 61 74 69 76 65 20 69 6e 64 65 78 69 6e 67 20 28 69 74 27 73 20 61 mance.of.native.indexing.(it's.a
4e440 72 6f 75 6e 64 20 31 30 78 20 66 61 73 74 65 72 20 6e 6f 77 29 2e 0a 0a 23 23 20 32 2e 31 2e 30 round.10x.faster.now)...##.2.1.0
4e460 20 28 32 30 32 30 2d 30 32 2d 30 34 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a .(2020-02-04)..###.New.features.
4e480 0a 2a 20 5b 23 31 34 38 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 .*.[#1486](https://github.com/bb
4e4a0 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 34 38 36 29 20 41 6c 6c 6f atsov/projectile/pull/1486).Allo
4e4c0 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 2f 65 73 68 65 6c 6c 2f 74 w.`projectile-run-shell/eshell/t
4e4e0 65 72 6d 2f 76 74 65 72 6d 2f 69 65 6c 6d 60 20 74 6f 20 73 74 61 72 74 20 65 78 74 72 61 20 70 erm/vterm/ielm`.to.start.extra.p
4e500 72 6f 63 65 73 73 65 73 20 69 66 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 20 74 68 65 20 70 72 65 rocesses.if.invoked.with.the.pre
4e520 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f fix.argument..*.New.command.`pro
4e540 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 60 20 28 3c 6b 62 64 3e 78 20 76 3c 2f 6b 62 jectile-run-vterm`.(<kbd>x.v</kb
4e560 64 3e 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 60 29 2e d>.in.`projectile-command-map`).
4e580 0a 2a 20 41 64 64 20 60 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 60 20 6f 70 74 69 6f 6e .*.Add.`related-files-fn`.option
4e5a0 20 74 6f 20 75 73 65 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 .to.use.custom.function.to.find.
4e5c0 74 65 73 74 2f 69 6d 70 6c 2f 6f 74 68 65 72 20 66 69 6c 65 73 2e 0a 2a 20 5b 23 31 30 31 39 5d test/impl/other.files..*.[#1019]
4e5e0 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
4e600 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 31 39 29 3a 20 4a 75 6d 70 20 74 6f 20 61 20 74 ectile/issues/1019):.Jump.to.a.t
4e620 65 73 74 20 6e 61 6d 65 64 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 62 75 74 20 69 6e 20 61 20 est.named.the.same.way.but.in.a.
4e640 64 69 66 66 65 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 2a 20 5b 23 39 38 32 5d 28 68 74 different.directory..*.[#982](ht
4e660 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4e680 69 6c 65 2f 69 73 73 75 65 73 2f 39 38 32 29 3a 20 41 64 64 20 68 65 75 72 69 73 74 69 63 20 66 ile/issues/982):.Add.heuristic.f
4e6a0 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 6d 61 74 63 68 69 6e 67 2d 74 65 73 74 or.projectile-find-matching-test
4e6c0 2e 0a 2a 20 53 75 70 70 6f 72 74 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 ..*.Support.a.list.of.functions.
4e6e0 66 6f 72 20 60 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 60 20 6f 70 74 69 6f 6e 73 20 61 for.`related-files-fn`.options.a
4e700 6e 64 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 2a 20 5b 23 31 34 30 35 5d 28 68 nd.helper.functions..*.[#1405](h
4e720 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4e740 74 69 6c 65 2f 70 75 6c 6c 2f 31 34 30 35 29 3a 20 41 64 64 20 42 6c 6f 6f 70 20 53 63 61 6c 61 tile/pull/1405):.Add.Bloop.Scala
4e760 20 62 75 69 6c 64 20 73 65 72 76 65 72 20 70 72 6f 6a 65 63 74 20 64 65 74 65 63 74 69 6f 6e 2e .build.server.project.detection.
4e780 0a 2a 20 5b 23 31 34 31 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 .*.[#1418](https://github.com/bb
4e7a0 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 34 31 38 29 3a 20 54 68 65 atsov/projectile/pull/1418):.The
4e7c0 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 60 67 6f 2e 6d 6f 64 60 20 66 69 6c 65 20 69 6d 70 .presence.of.a.`go.mod`.file.imp
4e7e0 6c 69 65 73 20 61 20 67 6f 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 5b 23 31 34 31 39 5d 28 68 74 74 lies.a.go.project..*.[#1419](htt
4e800 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
4e820 6c 65 2f 70 75 6c 6c 2f 31 34 31 39 29 3a 20 57 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 75 73 le/pull/1419):.When.possible,.us
4e840 65 20 5b 66 64 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 68 61 72 6b 64 e.[fd](https://github.com/sharkd
4e860 70 2f 66 64 29 20 69 6e 73 74 65 61 64 0a 6f 66 20 60 66 69 6e 64 60 20 74 6f 20 6c 69 73 74 20 p/fd).instead.of.`find`.to.list.
4e880 74 68 65 20 66 69 6c 65 73 20 6f 66 20 61 20 6e 6f 6e 2d 56 43 53 20 70 72 6f 6a 65 63 74 2e 20 the.files.of.a.non-VCS.project..
4e8a0 54 68 69 73 20 73 68 6f 75 6c 64 20 62 65 20 6d 75 63 68 20 66 61 73 74 65 72 2e 0a 0a 23 23 23 This.should.be.much.faster...###
4e8c0 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 36 37 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 .Bugs.fixed..*.[#675](https://gi
4e8e0 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 thub.com/bbatsov/projectile/issu
4e900 65 73 2f 36 37 35 29 3a 20 50 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 es/675):.Performance.improvement
4e920 20 66 6f 72 20 6e 61 74 69 76 65 20 70 72 6f 6a 65 63 74 20 69 6e 64 65 78 69 6e 67 20 73 74 72 .for.native.project.indexing.str
4e940 61 74 65 67 79 2e 0a 2a 20 5b 23 39 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f ategy..*.[#97](https://github.co
4e960 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 39 37 29 3a m/bbatsov/projectile/issues/97):
4e980 20 52 65 73 70 65 63 74 20 60 2e 70 72 6f 6a 65 63 74 69 6c 65 60 20 69 67 6e 6f 72 65 73 20 77 .Respect.`.projectile`.ignores.w
4e9a0 68 69 63 68 20 61 72 65 20 70 61 74 68 73 20 74 6f 20 66 69 6c 65 73 20 61 6e 64 20 70 61 74 74 hich.are.paths.to.files.and.patt
4e9c0 65 72 6e 73 20 77 68 65 6e 20 75 73 69 6e 67 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 erns.when.using.`projectile-grep
4e9e0 60 2e 0a 2a 20 5b 23 31 33 39 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f `..*.[#1391](https://github.com/
4ea00 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 33 39 31 29 3a bbatsov/projectile/issues/1391):
4ea20 20 41 20 60 2e 63 61 62 61 6c 60 20 73 75 62 2d 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 20 .A.`.cabal`.sub-directory.is.no.
4ea40 6c 6f 6e 67 65 72 20 63 6f 6e 73 69 64 65 72 65 64 20 70 72 6f 6a 65 63 74 20 69 6e 64 69 63 61 longer.considered.project.indica
4ea60 74 6f 72 2e 0a 2a 20 5b 23 31 33 38 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f tor..*.[#1385](https://github.co
4ea80 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 33 38 35 m/bbatsov/projectile/issues/1385
4eaa0 29 3a 20 55 70 64 61 74 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 60 20 66 ):.Update.`projectile-replace`.f
4eac0 6f 72 20 45 6d 61 63 73 20 32 37 2e 0a 2a 20 5b 23 31 34 33 32 5d 28 68 74 74 70 73 3a 2f 2f 67 or.Emacs.27..*.[#1432](https://g
4eae0 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 ithub.com/bbatsov/projectile/iss
4eb00 75 65 73 2f 31 34 33 32 29 3a 20 53 75 70 70 6f 72 74 20 2e 4e 45 54 20 70 72 6f 6a 65 63 74 2e ues/1432):.Support..NET.project.
4eb20 0a 2a 20 5b 23 31 32 37 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 .*.[#1270](https://github.com/bb
4eb40 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 32 37 30 29 3a 20 46 atsov/projectile/issues/1270):.F
4eb60 69 78 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 64 6f 6e 27 74 20 68 ix.running.commands.that.don't.h
4eb80 61 76 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0a 2a 20 5b 23 31 34 37 35 5d 28 68 ave.a.default.value..*.[#1475](h
4eba0 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4ebc0 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 34 37 35 29 3a 20 46 69 78 20 64 69 72 65 63 74 6f 72 69 tile/issues/1475):.Fix.directori
4ebe0 65 73 20 62 65 69 6e 67 20 69 67 6e 6f 72 65 64 20 77 69 74 68 20 68 79 62 72 69 64 20 6d 6f 64 es.being.ignored.with.hybrid.mod
4ec00 65 20 64 65 73 70 69 74 65 20 62 65 69 6e 67 20 65 78 70 6c 69 63 69 74 6c 79 20 75 6e 69 67 6e e.despite.being.explicitly.unign
4ec20 6f 72 65 64 2e 0a 2a 20 5b 23 31 34 38 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 ored..*.[#1482](https://github.c
4ec40 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 34 38 om/bbatsov/projectile/issues/148
4ec60 32 29 3a 20 52 75 6e 20 61 20 73 65 70 61 72 61 74 65 20 67 72 65 70 20 62 75 66 66 65 72 20 70 2):.Run.a.separate.grep.buffer.p
4ec80 65 72 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 2a 20 5b 23 31 34 38 38 5d 28 68 74 74 70 73 er.project.root..*.[#1488](https
4eca0 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 ://github.com/bbatsov/projectile
4ecc0 2f 69 73 73 75 65 73 2f 31 34 38 38 29 3a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 /issues/1488):.Fix.`projectile-f
4ece0 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 60 20 77 68 65 6e 20 69 6e 20 61 ind-file-in-directory`.when.in.a
4ed00 20 73 75 62 64 69 72 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 .subdir.of.`projectile-project-r
4ed20 6f 6f 74 60 2e 0a 0a 23 23 20 32 2e 30 2e 30 20 28 32 30 31 39 2d 30 31 2d 30 31 29 0a 0a 23 23 oot`...##.2.0.0.(2019-01-01)..##
4ed40 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 39 37 32 5d 28 68 74 74 70 73 3a 2f #.New.features..*.[#972](https:/
4ed60 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 /github.com/bbatsov/projectile/i
4ed80 73 73 75 65 73 2f 39 37 32 29 3a 20 41 64 64 20 74 6f 67 67 6c 65 20 66 6f 72 20 70 72 6f 6a 65 ssues/972):.Add.toggle.for.proje
4eda0 63 74 20 72 65 61 64 20 6f 6e 6c 79 20 6d 6f 64 65 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 ct.read.only.mode:.`projectile-t
4edc0 6f 67 67 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 65 61 64 2d 6f 6e 6c 79 60 2e 0a 2a 20 4e 65 77 20 oggle-project-read-only`..*.New.
4ede0 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d interactive.command.`projectile-
4ee00 72 75 6e 2d 69 65 6c 6d 60 2e 0a 2a 20 41 64 64 20 5b 63 72 79 73 74 61 6c 5d 28 68 74 74 70 73 run-ielm`..*.Add.[crystal](https
4ee20 3a 2f 2f 63 72 79 73 74 61 6c 2d 6c 61 6e 67 2e 6f 72 67 29 20 70 72 6f 6a 65 63 74 20 74 79 70 ://crystal-lang.org).project.typ
4ee40 65 2e 0a 2a 20 5b 23 38 35 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 e..*.[#850](https://github.com/b
4ee60 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 38 35 30 29 3a 20 4d batsov/projectile/issues/850):.M
4ee80 61 6b 65 20 69 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 ake.it.possible.to.prompt.for.a.
4eea0 70 72 6f 6a 65 63 74 2c 20 77 68 65 6e 20 79 6f 75 27 72 65 20 6e 6f 74 20 69 6e 20 61 20 70 72 project,.when.you're.not.in.a.pr
4eec0 6f 6a 65 63 74 2c 20 69 6e 73 74 65 61 64 20 6f 66 20 72 61 69 73 69 6e 67 20 61 6e 20 65 72 72 oject,.instead.of.raising.an.err
4eee0 6f 72 2e 20 28 73 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 71 75 69 72 65 2d 70 72 6f or..(see.`projectile-require-pro
4ef00 6a 65 63 74 2d 72 6f 6f 74 60 29 2e 0a 2a 20 5b 23 31 31 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 ject-root`)..*.[#1147](https://g
4ef20 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 ithub.com/bbatsov/projectile/iss
4ef40 75 65 73 2f 31 31 34 37 29 3a 20 49 6e 74 72 6f 64 75 63 65 20 61 20 6e 65 77 20 69 6e 64 65 78 ues/1147):.Introduce.a.new.index
4ef60 69 6e 67 20 6d 65 74 68 6f 64 20 63 61 6c 6c 65 64 20 60 68 79 62 72 69 64 60 20 77 68 69 63 68 ing.method.called.`hybrid`.which
4ef80 20 62 65 68 61 76 65 73 20 6c 69 6b 65 20 74 68 65 20 6f 6c 64 20 60 61 6c 69 65 6e 60 2e 0a 2a .behaves.like.the.old.`alien`..*
4efa0 20 5b 23 38 39 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 .[#896](https://github.com/bbats
4efc0 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 38 39 36 29 20 41 64 64 20 63 6f ov/projectile/issues/896).Add.co
4efe0 6d 6d 61 6e 64 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 76 69 6f 75 73 2d 70 72 6f 6a mmands.`projectile-previous-proj
4f000 65 63 74 2d 62 75 66 66 65 72 20 60 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 65 78 ect-buffer.`.and.`projectile-nex
4f020 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 60 20 74 6f 20 73 77 69 74 63 68 20 74 6f 20 6f t-project-buffer`.to.switch.to.o
4f040 74 68 65 72 20 62 75 66 66 65 72 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 5b 23 ther.buffer.in.the.project..*.[#
4f060 31 30 31 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 1016](https://github.com/bbatsov
4f080 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 31 36 29 3a 20 41 64 64 20 61 20 /projectile/issues/1016):.Add.a.
4f0a0 6e 65 77 20 64 65 66 63 75 73 74 6f 6d 20 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 75 72 72 65 new.defcustom.(`projectile-curre
4f0c0 6e 74 2d 70 72 6f 6a 65 63 74 2d 6f 6e 2d 73 77 69 74 63 68 60 29 20 63 6f 6e 74 72 6f 6c 6c 69 nt-project-on-switch`).controlli
4f0e0 6e 67 20 77 68 61 74 20 74 6f 20 64 6f 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 ng.what.to.do.with.the.current.p
4f100 72 6f 6a 65 63 74 20 6f 6e 20 73 77 69 74 63 68 2e 0a 2a 20 5b 23 31 32 33 33 5d 28 68 74 74 70 roject.on.switch..*.[#1233](http
4f120 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
4f140 65 2f 69 73 73 75 65 73 2f 31 32 33 33 29 3a 20 41 64 64 20 61 20 6e 65 77 20 64 65 66 63 75 73 e/issues/1233):.Add.a.new.defcus
4f160 74 6f 6d 20 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 tom.(`projectile-kill-buffers-fi
4f180 6c 74 65 72 60 29 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 77 68 69 63 68 20 62 75 66 66 65 72 73 lter`).controlling.which.buffers
4f1a0 20 61 72 65 20 6b 69 6c 6c 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d .are.killed.by.`projectile-kill-
4f1c0 62 75 66 66 65 72 73 60 2e 0a 2a 20 5b 23 31 32 37 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 buffers`..*.[#1279](https://gith
4f1e0 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 ub.com/bbatsov/projectile/issues
4f200 2f 31 32 37 39 29 3a 20 41 64 64 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d /1279):.Add.command.`projectile-
4f220 72 65 70 65 61 74 2d 6c 61 73 74 2d 63 6f 6d 6d 61 6e 64 60 20 74 6f 20 72 65 2d 65 78 65 63 75 repeat-last-command`.to.re-execu
4f240 74 65 20 74 68 65 20 6c 61 73 74 20 65 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 te.the.last.external.command.in.
4f260 61 20 70 72 6f 6a 65 63 74 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 2a 2a 28 42 72 a.project...###.Changes..*.**(Br
4f280 65 61 6b 69 6e 67 29 2a 2a 20 5b 23 31 31 34 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 eaking)**.[#1147](https://github
4f2a0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 .com/bbatsov/projectile/issues/1
4f2c0 31 34 37 29 3a 20 52 65 6d 6f 76 65 20 61 6e 79 20 70 6f 73 74 2d 70 72 6f 63 65 73 73 69 6e 67 147):.Remove.any.post-processing
4f2e0 20 66 72 6f 6d 20 74 68 65 20 60 61 6c 69 65 6e 60 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f .from.the.`alien`.indexing.metho
4f300 64 2e 0a 2a 20 53 70 65 63 69 66 79 20 70 72 6f 6a 65 63 74 20 70 61 74 68 20 66 6f 72 20 60 70 d..*.Specify.project.path.for.`p
4f320 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 60 2e 0a 2a 20 48 61 rojectile-regenerate-tags`..*.Ha
4f340 6e 64 6c 65 20 66 69 6c 65 73 20 77 69 74 68 20 73 70 65 63 69 61 6c 20 63 68 61 72 61 63 74 65 ndle.files.with.special.characte
4f360 72 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 6f 74 68 65 72 2d 66 69 6c 65 rs.in.`projectile-get-other-file
4f380 73 60 2e 0a 2a 20 5b 23 31 32 36 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d s`..*.[#1260](https://github.com
4f3a0 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 36 30 29 3a 20 /bbatsov/projectile/pull/1260):.
4f3c0 69 67 6e 6f 72 65 64 2d 2a 2d 70 3a 20 4e 6f 77 20 74 68 65 79 20 6d 61 74 63 68 20 61 67 61 69 ignored-*-p:.Now.they.match.agai
4f3e0 6e 73 74 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 2a 20 2a 2a 28 42 72 nst.regular.expressions..*.**(Br
4f400 65 61 6b 69 6e 67 29 2a 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 72 65 eaking)**.Remove.the.default.pre
4f420 66 69 78 20 6b 65 79 20 28 60 43 2d 63 20 70 60 29 20 66 6f 72 20 50 72 6f 6a 65 63 74 69 6c 65 fix.key.(`C-c.p`).for.Projectile
4f440 2e 20 55 73 65 72 73 20 6e 6f 77 20 68 61 76 65 20 74 6f 20 70 69 63 6b 20 6f 6e 65 20 74 68 65 ..Users.now.have.to.pick.one.the
4f460 6d 73 65 6c 76 65 73 2e 0a 2a 20 44 65 70 72 65 63 61 74 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 mselves..*.Deprecate.`projectile
4f480 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 60 2e 0a 2a 20 41 76 6f 69 64 20 22 4e 6f 20 70 72 6f -keymap-prefix`..*.Avoid."No.pro
4f4a0 6a 65 63 74 73 20 6e 65 65 64 65 64 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64 2e 22 20 6d 65 73 jects.needed.to.be.removed.".mes
4f4c0 73 61 67 65 73 20 69 6e 20 67 6c 6f 62 61 6c 20 6d 6f 64 65 2e 0a 2a 20 5b 23 31 32 37 38 5d 28 sages.in.global.mode..*.[#1278](
4f4e0 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
4f500 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 32 37 38 29 3a 20 41 64 64 20 64 65 66 61 75 6c 74 20 ctile/issues/1278):.Add.default.
4f520 60 74 65 73 74 2d 73 75 66 66 69 78 60 20 74 6f 20 60 6e 70 6d 60 20 70 72 6f 6a 65 63 74 2e 0a `test-suffix`.to.`npm`.project..
4f540 2a 20 5b 23 31 32 38 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 *.[#1285](https://github.com/bba
4f560 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 38 35 29 3a 20 41 64 64 20 tsov/projectile/pull/1285):.Add.
4f580 64 65 66 61 75 6c 74 20 60 74 65 73 74 2d 73 75 66 66 69 78 60 20 74 6f 20 50 79 74 68 6f 6e 20 default.`test-suffix`.to.Python.
4f5a0 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 32 38 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 projects..*.[#1285](https://gith
4f5c0 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 ub.com/bbatsov/projectile/pull/1
4f5e0 32 38 35 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 50 69 70 65 6e 76 2d 6d 61 6e 285):.Add.support.for.Pipenv-man
4f600 61 67 65 64 20 50 79 74 68 6f 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 32 33 32 5d 28 aged.Python.projects..*.[#1232](
4f620 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
4f640 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 32 33 32 29 3a 20 53 74 6f 70 20 65 76 61 6c 75 61 74 ctile/issues/1232):.Stop.evaluat
4f660 69 6e 67 20 63 6f 64 65 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 69 6e 20 74 68 65 20 6d 6f 64 65 ing.code.dynamically.in.the.mode
4f680 2d 6c 69 6e 65 20 61 6e 64 20 73 77 69 74 63 68 20 74 6f 20 61 20 73 69 6d 70 6c 65 72 20 73 63 -line.and.switch.to.a.simpler.sc
4f6a0 68 65 6d 65 20 77 68 65 72 65 20 74 68 65 20 6d 6f 64 65 2d 6c 69 6e 65 20 69 73 20 75 70 64 61 heme.where.the.mode-line.is.upda
4f6c0 74 65 64 20 6a 75 73 74 20 6f 6e 63 65 20 75 73 69 6e 67 20 60 66 69 6e 64 2d 66 69 6c 65 2d 68 ted.just.once.using.`find-file-h
4f6e0 6f 6f 6b 60 2e 0a 2a 20 4d 61 6b 65 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 20 63 6f 6e 66 69 ook`..*.Make.the.mode.line.confi
4f700 67 75 72 61 62 6c 65 20 76 69 61 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 79 6e 61 6d 69 63 2d gurable.via.`projectile-dynamic-
4f720 6d 6f 64 65 2d 6c 69 6e 65 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d mode-line`.and.`projectile-mode-
4f740 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a 2a 20 5b 23 31 32 30 35 5d 28 68 74 74 70 73 3a line-function`..*.[#1205](https:
4f760 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f //github.com/bbatsov/projectile/
4f780 69 73 73 75 65 73 2f 31 32 30 35 29 3a 20 43 68 65 63 6b 20 74 68 61 74 20 70 72 6f 6a 65 63 74 issues/1205):.Check.that.project
4f7a0 20 64 69 72 65 63 74 6f 72 79 20 65 78 69 73 74 73 20 77 68 65 6e 20 73 77 69 74 63 68 69 6e 67 .directory.exists.when.switching
4f7c0 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 4d 6f 76 65 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 6d .projects..*.Move.Projectile's.m
4f7e0 65 6e 75 20 6f 75 74 20 6f 66 20 74 68 65 20 22 54 6f 6f 6c 73 22 20 6d 65 6e 75 2e 0a 2a 20 5b enu.out.of.the."Tools".menu..*.[
4f800 41 50 49 5d 20 2a 2a 28 42 72 65 61 6b 69 6e 67 29 2a 2a 20 53 74 6f 70 20 72 61 69 73 69 6e 67 API].**(Breaking)**.Stop.raising
4f820 20 65 72 72 6f 72 73 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 .errors.from.`projectile-project
4f840 2d 72 6f 6f 74 60 20 69 66 20 6e 6f 74 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 69 6e 20 61 20 70 -root`.if.not.invoked.within.a.p
4f860 72 6f 6a 65 63 74 2e 20 4e 6f 77 20 69 74 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 72 65 74 75 72 roject..Now.it.will.simply.retur
4f880 6e 20 6e 69 6c 2e 20 55 73 65 20 69 74 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 60 70 72 6f n.nil..Use.it.together.with.`pro
4f8a0 6a 65 63 74 69 6c 65 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 60 20 74 6f 20 65 6d 75 6c 61 jectile-ensure-project`.to.emula
4f8c0 74 65 20 74 68 65 20 6f 6c 64 20 62 65 68 61 76 69 6f 72 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 te.the.old.behavior...###.Bugs.f
4f8e0 69 78 65 64 0a 0a 2a 20 5b 23 31 33 31 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 ixed..*.[#1315](https://github.c
4f900 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 33 31 om/bbatsov/projectile/issues/131
4f920 35 29 3a 20 47 69 76 65 20 70 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 5):.Give.preference.to.the.proje
4f940 63 74 20 74 79 70 65 73 20 74 68 61 74 20 77 65 72 65 20 72 65 67 69 73 74 65 72 65 64 20 6c 61 ct.types.that.were.registered.la
4f960 73 74 2e 0a 2a 20 5b 23 31 33 36 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d st..*.[#1367](https://github.com
4f980 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 33 36 37 29 /bbatsov/projectile/issues/1367)
4f9a0 3a 20 46 69 78 20 74 68 65 20 4d 61 6b 65 66 69 6c 65 20 73 6f 20 74 68 61 74 20 77 65 20 63 61 :.Fix.the.Makefile.so.that.we.ca
4f9c0 6e 20 63 6f 6d 70 69 6c 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 2d 20 75 73 65 20 60 6d 61 6b 65 n.compile.projectile.-.use.`make
4f9e0 60 2e 0a 0a 23 23 20 31 2e 30 2e 30 20 28 32 30 31 38 2d 30 37 2d 32 31 29 0a 0a 23 23 23 20 4e `...##.1.0.0.(2018-07-21)..###.N
4fa00 65 77 20 46 65 61 74 75 72 65 73 0a 0a 2a 20 5b 23 31 32 35 35 5d 28 68 74 74 70 73 3a 2f 2f 67 ew.Features..*.[#1255](https://g
4fa20 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c ithub.com/bbatsov/projectile/pul
4fa40 6c 2f 31 32 35 35 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 75 6e 63 74 69 6f l/1255):.Add.support.for.functio
4fa60 6e 20 73 79 6d 62 6f 6c 73 20 61 73 20 70 72 6f 6a 65 63 74 20 64 65 66 61 75 6c 74 20 63 6f 6d n.symbols.as.project.default.com
4fa80 6d 61 6e 64 73 0a 2a 20 5b 23 31 32 34 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 mands.*.[#1243](https://github.c
4faa0 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 34 33 29 om/bbatsov/projectile/pull/1243)
4fac0 3a 20 41 64 64 20 5b 61 6e 67 75 6c 61 72 5d 28 68 74 74 70 73 3a 2f 2f 61 6e 67 75 6c 61 72 2e :.Add.[angular](https://angular.
4fae0 69 6f 29 20 70 72 6f 6a 65 63 74 20 73 75 70 70 6f 72 74 2e 0a 2a 20 5b 23 31 32 32 38 5d 28 68 io).project.support..*.[#1228](h
4fb00 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
4fb20 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 32 38 29 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 tile/pull/1228):.Add.support.for
4fb40 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c .a.prefix.argument.to.`projectil
4fb60 65 2d 76 63 60 2e 0a 2a 20 5b 23 31 32 32 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e e-vc`..*.[#1221](https://github.
4fb80 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 32 31 com/bbatsov/projectile/pull/1221
4fba0 29 3a 20 4d 6f 64 69 66 79 20 52 75 62 79 20 61 6e 64 20 45 6c 69 78 69 72 20 70 72 6f 6a 65 63 ):.Modify.Ruby.and.Elixir.projec
4fbc0 74 20 73 65 74 74 69 6e 67 73 2e 0a 2a 20 5b 23 31 31 37 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 t.settings..*.[#1175](https://gi
4fbe0 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c thub.com/bbatsov/projectile/pull
4fc00 2f 31 31 37 35 29 3a 20 41 64 64 20 61 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c /1175):.Add.a.command.`projectil
4fc20 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 60 20 66 6f 72 20 72 75 6e 6e 69 6e 67 e-configure-command`.for.running
4fc40 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 6f 72 20 62 75 69 6c 64 20 73 79 73 74 65 .a.configuration.for.build.syste
4fc60 6d 73 20 74 68 61 74 20 6e 65 65 64 20 74 68 61 74 2e 0a 2a 20 5b 23 31 31 36 38 5d 28 68 74 74 ms.that.need.that..*.[#1168](htt
4fc80 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
4fca0 6c 65 2f 70 75 6c 6c 2f 31 31 36 38 29 3a 20 41 64 64 20 43 4d 61 6b 65 20 61 6e 64 20 4d 65 73 le/pull/1168):.Add.CMake.and.Mes
4fcc0 6f 6e 20 70 72 6f 6a 65 63 74 20 73 75 70 70 6f 72 74 2e 0a 2a 20 5b 23 31 31 35 39 5d 28 68 74 on.project.support..*.[#1159](ht
4fce0 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
4fd00 69 6c 65 2f 70 75 6c 6c 2f 31 31 35 39 29 20 41 64 64 20 5b 6e 69 78 5d 28 68 74 74 70 3a 2f 2f ile/pull/1159).Add.[nix](http://
4fd20 6e 69 78 6f 73 2e 6f 72 67 29 20 70 72 6f 6a 65 63 74 20 73 75 70 70 6f 72 74 2e 0a 2a 20 5b 23 nixos.org).project.support..*.[#
4fd40 31 31 36 36 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 1166](https://github.com/bbatsov
4fd60 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 31 36 36 29 3a 20 41 64 64 20 60 2d 6f 74 /projectile/pull/1166):.Add.`-ot
4fd80 68 65 72 2d 66 72 61 6d 65 60 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 her-frame`.versions.of.commands.
4fda0 74 68 61 74 20 68 61 64 20 60 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 60 20 76 65 72 73 69 6f 6e that.had.`-other-window`.version
4fdc0 73 2e 0a 2a 20 43 6f 6e 73 69 64 65 72 20 45 6e 73 69 6d 65 20 63 6f 6e 66 69 67 75 72 61 74 69 s..*.Consider.Ensime.configurati
4fde0 6f 6e 20 66 69 6c 65 20 61 73 20 72 6f 6f 74 20 6d 61 72 6b 65 72 2c 20 60 2e 65 6e 73 69 6d 65 on.file.as.root.marker,.`.ensime
4fe00 60 2e 0a 2a 20 5b 23 31 30 35 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f `..*.[#1057](https://github.com/
4fe20 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 35 37 29 3a bbatsov/projectile/issues/1057):
4fe40 20 4d 61 6b 65 20 69 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 64 69 73 61 62 6c 65 20 61 75 74 .Make.it.possible.to.disable.aut
4fe60 6f 6d 61 74 69 63 20 70 72 6f 6a 65 63 74 20 74 72 61 63 6b 69 6e 67 20 76 69 61 20 60 70 72 6f omatic.project.tracking.via.`pro
4fe80 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 61 75 74 jectile-track-known-projects-aut
4fea0 6f 6d 61 74 69 63 61 6c 6c 79 60 2e 0a 2a 20 41 64 64 65 64 20 61 62 69 6c 69 74 79 20 74 6f 20 omatically`..*.Added.ability.to.
4fec0 73 70 65 63 69 66 79 20 74 65 73 74 20 66 69 6c 65 73 20 73 75 66 66 69 78 20 61 6e 64 20 70 72 specify.test.files.suffix.and.pr
4fee0 65 66 69 78 20 61 74 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 65 67 69 73 74 72 61 74 69 6f 6e efix.at.the.project.registration
4ff00 2e 0a 2a 20 5b 23 31 31 35 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1154](https://github.com/b
4ff20 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 31 35 34 29 20 55 73 65 batsov/projectile/pull/1154).Use
4ff40 20 6e 70 6d 20 69 6e 73 74 61 6c 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 62 75 69 6c 64 2e 0a 2a .npm.install.instead.of.build..*
4ff60 20 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 65 78 70 69 72 65 20 6f 6c 64 .Added.the.ability.to.expire.old
4ff80 20 66 69 6c 65 73 20 6c 69 73 74 20 63 61 63 68 65 73 20 76 69 61 20 60 70 72 6f 6a 65 63 74 69 .files.list.caches.via.`projecti
4ffa0 6c 65 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 63 61 63 68 65 2d 65 78 70 69 72 65 le-projectile-files-cache-expire
4ffc0 60 2e 0a 2a 20 5b 23 31 32 30 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f `..*.[#1204](https://github.com/
4ffe0 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 30 34 29 3a 20 60 bbatsov/projectile/pull/1204):.`
50000 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 projectile-register-project-type
50020 60 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 `.can.now.be.use.to.customize.th
50040 65 20 73 6f 75 72 63 65 20 61 6e 64 20 74 65 73 74 20 64 69 72 65 63 74 6f 72 79 20 76 69 61 20 e.source.and.test.directory.via.
50060 60 3a 73 72 63 2d 64 69 72 60 20 61 6e 64 20 60 3a 74 65 73 74 2d 64 69 72 60 20 66 6f 72 20 70 `:src-dir`.and.`:test-dir`.for.p
50080 72 6f 6a 65 63 74 73 20 77 69 74 68 20 63 75 73 74 6f 6d 20 6e 65 65 64 73 20 28 65 67 2e 20 6d rojects.with.custom.needs.(eg..m
500a0 61 76 65 6e 29 2e 0a 2a 20 5b 23 31 32 34 30 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e aven)..*.[#1240](https://github.
500c0 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 34 30 com/bbatsov/projectile/pull/1240
500e0 29 3a 20 41 64 64 20 73 6f 6d 65 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 77 69 74 68 20 72 69 67 ):.Add.some.integration.with.rig
50100 67 72 65 70 2e 0a 2a 20 41 64 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d grep..*.Add.`projectile-project-
50120 73 65 61 72 63 68 2d 70 61 74 68 60 2c 20 77 68 69 63 68 20 69 73 20 61 75 74 6f 2d 73 65 61 72 search-path`,.which.is.auto-sear
50140 63 68 65 64 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 20 77 68 65 6e 20 60 70 72 6f 6a 65 63 74 69 ched.for.projects.when.`projecti
50160 6c 65 2d 6d 6f 64 65 60 20 73 74 61 72 74 73 2e 0a 2a 20 41 64 64 20 60 70 72 6f 6a 65 63 74 69 le-mode`.starts..*.Add.`projecti
50180 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d 70 le-discover-projects-in-search-p
501a0 61 74 68 60 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 ath`.command.which.searches.for.
501c0 70 72 6f 6a 65 63 74 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d projects.in.`projectile-project-
501e0 73 65 61 72 63 68 2d 70 61 74 68 60 2e 0a 2a 20 41 75 74 6f 2d 63 6c 65 61 6e 75 70 20 6d 69 73 search-path`..*.Auto-cleanup.mis
50200 73 69 6e 67 20 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 6f 6e 20 60 70 72 6f 6a 65 63 74 69 sing.known-projects.on.`projecti
50220 6c 65 2d 6d 6f 64 65 60 20 73 74 61 72 74 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 le-mode`.start...###.Changes..*.
50240 5b 23 31 32 31 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 [#1213](https://github.com/bbats
50260 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 32 31 33 29 3a 20 43 61 63 68 65 20 ov/projectile/pull/1213):.Cache.
50280 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 6e 6f 6e 2d 66 69 6c 65 64 2d 62 61 63 6b 65 64 project.root.in.non-filed-backed
502a0 20 62 75 66 66 65 72 73 2e 0a 2a 20 5b 23 31 31 37 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 .buffers..*.[#1175](https://gith
502c0 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 ub.com/bbatsov/projectile/pull/1
502e0 31 37 35 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 175):.`projectile-register-proje
50300 63 74 2d 74 79 70 65 60 20 63 61 6e 20 6e 6f 77 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 63 ct-type`.can.now.set.a.default.c
50320 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20 62 75 69 6c 64 20 73 ompilation.directory.for.build.s
50340 79 73 74 65 6d 73 20 74 68 61 74 20 6e 65 65 64 73 20 74 6f 20 62 75 69 6c 64 20 6f 75 74 2d 6f ystems.that.needs.to.build.out-o
50360 66 2d 74 72 65 65 20 28 65 67 2e 20 6d 65 73 6f 6e 29 2e 0a 2a 20 5b 23 31 31 37 35 5d 28 68 74 f-tree.(eg..meson)..*.[#1175](ht
50380 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
503a0 69 6c 65 2f 70 75 6c 6c 2f 31 31 37 35 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 7b 74 65 73 ile/pull/1175):.`projectile-{tes
503c0 74 2c 72 75 6e 7d 2d 70 72 6f 6a 65 63 74 60 20 6e 6f 77 20 72 75 6e 20 69 6e 73 69 64 65 20 60 t,run}-project`.now.run.inside.`
503e0 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 60 2c 20 6a (projectile-compilation-dir)`,.j
50400 75 73 74 20 6c 69 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f ust.like.`projectile-compile-pro
50420 6a 65 63 74 60 2e 0a 2a 20 5b 23 31 31 37 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e ject`..*.[#1175](https://github.
50440 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 31 31 37 35 com/bbatsov/projectile/pull/1175
50460 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 7b 74 65 73 74 2c 72 75 6e 7d 2d 70 72 6f 6a 65 63 ):.`projectile-{test,run}-projec
50480 74 60 20 6e 6f 77 20 73 74 6f 72 65 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 61 6e t`.now.stores.the.default.comman
504a0 64 20 70 65 72 20 64 69 72 65 63 74 6f 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 70 65 72 20 70 d.per.directory.instead.of.per.p
504c0 72 6f 6a 65 63 74 2c 20 6a 75 73 74 20 6c 69 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f roject,.just.like.`projectile-co
504e0 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 60 2e 0a 2a 20 43 61 63 68 65 20 74 68 65 20 72 6f 6f 74 mpile-project`..*.Cache.the.root
50500 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 74 6f 20 69 6e 63 72 65 .of.the.current.project.to.incre
50520 61 73 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 0a 2a 20 5b 23 31 31 32 39 5d 28 68 74 74 70 73 3a ase.performance.*.[#1129](https:
50540 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f //github.com/bbatsov/projectile/
50560 70 75 6c 6c 2f 31 31 32 39 29 3a 20 46 69 78 20 54 52 41 4d 50 20 69 73 73 75 65 73 2e 0a 2a 20 pull/1129):.Fix.TRAMP.issues..*.
50580 41 64 64 20 52 20 44 45 53 43 52 49 50 54 49 4f 4e 20 66 69 6c 65 20 74 6f 20 60 70 72 6f 6a 65 Add.R.DESCRIPTION.file.to.`proje
505a0 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 60 2e 0a 2a 20 49 67 6e ctile-project-root-files`..*.Ign
505c0 6f 72 65 20 62 61 63 6b 75 70 20 66 69 6c 65 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d ore.backup.files.in.`projectile-
505e0 67 65 74 2d 6f 74 68 65 72 2d 66 69 6c 65 73 60 2e 0a 2a 20 49 67 6e 6f 72 65 20 45 6e 73 69 6d get-other-files`..*.Ignore.Ensim
50600 65 20 63 61 63 68 65 20 64 69 72 65 63 74 6f 72 79 2c 20 60 2e 65 6e 73 69 6d 65 5f 63 61 63 68 e.cache.directory,.`.ensime_cach
50620 65 60 2e 0a 2a 20 5b 23 33 36 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f e`..*.[#364](https://github.com/
50640 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 33 36 34 29 3a 20 bbatsov/projectile/issues/364):.
50660 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 60 20 63 `projectile-add-known-project`.c
50680 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 0a 2a 20 an.now.be.used.interactively..*.
506a0 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 60 20 69 73 20 6e 6f 77 20 61 20 67 6c 6f 62 61 `projectile-mode`.is.now.a.globa
506c0 6c 20 6d 6f 64 65 2e 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 60 20 l.mode..*.`projectile-find-tag`.
506e0 6e 6f 77 20 64 65 66 61 75 6c 74 73 20 74 6f 20 78 72 65 66 20 6f 6e 20 45 6d 61 63 73 20 32 35 now.defaults.to.xref.on.Emacs.25
50700 2e 31 2b 2e 0a 2a 20 41 64 64 20 72 65 6c 61 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 60 2e 68 60 .1+..*.Add.relation.between.`.h`
50720 20 61 6e 64 20 60 2e 63 63 60 20 66 69 6c 65 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d .and.`.cc`.files.in.`projectile-
50740 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 60 2e 0a 2a 20 43 61 63 68 65 20 74 68 65 20 6e other-file-alist`..*.Cache.the.n
50760 61 6d 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 66 6f 72 20 6d ame.of.the.current.project.for.m
50780 6f 64 65 2d 6c 69 6e 65 20 64 69 73 70 6c 61 79 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 ode-line.display.of.the.project.
507a0 6e 61 6d 65 2e 0a 2a 20 5b 23 31 30 37 38 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 name..*.[#1078](https://github.c
507c0 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 37 om/bbatsov/projectile/issues/107
507e0 38 29 3a 20 46 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2f 61 67 20 75 73 65 20 64 8):.For.projectile-grep/ag.use.d
50800 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6c 69 6b 65 20 67 72 65 70 2f 72 67 72 65 70 2f 61 67 2e efault.value.like.grep/rgrep/ag.
50820 0a 2a 20 44 6f 6e 27 74 20 74 72 65 61 74 20 60 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 60 20 61 73 .*.Don't.treat.`package.json`.as
50840 20 61 20 70 72 6f 6a 65 63 74 20 6d 61 72 6b 65 72 2e 0a 2a 20 5b 23 39 38 37 5d 28 68 74 74 70 .a.project.marker..*.[#987](http
50860 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
50880 65 2f 69 73 73 75 65 73 2f 39 38 37 29 3a 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 20 69 67 6e e/issues/987):.projectile-ag.ign
508a0 6f 72 65 73 20 61 67 2d 69 67 6e 6f 72 65 2d 6c 69 73 74 20 77 68 65 6e 20 70 72 6f 6a 65 63 74 ores.ag-ignore-list.when.project
508c0 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 69 73 20 67 69 74 0a 2a 20 5b 23 31 31 31 39 5d ile-project-vcs.is.git.*.[#1119]
508e0 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
50900 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 31 31 39 29 3a 20 46 69 6c 65 20 73 65 61 72 63 68 ectile/issues/1119):.File.search
50920 20 69 67 6e 6f 72 65 73 20 6e 6f 6e 2d 72 6f 6f 74 20 64 69 72 73 20 69 66 20 70 72 65 66 69 78 .ignores.non-root.dirs.if.prefix
50940 65 64 20 77 69 74 68 20 22 2a 22 0a 2a 20 54 72 65 61 74 20 6d 65 6d 62 65 72 73 20 6f 66 20 60 ed.with."*".*.Treat.members.of.`
50960 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 projectile-globally-ignored-file
50980 2d 73 75 66 66 69 78 65 73 60 20 61 73 20 66 69 6c 65 20 6e 61 6d 65 20 73 75 66 66 69 78 65 73 -suffixes`.as.file.name.suffixes
509a0 20 28 70 72 65 76 69 6f 75 73 20 74 72 65 61 74 20 61 73 20 66 69 6c 65 20 65 78 74 65 6e 73 69 .(previous.treat.as.file.extensi
509c0 6f 6e 73 29 2e 0a 2a 20 45 6e 73 75 72 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 73 20 61 72 65 ons)..*.Ensure.project.roots.are
509e0 20 61 64 64 65 64 20 61 73 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 20 74 6f 20 61 76 6f .added.as.directory.names.to.avo
50a00 69 64 20 6e 65 61 72 2d 64 75 70 6c 69 63 61 74 65 20 70 72 6f 6a 65 63 74 73 2c 20 65 2e 67 2e id.near-duplicate.projects,.e.g.
50a20 20 22 7e 2f 70 72 6f 6a 65 63 74 2f 22 20 61 6e 64 20 22 7e 2f 70 72 6f 6a 65 63 74 22 2e 0a 2a ."~/project/".and."~/project"..*
50a40 20 44 6f 6e 27 74 20 61 75 74 6f 6c 6f 61 64 20 64 65 66 63 75 73 74 6f 6d 73 2e 0a 2a 20 2a 2a .Don't.autoload.defcustoms..*.**
50a60 28 42 72 65 61 6b 69 6e 67 29 2a 2a 20 52 65 71 75 69 72 65 20 45 6d 61 63 73 20 32 35 2e 31 2e (Breaking)**.Require.Emacs.25.1.
50a80 0a 2a 20 52 65 6d 6f 76 65 20 74 68 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 72 69 7a 7a 6c .*.Remove.the.support.for.grizzl
50aa0 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 31 32 32 32 5d 28 68 74 74 ...###.Bugs.fixed..*.[#1222](htt
50ac0 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 ps://github.com/bbatsov/projecti
50ae0 6c 65 2f 69 73 73 75 65 73 2f 31 32 32 32 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e le/issues/1222):.`projectile-con
50b00 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 60 20 66 61 69 6c 73 20 66 6f 72 20 67 65 6e 65 72 69 figure-project`.fails.for.generi
50b20 63 20 70 72 6f 6a 65 63 74 20 74 79 70 65 0a 2a 20 5b 23 31 31 36 32 5d 28 68 74 74 70 73 3a 2f c.project.type.*.[#1162](https:/
50b40 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 /github.com/bbatsov/projectile/i
50b60 73 73 75 65 73 2f 31 31 36 32 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 60 20 63 61 75 ssues/1162):.`projectile-ag`.cau
50b80 73 65 73 20 22 41 74 74 65 6d 70 74 20 74 6f 20 6d 6f 64 69 66 79 20 72 65 61 64 2d 6f 6e 6c 79 ses."Attempt.to.modify.read-only
50ba0 20 6f 62 6a 65 63 74 22 20 65 72 72 6f 72 2e 0a 2a 20 5b 23 31 31 36 39 5d 28 68 74 74 70 73 3a .object".error..*.[#1169](https:
50bc0 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f //github.com/bbatsov/projectile/
50be0 69 73 73 75 65 73 2f 31 31 36 39 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c issues/1169):.`projectile-compil
50c00 65 2d 70 72 6f 6a 65 63 74 60 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 6d 70 74 20 66 6f 72 20 63 e-project`.does.not.prompt.for.c
50c20 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 2e 0a 2a 20 5b 23 31 30 37 32 5d 28 68 74 ompilation.command..*.[#1072](ht
50c40 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 tps://github.com/bbatsov/project
50c60 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 37 32 29 3a 20 43 72 65 61 74 65 20 74 65 73 74 20 66 69 ile/issues/1072):.Create.test.fi
50c80 6c 65 73 20 6f 6e 6c 79 20 77 69 74 68 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 5b les.only.within.the.project..*.[
50ca0 23 31 30 36 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f #1063](https://github.com/bbatso
50cc0 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 36 33 29 3a 20 53 75 70 70 6f v/projectile/issues/1063):.Suppo
50ce0 72 74 20 46 6f 73 73 69 6c 20 63 68 65 63 6b 6f 75 74 73 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 0a rt.Fossil.checkouts.on.Windows..
50d00 2a 20 5b 23 31 30 32 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 *.[#1024](https://github.com/bba
50d20 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 32 34 29 3a 20 44 6f tsov/projectile/issues/1024):.Do
50d40 20 6e 6f 74 20 63 61 63 68 65 20 69 67 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 .not.cache.ignored.project.files
50d60 2e 0a 2a 20 5b 23 31 30 32 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 ..*.[#1022](https://github.com/b
50d80 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 32 32 29 3a 20 batsov/projectile/issues/1022):.
50da0 53 63 61 6e 20 66 6f 72 20 46 6f 73 73 69 6c 27 73 20 63 68 65 63 6b 6f 75 74 20 44 42 2c 20 6e Scan.for.Fossil's.checkout.DB,.n
50dc0 6f 74 20 69 74 73 20 63 6f 6e 66 69 67 20 44 42 2e 0a 2a 20 5b 23 31 30 30 37 5d 28 68 74 74 70 ot.its.config.DB..*.[#1007](http
50de0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c s://github.com/bbatsov/projectil
50e00 65 2f 69 73 73 75 65 73 2f 31 30 30 37 29 3a 20 4d 61 6b 65 20 75 73 65 20 6f 66 20 60 70 72 6f e/issues/1007):.Make.use.of.`pro
50e20 6a 65 63 74 69 6c 65 2d 67 6f 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a 2a 20 5b 23 31 30 31 31 5d 28 jectile-go-function`..*.[#1011](
50e40 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 https://github.com/bbatsov/proje
50e60 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 31 31 29 3a 20 53 61 76 65 20 70 72 6f 6a 65 63 74 ctile/issues/1011):.Save.project
50e80 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20 72 75 6e 6e 69 6e 67 20 70 72 6f 6a 65 63 74 20 74 65 .files.before.running.project.te
50ea0 73 74 73 2e 0a 2a 20 5b 23 31 30 39 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f sts..*.[#1099](https://github.co
50ec0 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 39 39 m/bbatsov/projectile/issues/1099
50ee0 29 3a 20 46 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20 60 70 72 6f 6a 65 63 74 ):.Fix.the.behaviour.of.`project
50f00 69 6c 65 2d 70 75 72 67 65 2d 64 69 72 2d 66 72 6f 6d 2d 63 61 63 68 65 60 2e 0a 2a 20 5b 23 31 ile-purge-dir-from-cache`..*.[#1
50f20 30 36 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 067](https://github.com/bbatsov/
50f40 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 36 37 29 3a 20 44 6f 6e 27 74 20 6d projectile/issues/1067):.Don't.m
50f60 65 73 73 20 75 70 20 60 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 60 20 61 66 74 65 72 ess.up.`default-directory`.after
50f80 20 73 77 69 74 63 68 69 6e 67 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 5b 23 31 32 34 36 5d 28 68 .switching.projects..*.[#1246](h
50fa0 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
50fc0 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 32 34 36 29 3a 20 44 6f 6e 27 74 20 62 6c 6f 77 20 61 77 tile/issues/1246):.Don't.blow.aw
50fe0 61 79 20 72 65 61 6c 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 20 64 75 72 69 6e 67 20 74 65 73 74 ay.real.project.file.during.test
51000 73 2e 0a 0a 23 23 20 30 2e 31 34 2e 30 20 28 32 30 31 36 2d 30 37 2d 30 38 29 0a 0a 23 23 23 20 s...##.0.14.0.(2016-07-08)..###.
51020 4e 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 41 64 64 20 5b 65 6c 69 78 69 72 5d 28 68 74 74 New.features..*.Add.[elixir](htt
51040 70 3a 2f 2f 65 6c 69 78 69 72 2d 6c 61 6e 67 2e 6f 72 67 29 20 70 72 6f 6a 65 63 74 20 74 79 70 p://elixir-lang.org).project.typ
51060 65 2e 0a 2a 20 41 64 64 20 5b 65 6d 61 63 73 2d 63 61 73 6b 5d 28 68 74 74 70 73 3a 2f 2f 67 69 e..*.Add.[emacs-cask](https://gi
51080 74 68 75 62 2e 63 6f 6d 2f 63 61 73 6b 2f 63 61 73 6b 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 thub.com/cask/cask).project.type
510a0 2e 0a 2a 20 41 64 64 20 5b 62 6f 6f 74 2d 63 6c 6a 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ..*.Add.[boot-clj](https://githu
510c0 62 2e 63 6f 6d 2f 62 6f 6f 74 2d 63 6c 6a 2f 62 6f 6f 74 29 20 70 72 6f 6a 65 63 74 20 74 79 70 b.com/boot-clj/boot).project.typ
510e0 65 2e 0a 2a 20 41 64 64 20 5b 72 61 63 6b 65 74 5d 28 68 74 74 70 3a 2f 2f 72 61 63 6b 65 74 2d e..*.Add.[racket](http://racket-
51100 6c 61 6e 67 2e 6f 72 67 29 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 41 64 64 20 73 75 lang.org).project.type..*.Add.su
51120 70 70 6f 72 74 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 20 75 73 69 6e 67 20 67 72 61 64 6c 65 77 pport.for.projects.using.gradlew
51140 20 73 63 72 69 70 74 2e 0a 2a 20 50 72 65 66 65 72 20 48 61 73 6b 65 6c 6c 20 73 74 61 63 6b 20 .script..*.Prefer.Haskell.stack.
51160 70 72 6f 6a 65 63 74 73 20 6f 76 65 72 20 63 61 62 61 6c 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 projects.over.cabal.projects..*.
51180 41 64 64 20 61 62 69 6c 69 74 79 20 74 6f 20 75 73 65 20 65 6c 69 73 70 20 66 75 6e 63 74 69 6f Add.ability.to.use.elisp.functio
511a0 6e 73 20 66 6f 72 20 74 65 73 74 2c 20 63 6f 6d 70 69 6c 65 20 61 6e 64 20 72 75 6e 20 63 6f 6d ns.for.test,.compile.and.run.com
511c0 6d 61 6e 64 73 2e 0a 2a 20 43 6f 6e 73 69 64 65 72 20 60 54 41 47 53 60 20 61 6e 64 20 60 47 54 mands..*.Consider.`TAGS`.and.`GT
511e0 41 47 53 60 20 72 6f 6f 74 20 6d 61 72 6b 65 72 73 2e 0a 2a 20 41 64 64 20 72 65 6c 61 74 69 6f AGS`.root.markers..*.Add.relatio
51200 6e 20 62 65 74 77 65 65 6e 20 74 68 65 20 60 2e 68 60 2c 20 60 2e 63 78 78 60 2c 20 60 2e 69 78 n.between.the.`.h`,.`.cxx`,.`.ix
51220 78 60 20 61 6e 64 20 60 2e 68 78 78 60 20 66 69 6c 65 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 x`.and.`.hxx`.files.in.`projecti
51240 6c 65 2d 6f 74 68 65 72 2d 66 69 6c 65 2d 61 6c 69 73 74 60 2e 0a 2a 20 41 64 64 20 72 65 6c 61 le-other-file-alist`..*.Add.rela
51260 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 68 65 20 60 2e 68 70 70 60 20 61 6e 64 20 60 2e 63 63 tion.between.the.`.hpp`.and.`.cc
51280 60 20 66 69 6c 65 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 74 68 65 72 2d 66 69 6c `.files.in.`projectile-other-fil
512a0 65 2d 61 6c 69 73 74 60 2e 0a 2a 20 41 64 64 20 73 75 70 70 6f 72 74 20 74 6f 20 73 70 65 63 69 e-alist`..*.Add.support.to.speci
512c0 66 79 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 65 69 74 68 65 72 20 76 69 61 20 60 2e 64 69 72 fy.project.name.either.via.`.dir
512e0 2d 6c 6f 63 61 6c 73 2e 65 6c 60 20 6f 72 20 62 79 20 70 72 6f 76 69 64 69 6e 67 20 61 20 63 75 -locals.el`.or.by.providing.a.cu
51300 73 74 6f 6d 69 7a 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d stomized.`projectile-project-nam
51320 65 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a 2a 20 41 64 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 e-function`..*.Add.a.command.to.
51340 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 73 20 28 60 70 switch.between.open.projects.(`p
51360 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 60 29 2e rojectile-switch-open-project`).
51380 0a 2a 20 41 64 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 65 64 69 74 20 74 68 65 20 2e 64 69 .*.Add.a.command.to.edit.the..di
513a0 72 2d 6c 6f 63 61 6c 73 2e 65 6c 20 66 69 6c 65 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 r-locals.el.file.of.the.project.
513c0 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 64 69 74 2d 64 69 72 2d 6c 6f 63 61 6c 73 60 29 2e 0a (`projectile-edit-dir-locals`)..
513e0 2a 20 41 64 64 20 66 69 6c 65 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 *.Add.file.local.variable.`proje
51400 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 60 2c 20 77 68 69 63 68 20 61 6c 6c 6f 77 ctile-project-root`,.which.allow
51420 73 20 6f 76 65 72 72 69 64 69 6e 67 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 6f 6e s.overriding.the.project.root.on
51440 20 61 20 70 65 72 2d 66 69 6c 65 20 62 61 73 69 73 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 6e .a.per-file.basis..This.allows.n
51460 61 76 69 67 61 74 69 6e 67 20 61 20 64 69 66 66 65 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 66 72 avigating.a.different.project.fr
51480 6f 6d 2c 20 73 61 79 2c 20 61 6e 20 6f 72 67 20 66 69 6c 65 20 69 6e 20 61 20 61 6e 6f 74 68 65 om,.say,.an.org.file.in.a.anothe
514a0 72 20 67 69 74 20 72 65 70 6f 73 69 74 6f 72 79 2e 0a 2a 20 41 64 64 20 60 70 72 6f 6a 65 63 74 r.git.repository..*.Add.`project
514c0 69 6c 65 2d 67 72 65 70 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b 60 2e 0a 2a 20 49 67 6e 6f 72 ile-grep-finished-hook`..*.Ignor
514e0 65 20 66 69 6c 65 20 73 75 66 66 69 78 65 73 20 6c 69 73 74 65 64 20 69 6e 20 60 70 72 6f 6a 65 e.file.suffixes.listed.in.`proje
51500 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 ctile-globally-ignored-file-suff
51520 69 78 65 73 60 20 77 68 65 6e 20 75 73 69 6e 67 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 ixes`.when.using.`projectile-gre
51540 70 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 60 2e 0a 2a 20 41 64 64 20 60 70 p`.and.`projectile-ag`..*.Add.`p
51560 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 60 2c 20 77 68 69 63 68 rojectile-replace-regexp`,.which
51580 20 73 75 70 70 6f 72 74 73 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 62 79 20 72 65 67 65 78 70 20 .supports.replacement.by.regexp.
515a0 77 69 74 68 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 within.a.project..`projectile-re
515c0 70 6c 61 63 65 60 20 69 73 20 6e 6f 77 20 75 73 65 64 20 73 6f 6c 65 6c 79 20 66 6f 72 20 6c 69 place`.is.now.used.solely.for.li
515e0 74 65 72 61 6c 20 72 65 70 6c 61 63 65 6d 65 6e 74 73 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e teral.replacements..*.New.comman
51600 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 60 20 28 3c 6b 62 64 3e 43 d.`projectile-run-shell`.(<kbd>C
51620 2d 63 20 70 20 78 20 73 3c 2f 6b 62 64 3e 29 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 -c.p.x.s</kbd>)..*.New.command.`
51640 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 65 73 68 65 6c 6c 60 20 28 3c 6b 62 64 3e 43 2d 63 projectile-run-eshell`.(<kbd>C-c
51660 20 70 20 78 20 65 3c 2f 6b 62 64 3e 29 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 .p.x.e</kbd>)..*.New.command.`pr
51680 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 74 65 72 6d 60 20 28 3c 6b 62 64 3e 43 2d 63 20 70 20 78 ojectile-run-term`.(<kbd>C-c.p.x
516a0 20 74 3c 2f 6b 62 64 3e 29 2e 0a 2a 20 5b 23 39 37 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 .t</kbd>)..*.[#971](https://gith
516c0 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 39 ub.com/bbatsov/projectile/pull/9
516e0 37 31 29 3a 20 4c 65 74 20 75 73 65 72 20 75 6e 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 69 6e 20 71):.Let.user.unignore.files.in.
51700 60 2e 70 72 6f 6a 65 63 74 69 6c 65 60 20 77 69 74 68 20 74 68 65 20 21 20 70 72 65 66 69 78 2e `.projectile`.with.the.!.prefix.
51720 0a 2a 20 41 64 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 61 64 64 20 61 6c 6c 20 70 72 6f 6a .*.Add.a.command.to.add.all.proj
51740 65 63 74 73 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 74 68 65 20 63 61 63 68 65 ects.in.a.directory.to.the.cache
51760 20 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a 65 63 74 73 2d .(`projectile-discover-projects-
51780 69 6e 2d 64 69 72 65 63 74 6f 72 79 60 29 2e 0a 2a 20 41 64 64 20 61 20 63 6f 6d 6d 61 6e 64 20 in-directory`)..*.Add.a.command.
517a0 74 6f 20 6c 69 73 74 20 64 69 72 74 79 20 76 65 72 73 69 6f 6e 20 63 6f 6e 74 72 6f 6c 6c 65 64 to.list.dirty.version.controlled
517c0 20 70 72 6f 6a 65 63 74 73 20 28 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f 77 73 65 2d 64 69 .projects.(`projectile-browse-di
517e0 72 74 79 2d 70 72 6f 6a 65 63 74 73 60 29 2e 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 rty-projects`)...###.Changes..*.
51800 50 72 65 66 65 72 20 61 67 27 73 20 69 6e 74 65 72 6e 61 6c 20 2e 67 69 74 69 67 6e 6f 72 65 20 Prefer.ag's.internal..gitignore.
51820 70 61 72 73 69 6e 67 2e 0a 2a 20 41 64 64 65 64 20 76 61 72 69 61 62 6c 65 20 74 6f 20 63 6f 6e parsing..*.Added.variable.to.con
51840 74 72 6f 6c 20 75 73 65 20 6f 66 20 65 78 74 65 72 6e 61 6c 20 66 69 6e 64 2d 74 61 67 20 69 6d trol.use.of.external.find-tag.im
51860 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 0a 2a 20 53 70 65 63 69 66 79 20 60 2d 2d 77 69 74 68 plementations..*.Specify.`--with
51880 2d 6b 65 65 70 2e 73 6f 75 72 63 65 60 20 61 72 67 75 6d 65 6e 74 20 77 68 65 6e 20 69 6e 73 74 -keep.source`.argument.when.inst
518a0 61 6c 6c 69 6e 67 20 52 20 70 72 6f 6a 65 63 74 73 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 alling.R.projects..###.Bugs.fixe
518c0 64 0a 0a 2a 20 5b 23 38 37 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 d..*.[#871](https://github.com/b
518e0 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 38 37 31 29 3a 20 53 batsov/projectile/issues/871):.S
51900 74 6f 70 20 61 64 76 69 63 65 20 66 6f 72 20 60 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 66 69 6e 64 top.advice.for.`compilation-find
51920 2d 66 69 6c 65 60 20 74 6f 20 6f 76 65 72 72 69 64 65 20 6f 74 68 65 72 20 61 64 76 69 63 65 73 -file`.to.override.other.advices
51940 2e 0a 2a 20 5b 23 35 35 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 ..*.[#557](https://github.com/bb
51960 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 35 35 37 29 3a 20 73 74 atsov/projectile/issues/557):.st
51980 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 ack.overflow.in.`projectile-find
519a0 2d 74 61 67 60 2e 0a 2a 20 5b 23 39 35 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 -tag`..*.[#955](https://github.c
519c0 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 39 35 35 om/bbatsov/projectile/issues/955
519e0 29 3a 20 45 72 72 6f 72 20 77 68 69 6c 65 20 74 6f 67 67 6c 69 6e 67 20 62 65 74 77 65 65 6e 20 ):.Error.while.toggling.between.
51a00 74 65 73 74 20 61 6e 64 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 0a 2a 20 5b 23 39 35 32 5d 28 68 test.and.source.file..*.[#952](h
51a20 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
51a40 74 69 6c 65 2f 69 73 73 75 65 73 2f 39 35 32 29 3a 20 56 43 53 20 73 75 62 6d 6f 64 75 6c 65 73 tile/issues/952):.VCS.submodules
51a60 20 62 72 6f 75 67 68 74 20 69 6e 20 65 76 65 6e 20 74 68 6f 75 67 68 74 20 6e 6f 74 20 64 65 73 .brought.in.even.thought.not.des
51a80 63 65 6e 64 65 6e 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 2a 20 5b 23 35 37 36 cendent.of.project.root..*.[#576
51aa0 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f ](https://github.com/bbatsov/pro
51ac0 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 35 37 36 29 3a 20 60 70 72 6f 6a 65 63 74 69 6c 65 jectile/issues/576):.`projectile
51ae0 2d 72 65 70 6c 61 63 65 60 20 73 74 6f 6d 70 73 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 -replace`.stomps.regular.express
51b00 69 6f 6e 73 2e 0a 2a 20 5b 23 39 35 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f ions..*.[#957](https://github.co
51b20 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 39 35 37 29 3a 20 m/bbatsov/projectile/pull/957):.
51b40 57 68 65 6e 20 6f 70 65 6e 69 6e 67 20 61 20 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 20 66 72 When.opening.a.specified.file.fr
51b60 6f 6d 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 2c 20 64 6f 20 6e 6f 74 20 65 72 72 6f 72 20 69 6e om.the.terminal,.do.not.error.in
51b80 73 69 64 65 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 63 75 72 72 65 6e side.of.`projectile-cache-curren
51ba0 74 2d 66 69 6c 65 60 2e 0a 2a 20 5b 23 39 38 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 t-file`..*.[#984](https://github
51bc0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 70 75 6c 6c 2f 39 38 34 .com/bbatsov/projectile/pull/984
51be0 29 3a 20 45 72 72 6f 72 20 77 68 65 6e 20 61 20 70 72 6f 6a 65 63 74 20 69 73 20 61 20 73 79 6d ):.Error.when.a.project.is.a.sym
51c00 6c 69 6e 6b 20 74 68 61 74 20 63 68 61 6e 67 65 73 20 74 61 72 67 65 74 2e 0a 2a 20 5b 23 31 30 link.that.changes.target..*.[#10
51c20 31 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 13](https://github.com/bbatsov/p
51c40 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 30 31 33 29 3a 20 60 70 72 6f 6a 65 63 74 rojectile/issues/1013):.`project
51c60 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 60 20 6d 61 79 20 72 65 74 75 72 6e ile-project-buffer-p`.may.return
51c80 20 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c 74 20 6f 6e 20 57 69 6e 64 6f 77 73 2e 0a 0a 23 .incorrect.result.on.Windows...#
51ca0 23 20 30 2e 31 33 2e 30 20 28 32 30 31 35 2d 31 30 2d 32 31 29 0a 0a 23 23 23 20 4e 65 77 20 66 #.0.13.0.(2015-10-21)..###.New.f
51cc0 65 61 74 75 72 65 73 0a 0a 2a 20 41 64 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 65 66 6f 72 eatures..*.Add.`projectile-befor
51ce0 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 60 2e 0a 2a 20 41 64 64 20 74 68 e-switch-project-hook`..*.Add.th
51d00 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 70 72 6f 6a 65 63 74 e.ability.to.specify.the.project
51d20 20 74 79 70 65 20 76 69 61 20 60 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 60 2e 0a 2a 20 41 64 .type.via.`.dir-locals.el`..*.Ad
51d40 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 20 75 73 69 6e 67 20 4d 69 64 d.support.for.projects.using.Mid
51d60 6a 65 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 63 72 65 61 74 65 20 je..*.Add.the.ability.to.create.
51d80 6d 69 73 73 69 6e 67 20 74 65 73 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 28 63 6f 6e missing.tests.automatically.(con
51da0 74 72 6f 6c 6c 65 64 20 76 69 61 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 72 65 61 trolled.via.the.`projectile-crea
51dc0 74 65 2d 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c 65 73 60 20 64 65 66 63 75 73 74 6f 6d te-missing-test-files`.defcustom
51de0 29 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 64 79 6e 61 6d 69 63 61 )..*.Add.the.ability.to.dynamica
51e00 6c 6c 79 20 64 65 63 69 64 65 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 73 68 6f 75 6c 64 20 62 lly.decide.if.a.project.should.b
51e20 65 20 61 64 64 65 64 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f e.added.to.`projectile-known-pro
51e40 6a 65 63 74 73 60 20 28 76 69 61 20 6e 65 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f jects`.(via.new.`projectile-igno
51e60 72 65 64 2d 70 72 6f 6a 65 63 74 2d 66 75 6e 63 74 69 6f 6e 60 20 64 65 66 63 75 73 74 6f 6d 29 red-project-function`.defcustom)
51e80 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 67 69 73 74 65 72 20 ..*.Add.the.ability.to.register.
51ea0 6e 65 77 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 77 69 new.project.types.dynamically.wi
51ec0 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d th.`projectile-register-project-
51ee0 74 79 70 65 60 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 type`..*.Add.the.ability.to.spec
51f00 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 74 65 ify.a.project.compilation.and.te
51f20 73 74 20 63 6f 6d 6d 61 6e 64 73 20 76 69 61 20 60 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 60 st.commands.via.`.dir-locals.el`
51f40 2e 0a 54 68 69 73 20 69 73 20 64 6f 6e 65 20 76 69 61 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 ..This.is.done.via.the.variables
51f60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e .`projectile-project-compilation
51f80 2d 63 6d 64 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 65 -cmd`.and.`projectile-project-te
51fa0 73 74 2d 63 6d 64 60 2e 0a 2a 20 5b 23 34 38 39 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 st-cmd`..*.[#489](https://github
51fc0 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 34 .com/bbatsov/projectile/issues/4
51fe0 38 39 29 3a 20 4e 65 77 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 60 70 72 89):.New.interactive.command.`pr
52000 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 60 2e 0a 2a 20 4f 70 74 69 6f 6e 61 ojectile-run-project`..*.Optiona
52020 6c 6c 79 20 72 75 6e 20 5b 6d 6f 6e 6b 79 5d 28 68 74 74 70 3a 2f 2f 61 6e 61 6e 74 68 61 6b 75 lly.run.[monky](http://ananthaku
52040 6d 61 72 61 6e 2e 69 6e 2f 6d 6f 6e 6b 79 2f 29 20 6f 6e 20 4d 65 72 63 75 72 69 61 6c 20 70 72 maran.in/monky/).on.Mercurial.pr
52060 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 ojects..*.Add.the.ability.to.spe
52080 63 69 66 79 20 61 20 70 72 6f 6a 65 63 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 69 72 65 63 cify.a.project.compilation.direc
520a0 74 6f 72 79 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 tory.relative.to.the.root.direct
520c0 6f 72 79 20 76 69 61 20 60 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 60 20 77 69 74 68 20 74 68 ory.via.`.dir-locals.el`.with.th
520e0 65 20 76 61 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 63 e.variable.`projectile-project-c
52100 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 60 2e 0a 2a 20 57 68 65 6e 20 74 68 65 72 65 20 69 73 ompilation-dir`..*.When.there.is
52120 20 61 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 .a.selected.region,.projectile-a
52140 67 2c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 g,.projectile-grep,.projectile-r
52160 65 70 6c 61 63 65 20 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 20 75 eplace.and.projectile-find-tag.u
52180 73 65 73 20 69 74 27 73 20 63 6f 6e 74 65 6e 74 20 61 73 20 61 20 73 65 61 72 63 68 20 74 65 72 ses.it's.content.as.a.search.ter
521a0 6d 20 69 6e 73 74 65 61 64 20 6f 66 20 73 79 6d 62 6f 6c 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 23 m.instead.of.symbol.at.point...#
521c0 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 52 65 6e 61 6d 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 ##.Changes..*.Rename.`projectile
521e0 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 60 20 74 6f 20 60 70 72 6f 6a 65 63 -switch-project-hook`.to.`projec
52200 74 69 6c 65 2d 61 66 74 65 72 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 60 2e tile-after-switch-project-hook`.
52220 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 60 20 .*.`projectile-compile-project`.
52240 6e 6f 77 20 6f 66 66 65 72 73 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 6d 70 6c 65 74 69 6f now.offers.appropriate.completio
52260 6e 0a 74 61 72 67 65 74 73 20 65 76 65 6e 20 77 68 65 6e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 n.targets.even.when.called.from.
52280 61 20 73 75 62 64 69 72 65 63 74 6f 72 79 2e 0a 2a 20 41 64 64 20 61 6e 20 61 72 67 75 6d 65 6e a.subdirectory..*.Add.an.argumen
522a0 74 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 72 65 67 65 78 70 20 74 6f 20 73 65 61 72 63 t.specifying.the.regexp.to.searc
522c0 68 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 60 2e 0a 2a 20 55 73 65 20 60 68 h.to.`projectile-grep`..*.Use.`h
522e0 65 6c 70 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 60 20 69 6e 73 74 65 61 64 20 6f 66 20 elp-projectile-grep`.instead.of.
52300 60 68 65 6c 6d 2d 66 69 6e 64 2d 66 69 6c 65 60 20 77 68 65 6e 20 73 65 6c 65 63 74 69 6e 67 20 `helm-find-file`.when.selecting.
52320 61 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 4f 6d 69 74 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 a.project..*.Omit.current.buffer
52340 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 .from.`projectile-switch-to-buff
52360 65 72 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 er`.and.`projectile-switch-to-bu
52380 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 60 20 63 68 6f 69 63 65 73 2e 0a 0a 23 23 23 ffer-other-window`.choices...###
523a0 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 5b 23 37 32 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 .Bugs.fixed..*.[#721](https://gi
523c0 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 thub.com/bbatsov/projectile/issu
523e0 65 73 2f 37 32 31 23 69 73 73 75 65 63 6f 6d 6d 65 6e 74 2d 31 30 30 38 33 30 35 30 37 29 3a 20 es/721#issuecomment-100830507):.
52400 52 65 6d 6f 76 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 72 6f 6d 20 60 68 65 6c 6d Remove.current.buffer.from.`helm
52420 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 2e 0a 2a 20 5b -projectile-switch-project`..*.[
52440 23 36 36 37 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 #667](https://github.com/bbatsov
52460 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 36 36 37 29 20 55 73 65 20 60 66 69 6c /projectile/issues/667).Use.`fil
52480 65 2d 74 72 75 65 6e 61 6d 65 60 20 77 68 65 6e 20 63 61 63 68 69 6e 67 20 66 69 6c 65 6e 61 6d e-truename`.when.caching.filenam
524a0 65 73 20 74 6f 20 70 72 65 76 65 6e 74 20 64 75 70 6c 69 63 61 74 65 2f 73 79 6d 6c 69 6e 6b 65 es.to.prevent.duplicate/symlinke
524c0 64 20 66 69 6c 65 70 61 74 68 73 20 66 72 6f 6d 20 61 70 70 65 61 72 69 6e 67 20 77 68 65 6e 20 d.filepaths.from.appearing.when.
524e0 6f 70 65 6e 69 6e 67 20 61 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 2e 0a 2a 20 5b 23 36 32 35 5d opening.a.project.file..*.[#625]
52500 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a (https://github.com/bbatsov/proj
52520 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 36 32 35 29 3a 20 45 6e 73 75 72 65 20 74 68 65 20 64 ectile/issues/625):.Ensure.the.d
52540 69 72 65 63 74 6f 72 79 20 68 61 73 20 61 20 74 72 61 69 6c 69 6e 67 20 73 6c 61 73 68 20 77 68 irectory.has.a.trailing.slash.wh
52560 69 6c 65 20 73 65 61 72 63 68 69 6e 67 20 66 6f 72 20 69 74 2e 0a 2a 20 5b 23 37 36 33 5d 28 68 ile.searching.for.it..*.[#763](h
52580 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 ttps://github.com/bbatsov/projec
525a0 74 69 6c 65 2f 69 73 73 75 65 73 2f 37 36 33 29 3a 20 43 68 65 63 6b 20 66 6f 72 20 60 70 72 6f tile/issues/763):.Check.for.`pro
525c0 6a 65 63 74 69 6c 65 2d 75 73 65 2d 67 69 74 2d 67 72 65 70 60 20 69 6e 20 60 68 65 6c 6d 2d 70 jectile-use-git-grep`.in.`helm-p
525e0 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 60 0a 2a 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c rojectile-grep`.*.Fix.`projectil
52600 65 2d 70 61 72 73 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 60 20 74 6f 20 70 61 72 73 65 e-parse-dirconfig-file`.to.parse
52620 20 6e 6f 6e 2d 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 73 20 70 72 6f 70 65 72 6c 79 2e 0a .non-ASCII.characters.properly..
52640 0a 23 23 20 30 2e 31 32 2e 30 20 28 32 30 31 35 2d 30 33 2d 32 39 29 0a 0a 23 23 23 20 4e 65 77 .##.0.12.0.(2015-03-29)..###.New
52660 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 52 65 70 6c 61 63 65 20 48 65 6c 6d 20 65 71 75 69 76 61 .features..*.Replace.Helm.equiva
52680 6c 65 6e 74 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d lent.commands.in.`projectile-com
526a0 6d 61 6e 64 65 72 60 20 77 68 65 6e 20 75 73 69 6e 67 20 48 65 6c 6d 2e 0a 2a 20 41 64 64 20 72 mander`.when.using.Helm..*.Add.r
526c0 65 70 6c 61 63 65 6d 65 6e 74 20 63 6f 6d 6d 61 6e 64 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 eplacement.commands.projectile-g
526e0 72 65 70 2c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 6b 20 61 6e 64 20 70 72 6f 6a 65 63 74 69 rep,.projectile-ack.and.projecti
52700 6c 65 2d 61 67 20 77 69 74 68 20 69 74 73 20 48 65 6c 6d 20 76 65 72 73 69 6f 6e 2e 0a 2a 20 41 le-ag.with.its.Helm.version..*.A
52720 64 64 20 76 69 72 74 75 61 6c 20 64 69 72 65 63 74 6f 72 79 20 6d 61 6e 61 67 65 72 20 74 68 61 dd.virtual.directory.manager.tha
52740 74 20 61 6c 6c 6f 77 73 20 74 6f 20 63 72 65 61 74 65 2f 75 70 64 61 74 65 20 28 61 64 64 20 6f t.allows.to.create/update.(add.o
52760 72 20 64 65 6c 65 74 65 20 66 69 6c 65 73 29 20 61 20 44 69 72 65 64 20 62 75 66 66 65 72 20 62 r.delete.files).a.Dired.buffer.b
52780 61 73 65 64 20 6f 6e 20 50 72 6f 6a 65 63 74 69 6c 65 20 66 69 6c 65 73 2e 0a 2a 20 41 64 64 20 ased.on.Projectile.files..*.Add.
527a0 61 20 6e 65 77 20 48 65 6c 6d 20 63 6f 6d 6d 61 6e 64 3a 20 60 68 65 6c 6d 2d 70 72 6f 6a 65 63 a.new.Helm.command:.`helm-projec
527c0 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 tile-find-file-in-known-projects
527e0 60 20 74 68 61 74 20 6f 70 65 6e 73 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 61 6c 6c 20 6b 6e `.that.opens.all.files.in.all.kn
52800 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 20 61 6e 20 61 63 74 69 6f 6e 20 66 6f own.projects..*.Add.an.action.fo
52820 72 20 60 68 65 6c 6d 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 r.`helm-projectile-switch-projec
52840 74 60 20 74 6f 20 64 65 6c 65 74 65 20 6d 75 6c 74 69 70 6c 65 20 6d 61 72 6b 65 64 20 70 72 6f t`.to.delete.multiple.marked.pro
52860 6a 65 63 74 73 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65 74 72 jects..*.Add.the.ability.to.retr
52880 69 65 76 65 20 66 69 6c 65 73 20 69 6e 20 61 6c 6c 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 75 ieve.files.in.all.sub-projects.u
528a0 6e 64 65 72 20 61 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 2a 20 41 64 64 20 60 70 72 6f 6a nder.a.project.root..*.Add.`proj
528c0 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 60 20 61 6e 64 20 60 68 65 6c 6d ectile-find-file-dwim`.and.`helm
528e0 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 64 77 69 6d 60 20 63 6f 6d 6d -projectile-find-file-dwim`.comm
52900 61 6e 64 73 2e 0a 2a 20 50 72 6f 76 69 64 65 20 61 63 74 75 61 6c 20 48 65 6c 6d 20 63 6f 6d 6d ands..*.Provide.actual.Helm.comm
52920 61 6e 64 73 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 6f 6d 6d 61 ands.for.common.Projectile.comma
52940 6e 64 73 2e 0a 2a 20 55 73 65 20 65 78 69 73 74 69 6e 67 20 48 65 6c 6d 20 61 63 74 69 6f 6e 73 nds..*.Use.existing.Helm.actions
52960 20 61 6e 64 20 6d 61 70 20 69 6e 20 60 68 65 6c 6d 2d 66 69 6e 64 2d 66 69 6c 65 73 60 20 74 68 .and.map.in.`helm-find-files`.th
52980 61 74 20 61 6c 6c 6f 77 73 20 60 68 65 6c 6d 2d 73 6f 75 72 63 65 2d 70 72 6f 6a 65 63 74 69 6c at.allows.`helm-source-projectil
529a0 65 2d 66 69 6c 65 73 2d 6c 69 73 74 60 0a 74 6f 20 62 65 68 61 76 65 20 6c 69 6b 65 20 60 68 65 e-files-list`.to.behave.like.`he
529c0 6c 6d 2d 66 69 6e 64 2d 66 69 6c 65 73 60 2c 20 73 75 63 68 20 61 73 20 6d 75 6c 74 69 66 69 6c lm-find-files`,.such.as.multifil
529e0 65 20 73 65 6c 65 63 74 69 6f 6e 20 61 6e 64 20 6f 70 65 6e 69 6e 67 20 6f 72 20 64 65 6c 65 74 e.selection.and.opening.or.delet
52a00 65 20 6f 6e 20 73 65 6c 65 63 74 65 64 20 66 69 6c 65 73 2e 0a 2a 20 41 64 64 20 63 6f 6d 70 69 e.on.selected.files..*.Add.compi
52a20 6c 65 20 61 63 74 69 6f 6e 20 74 6f 20 60 68 65 6c 6d 2d 70 72 6f 6a 65 63 74 69 6c 65 60 2e 0a le.action.to.`helm-projectile`..
52a40 2a 20 41 6c 6c 6f 77 73 20 75 73 69 6e 67 20 45 73 68 65 6c 6c 20 61 6e 64 20 4d 61 67 69 74 20 *.Allows.using.Eshell.and.Magit.
52a60 6f 75 74 73 69 64 65 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 20 69 6e 20 60 68 65 6c 6d 2d 70 72 outside.of.a.project.in.`helm-pr
52a80 6f 6a 65 63 74 69 6c 65 60 2e 0a 2a 20 41 64 64 20 48 65 6c 6d 20 61 63 74 69 6f 6e 20 66 6f 72 ojectile`..*.Add.Helm.action.for
52aa0 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 67 72 65 70 20 69 6e 20 74 68 65 20 73 65 6c 65 63 74 65 .incremental.grep.in.the.selecte
52ac0 64 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 d.projects..*.Add.command.projec
52ae0 74 69 6c 65 2d 66 69 6e 64 2d 6f 74 68 65 72 2d 66 69 6c 65 20 20 53 77 69 74 63 68 20 62 65 74 tile-find-other-file..Switch.bet
52b00 77 65 65 6e 20 66 69 6c 65 73 20 77 69 74 68 0a 74 68 65 20 73 61 6d 65 20 20 6e 61 6d 65 20 62 ween.files.with.the.same..name.b
52b20 75 74 20 64 69 66 66 65 72 65 6e 74 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 2a 20 41 64 64 20 48 ut.different.extensions..*.Add.H
52b40 65 6c 6d 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 73 77 69 74 63 68 20 70 72 6f 6a 65 63 74 2e elm.interface.to.switch.project.
52b60 20 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 63 68 65 63 6b 6f 75 74 20 74 68 65 20 66 .For.more.details.checkout.the.f
52b80 69 6c 65 0a 52 45 41 44 4d 45 2e 6d 64 2e 0a 2a 20 4d 61 6b 65 20 74 68 65 20 6d 6f 64 65 20 6c ile.README.md..*.Make.the.mode.l
52ba0 69 6e 65 20 66 6f 72 6d 61 74 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 77 69 74 68 20 60 70 72 ine.format.customizable.with.`pr
52bc0 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 60 0a 2a 20 41 64 64 20 73 75 70 70 6f 72 ojectile-mode-line`.*.Add.suppor
52be0 74 20 66 6f 72 20 60 63 61 72 67 6f 2e 74 6f 6d 6c 60 20 70 72 6f 6a 65 63 74 73 0a 2a 20 54 72 t.for.`cargo.toml`.projects.*.Tr
52c00 79 20 74 6f 20 75 73 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 74 6f 20 66 69 6e 64 20 66 69 6c 65 y.to.use.projectile.to.find.file
52c20 73 20 69 6e 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 73 0a 2a 20 53 75 70 70 6f s.in.compilation.buffers.*.Suppo
52c40 72 74 20 60 68 65 6c 6d 60 20 61 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 79 73 74 65 6d rt.`helm`.as.a.completion.system
52c60 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 .*.New.command.`projectile-proje
52c80 63 74 2d 69 6e 66 6f 60 20 64 69 73 70 6c 61 79 73 20 62 61 73 69 63 20 69 6e 66 6f 20 61 62 6f ct-info`.displays.basic.info.abo
52ca0 75 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 4e 65 77 20 60 64 ut.the.current.project..*.New.`d
52cc0 65 66 63 75 73 74 6f 6d 60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 efcustom`.`projectile-globally-i
52ce0 67 6e 6f 72 65 64 2d 62 75 66 66 65 72 73 60 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 69 67 gnored-buffers`.allows.you.to.ig
52d00 6e 6f 72 65 0a 62 75 66 66 65 72 73 20 62 79 20 6e 61 6d 65 0a 2a 20 4e 65 77 20 60 64 65 66 63 nore.buffers.by.name.*.New.`defc
52d20 75 73 74 6f 6d 60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f ustom`.`projectile-globally-igno
52d40 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 60 20 61 6c 6c 6f 77 73 0a 79 6f 75 20 74 6f red-file-suffixes`.allows.you.to
52d60 20 67 6c 6f 62 61 6c 6c 79 20 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 77 69 74 68 20 70 61 72 74 .globally.ignore.files.with.part
52d80 69 63 75 6c 61 72 20 65 78 74 65 6e 73 69 6f 6e 73 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a icular.extensions..###.Changes..
52da0 2a 20 67 65 74 2d 6f 74 68 65 72 2d 66 69 6c 65 73 20 72 65 74 75 72 6e 73 20 6d 6f 72 65 20 61 *.get-other-files.returns.more.a
52dc0 63 63 75 72 61 74 65 20 72 65 73 75 6c 74 73 20 66 6f 72 20 66 69 6c 65 73 20 77 69 74 68 20 74 ccurate.results.for.files.with.t
52de0 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 70 6c 61 63 65 64 20 75 6e 64 65 72 20 64 69 66 66 65 72 he.same.name.placed.under.differ
52e00 65 6e 74 20 64 69 72 65 63 74 6f 72 69 65 73 0a 2a 20 43 6f 6c 6c 65 63 74 20 73 65 61 72 63 68 ent.directories.*.Collect.search
52e20 20 74 6f 6f 6c 20 28 60 67 72 65 70 60 2c 20 60 61 67 60 2c 20 60 61 63 6b 60 29 20 6b 65 79 62 .tool.(`grep`,.`ag`,.`ack`).keyb
52e40 69 6e 64 69 6e 67 73 20 75 6e 64 65 72 20 61 20 63 6f 6d 6d 6f 6e 20 6b 65 79 6d 61 70 20 70 72 indings.under.a.common.keymap.pr
52e60 65 66 69 78 20 28 60 43 2d 63 20 70 20 73 60 29 0a 2a 20 52 65 6d 6f 76 65 20 60 64 65 66 63 75 efix.(`C-c.p.s`).*.Remove.`defcu
52e80 73 74 6f 6d 60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 65 6d 62 65 72 2d 77 69 6e 64 6f stom`.`projectile-remember-windo
52ea0 77 2d 63 6f 6e 66 69 67 73 60 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 60 70 65 72 73 70 2d 70 72 w-configs`.in.favor.of.`persp-pr
52ec0 6f 6a 65 63 74 69 6c 65 2e 65 6c 60 2e 0a 2a 20 50 72 6f 67 72 65 73 73 20 72 65 70 6f 72 74 65 ojectile.el`..*.Progress.reporte
52ee0 72 20 66 6f 72 20 74 68 65 20 6e 61 74 69 76 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 r.for.the.native.indexing.method
52f00 2e 0a 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 46 69 78 20 60 70 72 6f 6a 65 63 ...###.Bugs.fixed..*.Fix.`projec
52f20 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 60 20 74 6f 20 77 6f 72 6b 20 69 6e tile-regenerate-tags`.to.work.in
52f40 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 69 6e 63 6c 75 64 65 20 73 70 61 63 65 73 .directories.that.include.spaces
52f60 2e 0a 2a 20 50 72 65 76 65 6e 74 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 ..*.Prevent.`projectile-kill-buf
52f80 66 65 72 73 60 20 66 72 6f 6d 20 74 72 79 69 6e 67 20 74 6f 20 6b 69 6c 6c 20 69 6e 64 69 72 65 fers`.from.trying.to.kill.indire
52fa0 63 74 0a 62 75 66 66 65 72 73 2e 0a 2a 20 5b 23 34 31 32 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 ct.buffers..*.[#412](https://git
52fc0 68 75 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 hub.com/bbatsov/projectile/issue
52fe0 73 2f 34 31 32 29 3a 20 48 61 6e 64 6c 65 20 6d 75 6c 74 69 70 6c 65 20 70 6f 73 73 69 62 6c 65 s/412):.Handle.multiple.possible
53000 20 74 61 72 67 65 74 73 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 .targets.in.`projectile-toggle-b
53020 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 60 2e 0a etween-implementation-or-test`..
53040 0a 23 23 20 30 2e 31 31 2e 30 20 28 32 30 31 34 2d 30 35 2d 32 37 29 0a 0a 23 23 23 20 4e 65 77 .##.0.11.0.(2014-05-27)..###.New
53060 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 64 .features..*.Added.support.for.d
53080 65 66 61 75 6c 74 20 66 69 6c 65 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 20 74 6f 20 60 70 72 6f efault.file.glob.pattern.to.`pro
530a0 6a 65 63 74 69 6c 65 2d 67 72 65 70 60 0a 2a 20 61 64 64 65 64 20 66 69 6c 65 20 65 78 69 73 74 jectile-grep`.*.added.file.exist
530c0 65 6e 63 65 20 63 61 63 68 65 20 77 69 74 68 20 64 65 66 63 75 73 74 6f 6d 73 0a 60 70 72 6f 6a ence.cache.with.defcustoms.`proj
530e0 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 73 74 73 2d 72 65 6d 6f 74 65 2d 63 61 63 68 65 2d ectile-file-exists-remote-cache-
53100 65 78 70 69 72 65 60 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 65 78 69 expire`.and.`projectile-file-exi
53120 73 74 73 2d 6c 6f 63 61 6c 2d 63 61 63 68 65 2d 65 78 70 69 72 65 60 2e 0a 2a 20 61 64 64 65 64 sts-local-cache-expire`..*.added
53140 20 6e 65 77 20 64 65 66 63 75 73 74 6f 6d 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a .new.defcustoms.`projectile-proj
53160 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e ect-root-files-top-down-recurrin
53180 67 60 2c 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c g`,.`projectile-project-root-fil
531a0 65 73 2d 62 6f 74 74 6f 6d 2d 75 70 60 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 es-bottom-up`.and.`projectile-pr
531c0 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 66 75 6e 63 74 69 6f 6e 73 60 2e 0a 2a 20 41 oject-root-files-functions`..*.A
531e0 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 61 76 dded.new.command.`projectile-sav
53200 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 e-project-buffers`..*.Added.new.
53220 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 command.`projectile-cleanup-know
53240 6e 2d 70 72 6f 6a 65 63 74 73 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 n-projects`..*.Added.new.command
53260 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 60 0a 61 6e s.`projectile-display-buffer`.an
53280 64 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 2d 6f 74 68 65 72 2d 77 69 6e 64 d`projectile-find-dir-other-wind
532a0 6f 77 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e ow`..*.Added.new.interactive.fun
532c0 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 ction.`projectile-project-buffer
532e0 73 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 60 0a 77 68 69 63 68 20 72 75 6e 73 20 6e 65 77 20 60 s-other-buffer`.which.runs.new.`
53300 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 2d 6e 6f 6e 2d 76 projectile-project-buffers-non-v
53320 69 73 69 62 6c 65 60 20 66 75 6e 63 74 69 6f 6e 2c 20 74 68 65 20 66 6f 72 6d 65 72 0a 69 73 20 isible`.function,.the.former.is.
53340 62 6f 75 6e 64 20 74 6f 20 60 43 2d 63 20 70 20 45 53 43 60 2e 0a 2a 20 4e 65 77 20 76 61 72 69 bound.to.`C-c.p.ESC`..*.New.vari
53360 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 69 64 6c 65 2d 74 69 6d able.`projectile-enable-idle-tim
53380 65 72 60 20 74 75 72 6e 73 20 6f 6e 20 61 6e 20 69 64 6c 65 20 74 69 6d 65 72 0a 77 68 69 63 68 er`.turns.on.an.idle.timer.which
533a0 20 72 75 6e 73 20 74 68 65 20 68 6f 6f 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 6c 65 2d .runs.the.hook.`projectile-idle-
533c0 74 69 6d 65 72 2d 68 6f 6f 6b 60 20 65 76 65 72 79 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 64 timer-hook`.every.`projectile-id
533e0 6c 65 2d 74 69 6d 65 72 2d 73 65 63 6f 6e 64 73 60 20 73 65 63 6f 6e 64 73 20 77 68 65 6e 20 6e le-timer-seconds`.seconds.when.n
53400 6f 6e 2d 6e 69 6c 2e 0a 2a 20 4e 65 77 20 64 65 66 63 75 73 74 6f 6d 20 60 70 72 6f 6a 65 63 74 on-nil..*.New.defcustom.`project
53420 69 6c 65 2d 72 65 6d 65 6d 62 65 72 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 73 60 20 77 69 6c ile-remember-window-configs`.wil
53440 6c 20 6d 61 6b 65 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 l.make.`projectile-switch-projec
53460 74 60 20 72 65 73 74 6f 72 65 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 77 69 6e 64 6f t`.restore.the.most.recent.windo
53480 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 69 66 0a 61 6e 79 29 20 6f 66 20 74 68 65 20 w.configuration.(if.any).of.the.
534a0 74 61 72 67 65 74 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 target.project..*.New.command.`p
534c0 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 60 2e 0a rojectile-run-command-in-root`..
534e0 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 *.New.command.`projectile-run-sh
53500 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 60 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d ell-command-in-root`..*.New.comm
53520 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 61 73 79 6e 63 2d 73 68 65 6c 6c 2d and.`projectile-run-async-shell-
53540 63 6f 6d 6d 61 6e 64 2d 69 6e 2d 72 6f 6f 74 60 2e 0a 2a 20 4e 65 77 20 64 65 66 63 75 73 74 6f command-in-root`..*.New.defcusto
53560 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 75 73 65 2d 67 69 74 2d 67 72 65 70 60 20 77 69 6c 6c m.`projectile-use-git-grep`.will
53580 20 6d 61 6b 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 60 20 75 73 65 20 60 67 69 74 .make.`projectile-grep`.use.`git
535a0 20 67 72 65 70 60 0a 66 6f 72 20 67 69 74 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 65 64 .grep`.for.git.projects..*.Added
535c0 20 6e 65 77 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 60 20 6d 65 74 68 .new.`projectile-commander`.meth
535e0 6f 64 73 20 3f 76 20 61 6e 64 20 3f 52 20 77 68 69 63 68 20 72 75 6e 0a 60 70 72 6f 6a 65 63 74 ods.?v.and.?R.which.run.`project
53600 69 6c 65 2d 76 63 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 ile-vc`.and.`projectile-regenera
53620 74 65 2d 74 61 67 73 60 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 2a 20 60 70 72 6f 6a 65 te-tags`,.respectively..*.`proje
53640 63 74 69 6c 65 2d 76 63 60 20 77 69 6c 6c 20 75 73 65 20 60 6d 61 67 69 74 2d 73 74 61 74 75 73 ctile-vc`.will.use.`magit-status
53660 60 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 2a 20 4e 65 77 20 66 75 6e 63 74 69 6f 6e 73 20 `.if.available..*.New.functions.
53680 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d `projectile-find-implementation-
536a0 6f 72 2d 74 65 73 74 60 20 61 6e 64 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 69 6d or-test`.and.`projectile-find-im
536c0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 2d 6f 74 68 65 72 2d 77 69 6e 64 6f plementation-or-test-other-windo
536e0 77 60 2c 20 74 68 65 20 6c 61 74 65 72 20 69 73 0a 62 6f 75 6e 64 20 74 6f 20 60 43 2d 63 20 70 w`,.the.later.is.bound.to.`C-c.p
53700 20 34 20 74 60 2e 0a 2a 20 4e 65 77 20 64 65 66 63 75 73 74 6f 6d 73 20 60 70 72 6f 6a 65 63 74 .4.t`..*.New.defcustoms.`project
53720 69 6c 65 2d 74 65 73 74 2d 70 72 65 66 69 78 2d 66 75 6e 63 74 69 6f 6e 60 20 61 6e 64 20 60 70 ile-test-prefix-function`.and.`p
53740 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 73 75 66 66 69 78 2d 66 75 6e 63 74 69 6f 6e 60 0a rojectile-test-suffix-function`.
53760 61 6c 6c 6f 77 20 75 73 65 72 73 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 68 6f 77 20 70 72 6f allow.users.to.customize.how.pro
53780 6a 65 63 74 69 6c 65 20 69 64 65 6e 74 69 66 69 65 73 20 74 65 73 74 20 66 69 6c 65 73 20 62 79 jectile.identifies.test.files.by
537a0 20 70 72 6f 6a 65 63 74 20 74 79 70 65 2e 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 .project.type..*.`projectile-gre
537c0 70 60 20 77 69 6c 6c 20 61 73 6b 20 66 6f 72 20 61 20 66 69 6c 65 20 70 61 74 74 65 72 6e 20 69 p`.will.ask.for.a.file.pattern.i
537e0 66 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 20 61 0a 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 f.invoked.with.a.prefix.argument
53800 2e 0a 2a 20 53 75 62 76 65 72 73 69 6f 6e 20 63 68 65 63 6b 6f 75 74 73 20 61 72 65 20 6e 6f 77 ..*.Subversion.checkouts.are.now
53820 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 74 65 63 74 65 64 2e 0a 2a 20 43 56 53 20 63 .automatically.detected..*.CVS.c
53840 68 65 63 6b 6f 75 74 73 20 61 72 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 heckouts.are.now.automatically.d
53860 65 74 65 63 74 65 64 2e 0a 2a 20 61 64 64 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 65 72 etected..*.added.`projectile-per
53880 73 70 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 6d 61 sp-switch-project`.command.to.ma
538a0 6b 65 20 70 65 72 73 70 65 63 74 69 76 65 0a 6d 6f 64 65 20 77 6f 72 6b 20 61 6c 6f 6e 67 20 77 ke.perspective.mode.work.along.w
538c0 69 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 2a 20 43 68 61 6e 67 65 64 20 60 70 72 6f 6a 65 ith.projectile..*.Changed.`proje
538e0 63 74 69 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6c 69 67 68 74 65 72 60 20 74 6f 20 61 20 64 65 ctile-mode-line-lighter`.to.a.de
53900 66 63 75 73 74 6f 6d 20 76 61 72 69 61 62 6c 65 20 74 6f 20 6d 61 6b 65 0a 6d 6f 64 65 20 6c 69 fcustom.variable.to.make.mode.li
53920 6e 65 20 69 6e 64 69 63 61 74 6f 72 20 70 72 65 66 69 78 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 ne.indicator.prefix.customizable
53940 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 ..*.New.command.`projectile-find
53960 2d 66 69 6c 65 2d 69 6e 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 60 2e 0a 2a 20 4e 65 77 20 -file-in-known-projects`..*.New.
53980 64 65 66 63 75 73 74 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 defcustom.`projectile-ignored-pr
539a0 6f 6a 65 63 74 73 60 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 20 70 72 ojects`.allows.you.to.specify.pr
539c0 6f 6a 65 63 74 73 0a 74 68 61 74 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 20 61 64 64 65 64 20 74 ojects.that.shouldn't.be.added.t
539e0 6f 20 74 68 65 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 6c 69 73 74 2e 0a 2a 20 4e 65 77 o.the.known.projects.list..*.New
53a00 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 63 75 72 72 .command.`projectile-remove-curr
53a20 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 72 6f 6d 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 60 ent-project-from-known-projects`
53a40 2e 0a 2a 20 4e 65 77 20 64 65 66 63 75 73 74 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 ..*.New.defcustom.`projectile-bu
53a60 66 66 65 72 73 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a 2a 20 4e 65 77 20 64 65 ffers-filter-function`..*.New.de
53a80 66 63 75 73 74 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 6f 72 74 2d 6f 72 64 65 72 60 2e fcustom.`projectile-sort-order`.
53aa0 0a 2a 20 4e 65 77 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 63 .*.New.function.`projectile-proc
53ac0 65 73 73 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 60 2e 0a 2a 20 ess-current-project-buffers`..*.
53ae0 4e 65 77 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 63 65 73 73 New.function.`projectile-process
53b00 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 60 2e 0a 0a 23 23 23 20 43 68 -current-project-files`...###.Ch
53b20 61 6e 67 65 73 0a 0a 2a 20 54 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 60 4d 61 6b 65 anges..*.The.presence.of.a.`Make
53b40 66 69 6c 65 60 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 74 61 6b 65 6e 20 61 73 20 61 6e 20 69 file`.is.no.longer.taken.as.an.i
53b60 6e 64 69 63 61 74 6f 72 0a 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 62 79 20 ndicator.of.the.project.root.by.
53b80 64 65 66 61 75 6c 74 2c 20 73 69 6e 63 65 20 72 65 63 75 72 73 69 76 65 20 6d 61 6b 65 20 69 73 default,.since.recursive.make.is
53ba0 20 75 6e 66 6f 72 74 75 6e 61 74 65 6c 79 0a 61 20 63 6f 6d 6d 6f 6e 20 6f 63 63 75 72 72 65 6e .unfortunately.a.common.occurren
53bc0 63 65 20 28 61 66 66 65 63 74 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d ce.(affects.`projectile-project-
53be0 72 6f 6f 74 2d 66 69 6c 65 73 60 29 2e 0a 2a 20 50 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 6e 6f root-files`)..*.Projectile.is.no
53c00 77 20 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 70 72 6f 6a 65 63 74 20 70 65 72 74 61 w.able.to.find.the.project.perta
53c20 69 6e 69 6e 67 20 74 6f 20 61 20 73 79 6d 6c 69 6e 6b 0a 70 6f 69 6e 74 69 6e 67 20 74 6f 20 61 ining.to.a.symlink.pointing.to.a
53c40 20 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 66 69 6c 65 2e 0a 2a 20 44 72 6f 70 .version-controlled.file..*.Drop
53c60 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 6b 2d 66 75 6e 63 74 69 6f 6e 60 20 64 65 66 63 75 .`projectile-ack-function`.defcu
53c80 73 74 6f 6d 2e 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 60 stom..*.`projectile-command-map`
53ca0 20 69 73 20 6e 6f 77 20 74 68 65 20 6b 65 79 6d 61 70 20 72 65 66 65 72 65 6e 63 65 64 20 62 79 .is.now.the.keymap.referenced.by
53cc0 20 74 68 65 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 60 20 .the.`projectile-keymap-prefix`.
53ce0 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 60 2e 20 54 68 69 73 20 61 in.`projectile-mode-map`..This.a
53d00 6c 6c 6f 77 73 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 69 6e 6e 65 72 20 llows.modification.of.the.inner.
53d20 6d 61 70 2c 20 61 6e 64 20 61 6c 6c 6f 77 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 65 66 69 map,.and.allows.additional.prefi
53d40 78 20 6b 65 79 73 20 74 6f 0a 72 65 66 65 72 65 6e 63 65 20 69 74 2e 0a 0a 23 23 23 20 42 75 67 x.keys.to.reference.it...###.Bug
53d60 73 20 66 69 78 65 64 0a 0a 2a 20 4d 6f 64 69 66 69 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d s.fixed..*.Modified.`projectile-
53d80 61 63 6b 60 20 74 6f 20 61 70 70 65 6e 64 20 74 6f 20 60 61 63 6b 2d 61 6e 64 2d 61 2d 68 61 6c ack`.to.append.to.`ack-and-a-hal
53da0 66 2d 61 72 67 75 6d 65 6e 74 73 60 0a 69 6e 73 74 65 61 64 20 6f 66 20 6f 76 65 72 72 69 64 69 f-arguments`.instead.of.overridi
53dc0 6e 67 20 74 68 65 6d 2e 0a 2a 20 5b 23 32 32 39 5d 20 46 69 78 20 60 70 72 6f 6a 65 63 74 69 6c ng.them..*.[#229].Fix.`projectil
53de0 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 60 27 73 20 62 65 68 61 e-find-file-in-directory`'s.beha
53e00 76 69 6f 72 20 66 6f 72 20 70 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 69 65 73 0a 2a 20 60 vior.for.project.directories.*.`
53e20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 62 65 74 77 65 65 6e 2d 69 6d 70 6c 65 6d projectile-toggle-between-implem
53e40 65 6e 74 61 74 69 6f 6e 2d 6f 72 2d 74 65 73 74 60 20 73 68 6f 77 73 0a 75 6e 64 65 72 73 74 61 entation-or-test`.shows.understa
53e60 6e 64 61 62 6c 65 20 65 72 72 6f 72 20 69 66 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 ndable.error.if.current.buffer.i
53e80 73 20 6e 6f 74 20 76 69 73 69 74 69 6e 67 20 61 20 66 69 6c 65 2e 0a 2a 20 5b 23 32 34 34 5d 20 s.not.visiting.a.file..*.[#244].
53ea0 43 6f 72 72 65 63 74 20 66 6f 6c 64 65 72 20 70 69 63 6b 65 64 20 75 70 20 62 79 20 60 70 72 6f Correct.folder.picked.up.by.`pro
53ec0 6a 65 63 74 69 6c 65 2d 61 63 6b 60 20 61 66 74 65 72 20 70 72 6f 6a 65 63 74 2d 73 77 69 74 63 jectile-ack`.after.project-switc
53ee0 68 2e 0a 2a 20 5b 23 31 38 32 5d 20 49 6e 76 61 6c 69 64 61 74 65 20 70 72 6f 6a 65 63 74 20 63 h..*.[#182].Invalidate.project.c
53f00 61 63 68 65 20 69 66 20 2e 70 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 6d 6f 64 69 66 69 65 64 2e ache.if..projectile.is.modified.
53f20 0a 0a 23 23 20 30 2e 31 30 2e 30 20 28 32 30 31 33 2d 31 32 2d 30 39 29 0a 0a 23 23 23 20 4e 65 ..##.0.10.0.(2013-12-09)..###.Ne
53f40 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 w.features..*.Added.new.command.
53f60 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 `projectile-find-file-other-wind
53f80 6f 77 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 ow`..*.Added.new.command.`projec
53fa0 74 69 6c 65 2d 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 tile-switch-to-buffer-other-wind
53fc0 6f 77 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 ow`..*.Added.new.command.`projec
53fe0 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 60 20 74 68 61 tile-find-file-in-directory`.tha
54000 74 20 61 6c 6c 6f 77 73 0a 79 6f 75 20 74 6f 20 6a 75 6d 70 20 74 6f 20 66 69 6c 65 73 20 69 6e t.allows.you.to.jump.to.files.in
54020 20 61 6e 79 20 64 69 72 65 63 74 6f 72 79 2e 0a 2a 20 60 2e 70 72 6f 6a 65 63 74 69 6c 65 60 20 .any.directory..*.`.projectile`.
54040 69 73 20 6e 6f 77 20 61 6c 77 61 79 73 20 74 61 6b 65 6e 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 is.now.always.taken.into.account
54060 2e 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 27 ..*.`projectile-switch-project`'
54080 73 20 62 65 68 61 76 69 6f 72 20 69 73 20 6e 6f 77 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 76 s.behavior.is.now.customizable.v
540a0 69 61 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 ia.`projectile-switch-project-ac
540c0 74 69 6f 6e 60 2e 0a 2a 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 47 72 61 64 6c tion`..*.Added.support.for.Gradl
540e0 65 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 e.projects..*.Added.support.for.
54100 60 41 67 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 `Ag`..*.Added.new.command.`proje
54120 63 74 69 6c 65 2d 70 75 72 67 65 2d 66 69 6c 65 2d 66 72 6f 6d 2d 63 61 63 68 65 60 2e 0a 2a 20 ctile-purge-file-from-cache`..*.
54140 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 75 Added.new.command.`projectile-pu
54160 72 67 65 2d 64 69 72 2d 66 72 6f 6d 2d 63 61 63 68 65 60 2e 0a 2a 20 41 64 64 65 64 20 6e 65 77 rge-dir-from-cache`..*.Added.new
54180 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 60 2e 0a .command.`projectile-find-tag`..
541a0 2a 20 41 64 64 65 64 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d *.Added.new.command.`projectile-
541c0 63 6f 6d 6d 61 6e 64 65 72 60 2e 20 49 74 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 71 75 69 commander`..It.allows.you.to.qui
541e0 63 6b 6c 79 0a 72 75 6e 20 6d 61 6e 79 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 6f 6d 6d 61 6e 64 ckly.run.many.Projectile.command
54200 73 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 6b 65 79 2e 20 56 65 72 79 20 75 73 65 66 75 6c s.with.a.single.key..Very.useful
54220 20 61 73 20 61 0a 70 72 6f 6a 65 63 74 2d 73 77 69 74 63 68 69 6e 67 20 61 63 74 69 6f 6e 2e 0a .as.a.project-switching.action..
54240 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 20 6e 6f *.`projectile-switch-project`.no
54260 77 20 73 75 70 70 6f 72 74 73 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 20 57 68 w.supports.a.prefix.argument..Wh
54280 65 6e 20 69 74 27 73 20 70 72 65 73 65 6e 74 0a 74 68 65 20 73 77 69 74 63 68 20 61 63 74 69 6f en.it's.present.the.switch.actio
542a0 6e 20 69 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 60 2e 0a 0a 23 23 n.is.`projectile-commander`...##
542c0 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 52 65 70 6c 61 63 65 64 20 76 61 72 69 61 62 6c 65 20 60 #.Changes..*.Replaced.variable.`
542e0 70 72 6f 6a 65 63 74 69 6c 65 2d 75 73 65 2d 6e 61 74 69 76 65 2d 69 6e 64 65 78 69 6e 67 60 20 projectile-use-native-indexing`.
54300 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 with.`projectile-indexing-method
54320 60 2e 0a 2a 20 43 6f 72 72 65 63 74 65 64 20 67 72 61 6d 6d 61 72 20 6f 6e 20 65 72 72 6f 72 20 `..*.Corrected.grammar.on.error.
54340 6d 65 73 73 61 67 65 20 66 6f 72 20 6e 6f 74 20 62 65 69 6e 67 20 69 6e 20 61 20 70 72 6f 6a 65 message.for.not.being.in.a.proje
54360 63 74 2e 0a 0a 23 23 23 20 42 75 67 20 66 69 78 65 73 0a 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c ct...###.Bug.fixes..*.`projectil
54380 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 60 20 6e 6f 77 20 70 72 6f 70 65 72 6c 79 20 64 e-find-test-file`.now.properly.d
543a0 69 73 70 6c 61 79 73 20 6f 6e 6c 79 20 74 65 73 74 20 66 69 6c 65 73 20 28 23 31 34 35 29 2e 0a isplays.only.test.files.(#145)..
543c0 0a 23 23 20 30 2e 39 2e 32 20 28 32 30 31 33 2d 30 37 2d 31 36 29 0a 0a 23 23 23 20 4e 65 77 20 .##.0.9.2.(2013-07-16)..###.New.
543e0 66 65 61 74 75 72 65 73 0a 0a 2a 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 76 61 6c 69 64 61 features..*.`projectile-invalida
54400 74 65 2d 63 61 63 68 65 60 20 6e 6f 77 20 61 63 63 65 70 74 73 20 61 20 70 72 65 66 69 78 20 61 te-cache`.now.accepts.a.prefix.a
54420 72 67 75 6d 65 6e 74 2e 20 57 68 65 6e 0a 70 72 65 73 65 6e 74 20 79 6f 75 27 6c 6c 20 62 65 20 rgument..When.present.you'll.be.
54440 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 68 6f 73 65 20 63 prompted.for.the.project.whose.c
54460 61 63 68 65 20 74 6f 0a 69 6e 76 61 6c 69 64 61 74 65 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e ache.to.invalidate..*.New.comman
54480 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 60 20 77 6f 72 6b 73 20 73 69 d.`projectile-find-dir`.works.si
544a0 6d 69 6c 61 72 20 74 6f 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 60 20 milar.to.`projectile-find-file`.
544c0 2d 20 64 69 73 70 6c 61 79 73 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 73 20 61 6e -.displays.the.project's.dirs.an
544e0 64 20 6f 70 65 6e 73 20 74 68 65 6d 0a 77 69 74 68 20 60 64 69 72 65 64 60 2e 20 49 74 27 73 20 d.opens.them.with.`dired`..It's.
54500 62 6f 75 6e 64 20 74 6f 20 60 43 2d 63 20 70 20 64 60 2e 0a 2a 20 41 64 64 65 64 20 73 75 70 70 bound.to.`C-c.p.d`..*.Added.supp
54520 6f 72 74 20 66 6f 72 20 60 67 72 69 7a 7a 6c 60 20 61 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e ort.for.`grizzl`.as.a.completion
54540 20 73 79 73 74 65 6d 2e 0a 2a 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 60 66 6f .system..*.Added.support.for.`fo
54560 73 73 69 6c 60 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 ssil`.projects..*.Added.support.
54580 66 6f 72 20 60 53 79 6d 66 6f 6e 79 20 32 60 20 70 72 6f 6a 65 63 74 2e 0a 2a 20 4e 65 77 20 63 for.`Symfony.2`.project..*.New.c
545a0 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 ommand.`projectile-clear-known-p
545c0 72 6f 6a 65 63 74 73 60 20 72 65 6d 6f 76 65 73 20 61 6c 6c 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 rojects`.removes.all.known.proje
545e0 63 74 73 2e 0a 2a 20 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 cts..*.New.command.`projectile-r
54600 65 6d 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 60 20 70 72 6f 6d 70 74 73 20 79 6f 75 emove-known-project`.prompts.you
54620 20 66 6f 72 20 61 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 20 74 6f 20 72 65 6d 6f 76 65 2e 0a .for.a.known.project.to.remove..
54640 0a 23 23 23 20 42 75 67 73 20 66 69 78 65 64 0a 0a 2a 20 46 69 78 65 64 20 60 70 72 6f 6a 65 63 .###.Bugs.fixed..*.Fixed.`projec
54660 74 69 6c 65 2d 72 65 70 6c 61 63 65 60 2c 20 77 68 69 63 68 20 77 61 73 20 62 72 6f 6b 65 6e 20 tile-replace`,.which.was.broken.
54680 66 72 6f 6d 20 74 68 65 20 75 73 65 20 6f 66 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 73 0a 2a from.the.use.of.relative.paths.*
546a0 20 23 31 30 33 20 2d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 .#103.-.`projectile-switch-proje
546c0 63 74 60 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 20 70 72 6f 6a 65 63 74 20 74 ct`.does.not.require.a.project.t
546e0 6f 20 77 6f 72 6b 0a 2a 20 44 6f 6e 27 74 20 73 68 6f 77 20 68 69 64 64 65 6e 20 62 75 66 66 65 o.work.*.Don't.show.hidden.buffe
54700 72 73 20 69 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 rs.in.projectile-project-buffers
54720 0a 0a 23 23 23 20 43 68 61 6e 67 65 73 0a 0a 2a 20 52 65 62 6f 75 6e 64 20 60 70 72 6f 6a 65 63 ..###.Changes..*.Rebound.`projec
54740 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 60 20 74 6f 20 3c 6b 62 64 3e 43 2d tile-compile-project`.to.<kbd>C-
54760 63 20 70 20 63 3c 2f 6b 62 64 3e 0a 2a 20 52 65 62 6f 75 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c c.p.c</kbd>.*.Rebound.`projectil
54780 65 2d 64 69 72 65 64 60 20 74 6f 20 3c 6b 62 64 3e 43 2d 63 20 70 20 44 3c 2f 6b 62 64 3e 0a 2a e-dired`.to.<kbd>C-c.p.D</kbd>.*
547a0 20 52 65 77 6f 72 6b 65 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 .Reworked.`projectile-compile-pr
547c0 6f 6a 65 63 74 60 20 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a oject`.and.`projectile-test-proj
547e0 65 63 74 60 0a 74 6f 20 62 65 20 73 6d 61 72 74 65 72 2c 20 6d 6f 72 65 20 63 6f 6e 66 69 67 75 ect`.to.be.smarter,.more.configu
54800 72 61 62 6c 65 20 61 6e 64 20 63 6c 6f 73 65 72 20 69 6e 20 62 65 68 61 76 69 6f 72 20 74 6f 20 rable.and.closer.in.behavior.to.
54820 74 68 65 20 73 74 6f 63 6b 0a 60 63 6f 6d 70 69 6c 65 60 20 63 6f 6d 6d 61 6e 64 0a 2a 20 60 70 the.stock.`compile`.command.*.`p
54840 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 20 28 3c 6b 62 64 3e rojectile-switch-project`.(<kbd>
54860 43 2d 63 20 70 20 73 3c 2f 6b 62 64 3e 29 20 6e 6f 77 20 72 75 6e 73 20 60 70 72 6f 6a 65 63 74 C-c.p.s</kbd>).now.runs.`project
54880 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 60 20 69 6e 73 74 65 61 64 20 6f 66 20 60 64 69 72 65 64 ile-find-file`.instead.of.`dired
548a0 60 2e 0a 0a 23 23 20 30 2e 39 2e 31 20 28 32 30 31 33 2d 30 34 2d 32 36 29 0a 0a 23 23 23 20 4e `...##.0.9.1.(2013-04-26)..###.N
548c0 65 77 20 66 65 61 74 75 72 65 73 0a 0a 2a 20 44 69 73 70 6c 61 79 20 72 65 63 65 6e 74 66 20 66 ew.features..*.Display.recentf.f
548e0 69 6c 65 73 20 69 6e 20 68 65 6c 6d 2d 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 23 23 23 20 42 75 iles.in.helm-projectile...###.Bu
54900 67 73 20 66 69 78 65 64 0a 0a 2a 20 23 39 35 20 2d 20 68 61 6e 64 6c 65 20 70 72 6f 70 65 72 6c gs.fixed..*.#95.-.handle.properl
54920 79 20 6d 69 73 73 69 6e 67 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 0a 0a 23 23 20 30 2e 39 2e 30 y.missing.project.root..##.0.9.0
54940 20 28 32 30 31 33 2d 30 34 2d 32 34 29 0a 0a 23 23 23 20 4e 65 77 20 66 65 61 74 75 72 65 73 0a .(2013-04-24)..###.New.features.
54960 0a 2a 20 55 73 65 20 66 61 73 74 20 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 74 6f 20 66 69 .*.Use.fast.external.tools.to.fi
54980 6e 64 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2e 20 nd.project.files.when.possible..
549a0 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f 70 74 69 6f 6e 20 6f 6e 20 61 6c This.is.the.default.option.on.al
549c0 6c 20 55 6e 69 63 65 73 2e 0a 2a 20 52 65 6d 6f 76 65 64 20 6f 62 73 6f 6c 65 74 65 20 63 6f 6d l.Unices..*.Removed.obsolete.com
549e0 6d 61 6e 64 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 69 6e 64 65 78 2d 70 72 6f 6a 65 63 74 mand.`projectile-reindex-project
54a00 60 2e 0a 2a 20 52 65 6d 6f 76 65 64 20 6f 62 73 6f 6c 65 74 65 20 63 6f 6d 6d 61 6e 64 20 60 70 `..*.Removed.obsolete.command.`p
54a20 72 6f 6a 65 63 74 69 6c 65 2d 6f 70 65 6e 60 2e 0a 2a 20 49 6e 74 72 6f 64 75 63 65 64 20 73 75 rojectile-open`..*.Introduced.su
54a40 70 70 6f 72 74 20 66 6f 72 20 66 69 6e 64 69 6e 67 20 74 65 73 74 73 20 61 6e 64 20 73 77 69 74 pport.for.finding.tests.and.swit
54a60 63 68 69 6e 67 20 62 65 74 77 65 65 6e 20 63 6f 64 65 20 61 6e 64 20 74 65 73 74 73 2e 0a 2a 20 ching.between.code.and.tests..*.
54a80 49 6d 70 6c 65 6d 65 6e 74 20 62 61 73 69 63 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 64 65 74 Implement.basic.project.type.det
54aa0 65 63 74 69 6f 6e 2e 0a 2a 20 41 64 64 20 61 20 73 69 6d 70 6c 65 20 76 65 72 73 69 6f 6e 20 72 ection..*.Add.a.simple.version.r
54ac0 65 70 6f 72 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 eporting.command.projectile-vers
54ae0 69 6f 6e 2e 0a 2a 20 44 69 73 70 6c 61 79 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 74 6f ion..*.Display.relative.paths.to
54b00 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 69 73 61 6d 62 .project.files.instead.of.disamb
54b20 69 67 75 61 74 65 64 20 66 69 6c 65 6e 61 6d 65 73 2e 0a 2a 20 44 69 72 65 63 74 6f 72 69 65 73 iguated.filenames..*.Directories
54b40 20 6c 69 73 74 65 64 20 69 6e 20 2e 70 72 6f 6a 65 63 74 69 6c 65 20 66 69 6c 65 20 61 72 65 20 .listed.in..projectile.file.are.
54b60 65 78 63 6c 75 64 65 64 20 77 68 65 6e 20 74 61 67 73 20 61 72 65 20 67 65 6e 65 72 61 74 65 64 excluded.when.tags.are.generated
54b80 2e 0a 2a 20 52 65 6d 65 6d 62 65 72 73 20 76 69 73 69 74 65 64 20 70 72 6f 6a 65 63 74 73 20 61 ..*.Remembers.visited.projects.a
54ba0 6e 64 20 6d 61 79 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 74 68 65 6d 20 77 69 74 68 20 nd.may.switch.between.them.with.
54bc0 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 60 2e 0a 2a 20 53 `projectile-switch-project`..*.S
54be0 75 70 70 6f 72 74 73 20 60 6c 65 69 6e 20 7b 63 6f 6d 70 69 6c 65 7c 74 65 73 74 7d 60 20 69 6e upports.`lein.{compile|test}`.in
54c00 20 43 6c 6f 6a 75 72 65 20 70 72 6f 6a 65 63 74 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 70 72 6f .Clojure.projects..*.Support.pro
54c20 6a 65 63 74 73 20 6f 6e 6c 79 20 66 6f 72 20 73 75 62 64 69 72 73 20 6f 66 20 74 68 65 20 70 72 jects.only.for.subdirs.of.the.pr
54c40 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 2a 20 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f oject.root..*.Add.the.ability.to
54c60 20 6d 61 6e 75 61 6c 6c 79 20 63 61 63 68 65 20 66 69 6c 65 73 2e 0a 0a 23 23 23 20 42 75 67 73 .manually.cache.files...###.Bugs
54c80 20 66 69 78 65 64 0a 0a 2a 20 23 35 37 20 2d 20 70 72 6f 70 65 72 6c 79 20 73 65 74 20 74 68 65 .fixed..*.#57.-.properly.set.the
54ca0 20 63 75 72 72 65 6e 74 20 77 6f 72 6b 69 6e 67 20 64 69 72 2c 20 62 65 66 6f 72 65 20 69 6e 76 .current.working.dir,.before.inv
54cc0 6f 6b 69 6e 67 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 0a 2a 20 23 37 31 20 2d 20 63 6f 72 oking.shell.commands.*.#71.-.cor
54ce0 72 65 63 74 20 72 65 67 65 6e 65 72 61 74 65 20 74 61 67 73 20 6b 65 79 62 69 6e 64 69 6e 67 20 rect.regenerate.tags.keybinding.
54d00 69 6e 20 74 68 65 20 52 45 41 44 4d 45 0a 0a 23 23 23 20 4d 69 73 63 0a 0a 2a 20 4d 6f 76 65 20 in.the.README..###.Misc..*.Move.
54d20 6d 65 6e 75 20 65 6e 74 72 79 20 75 6e 64 65 72 20 60 54 6f 6f 6c 73 60 0a 2a 20 53 68 6f 77 20 menu.entry.under.`Tools`.*.Show.
54d40 69 6e 64 65 78 69 6e 67 20 6d 65 73 73 61 67 65 20 6f 6e 6c 79 20 77 68 65 6e 20 64 6f 69 6e 67 indexing.message.only.when.doing
54d60 20 6e 61 74 69 76 65 20 70 72 6f 6a 65 63 74 20 69 6e 64 65 78 69 6e 67 0a 2a 20 4d 61 73 73 69 .native.project.indexing.*.Massi
54d80 76 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 0a 00 00 00 00 ve.performance.improvements.....
54da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 39 2e 31 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 00 projectile-2.9.1/.dir-locals.el.
54e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e60 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
54e80 30 30 30 31 34 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 31 00 20 30 00 00 00 0001421.00000000000.014751..0...
54ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54f00 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...................
54f20 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...................
54f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55000 3b 3b 3b 20 44 69 72 65 63 74 6f 72 79 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 0a 3b 3b ;;;.Directory.Local.Variables.;;
55020 3b 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 73 65 65 20 28 69 6e 66 6f ;.For.more.information.see.(info
55040 20 22 28 65 6d 61 63 73 29 20 44 69 72 65 63 74 6f 72 79 20 56 61 72 69 61 62 6c 65 73 22 29 0a ."(emacs).Directory.Variables").
55060 0a 28 28 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 20 2e 20 28 28 62 75 67 2d 72 65 66 65 72 .((emacs-lisp-mode...((bug-refer
55080 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 74 20 2e 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ence-url-format..."https://githu
550a0 62 2e 63 6f 6d 2f 62 62 61 74 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f b.com/bbatsov/projectile/issues/
550c0 25 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 67 2d 72 %s")......................(bug-r
550e0 65 66 65 72 65 6e 63 65 2d 62 75 67 2d 72 65 67 65 78 70 20 2e 20 22 23 5c 5c 28 3f 32 3a 5b 5b eference-bug-regexp..."#\\(?2:[[
55100 3a 64 69 67 69 74 3a 5d 5d 2b 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :digit:]]+\\)").................
55120 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 20 2e 20 6e 69 6c 29 0a 20 20 .....(indent-tabs-mode...nil)...
55140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 20 ...................(fill-column.
55160 2e 20 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 6e 74 ..80)......................(sent
55180 65 6e 63 65 2d 65 6e 64 2d 64 6f 75 62 6c 65 2d 73 70 61 63 65 20 2e 20 74 29 0a 20 20 20 20 20 ence-end-double-space...t)......
551a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6d 61 63 73 2d 6c 69 73 70 2d 64 6f 63 73 ................(emacs-lisp-docs
551c0 74 72 69 6e 67 2d 66 69 6c 6c 2d 63 6f 6c 75 6d 6e 20 2e 20 37 35 29 0a 20 20 20 20 20 20 20 20 tring-fill-column...75).........
551e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 65 63 6b 64 6f 63 2d 73 79 6d 62 6f 6c 2d 77 6f .............(checkdoc-symbol-wo
55200 72 64 73 20 2e 20 28 22 74 6f 70 2d 6c 65 76 65 6c 22 20 22 6d 61 6a 6f 72 2d 6d 6f 64 65 22 20 rds...("top-level"."major-mode".
55220 22 6d 61 63 72 6f 65 78 70 61 6e 64 2d 61 6c 6c 22 20 22 70 72 69 6e 74 2d 6c 65 76 65 6c 22 20 "macroexpand-all"."print-level".
55240 22 70 72 69 6e 74 2d 6c 65 6e 67 74 68 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "print-length"))................
55260 20 20 20 20 20 20 28 63 68 65 63 6b 64 6f 63 2d 70 61 63 6b 61 67 65 2d 6b 65 79 77 6f 72 64 73 ......(checkdoc-package-keywords
55280 2d 66 6c 61 67 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -flag...nil)....................
552a0 20 20 28 63 68 65 63 6b 64 6f 63 2d 61 72 67 75 6d 65 6e 74 73 2d 69 6e 2d 6f 72 64 65 72 2d 66 ..(checkdoc-arguments-in-order-f
552c0 6c 61 67 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lag...nil)......................
552e0 28 63 68 65 63 6b 64 6f 63 2d 76 65 72 62 2d 63 68 65 63 6b 2d 65 78 70 65 72 69 6d 65 6e 74 61 (checkdoc-verb-check-experimenta
55300 6c 2d 66 6c 61 67 20 2e 20 6e 69 6c 29 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l-flag...nil))))................
55320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
553a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
553c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
553e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
554a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
554c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
554e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
555a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
555c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
555e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
556a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
556c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
556e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
557e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
558a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
558c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
558e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
559a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
559c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
559e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
560a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
560c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
560e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
561e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
562a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
562c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
562e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
563e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
564a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
564c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
564e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
565a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
565c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
565e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
568a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
568c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
568e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
569a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
569c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
569e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................