summaryrefslogtreecommitdiff
path: root/localrepo/projectile-2.8.0.tar
blob: eb09813a9d4449997f861b704de756d02db1bc6b (plain)
ofshex dumpascii
0000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 projectile-2.8.0/...............
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 30 00 20 35 00 00 00 0000000.00000000000.012320..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 38 2e 30 2f 2e 67 69 74 68 75 62 2f 00 00 00 00 00 00 00 projectile-2.8.0/.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 30 00 20 35 00 00 00 0000000.00000000000.013660..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 38 2e 30 2f 2e 67 69 74 68 75 62 2f 49 53 53 55 45 5f 54 projectile-2.8.0/.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 31 00 20 30 00 00 00 0001401.00000000000.016361..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 38 2e 30 2f 2e 67 69 74 68 75 62 2f 73 74 61 6c 65 2e 79 projectile-2.8.0/.github/stale.y
0a20 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 00 00 ml..............................
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 34 30 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 32 30 00 20 30 00 00 00 0004065.00000000000.015520..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 23 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 6f 72 20 70 72 6f 62 6f 74 2d 73 74 61 6c 65 #.Configuration.for.probot-stale
0c20 20 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 72 6f 62 6f 74 2f 73 74 61 .-.https://github.com/probot/sta
0c40 6c 65 0a 0a 23 20 4e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 6f 66 20 69 6e 61 63 74 69 76 69 le..#.Number.of.days.of.inactivi
0c60 74 79 20 62 65 66 6f 72 65 20 61 6e 20 49 73 73 75 65 20 6f 72 20 50 75 6c 6c 20 52 65 71 75 65 ty.before.an.Issue.or.Pull.Reque
0c80 73 74 20 62 65 63 6f 6d 65 73 20 73 74 61 6c 65 0a 64 61 79 73 55 6e 74 69 6c 53 74 61 6c 65 3a st.becomes.stale.daysUntilStale:
0ca0 20 31 38 30 0a 0a 23 20 4e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 6f 66 20 69 6e 61 63 74 69 .180..#.Number.of.days.of.inacti
0cc0 76 69 74 79 20 62 65 66 6f 72 65 20 61 6e 20 49 73 73 75 65 20 6f 72 20 50 75 6c 6c 20 52 65 71 vity.before.an.Issue.or.Pull.Req
0ce0 75 65 73 74 20 77 69 74 68 20 74 68 65 20 73 74 61 6c 65 20 6c 61 62 65 6c 20 69 73 20 63 6c 6f uest.with.the.stale.label.is.clo
0d00 73 65 64 2e 0a 23 20 53 65 74 20 74 6f 20 66 61 6c 73 65 20 74 6f 20 64 69 73 61 62 6c 65 2e 20 sed..#.Set.to.false.to.disable..
0d20 49 66 20 64 69 73 61 62 6c 65 64 2c 20 69 73 73 75 65 73 20 73 74 69 6c 6c 20 6e 65 65 64 20 74 If.disabled,.issues.still.need.t
0d40 6f 20 62 65 20 63 6c 6f 73 65 64 20 6d 61 6e 75 61 6c 6c 79 2c 20 62 75 74 20 77 69 6c 6c 20 72 o.be.closed.manually,.but.will.r
0d60 65 6d 61 69 6e 20 6d 61 72 6b 65 64 20 61 73 20 73 74 61 6c 65 2e 0a 64 61 79 73 55 6e 74 69 6c emain.marked.as.stale..daysUntil
0d80 43 6c 6f 73 65 3a 20 39 30 0a 0a 23 20 4f 6e 6c 79 20 69 73 73 75 65 73 20 6f 72 20 70 75 6c 6c Close:.90..#.Only.issues.or.pull
0da0 20 72 65 71 75 65 73 74 73 20 77 69 74 68 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 6c 61 62 65 .requests.with.all.of.these.labe
0dc0 6c 73 20 61 72 65 20 63 68 65 63 6b 20 69 66 20 73 74 61 6c 65 2e 20 44 65 66 61 75 6c 74 73 20 ls.are.check.if.stale..Defaults.
0de0 74 6f 20 60 5b 5d 60 20 28 64 69 73 61 62 6c 65 64 29 0a 6f 6e 6c 79 4c 61 62 65 6c 73 3a 20 5b to.`[]`.(disabled).onlyLabels:.[
0e00 5d 0a 0a 23 20 49 73 73 75 65 73 20 6f 72 20 50 75 6c 6c 20 52 65 71 75 65 73 74 73 20 77 69 74 ]..#.Issues.or.Pull.Requests.wit
0e20 68 20 74 68 65 73 65 20 6c 61 62 65 6c 73 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 63 6f 6e h.these.labels.will.never.be.con
0e40 73 69 64 65 72 65 64 20 73 74 61 6c 65 2e 20 53 65 74 20 74 6f 20 60 5b 5d 60 20 74 6f 20 64 69 sidered.stale..Set.to.`[]`.to.di
0e60 73 61 62 6c 65 0a 65 78 65 6d 70 74 4c 61 62 65 6c 73 3a 0a 20 20 2d 20 22 48 69 67 68 20 50 72 sable.exemptLabels:...-."High.Pr
0e80 69 6f 72 69 74 79 22 0a 20 20 2d 20 22 47 6f 6f 64 20 46 69 72 73 74 20 49 73 73 75 65 22 0a 20 iority"...-."Good.First.Issue"..
0ea0 20 2d 20 22 50 69 6e 6e 65 64 22 0a 0a 23 20 53 65 74 20 74 6f 20 74 72 75 65 20 74 6f 20 69 67 .-."Pinned"..#.Set.to.true.to.ig
0ec0 6e 6f 72 65 20 69 73 73 75 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 20 28 64 65 66 61 75 6c nore.issues.in.a.project.(defaul
0ee0 74 73 20 74 6f 20 66 61 6c 73 65 29 0a 65 78 65 6d 70 74 50 72 6f 6a 65 63 74 73 3a 20 66 61 6c ts.to.false).exemptProjects:.fal
0f00 73 65 0a 0a 23 20 53 65 74 20 74 6f 20 74 72 75 65 20 74 6f 20 69 67 6e 6f 72 65 20 69 73 73 75 se..#.Set.to.true.to.ignore.issu
0f20 65 73 20 69 6e 20 61 20 6d 69 6c 65 73 74 6f 6e 65 20 28 64 65 66 61 75 6c 74 73 20 74 6f 20 66 es.in.a.milestone.(defaults.to.f
0f40 61 6c 73 65 29 0a 65 78 65 6d 70 74 4d 69 6c 65 73 74 6f 6e 65 73 3a 20 74 72 75 65 0a 0a 23 20 alse).exemptMilestones:.true..#.
0f60 53 65 74 20 74 6f 20 74 72 75 65 20 74 6f 20 69 67 6e 6f 72 65 20 69 73 73 75 65 73 20 77 69 74 Set.to.true.to.ignore.issues.wit
0f80 68 20 61 6e 20 61 73 73 69 67 6e 65 65 20 28 64 65 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 h.an.assignee.(defaults.to.false
0fa0 29 0a 65 78 65 6d 70 74 41 73 73 69 67 6e 65 65 73 3a 20 74 72 75 65 0a 0a 23 20 4c 61 62 65 6c ).exemptAssignees:.true..#.Label
0fc0 20 74 6f 20 75 73 65 20 77 68 65 6e 20 6d 61 72 6b 69 6e 67 20 61 73 20 73 74 61 6c 65 0a 73 74 .to.use.when.marking.as.stale.st
0fe0 61 6c 65 4c 61 62 65 6c 3a 20 53 74 61 6c 65 0a 0a 23 20 43 6f 6d 6d 65 6e 74 20 74 6f 20 70 6f aleLabel:.Stale..#.Comment.to.po
1000 73 74 20 77 68 65 6e 20 6d 61 72 6b 69 6e 67 20 61 73 20 73 74 61 6c 65 2e 20 53 65 74 20 74 6f st.when.marking.as.stale..Set.to
1020 20 60 66 61 6c 73 65 60 20 74 6f 20 64 69 73 61 62 6c 65 0a 6d 61 72 6b 43 6f 6d 6d 65 6e 74 3a .`false`.to.disable.markComment:
1040 20 3e 0a 20 20 54 68 69 73 20 69 73 73 75 65 20 68 61 73 20 62 65 65 6e 20 61 75 74 6f 6d 61 74 .>...This.issue.has.been.automat
1060 69 63 61 6c 6c 79 20 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 ically.marked.as.stale.because.i
1080 74 20 68 61 73 20 6e 6f 74 20 68 61 64 0a 20 20 72 65 63 65 6e 74 20 61 63 74 69 76 69 74 79 2e t.has.not.had...recent.activity.
10a0 20 49 74 20 77 69 6c 6c 20 62 65 20 63 6c 6f 73 65 64 20 69 66 20 6e 6f 20 66 75 72 74 68 65 72 .It.will.be.closed.if.no.further
10c0 20 61 63 74 69 76 69 74 79 20 6f 63 63 75 72 73 2e 20 54 68 61 6e 6b 20 79 6f 75 0a 20 20 66 6f .activity.occurs..Thank.you...fo
10e0 72 20 79 6f 75 72 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 6e 64 65 72 73 74 61 r.your.contribution.and.understa
1100 6e 64 69 6e 67 21 0a 0a 23 20 43 6f 6d 6d 65 6e 74 20 74 6f 20 70 6f 73 74 20 77 68 65 6e 20 72 nding!..#.Comment.to.post.when.r
1120 65 6d 6f 76 69 6e 67 20 74 68 65 20 73 74 61 6c 65 20 6c 61 62 65 6c 2e 0a 23 20 75 6e 6d 61 72 emoving.the.stale.label..#.unmar
1140 6b 43 6f 6d 6d 65 6e 74 3a 20 3e 0a 23 20 20 20 59 6f 75 72 20 63 6f 6d 6d 65 6e 74 20 68 65 72 kComment:.>.#...Your.comment.her
1160 65 2e 0a 0a 23 20 43 6f 6d 6d 65 6e 74 20 74 6f 20 70 6f 73 74 20 77 68 65 6e 20 63 6c 6f 73 69 e...#.Comment.to.post.when.closi
1180 6e 67 20 61 20 73 74 61 6c 65 20 49 73 73 75 65 20 6f 72 20 50 75 6c 6c 20 52 65 71 75 65 73 74 ng.a.stale.Issue.or.Pull.Request
11a0 2e 0a 63 6c 6f 73 65 43 6f 6d 6d 65 6e 74 3a 20 3e 0a 20 20 54 68 69 73 20 69 73 73 75 65 73 20 ..closeComment:.>...This.issues.
11c0 62 65 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 63 6c 6f 73 65 64 20 64 75 65 20 74 6f been.automatically.closed.due.to
11e0 20 6c 61 63 6b 20 6f 66 20 61 63 74 69 76 69 74 79 2e 20 46 65 65 6c 20 66 72 65 65 20 74 6f 20 .lack.of.activity..Feel.free.to.
1200 72 65 2d 6f 70 65 6e 20 69 74 0a 20 20 69 66 20 79 6f 75 20 65 76 65 72 20 63 6f 6d 65 20 62 61 re-open.it...if.you.ever.come.ba
1220 63 6b 20 74 6f 20 69 74 2e 0a 0a 23 20 4c 69 6d 69 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 ck.to.it...#.Limit.the.number.of
1240 20 61 63 74 69 6f 6e 73 20 70 65 72 20 68 6f 75 72 2c 20 66 72 6f 6d 20 31 2d 33 30 2e 20 44 65 .actions.per.hour,.from.1-30..De
1260 66 61 75 6c 74 20 69 73 20 33 30 0a 6c 69 6d 69 74 50 65 72 52 75 6e 3a 20 33 30 0a 0a 23 20 4c fault.is.30.limitPerRun:.30..#.L
1280 69 6d 69 74 20 74 6f 20 6f 6e 6c 79 20 60 69 73 73 75 65 73 60 20 6f 72 20 60 70 75 6c 6c 73 60 imit.to.only.`issues`.or.`pulls`
12a0 0a 23 20 6f 6e 6c 79 3a 20 69 73 73 75 65 73 0a 0a 23 20 4f 70 74 69 6f 6e 61 6c 6c 79 2c 20 73 .#.only:.issues..#.Optionally,.s
12c0 70 65 63 69 66 79 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 20 74 68 pecify.configuration.settings.th
12e0 61 74 20 61 72 65 20 73 70 65 63 69 66 69 63 20 74 6f 20 6a 75 73 74 20 27 69 73 73 75 65 73 27 at.are.specific.to.just.'issues'
1300 20 6f 72 20 27 70 75 6c 6c 73 27 3a 0a 23 20 70 75 6c 6c 73 3a 0a 23 20 20 20 64 61 79 73 55 6e .or.'pulls':.#.pulls:.#...daysUn
1320 74 69 6c 53 74 61 6c 65 3a 20 33 30 0a 23 20 20 20 6d 61 72 6b 43 6f 6d 6d 65 6e 74 3a 20 3e 0a tilStale:.30.#...markComment:.>.
1340 23 20 20 20 20 20 54 68 69 73 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 68 61 73 20 62 65 65 6e #.....This.pull.request.has.been
1360 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 73 74 61 6c 65 20 62 .automatically.marked.as.stale.b
1380 65 63 61 75 73 65 20 69 74 20 68 61 73 20 6e 6f 74 20 68 61 64 0a 23 20 20 20 20 20 72 65 63 65 ecause.it.has.not.had.#.....rece
13a0 6e 74 20 61 63 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 69 nt.activity..It.will.be.closed.i
13c0 66 20 6e 6f 20 66 75 72 74 68 65 72 20 61 63 74 69 76 69 74 79 20 6f 63 63 75 72 73 2e 20 54 68 f.no.further.activity.occurs..Th
13e0 61 6e 6b 20 79 6f 75 0a 23 20 20 20 20 20 66 6f 72 20 79 6f 75 72 20 63 6f 6e 74 72 69 62 75 74 ank.you.#.....for.your.contribut
1400 69 6f 6e 73 2e 0a 0a 23 20 69 73 73 75 65 73 3a 0a 23 20 20 20 65 78 65 6d 70 74 4c 61 62 65 6c ions...#.issues:.#...exemptLabel
1420 73 3a 0a 23 20 20 20 20 20 2d 20 63 6f 6e 66 69 72 6d 65 64 0a 00 00 00 00 00 00 00 00 00 00 00 s:.#.....-.confirmed............
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 38 2e 30 2f 2e 67 69 74 68 75 62 2f 50 55 4c 4c 5f 52 45 projectile-2.8.0/.github/PULL_RE
1620 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...............
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 31 34 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 34 35 37 00 20 30 00 00 00 0001412.00000000000.017457..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 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.
1820 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
1840 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.
1860 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.**..------------
1880 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
18a0 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
18c0 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.
18e0 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
1900 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
1920 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
1940 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
1960 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
1980 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
19a0 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
19c0 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
19e0 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.
1a00 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
1a20 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.-
1a40 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
1a60 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)
1a80 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
1aa0 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
1ac0 64 61 74 65 64 20 74 68 65 20 72 65 61 64 6d 65 20 28 69 66 20 61 64 64 69 6e 67 2f 63 68 61 6e dated.the.readme.(if.adding/chan
1ae0 67 69 6e 67 20 75 73 65 72 2d 76 69 73 69 62 6c 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 29 ging.user-visible.functionality)
1b00 0a 0a 54 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 ..Thanks!.......................
1b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 2e 67 69 74 68 75 62 2f 46 55 4e 44 49 4e 47 projectile-2.8.0/.github/FUNDING
1c20 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............................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 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
1c80 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 30 00 20 30 00 00 00 0000230.00000000000.015470..0...
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d00 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...................
1d20 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...................
1d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 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
1e20 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
1e40 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
1e60 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:
1e80 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.........
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 38 2e 30 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c 6f projectile-2.8.0/.github/workflo
2020 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/.............................
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 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
2080 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 35 00 20 35 00 00 00 0000000.00000000000.015715..5...
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 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c 6f projectile-2.8.0/.github/workflo
2220 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.....................
2240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2260 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
2280 30 30 30 31 35 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 34 32 31 00 20 30 00 00 00 0001533.00000000000.017421..0...
22a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2300 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...................
2320 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...................
2340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
23e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2400 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-
2420 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
2440 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:.[
2460 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
2480 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...
24a0 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
24c0 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'}}....
24e0 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:.......
2500 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.
2520 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
2540 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 35 2e 31 27 ..........emacs_version:.['25.1'
2560 2c 20 27 32 35 2e 33 27 2c 20 27 32 36 2e 33 27 2c 20 27 32 37 2e 31 27 2c 20 27 32 38 2e 31 27 ,.'25.3',.'26.3',.'27.1',.'28.1'
2580 2c 20 27 73 6e 61 70 73 68 6f 74 27 5d 0a 0a 20 20 20 20 73 74 65 70 73 3a 0a 20 20 20 20 2d 20 ,.'snapshot']......steps:.....-.
25a0 6e 61 6d 65 3a 20 53 65 74 20 75 70 20 45 6d 61 63 73 0a 20 20 20 20 20 20 75 73 65 73 3a 20 70 name:.Set.up.Emacs.......uses:.p
25c0 75 72 63 65 6c 6c 2f 73 65 74 75 70 2d 65 6d 61 63 73 40 6d 61 73 74 65 72 0a 20 20 20 20 20 20 urcell/setup-emacs@master.......
25e0 77 69 74 68 3a 0a 20 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 3a 20 24 7b 7b 6d 61 74 72 69 78 with:.........version:.${{matrix
2600 2e 65 6d 61 63 73 5f 76 65 72 73 69 6f 6e 7d 7d 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 49 6e .emacs_version}}......-.name:.In
2620 73 74 61 6c 6c 20 45 6c 64 65 76 0a 20 20 20 20 20 20 72 75 6e 3a 20 63 75 72 6c 20 2d 66 73 53 stall.Eldev.......run:.curl.-fsS
2640 4c 20 68 74 74 70 73 3a 2f 2f 72 61 77 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 62 6c 65 70 L.https://raw.github.com/doublep
2660 2f 65 6c 64 65 76 2f 6d 61 73 74 65 72 2f 77 65 62 69 6e 73 74 61 6c 6c 2f 67 69 74 68 75 62 2d /eldev/master/webinstall/github-
2680 65 6c 64 65 76 20 7c 20 73 68 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 43 68 65 63 6b 20 6f 75 eldev.|.sh......-.name:.Check.ou
26a0 74 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 0a 20 20 20 20 20 20 75 73 65 73 3a 20 61 63 t.the.source.code.......uses:.ac
26c0 74 69 6f 6e 73 2f 63 68 65 63 6b 6f 75 74 40 76 32 0a 0a 20 20 20 20 2d 20 6e 61 6d 65 3a 20 54 tions/checkout@v2......-.name:.T
26e0 65 73 74 20 74 68 65 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 72 75 6e 3a 20 7c 0a 20 20 20 est.the.project.......run:.|....
2700 20 20 20 20 20 65 6c 64 65 76 20 2d 70 20 2d 64 74 54 20 2d 43 20 74 65 73 74 20 2d 2d 65 78 70 .....eldev.-p.-dtT.-C.test.--exp
2720 65 63 74 20 31 30 30 0a 20 20 20 20 20 20 20 20 65 6c 64 65 76 20 2d 64 74 54 20 2d 43 20 63 6f ect.100.........eldev.-dtT.-C.co
2740 6d 70 69 6c 65 20 2d 2d 77 61 72 6e 69 6e 67 73 2d 61 73 2d 65 72 72 6f 72 73 0a 00 00 00 00 00 mpile.--warnings-as-errors......
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 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 45 6c 64 65 76 00 00 00 00 00 00 00 00 00 00 projectile-2.8.0/Eldev..........
2820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
2880 30 30 30 30 30 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 32 37 37 00 20 30 00 00 00 0000043.00000000000.013277..0...
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 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...................
2920 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...................
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 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
2a20 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)..............................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 43 4f 4e 54 52 49 42 55 54 49 4e 47 2e 6d 64 projectile-2.8.0/CONTRIBUTING.md
2c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c60 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
2c80 30 30 30 33 31 36 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 35 37 00 20 30 00 00 00 0003166.00000000000.014557..0...
2ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d00 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...................
2d20 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...................
2d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e00 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.
2e20 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
2e40 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
2e60 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
2e80 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.
2ea0 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
2ec0 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
2ee0 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
2f00 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
2f20 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
2f40 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
2f60 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..`
2f80 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
2fa0 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
2fc0 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
2fe0 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
3000 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,..
3020 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
3040 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
3060 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
3080 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.
30a0 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
30c0 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)...
30e0 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
3100 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
3120 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
3140 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
3160 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
3180 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
31a0 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
31c0 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..`
31e0 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
3200 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]
3220 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
3240 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
3260 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
3280 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</
32a0 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
32c0 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
32e0 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
3300 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
3320 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
3340 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
3360 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
3380 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
33a0 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
33c0 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
33e0 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
3400 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
3420 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
3440 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
3460 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...........
3480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 70 72 6f 6a 65 63 74 69 6c 65 2e 65 6c 00 00 projectile-2.8.0/projectile.el..
3620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3680 31 30 32 31 33 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 31 30 00 20 30 00 00 00 1021336.00000000000.015010..0...
36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 3b 3b 3b 20 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
3820 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
3840 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.-*-..;
3860 3b 20 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 31 31 2d 32 30 32 33 20 42 6f 7a 68 69 64 61 ;.Copyright....2011-2023.Bozhida
3880 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>..
38a0 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
38c0 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:/
38e0 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.;
3900 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
3920 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 32 2e 38 2e 30 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 .;;.Version:.2.8.0.;;.Package-Re
3940 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 0a 3b 3b 20 54 68 69 quires:.((emacs."25.1"))..;;.Thi
3960 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.
3980 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
39a0 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/
39c0 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.
39e0 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
3a00 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
3a20 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
3a40 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.
3a60 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
3a80 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
3aa0 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
3ac0 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
3ae0 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
3b00 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
3b20 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
3b40 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
3b60 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
3b80 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
3ba0 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
3bc0 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...
3be0 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
3c00 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
3c20 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
3c40 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
3c60 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 20 70 72 6f 76 mentary:.;;.;;.This.library.prov
3c80 69 64 65 73 20 65 61 73 79 20 70 72 6f 6a 65 63 74 20 6d 61 6e 61 67 65 6d 65 6e 74 20 61 6e 64 ides.easy.project.management.and
3ca0 20 6e 61 76 69 67 61 74 69 6f 6e 2e 20 20 54 68 65 0a 3b 3b 20 63 6f 6e 63 65 70 74 20 6f 66 20 .navigation...The.;;.concept.of.
3cc0 61 20 70 72 6f 6a 65 63 74 20 69 73 20 70 72 65 74 74 79 20 62 61 73 69 63 20 2d 20 6a 75 73 74 a.project.is.pretty.basic.-.just
3ce0 20 61 20 66 6f 6c 64 65 72 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 3b 3b 20 73 70 65 63 69 61 6c 20 .a.folder.containing.;;.special.
3d00 66 69 6c 65 2e 20 20 43 75 72 72 65 6e 74 6c 79 20 67 69 74 2c 20 6d 65 72 63 75 72 69 61 6c 20 file...Currently.git,.mercurial.
3d20 61 6e 64 20 62 61 7a 61 61 72 20 72 65 70 6f 73 20 61 72 65 0a 3b 3b 20 63 6f 6e 73 69 64 65 72 and.bazaar.repos.are.;;.consider
3d40 65 64 20 70 72 6f 6a 65 63 74 73 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 49 66 20 79 6f 75 20 ed.projects.by.default...If.you.
3d60 77 61 6e 74 20 74 6f 20 6d 61 72 6b 20 61 20 66 6f 6c 64 65 72 0a 3b 3b 20 6d 61 6e 75 61 6c 6c want.to.mark.a.folder.;;.manuall
3d80 79 20 61 73 20 61 20 70 72 6f 6a 65 63 74 20 6a 75 73 74 20 63 72 65 61 74 65 20 61 6e 20 65 6d y.as.a.project.just.create.an.em
3da0 70 74 79 20 2e 70 72 6f 6a 65 63 74 69 6c 65 20 66 69 6c 65 20 69 6e 0a 3b 3b 20 69 74 2e 20 20 pty..projectile.file.in.;;.it...
3dc0 53 65 65 20 74 68 65 20 52 45 41 44 4d 45 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e See.the.README.for.more.details.
3de0 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 .;;.;;;.Code:..(require.'cl-lib)
3e00 0a 28 72 65 71 75 69 72 65 20 27 74 68 69 6e 67 61 74 70 74 29 0a 28 72 65 71 75 69 72 65 20 27 .(require.'thingatpt).(require.'
3e20 69 62 75 66 66 65 72 29 0a 28 72 65 71 75 69 72 65 20 27 69 62 75 66 2d 65 78 74 29 0a 28 72 65 ibuffer).(require.'ibuf-ext).(re
3e40 71 75 69 72 65 20 27 63 6f 6d 70 69 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 67 72 65 70 29 0a quire.'compile).(require.'grep).
3e60 28 72 65 71 75 69 72 65 20 27 6c 69 73 70 2d 6d 6e 74 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 (require.'lisp-mnt).(eval-when-c
3e80 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 66 69 6e 64 2d 64 69 72 65 64 29 0a 20 ompile...(require.'find-dired)..
3ea0 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 0a 0a 3b 3b 3b 20 44 65 63 6c 61 72 61 .(require.'subr-x))..;;;.Declara
3ec0 74 69 6f 6e 73 0a 3b 3b 0a 3b 3b 20 41 20 62 75 6e 63 68 20 6f 66 20 76 61 72 69 61 62 6c 65 20 tions.;;.;;.A.bunch.of.variable.
3ee0 61 6e 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 3b 3b 20 6e 65 65 and.function.declarations.;;.nee
3f00 64 65 64 20 74 6f 20 61 70 70 65 61 73 65 20 74 68 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 ded.to.appease.the.byte-compiler
3f20 2e 0a 28 64 65 66 76 61 72 20 69 64 6f 2d 6d 6f 64 65 29 0a 28 64 65 66 76 61 72 20 69 76 79 2d ..(defvar.ido-mode).(defvar.ivy-
3f40 6d 6f 64 65 29 0a 28 64 65 66 76 61 72 20 68 65 6c 6d 2d 6d 6f 64 65 29 0a 28 64 65 66 76 61 72 mode).(defvar.helm-mode).(defvar
3f60 20 61 67 2d 69 67 6e 6f 72 65 2d 6c 69 73 74 29 0a 28 64 65 66 76 61 72 20 67 67 74 61 67 73 2d .ag-ignore-list).(defvar.ggtags-
3f80 63 6f 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 29 0a 28 64 65 66 76 61 72 20 74 61 67 73 2d 63 completion-table).(defvar.tags-c
3fa0 6f 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 29 0a 28 64 65 66 76 61 72 20 74 61 67 73 2d 6c 6f ompletion-table).(defvar.tags-lo
3fc0 6f 70 2d 73 63 61 6e 29 0a 28 64 65 66 76 61 72 20 74 61 67 73 2d 6c 6f 6f 70 2d 6f 70 65 72 61 op-scan).(defvar.tags-loop-opera
3fe0 74 65 29 0a 28 64 65 66 76 61 72 20 65 73 68 65 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a te).(defvar.eshell-buffer-name).
4000 28 64 65 66 76 61 72 20 65 78 70 6c 69 63 69 74 2d 73 68 65 6c 6c 2d 66 69 6c 65 2d 6e 61 6d 65 (defvar.explicit-shell-file-name
4020 29 0a 28 64 65 66 76 61 72 20 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 29 0a 28 64 ).(defvar.grep-files-aliases).(d
4040 65 66 76 61 72 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 efvar.grep-find-ignored-director
4060 69 65 73 29 0a 28 64 65 66 76 61 72 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 ies).(defvar.grep-find-ignored-f
4080 69 6c 65 73 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 61 67 73 2d 63 6f iles)..(declare-function.tags-co
40a0 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 20 22 65 74 61 67 73 22 29 0a 28 64 65 63 6c 61 72 65 mpletion-table."etags").(declare
40c0 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 2d 74 65 72 6d 20 22 74 65 72 6d 22 29 0a 28 64 65 63 -function.make-term."term").(dec
40e0 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 72 6d 2d 6d 6f 64 65 20 22 74 65 72 6d 22 29 0a lare-function.term-mode."term").
4100 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 72 6d 2d 63 68 61 72 2d 6d 6f 64 65 (declare-function.term-char-mode
4120 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 74 65 72 6d 2d ."term").(declare-function.term-
4140 61 6e 73 69 2d 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 ansi-make-term."term").(declare-
4160 66 75 6e 63 74 69 6f 6e 20 65 73 68 65 6c 6c 2d 73 65 61 72 63 68 2d 70 61 74 68 20 22 65 73 68 function.eshell-search-path."esh
4180 2d 65 78 74 22 29 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 20 -ext").(declare-function.vc-dir.
41a0 22 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 76 63 2d 64 "vc-dir").(declare-function.vc-d
41c0 69 72 2d 62 75 73 79 20 22 76 63 2d 64 69 72 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 ir-busy."vc-dir").(declare-funct
41e0 69 6f 6e 20 73 74 72 69 6e 67 2d 74 72 69 6d 20 22 73 75 62 72 2d 78 22 29 0a 28 64 65 63 6c 61 ion.string-trim."subr-x").(decla
4200 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 20 22 66 re-function.fileloop-continue."f
4220 69 6c 65 6c 6f 6f 70 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 ileloop").(declare-function.file
4240 6c 6f 6f 70 2d 69 6e 69 74 69 61 6c 69 7a 65 2d 72 65 70 6c 61 63 65 20 22 66 69 6c 65 6c 6f 6f loop-initialize-replace."fileloo
4260 70 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 72 61 6d 70 2d 61 72 63 68 p").(declare-function.tramp-arch
4280 69 76 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 70 20 22 74 72 61 6d 70 2d 61 72 63 68 69 76 65 22 29 ive-file-name-p."tramp-archive")
42a0 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 .(declare-function.helm-grep-get
42c0 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 20 22 68 65 6c 6d 2d 67 72 65 70 22 29 0a 0a 28 -file-extensions."helm-grep")..(
42e0 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 67 74 61 67 73 2d 65 6e 73 75 72 65 2d 70 declare-function.ggtags-ensure-p
4300 72 6f 6a 65 63 74 20 22 65 78 74 3a 67 67 74 61 67 73 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 roject."ext:ggtags").(declare-fu
4320 6e 63 74 69 6f 6e 20 67 67 74 61 67 73 2d 75 70 64 61 74 65 2d 74 61 67 73 20 22 65 78 74 3a 67 nction.ggtags-update-tags."ext:g
4340 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 72 69 70 67 72 65 gtags").(declare-function.ripgre
4360 70 2d 72 65 67 65 78 70 20 22 65 78 74 3a 72 69 70 67 72 65 70 22 29 0a 28 64 65 63 6c 61 72 65 p-regexp."ext:ripgrep").(declare
4380 2d 66 75 6e 63 74 69 6f 6e 20 72 67 2d 72 75 6e 20 22 65 78 74 3a 72 67 22 29 0a 28 64 65 63 6c -function.rg-run."ext:rg").(decl
43a0 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 74 65 72 6d 20 22 65 78 74 3a 76 74 65 72 6d 22 29 0a are-function.vterm."ext:vterm").
43c0 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 (declare-function.vterm-other-wi
43e0 6e 64 6f 77 20 22 65 78 74 3a 76 74 65 72 6d 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 ndow."ext:vterm").(declare-funct
4400 69 6f 6e 20 76 74 65 72 6d 2d 73 65 6e 64 2d 72 65 74 75 72 6e 20 22 65 78 74 3a 76 74 65 72 6d ion.vterm-send-return."ext:vterm
4420 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 2d 73 65 6e 64 2d ").(declare-function.vterm-send-
4440 73 74 72 69 6e 67 20 22 65 78 74 3a 76 74 65 72 6d 22 29 0a 0a 0c 0a 3b 3b 3b 20 43 75 73 74 6f string."ext:vterm")....;;;.Custo
4460 6d 69 7a 61 74 69 6f 6e 0a 28 64 65 66 67 72 6f 75 70 20 70 72 6f 6a 65 63 74 69 6c 65 20 6e 69 mization.(defgroup.projectile.ni
4480 6c 0a 20 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 63 74 l..."Manage.and.navigate.project
44a0 73 20 65 61 73 69 6c 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 74 6f 6f 6c 73 0a 20 20 3a 67 72 s.easily."...:group.'tools...:gr
44c0 6f 75 70 20 27 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 20 20 3a 6c 69 6e 6b 20 27 28 75 72 6c 2d 6c oup.'convenience...:link.'(url-l
44e0 69 6e 6b 20 3a 74 61 67 20 22 47 69 74 48 75 62 22 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ink.:tag."GitHub"."https://githu
4500 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 20 20 3a 6c 69 b.com/bbatsov/projectile")...:li
4520 6e 6b 20 27 28 75 72 6c 2d 6c 69 6e 6b 20 3a 74 61 67 20 22 4f 6e 6c 69 6e 65 20 4d 61 6e 75 61 nk.'(url-link.:tag."Online.Manua
4540 6c 22 20 22 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 22 l"."https://docs.projectile.mx/"
4560 29 0a 20 20 3a 6c 69 6e 6b 20 27 28 65 6d 61 63 73 2d 63 6f 6d 6d 65 6e 74 61 72 79 2d 6c 69 6e )...:link.'(emacs-commentary-lin
4580 6b 20 3a 74 61 67 20 22 43 6f 6d 6d 65 6e 74 61 72 79 22 20 22 70 72 6f 6a 65 63 74 69 6c 65 22 k.:tag."Commentary"."projectile"
45a0 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 69 6e 64 65 78 69 ))..(defcustom.projectile-indexi
45c0 6e 67 2d 6d 65 74 68 6f 64 0a 20 20 28 69 66 20 28 65 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 ng-method...(if.(eq.system-type.
45e0 27 77 69 6e 64 6f 77 73 2d 6e 74 29 20 27 6e 61 74 69 76 65 20 27 61 6c 69 65 6e 29 0a 20 20 22 'windows-nt).'native.'alien)..."
4600 53 70 65 63 69 66 69 65 73 20 74 68 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 75 73 Specifies.the.indexing.method.us
4620 65 64 20 62 79 20 50 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 74 68 72 ed.by.Projectile...There.are.thr
4640 65 65 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 73 20 2d 20 6e 61 74 69 76 65 2c 20 68 79 ee.indexing.methods.-.native,.hy
4660 62 72 69 64 20 61 6e 64 20 61 6c 69 65 6e 2e 0a 0a 54 68 65 20 6e 61 74 69 76 65 20 6d 65 74 68 brid.and.alien...The.native.meth
4680 6f 64 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 od.is.implemented.in.Emacs.Lisp.
46a0 28 74 68 65 72 65 66 6f 72 65 20 69 74 20 69 73 0a 6e 61 74 69 76 65 20 74 6f 20 45 6d 61 63 73 (therefore.it.is.native.to.Emacs
46c0 29 2e 20 20 49 74 73 20 61 64 76 61 6e 74 61 67 65 20 69 73 20 74 68 61 74 20 69 74 20 69 73 20 )...Its.advantage.is.that.it.is.
46e0 70 6f 72 74 61 62 6c 65 20 61 6e 64 20 77 69 6c 6c 0a 77 6f 72 6b 20 65 76 65 72 79 77 68 65 72 portable.and.will.work.everywher
4700 65 20 74 68 61 74 20 45 6d 61 63 73 20 64 6f 65 73 2e 20 20 49 74 73 20 64 69 73 61 64 76 61 6e e.that.Emacs.does...Its.disadvan
4720 74 61 67 65 20 69 73 20 74 68 61 74 20 69 74 20 69 73 20 61 0a 62 69 74 20 73 6c 6f 77 20 28 65 tage.is.that.it.is.a.bit.slow.(e
4740 73 70 65 63 69 61 6c 6c 79 20 66 6f 72 20 6c 61 72 67 65 20 70 72 6f 6a 65 63 74 73 29 2e 20 20 specially.for.large.projects)...
4760 47 65 6e 65 72 61 6c 6c 79 20 69 74 27 73 20 61 20 67 6f 6f 64 0a 69 64 65 61 20 74 6f 20 70 61 Generally.it's.a.good.idea.to.pa
4780 69 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 20 77 69 ir.the.native.indexing.method.wi
47a0 74 68 20 63 61 63 68 69 6e 67 2e 0a 0a 54 68 65 20 68 79 62 72 69 64 20 69 6e 64 65 78 69 6e 67 th.caching...The.hybrid.indexing
47c0 20 6d 65 74 68 6f 64 20 75 73 65 73 20 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 28 65 2e 67 .method.uses.external.tools.(e.g
47e0 2e 20 67 69 74 2c 20 66 69 6e 64 2c 0a 65 74 63 29 20 74 6f 20 73 70 65 65 64 20 75 70 20 74 68 ..git,.find,.etc).to.speed.up.th
4800 65 20 69 6e 64 65 78 69 6e 67 20 70 72 6f 63 65 73 73 2e 20 20 53 74 69 6c 6c 2c 20 74 68 65 20 e.indexing.process...Still,.the.
4820 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 0a 70 6f 73 74 2d 70 72 6f 63 65 73 73 65 64 20 62 79 20 files.will.be.post-processed.by.
4840 50 72 6f 6a 65 63 74 69 6c 65 20 66 6f 72 20 73 6f 72 74 69 6e 67 2f 66 69 6c 74 65 72 69 6e 67 Projectile.for.sorting/filtering
4860 20 70 75 72 70 6f 73 65 73 2e 0a 49 6e 20 74 68 69 73 20 73 65 6e 73 65 20 74 68 61 74 20 61 70 .purposes..In.this.sense.that.ap
4880 70 72 6f 61 63 68 20 69 73 20 61 20 68 79 62 72 69 64 20 62 65 74 77 65 65 6e 20 6e 61 74 69 76 proach.is.a.hybrid.between.nativ
48a0 65 20 69 6e 64 65 78 69 6e 67 0a 61 6e 64 20 61 6c 69 65 6e 20 69 6e 64 65 78 69 6e 67 2e 0a 0a e.indexing.and.alien.indexing...
48c0 54 68 65 20 61 6c 69 65 6e 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 6f 70 74 69 6d 69 The.alien.indexing.method.optimi
48e0 7a 65 73 20 74 6f 20 74 68 65 20 6c 69 6d 69 74 20 74 68 65 20 73 70 65 65 64 0a 6f 66 20 74 68 zes.to.the.limit.the.speed.of.th
4900 65 20 68 79 62 72 69 64 20 69 6e 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 2e 20 20 54 68 69 73 20 e.hybrid.indexing.method...This.
4920 6d 65 61 6e 73 20 74 68 61 74 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 0a 6e 6f 74 20 64 means.that.Projectile.will.not.d
4940 6f 20 61 6e 79 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 72 65 o.any.processing.of.the.files.re
4960 74 75 72 6e 65 64 20 62 79 20 74 68 65 20 65 78 74 65 72 6e 61 6c 0a 63 6f 6d 6d 61 6e 64 73 20 turned.by.the.external.commands.
4980 61 6e 64 20 79 6f 75 27 72 65 20 67 6f 69 6e 67 20 74 6f 20 67 65 74 20 74 68 65 20 6d 61 78 69 and.you're.going.to.get.the.maxi
49a0 6d 75 6d 20 70 65 72 66 6f 72 6d 61 6e 63 65 0a 70 6f 73 73 69 62 6c 65 2e 20 20 54 68 69 73 20 mum.performance.possible...This.
49c0 62 65 68 61 76 69 6f 75 72 20 6d 61 6b 65 73 20 61 20 6c 6f 74 20 6f 66 20 73 65 6e 73 65 20 66 behaviour.makes.a.lot.of.sense.f
49e0 6f 72 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2c 0a 61 73 20 74 68 65 79 27 64 20 74 79 70 69 63 61 or.most.people,.as.they'd.typica
4a00 6c 6c 79 20 62 65 20 70 75 74 74 69 6e 67 20 69 67 6e 6f 72 65 73 20 69 6e 20 74 68 65 69 72 20 lly.be.putting.ignores.in.their.
4a20 56 43 53 20 63 6f 6e 66 69 67 20 61 6e 64 0a 77 6f 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 VCS.config.and.won't.care.about.
4a40 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 73 2f 75 6e 69 67 6e 6f 72 65 73 any.additional.ignores/unignores
4a60 2f 73 6f 72 74 69 6e 67 20 74 68 61 74 0a 50 72 6f 6a 65 63 74 69 6c 65 20 6d 69 67 68 74 20 61 /sorting.that.Projectile.might.a
4a80 6c 73 6f 20 70 72 6f 76 69 64 65 2e 0a 0a 54 68 65 20 64 69 73 61 64 76 61 6e 74 61 67 65 20 6f lso.provide...The.disadvantage.o
4aa0 66 20 74 68 65 20 68 79 62 72 69 64 20 61 6e 64 20 61 6c 69 65 6e 20 6d 65 74 68 6f 64 73 20 69 f.the.hybrid.and.alien.methods.i
4ac0 73 20 74 68 61 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 77 65 6c 6c 0a 73 75 70 70 6f 72 74 s.that.they.are.not.well.support
4ae0 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 20 73 79 73 74 65 6d 73 2e 20 20 54 68 61 74 27 73 20 77 ed.on.Windows.systems...That's.w
4b00 68 79 20 62 79 20 64 65 66 61 75 6c 74 20 61 6c 69 65 6e 20 69 6e 64 65 78 69 6e 67 20 69 73 20 hy.by.default.alien.indexing.is.
4b20 74 68 65 0a 64 65 66 61 75 6c 74 20 6f 6e 20 61 6c 6c 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 the.default.on.all.operating.sys
4b40 74 65 6d 73 2c 20 65 78 63 65 70 74 20 57 69 6e 64 6f 77 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 tems,.except.Windows."...:group.
4b60 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 20 'projectile...:type.'(radio.....
4b80 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 61 74 69 76 65 22 20 6e 61 74 69 76 ......(const.:tag."Native".nativ
4ba0 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 48 79 62 72 69 64 e)...........(const.:tag."Hybrid
4bc0 22 20 68 79 62 72 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 ".hybrid)...........(const.:tag.
4be0 22 41 6c 69 65 6e 22 20 61 6c 69 65 6e 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f "Alien".alien)))..(defcustom.pro
4c00 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 61 63 68 69 6e 67 20 28 65 71 20 70 72 6f 6a 65 jectile-enable-caching.(eq.proje
4c20 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 20 27 6e 61 74 69 76 65 29 0a 20 ctile-indexing-method.'native)..
4c40 20 22 57 68 65 6e 20 74 20 65 6e 61 62 6c 65 73 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 63 ."When.t.enables.project.files.c
4c60 61 63 68 69 6e 67 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 aching...Project.caching.is.auto
4c80 6d 61 74 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 matically.enabled.by.default.if.
4ca0 79 6f 75 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 you're.using.the.native.indexing
4cc0 20 6d 65 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 .method."...:group.'projectile..
4ce0 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 6d 20 70 72 6f .:type.'boolean)..(defcustom.pro
4d00 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 20 27 6b 69 6c jectile-kill-buffers-filter.'kil
4d20 6c 2d 61 6c 6c 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 62 75 66 66 65 72 73 l-all..."Determine.which.buffers
4d40 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-
4d60 62 75 66 66 65 72 73 27 2e 0a 0a 57 68 65 6e 20 74 68 65 20 6b 69 6c 6c 2d 61 6c 6c 20 6f 70 74 buffers'...When.the.kill-all.opt
4d80 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 6b 69 6c 6c 73 20 65 61 63 68 20 62 75 66 66 ion.is.selected,.kills.each.buff
4da0 65 72 2e 0a 0a 57 68 65 6e 20 74 68 65 20 6b 69 6c 6c 2d 6f 6e 6c 79 2d 66 69 6c 65 73 20 6f 70 er...When.the.kill-only-files.op
4dc0 74 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 6b 69 6c 6c 20 6f 6e 6c 79 20 74 68 65 20 tion.is.selected,.kill.only.the.
4de0 62 75 66 66 65 72 0a 61 73 73 6f 63 69 61 74 65 64 20 74 6f 20 61 20 66 69 6c 65 2e 0a 0a 4f 74 buffer.associated.to.a.file...Ot
4e00 68 65 72 77 69 73 65 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 61 20 70 72 65 64 69 63 61 74 herwise,.it.should.be.a.predicat
4e20 65 20 74 68 61 74 20 74 61 6b 65 73 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 3a 20 74 68 65 20 62 e.that.takes.one.argument:.the.b
4e40 75 66 66 65 72 20 74 6f 0a 62 65 20 6b 69 6c 6c 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 uffer.to.be.killed."...:group.'p
4e60 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.......
4e80 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 ....(const.:tag."All.project.buf
4ea0 66 65 72 73 22 20 6b 69 6c 6c 2d 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 fers".kill-all)...........(const
4ec0 20 3a 74 61 67 20 22 50 72 6f 6a 65 63 74 20 66 69 6c 65 20 62 75 66 66 65 72 73 22 20 6b 69 6c .:tag."Project.file.buffers".kil
4ee0 6c 2d 6f 6e 6c 79 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f l-only-files)...........(functio
4f00 6e 20 3a 74 61 67 20 22 50 72 65 64 69 63 61 74 65 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f n.:tag."Predicate")))..(defcusto
4f20 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 6c 6f 63 61 6c 2d 63 m.projectile-file-exists-local-c
4f40 61 63 68 65 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 ache-expire.nil..."Number.of.sec
4f60 6f 6e 64 73 20 62 65 66 6f 72 65 20 74 68 65 20 6c 6f 63 61 6c 20 66 69 6c 65 20 65 78 69 73 74 onds.before.the.local.file.exist
4f80 65 6e 63 65 20 63 61 63 68 65 20 65 78 70 69 72 65 73 2e 0a 4c 6f 63 61 6c 20 72 65 66 65 72 73 ence.cache.expires..Local.refers
4fa0 20 74 6f 20 61 20 66 69 6c 65 20 6f 6e 20 61 20 6c 6f 63 61 6c 20 66 69 6c 65 20 73 79 73 74 65 .to.a.file.on.a.local.file.syste
4fc0 6d 2e 0a 0a 41 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 m...A.value.of.nil.disables.this
4fe0 20 63 61 63 68 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 .cache..See.`projectile-file-exi
5000 73 74 73 2d 70 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 sts-p'.for.details."...:group.'p
5020 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 28 63 6f 6e 73 rojectile...:type.'(choice.(cons
5040 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 20 20 20 20 20 t.:tag."Disabled".nil)..........
5060 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 6e 64 73 22 29 ........(integer.:tag."Seconds")
5080 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 69 6c 65 2d 65 ))..(defcustom.projectile-file-e
50a0 78 69 73 74 73 2d 72 65 6d 6f 74 65 2d 63 61 63 68 65 2d 65 78 70 69 72 65 20 28 2a 20 35 20 36 xists-remote-cache-expire.(*.5.6
50c0 30 29 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 72 65 20 74 0)..."Number.of.seconds.before.t
50e0 68 65 20 72 65 6d 6f 74 65 20 66 69 6c 65 20 65 78 69 73 74 65 6e 63 65 20 63 61 63 68 65 20 65 he.remote.file.existence.cache.e
5100 78 70 69 72 65 73 2e 0a 52 65 6d 6f 74 65 20 72 65 66 65 72 73 20 74 6f 20 61 20 66 69 6c 65 20 xpires..Remote.refers.to.a.file.
5120 6f 6e 20 61 20 72 65 6d 6f 74 65 20 66 69 6c 65 20 73 79 73 74 65 6d 20 73 75 63 68 20 61 73 20 on.a.remote.file.system.such.as.
5140 74 72 61 6d 70 2e 0a 0a 41 20 76 61 6c 75 65 20 6f 66 20 6e 69 6c 20 64 69 73 61 62 6c 65 73 20 tramp...A.value.of.nil.disables.
5160 74 68 69 73 20 63 61 63 68 65 2e 0a 53 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 this.cache..See.`projectile-file
5180 2d 65 78 69 73 74 73 2d 70 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 67 72 6f 75 -exists-p'.for.details."...:grou
51a0 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 28 p.'projectile...:type.'(choice.(
51c0 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 20 const.:tag."Disabled".nil)......
51e0 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 6e ............(integer.:tag."Secon
5200 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 66 69 ds")))..(defcustom.projectile-fi
5220 6c 65 73 2d 63 61 63 68 65 2d 65 78 70 69 72 65 20 6e 69 6c 0a 20 20 22 4e 75 6d 62 65 72 20 6f les-cache-expire.nil..."Number.o
5240 66 20 73 65 63 6f 6e 64 73 20 62 65 66 6f 72 65 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 6c f.seconds.before.project.files.l
5260 69 73 74 20 63 61 63 68 65 20 65 78 70 69 72 65 73 2e 0a 0a 41 20 76 61 6c 75 65 20 6f 66 20 6e ist.cache.expires...A.value.of.n
5280 69 6c 20 6d 65 61 6e 73 20 74 68 65 20 63 61 63 68 65 20 6e 65 76 65 72 20 65 78 70 69 72 65 73 il.means.the.cache.never.expires
52a0 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.
52c0 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 69 73 61 62 6c 65 64 22 20 '(choice.(const.:tag."Disabled".
52e0 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 67 65 72 20 3a nil)..................(integer.:
5300 74 61 67 20 22 53 65 63 6f 6e 64 73 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f tag."Seconds")))..(defcustom.pro
5320 6a 65 63 74 69 6c 65 2d 61 75 74 6f 2d 64 69 73 63 6f 76 65 72 20 74 0a 20 20 22 57 68 65 74 68 jectile-auto-discover.t..."Wheth
5340 65 72 20 74 6f 20 64 69 73 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 77 68 65 6e 20 60 70 72 er.to.discover.projects.when.`pr
5360 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 27 20 69 73 20 61 63 74 69 76 61 74 65 64 2e 22 0a 20 20 ojectile-mode'.is.activated."...
5380 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
53a0 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
53c0 69 6c 65 20 2e 20 22 32 2e 33 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a ile..."2.3.0"))..(defcustom.proj
53e0 65 63 74 69 6c 65 2d 61 75 74 6f 2d 75 70 64 61 74 65 2d 63 61 63 68 65 20 74 0a 20 20 22 57 68 ectile-auto-update-cache.t..."Wh
5400 65 74 68 65 72 20 63 61 63 68 65 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 70 64 ether.cache.is.automatically.upd
5420 61 74 65 64 20 77 68 65 6e 20 66 69 6c 65 73 20 61 72 65 20 6f 70 65 6e 65 64 20 6f 72 20 64 65 ated.when.files.are.opened.or.de
5440 6c 65 74 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 20 20 3a leted."...:group.'projectile...:
5460 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
5480 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 27 70 72 6f 6d ctile-require-project-root.'prom
54a0 70 74 0a 20 20 22 52 65 71 75 69 72 65 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 61 20 pt..."Require.the.presence.of.a.
54c0 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 74 6f 20 6f 70 65 72 61 74 65 20 77 68 65 6e 20 74 72 75 project.root.to.operate.when.tru
54e0 65 2e 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 60 70 72 6f 6d 70 74 27 20 50 72 6f 6a 65 63 74 69 e..When.set.to.`prompt'.Projecti
5500 6c 65 20 77 69 6c 6c 20 61 73 6b 20 79 6f 75 20 74 6f 20 73 65 6c 65 63 74 20 61 20 70 72 6f 6a le.will.ask.you.to.select.a.proj
5520 65 63 74 0a 64 69 72 65 63 74 6f 72 79 20 69 66 20 79 6f 75 27 72 65 20 6e 6f 74 20 69 6e 20 61 ect.directory.if.you're.not.in.a
5540 20 70 72 6f 6a 65 63 74 2e 0a 0a 57 68 65 6e 20 6e 69 6c 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 .project...When.nil.Projectile.w
5560 69 6c 6c 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f ill.consider.the.current.directo
5580 72 79 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 ry.the.project.root."...:group.'
55a0 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 28 63 6f 6e projectile...:type.'(choice.(con
55c0 73 74 20 3a 74 61 67 20 22 4e 6f 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.:tag."No".nil)...............
55e0 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 59 65 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 ...(const.:tag."Yes".t).........
5600 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 50 72 6f 6d 70 74 20 66 6f 72 .........(const.:tag."Prompt.for
5620 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6d 70 74 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 .project".prompt)))..(defcustom.
5640 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 20 27 61 75 projectile-completion-system.'au
5660 74 6f 0a 20 20 22 54 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 79 73 74 65 6d 20 74 6f 20 62 to..."The.completion.system.to.b
5680 65 20 75 73 65 64 20 62 79 20 50 72 6f 6a 65 63 74 69 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 e.used.by.Projectile."...:group.
56a0 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 20 'projectile...:type.'(radio.....
56c0 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 75 74 6f 2d 64 65 74 65 63 74 22 20 ......(const.:tag."Auto-detect".
56e0 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 64 6f auto)...........(const.:tag."Ido
5700 22 20 69 64 6f 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 48 65 ".ido)...........(const.:tag."He
5720 6c 6d 22 20 68 65 6c 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 lm".helm)...........(const.:tag.
5740 22 49 76 79 22 20 69 76 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 "Ivy".ivy)...........(const.:tag
5760 20 22 44 65 66 61 75 6c 74 22 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 ."Default".default)...........(f
5780 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 43 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 22 29 29 unction.:tag."Custom.function"))
57a0 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 65 79 6d 61 70 2d )..(defcustom.projectile-keymap-
57c0 70 72 65 66 69 78 20 6e 69 6c 0a 20 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 6b 65 79 6d 61 70 20 prefix.nil..."Projectile.keymap.
57e0 70 72 65 66 69 78 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 prefix."...:group.'projectile...
5800 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 :type.'string)..(make-obsolete-v
5820 61 72 69 61 62 6c 65 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 ariable.'projectile-keymap-prefi
5840 78 20 22 55 73 65 20 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 x."Use.(define-key.projectile-mo
5860 64 65 2d 6d 61 70 20 28 6b 62 64 20 2e 2e 2e 29 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d de-map.(kbd....).'projectile-com
5880 6d 61 6e 64 2d 6d 61 70 29 20 69 6e 73 74 65 61 64 2e 22 20 22 32 2e 30 2e 30 22 29 0a 0a 28 64 mand-map).instead."."2.0.0")..(d
58a0 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 0a 20 efcustom.projectile-cache-file..
58c0 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 72 6f 6a 65 63 74 69 6c 65 2e 63 .(expand-file-name."projectile.c
58e0 61 63 68 65 22 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 54 ache".user-emacs-directory)..."T
5900 68 65 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 20 66 69 he.name.of.Projectile's.cache.fi
5920 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 79 70 le."...:group.'projectile...:typ
5940 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
5960 65 2d 74 61 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 e-tags-file-name."TAGS"..."The.t
5980 61 67 73 20 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 ags.filename.Projectile's.going.
59a0 74 6f 20 75 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 to.use."...:group.'projectile...
59c0 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 65 :type.'string)..(defcustom.proje
59e0 63 74 69 6c 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 ctile-tags-command."ctags.-Re.-f
5a00 20 5c 22 25 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 .\"%s\".%s.\"%s\""..."The.comman
5a20 64 20 50 72 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 d.Projectile's.going.to.use.to.g
5a40 65 6e 65 72 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 enerate.a.TAGS.file."...:group.'
5a60 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 28 64 65 projectile...:type.'string)..(de
5a80 66 63 75 73 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 fcustom.projectile-tags-backend.
5aa0 27 61 75 74 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 'auto..."The.tag.backend.that.Pr
5ac0 6f 6a 65 63 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 ojectile.should.use...If.set.to.
5ae0 60 61 75 74 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 `auto',.`projectile-find-tag'.wi
5b00 6c 6c 20 61 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 ll.automatically.choose.which.ba
5b20 63 6b 65 6e 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 ckend.to.use...Preference.order.
5b40 69 73 20 67 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 is.ggtags.->.xref.->.etags-selec
5b60 74 20 2d 3e 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 t.->.`find-tag'...Variable.can.a
5b80 6c 73 6f 20 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 lso.be.set.to.specify.which.back
5ba0 65 6e 64 20 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 end.to.use...If.selected.backend
5bc0 20 69 73 20 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 .is.unavailable,.fall.back.to.`f
5be0 69 6e 64 2d 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 ind-tag'...If.this.variable.is.s
5c00 65 74 20 74 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 et.to.`auto'.and.ggtags.is.avail
5c20 61 62 6c 65 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 able,.or.if.set.to.`ggtags',.the
5c40 6e 20 67 67 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 n.ggtags.will.be.used.for.`proje
5c60 63 74 69 6c 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 ctile-regenerate-tags'...For.all
5c80 20 6f 74 68 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 .other.settings.`projectile-tags
5ca0 2d 63 6f 6d 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 -command'.will.be.used."...:grou
5cc0 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 61 64 69 6f 0a 20 20 p.'projectile...:type.'(radio...
5ce0 20 20 20 20 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 ........(const.:tag."auto".auto)
5d00 0a 20 20 20 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 ...........(const.:tag."xref".xr
5d20 65 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 22 67 67 74 61 67 ef)...........(const.:tag."ggtag
5d40 73 22 20 67 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 s".ggtags)...........(const.:tag
5d60 20 22 65 74 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 ."etags".etags-select)..........
5d80 20 28 63 6f 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 .(const.:tag."standard".find-tag
5da0 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 6f 6a 65 63 74 69 ))...:package-version.'(projecti
5dc0 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
5de0 65 63 74 69 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 ectile-sort-order.'default..."Th
5e00 65 20 73 6f 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 e.sort.order.used.for.a.project'
5e20 73 20 66 69 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 s.files...Note.that.files.aren't
5e40 20 73 6f 72 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 .sorted.if.`projectile-indexing-
5e60 6d 65 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 method'.is.set.to.`alien'."...:g
5e80 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 61 64 69 6f roup.'projectile...:type.'(radio
5ea0 0a 20 20 20 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 ...........(const.:tag."Default.
5ec0 28 6e 6f 20 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 (no.sorting)".default)..........
5ee0 20 28 63 6f 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 .(const.:tag."Recently.opened.fi
5f00 6c 65 73 22 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 les".recentf)...........(const.:
5f20 74 61 67 20 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 tag."Recently.active.buffers,.th
5f40 65 6e 20 72 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 en.recently.opened.files".recent
5f60 6c 79 2d 61 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 ly-active)...........(const.:tag
5f80 20 22 41 63 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 ."Access.time.(atime)".access-ti
5fa0 6d 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 4d 6f 64 69 66 me)...........(const.:tag."Modif
5fc0 69 63 61 74 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 ication.time.(mtime)".modificati
5fe0 6f 6e 2d 74 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 on-time)))..(defcustom.projectil
6000 65 2d 76 65 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 e-verbose.t..."Echo.messages.tha
6020 74 20 61 72 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 t.are.not.errors."...:group.'pro
6040 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
6060 75 73 74 6f 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 ustom.projectile-buffers-filter-
6080 66 75 6e 63 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 function.nil..."A.function.used.
60a0 74 6f 20 66 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 to.filter.the.buffers.in.`projec
60c0 74 69 6c 65 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 tile-project-buffers'...The.func
60e0 74 69 6f 6e 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 tion.should.accept.and.return.a.
6100 6c 69 73 74 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 list.of.Emacs.buffers..Two.examp
6120 6c 65 20 66 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 le.filter.functions.are.shipped.
6140 62 79 20 64 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 by.default.-.`projectile-buffers
6160 2d 77 69 74 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 -with-file'.and.`projectile-buff
6180 65 72 73 2d 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 ers-with-file-or-process'."...:g
61a0 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 74 69 roup.'projectile...:type.'functi
61c0 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 70 72 6f 6a 65 on)..(defcustom.projectile-proje
61e0 63 74 2d 6e 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 ct-name.nil..."If.this.value.is.
6200 6e 6f 6e 2d 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 non-nil,.it.will.be.used.as.proj
6220 65 63 74 20 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 ect.name...It.has.precedence.ove
6240 72 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 2d 6e r.function.`projectile-project-n
6260 61 6d 65 2d 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 ame-function'."...:group.'projec
6280 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 61 67 65 2d tile...:type.'string...:package-
62a0 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 34 2e 30 22 29 version.'(projectile..."0.14.0")
62c0 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 65 63 74 )..(defcustom.projectile-project
62e0 2d 6e 61 6d 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 -name-function.'projectile-defau
6300 6c 74 2d 70 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 lt-project-name..."A.function.th
6320 61 74 20 72 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 at.receives.the.project-root.and
6340 20 72 65 74 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 .returns.the.project.name...If.v
6360 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 6e 61 6d 65 ariable.`projectile-project-name
6380 27 20 69 73 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 '.is.non-nil,.this.function.will
63a0 20 6e 6f 74 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 .not.be.used."...:group.'project
63c0 69 6c 65 0a 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 ile...:type.'function...:package
63e0 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 34 2e 30 22 -version.'(projectile..."0.14.0"
6400 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 72 6f 6a 65 63 ))..(defcustom.projectile-projec
6420 74 2d 72 6f 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 t-root-files...'(....."GTAGS"...
6440 20 20 20 20 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 ...........;.GNU.Global.tags....
6460 20 22 54 41 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 ."TAGS"...............;.etags/ct
6480 61 67 73 20 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 ags.are.usually.in.the.root.of.p
64a0 72 6f 6a 65 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 roject....."configure.ac".......
64c0 3b 20 61 75 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 ;.autoconf.new.style....."config
64e0 75 72 65 2e 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 ure.in".......;.autoconf.old.sty
6500 6c 65 0a 20 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 le....."cscope.out".........;.cs
6520 63 6f 70 65 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 cope.....)..."A.list.of.files.co
6540 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 20 6f 66 20 61 20 70 nsidered.to.mark.the.root.of.a.p
6560 72 6f 6a 65 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 roject..The.topmost.match.has.pr
6580 65 63 65 64 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 ecedence..See.`projectile-regist
65a0 65 72 2d 70 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 er-project-type'."...:group.'pro
65c0 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)
65e0 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 65 63 74 )..(defcustom.projectile-project
6600 2d 72 6f 6f 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 -root-files-bottom-up...'(".git"
6620 20 20 20 20 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 ........;.Git.VCS.root.dir....."
6640 2e 68 67 22 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 .hg".........;.Mercurial.VCS.roo
6660 74 20 64 69 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 t.dir.....".fslckout"...;.Fossil
6680 20 56 43 53 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 .VCS.root.dir....."_FOSSIL_"....
66a0 3b 20 46 6f 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 ;.Fossil.VCS.root.DB.on.Windows.
66c0 20 20 20 20 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 ....".bzr"........;.Bazaar.VCS.r
66e0 6f 6f 74 20 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 oot.dir....."_darcs"......;.Darc
6700 73 20 56 43 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 s.VCS.root.dir.....".pijul".....
6720 20 3b 20 50 69 6a 75 6c 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 29 0a 20 20 22 41 .;.Pijul.VCS.root.dir.....)..."A
6740 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 63 6f 6e 73 69 64 65 72 65 64 20 74 6f 20 6d 61 72 .list.of.files.considered.to.mar
6760 6b 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 2e 0a 54 68 65 20 62 6f 74 k.the.root.of.a.project..The.bot
6780 74 6f 6d 6d 6f 73 74 20 28 70 61 72 65 6e 74 6d 6f 73 74 29 20 6d 61 74 63 68 20 68 61 73 20 70 tommost.(parentmost).match.has.p
67a0 72 65 63 65 64 65 6e 63 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c 65 recedence."...:group.'projectile
67c0 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 64 65 66 ...:type.'(repeat.string))..(def
67e0 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 74 2d 66 custom.projectile-project-root-f
6800 69 6c 65 73 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 0a 20 20 27 28 22 2e 73 76 iles-top-down-recurring...'(".sv
6820 6e 22 20 3b 20 53 76 6e 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 43 56 53 22 20 n".;.Svn.VCS.root.dir....."CVS".
6840 20 3b 20 43 73 76 20 56 43 53 20 72 6f 6f 74 20 64 69 72 0a 20 20 20 20 22 4d 61 6b 65 66 69 6c .;.Csv.VCS.root.dir....."Makefil
6860 65 22 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 65 72 65 e")..."A.list.of.files.considere
6880 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 63 74 2e d.to.mark.the.root.of.a.project.
68a0 0a 54 68 65 20 73 65 61 72 63 68 20 73 74 61 72 74 73 20 61 74 20 74 68 65 20 74 6f 70 20 61 6e .The.search.starts.at.the.top.an
68c0 64 20 64 65 73 63 65 6e 64 73 20 64 6f 77 6e 20 74 69 6c 6c 20 61 20 64 69 72 65 63 74 6f 72 79 d.descends.down.till.a.directory
68e0 0a 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 6d 61 74 63 68 20 66 69 6c 65 20 62 75 74 20 .that.contains.a.match.file.but.
6900 69 74 73 20 70 61 72 65 6e 74 20 64 6f 65 73 20 6e 6f 74 2e 20 20 54 68 75 73 2c 20 69 74 27 73 its.parent.does.not...Thus,.it's
6920 20 61 0a 62 6f 74 74 6f 6d 6d 6f 73 74 20 6d 61 74 63 68 20 69 6e 20 74 68 65 20 74 6f 70 6d 6f .a.bottommost.match.in.the.topmo
6940 73 74 20 73 65 71 75 65 6e 63 65 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 0a 63 6f 6e 74 61 st.sequence.of.directories.conta
6960 69 6e 69 6e 67 20 61 20 72 6f 6f 74 20 66 69 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 ining.a.root.file."...:group.'pr
6980 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
69a0 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c ))..(define-obsolete-variable-al
69c0 69 61 73 20 27 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 ias.'projectile-project-root-fil
69e0 65 73 2d 66 75 6e 63 74 69 6f 6e 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 es-functions.'projectile-project
6a00 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 20 22 32 2e 34 22 29 0a 0a 28 64 65 66 63 75 73 74 -root-functions."2.4")..(defcust
6a20 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 74 2d 66 75 6e 63 74 om.projectile-project-root-funct
6a40 69 6f 6e 73 0a 20 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 6c 6f 63 61 6c 0a 20 ions...'(projectile-root-local..
6a60 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 6d 61 72 6b 65 64 0a 20 20 20 20 70 72 ...projectile-root-marked.....pr
6a80 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 62 6f 74 74 6f 6d 2d 75 70 0a 20 20 20 20 70 72 6f 6a ojectile-root-bottom-up.....proj
6aa0 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f 77 6e 0a 20 20 20 20 70 72 6f 6a 65 63 74 ectile-root-top-down.....project
6ac0 69 6c 65 2d 72 6f 6f 74 2d 74 6f 70 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 29 0a 20 20 22 ile-root-top-down-recurring)..."
6ae0 41 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 66 69 6e 64 69 6e 67 20 A.list.of.functions.for.finding.
6b00 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 6f 6c 64 65 72 73 2e 0a 54 68 65 20 66 75 6e 63 74 69 project.root.folders..The.functi
6b20 6f 6e 73 20 77 69 6c 6c 20 62 65 20 72 75 6e 20 75 6e 74 69 6c 20 6f 6e 65 20 6f 66 20 74 68 65 ons.will.be.run.until.one.of.the
6b40 6d 20 72 65 74 75 72 6e 73 20 61 20 70 72 6f 6a 65 63 74 20 66 6f 6c 64 65 72 2e 0a 52 65 6f 72 m.returns.a.project.folder..Reor
6b60 64 65 72 69 6e 67 20 74 68 65 20 64 65 66 61 75 6c 74 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c dering.the.default.functions.wil
6b80 6c 20 61 6c 74 65 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 69 73 63 6f 76 65 72 79 0a 61 6c l.alter.the.project.discovery.al
6ba0 67 6f 72 69 74 68 6d 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 gorithm."...:group.'projectile..
6bc0 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 .:type.'(repeat.function))..(def
6be0 63 75 73 74 6f 6d 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 custom.projectile-dirconfig-file
6c00 0a 20 20 22 2e 70 72 6f 6a 65 63 74 69 6c 65 22 0a 20 20 22 54 68 65 20 66 69 6c 65 20 77 68 69 ...".projectile"..."The.file.whi
6c20 63 68 20 73 65 72 76 65 73 20 62 6f 74 68 20 61 73 20 61 20 70 72 6f 6a 65 63 74 20 6d 61 72 6b ch.serves.both.as.a.project.mark
6c40 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 54 68 69 73 20 er.and.configuration.file..This.
6c60 73 68 6f 75 6c 64 20 5f 6e 6f 74 5f 20 62 65 20 73 65 74 20 76 69 61 20 2e 64 69 72 2d 6c 6f 63 should._not_.be.set.via..dir-loc
6c80 61 6c 73 2e 65 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 als.el."...:group.'projectile...
6ca0 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 :type.'file...:package-version.'
6cc0 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 37 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 (projectile..."2.7.0"))..(defcus
6ce0 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 tom.projectile-dirconfig-comment
6d00 2d 70 72 65 66 69 78 0a 20 20 6e 69 6c 0a 20 20 22 60 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 -prefix...nil..."`projectile-dir
6d20 63 6f 6e 66 69 67 2d 66 69 6c 65 60 20 63 6f 6d 6d 65 6e 74 20 73 74 61 72 74 20 6d 61 72 6b 65 config-file`.comment.start.marke
6d40 72 2e 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 73 74 61 72 74 69 6e 67 20 61 20 6c 69 6e 65 r..If.specified,.starting.a.line
6d60 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 27 73 20 2e 70 72 6f 6a 65 63 74 69 6c 65 20 66 69 6c 65 .in.a.project's..projectile.file
6d80 20 77 69 74 68 20 74 68 69 73 0a 63 68 61 72 61 63 74 65 72 20 6d 61 72 6b 73 20 74 68 61 74 20 .with.this.character.marks.that.
6da0 6c 69 6e 65 20 61 73 20 61 20 63 6f 6d 6d 65 6e 74 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 70 line.as.a.comment.instead.of.a.p
6dc0 61 74 74 65 72 6e 2e 0a 53 69 6d 69 6c 61 72 20 74 6f 20 27 23 27 20 69 6e 20 2e 67 69 74 69 67 attern..Similar.to.'#'.in..gitig
6de0 6e 6f 72 65 20 66 69 6c 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c nore.files."...:group.'projectil
6e00 65 0a 20 20 3a 74 79 70 65 20 27 63 68 61 72 61 63 74 65 72 0a 20 20 3a 70 61 63 6b 61 67 65 2d e...:type.'character...:package-
6e20 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 32 2e 30 22 29 29 version.'(projectile..."2.2.0"))
6e40 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 79 ..(defcustom.projectile-globally
6e60 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 69 6c -ignored-files...(list.projectil
6e80 65 2d 74 61 67 73 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 66 e-tags-file-name)..."A.list.of.f
6ea0 69 6c 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 74 iles.globally.ignored.by.project
6ec0 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 74 ile..Note.that.files.aren't.filt
6ee0 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 74 ered.if.`projectile-indexing-met
6f00 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 75 hod'.is.set.to.`alien'."...:grou
6f20 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 73 p.'projectile...:type.'(repeat.s
6f40 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 67 tring))..(defcustom.projectile-g
6f60 6c 6f 62 61 6c 6c 79 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 41 lobally-unignored-files.nil..."A
6f80 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 67 6c 6f 62 61 6c 6c 79 20 75 6e 69 67 6e 6f 72 65 .list.of.files.globally.unignore
6fa0 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 d.by.projectile..Regular.express
6fc0 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 2e 0a 4e 6f 74 65 20 74 68 61 74 20 66 69 6c 65 ions.can.be.used..Note.that.file
6fe0 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 65 s.aren't.filtered.if.`projectile
7000 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 69 -indexing-method'.is.set.to.`ali
7020 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 79 en'."...:group.'projectile...:ty
7040 70 65 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 pe.'(repeat.string)...:package-v
7060 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 34 2e 30 22 29 29 ersion.'(projectile..."0.14.0"))
7080 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 79 ..(defcustom.projectile-globally
70a0 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 0a 20 20 6e 69 6c 0a 20 20 22 -ignored-file-suffixes...nil..."
70c0 41 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 20 73 75 66 66 69 78 65 73 20 67 6c 6f 62 61 6c 6c 79 A.list.of.file.suffixes.globally
70e0 20 69 67 6e 6f 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 .ignored.by.projectile..Note.tha
7100 74 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 t.files.aren't.filtered.if.`proj
7120 65 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 ectile-indexing-method'.is.set.t
7140 6f 20 60 61 6c 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 o.`alien'."...:group.'projectile
7160 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 64 65 66 ...:type.'(repeat.string))..(def
7180 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 6e 6f 72 custom.projectile-globally-ignor
71a0 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 27 28 22 5e 5c 5c 2e 69 64 65 61 24 22 0a 20 ed-directories...'("^\\.idea$"..
71c0 20 20 20 22 5e 5c 5c 2e 76 73 63 6f 64 65 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 65 6e 73 69 6d 65 ..."^\\.vscode$"....."^\\.ensime
71e0 5f 63 61 63 68 65 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 65 75 6e 69 74 24 22 0a 20 20 20 20 22 5e _cache$"....."^\\.eunit$"....."^
7200 5c 5c 2e 67 69 74 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 68 67 24 22 0a 20 20 20 20 22 5e 5c 5c 2e \\.git$"....."^\\.hg$"....."^\\.
7220 66 73 6c 63 6b 6f 75 74 24 22 0a 20 20 20 20 22 5e 5f 46 4f 53 53 49 4c 5f 24 22 0a 20 20 20 20 fslckout$"....."^_FOSSIL_$".....
7240 22 5e 5c 5c 2e 62 7a 72 24 22 0a 20 20 20 20 22 5e 5f 64 61 72 63 73 24 22 0a 20 20 20 20 22 5e "^\\.bzr$"....."^_darcs$"....."^
7260 5c 5c 2e 70 69 6a 75 6c 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 74 6f 78 24 22 0a 20 20 20 20 22 5e \\.pijul$"....."^\\.tox$"....."^
7280 5c 5c 2e 73 76 6e 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 73 74 61 63 6b 2d 77 6f 72 6b 24 22 0a 20 \\.svn$"....."^\\.stack-work$"..
72a0 20 20 20 22 5e 5c 5c 2e 63 63 6c 73 2d 63 61 63 68 65 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 63 61 ..."^\\.ccls-cache$"....."^\\.ca
72c0 63 68 65 24 22 0a 20 20 20 20 22 5e 5c 5c 2e 63 6c 61 6e 67 64 24 22 29 0a 20 20 22 41 20 6c 69 che$"....."^\\.clangd$")..."A.li
72e0 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 6f 72 st.of.directories.globally.ignor
7300 65 64 20 62 79 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 ed.by.projectile..Regular.expres
7320 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 2e 0a 0a 53 74 72 69 6e 67 73 20 74 68 61 74 sions.can.be.used...Strings.that
7340 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 6e .don't.start.with.*.are.only.ign
7360 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 6f ored.at.the.top.level.of.the.pro
7380 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 2a ject...Strings.that.start.with.*
73a0 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 70 .are.ignored.everywhere.in.the.p
73c0 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 53 roject,.as.if.there.was.no.*...S
73e0 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 65 o.note.that.*.when.used.as.a.pre
7400 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 20 fix.is.not.a.wildcard;.it.is.an.
7420 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 6f indicator.that.the.directory.sho
7440 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 6f uld.be.ignored.at.all.levels,.no
7460 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 20 t.just.root...Examples:.\"tmp\".
7480 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 65 ignores.only../tmp.at.the.top.le
74a0 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 72 vel.of.the.project,.but.not../sr
74c0 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 74 c/tmp...\"*tmp\".will.ignore.bot
74e0 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 2e h../tmp.and../src/tmp,.but.not..
7500 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 0a /not-a-tmp.or../src/not-a-tmp...
7520 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.
7540 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'.
7560 69 73 20 73 65 74 20 74 6f 20 60 61 6c 69 65 6e 27 2e 22 0a 20 20 3a 73 61 66 65 20 28 6c 61 6d is.set.to.`alien'."...:safe.(lam
7580 62 64 61 20 28 78 29 20 28 6e 6f 74 20 28 72 65 6d 71 20 74 20 28 6d 61 70 63 61 72 20 23 27 73 bda.(x).(not.(remq.t.(mapcar.#'s
75a0 74 72 69 6e 67 70 20 78 29 29 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 69 6c tringp.x))))...:group.'projectil
75c0 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 64 65 e...:type.'(repeat.string))..(de
75e0 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 75 6e 69 67 fcustom.projectile-globally-unig
7600 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 nored-directories.nil..."A.list.
7620 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 20 75 6e 69 67 6e 6f 72 65 of.directories.globally.unignore
7640 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 65 73 d.by.projectile..Note.that.files
7660 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 65 2d .aren't.filtered.if.`projectile-
7680 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 69 65 indexing-method'.is.set.to.`alie
76a0 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 79 70 n'."...:group.'projectile...:typ
76c0 65 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 e.'(repeat.string)...:package-ve
76e0 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 34 2e 30 22 29 29 0a rsion.'(projectile..."0.14.0")).
7700 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 79 2d .(defcustom.projectile-globally-
7720 69 67 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 ignored-modes...'("erc-mode"....
7740 20 22 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 ."help-mode"....."completion-lis
7760 74 2d 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 t-mode"....."Buffer-menu-mode"..
7780 20 20 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 ..."gnus-.*-mode"....."occur-mod
77a0 65 22 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 e")..."A.list.of.regular.express
77c0 69 6f 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 ions.for.major.modes.ignored.by.
77e0 70 72 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 projectile...If.a.buffer.is.usin
7800 67 20 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 g.a.given.major.mode,.projectile
7820 20 77 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 .will.ignore.it.for.functions.wo
7840 72 6b 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 rking.with.buffers."...:group.'p
7860 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 73 74 72 69 6e rojectile...:type.'(repeat.strin
7880 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 67 6c 6f 62 61 g))..(defcustom.projectile-globa
78a0 6c 6c 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 lly-ignored-buffers...'("*scratc
78c0 68 2a 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 h*"....."*lsp-log*")..."A.list.o
78e0 66 20 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 f.buffer-names.ignored.by.projec
7900 74 69 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 tile...You.can.use.either.exact.
7920 62 75 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 buffer.names.or.regular.expressi
7940 6f 6e 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 ons..If.a.buffer.is.in.the.list.
7960 70 72 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 projectile.will.ignore.it.for.fu
7980 6e 63 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 nctions.working.with.buffers."..
79a0 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 72 65 .:group.'projectile...:type.'(re
79c0 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 73 69 6f 6e 20 peat.string)...:package-version.
79e0 27 28 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 '(projectile..."0.12.0"))..(defc
7a00 75 73 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 ustom.projectile-find-file-hook.
7a20 6e 69 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 nil..."Hooks.run.when.a.file.is.
7a40 6f 70 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 opened.with.`projectile-find-fil
7a60 65 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 79 70 e'."...:group.'projectile...:typ
7a80 65 20 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 e.'hook)..(defcustom.projectile-
7aa0 66 69 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 find-dir-hook.nil..."Hooks.run.w
7ac0 68 65 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 hen.a.directory.is.opened.with.`
7ae0 70 72 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 projectile-find-dir'."...:group.
7b00 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 29 0a 0a 28 64 65 66 'projectile...:type.'hook)..(def
7b20 63 75 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 custom.projectile-switch-project
7b40 2d 61 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 -action.'projectile-find-file...
7b60 22 41 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 "Action.invoked.after.switching.
7b80 70 72 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 projects.with.`projectile-switch
7ba0 2d 70 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 -project'...Any.function.that.do
7bc0 65 73 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 es.not.take.arguments.will.do.".
7be0 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 66 75 ..:group.'projectile...:type.'fu
7c00 6e 63 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 nction)..(defcustom.projectile-f
7c20 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 20 6e 69 6c 0a 20 ind-dir-includes-top-level.nil..
7c40 20 22 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 ."If.true,.add.top-level.dir.to.
7c60 6f 70 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 options.offered.by.`projectile-f
7c80 69 6e 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 ind-dir'."...:group.'projectile.
7ca0 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 6d 20 70 72 ..:type.'boolean)..(defcustom.pr
7cc0 6f 6a 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 ojectile-use-git-grep.nil..."If.
7ce0 74 72 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 true,.use.`vc-git-grep'.in.git.p
7d00 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 63 74 69 6c 65 0a 20 rojects."...:group.'projectile..
7d20 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 6d 20 70 72 6f .:type.'boolean)..(defcustom.pro
7d40 6a 65 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 jectile-grep-finished-hook.nil..
7d60 20 22 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 ."Hooks.run.when.`projectile-gre
7d80 70 27 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 p'.finishes."...:group.'projecti
7da0 6c 65 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 le...:type.'hook...:package-vers
7dc0 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"))..(
7de0 64 65 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 defcustom.projectile-test-prefix
7e00 2d 66 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 -function.'projectile-test-prefi
7e20 78 0a 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 x..."Function.to.find.test.files
7e40 20 70 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 .prefix.based.on.PROJECT-TYPE.".
7e60 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 66 75 ..:group.'projectile...:type.'fu
7e80 6e 63 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 nction)..(defcustom.projectile-t
7ea0 65 73 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 est-suffix-function.'projectile-
7ec0 74 65 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 test-suffix..."Function.to.find.
7ee0 74 65 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 test.files.suffix.based.on.PROJE
7f00 43 54 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 CT-TYPE."...:group.'projectile..
7f20 20 3a 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 .:type.'function)..(defcustom.pr
7f40 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 66 75 6e 63 74 69 ojectile-related-files-fn-functi
7f60 6f 6e 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 on.'projectile-related-files-fn.
7f80 20 20 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 .."Function.to.find.related.file
7fa0 73 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 3a 67 72 6f s.based.on.PROJECT-TYPE."...:gro
7fc0 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
7fe0 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 79 6e 61 6d 69 63 )..(defcustom.projectile-dynamic
8000 2d 6d 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 -mode-line.t..."If.true,.update.
8020 74 68 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 the.mode-line.dynamically..Only.
8040 66 69 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 file.buffers.are.affected.by.thi
8060 73 2c 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 s,.as.the.update.happens.via.`fi
8080 6e 64 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 nd-file-hook'...See.also.`projec
80a0 74 69 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 tile-mode-line-function'.and.`pr
80c0 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 2e 22 0a 20 20 3a ojectile-update-mode-line'."...:
80e0 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
8100 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
8120 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 6d 20 70 72 6f 6a 65 le..."2.0.0"))..(defcustom.proje
8140 63 74 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 ctile-mode-line-function.'projec
8160 74 69 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 tile-default-mode-line..."The.fu
8180 6e 63 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 nction.to.use.to.generate.projec
81a0 74 2d 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 t-specific.mode-line..The.defaul
81c0 74 20 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 t.function.adds.the.project.name
81e0 20 61 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 .and.type.to.the.mode-line..See.
8200 61 6c 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 also.`projectile-update-mode-lin
8220 65 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 79 70 e'."...:group.'projectile...:typ
8240 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 73 69 6f 6e 20 27 e.'function...:package-version.'
8260 28 70 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 (projectile..."2.0.0"))..(defcus
8280 74 6f 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 tom.projectile-default-src-direc
82a0 74 6f 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 tory."src/"..."The.default.value
82c0 20 6f 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 .of.a.project's.src-dir.property
82e0 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 6e 20 74 68 ...It's.used.as.a.fallback.in.th
8300 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 65 74 20 66 e.case.the.property.is.not.set.f
8320 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 65 63 74 69 or.a.project.type.when.`projecti
8340 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 74 69 6f 6e le-toggle-between-implementation
8360 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 70 20 27 70 -and-test'.is.used."...:group.'p
8380 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 28 64 65 66 rojectile...:type.'string)..(def
83a0 63 75 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 custom.projectile-default-test-d
83c0 69 72 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 irectory."test/"..."The.default.
83e0 76 61 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 value.of.a.project's.test-dir.pr
8400 6f 70 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 operty...It's.used.as.a.fallback
8420 20 69 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 .in.the.case.the.property.is.not
8440 20 73 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 .set.for.a.project.type.when.`pr
8460 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 65 6e ojectile-toggle-between-implemen
8480 74 61 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 tation-and-test'.is.used."...:gr
84a0 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)
84c0 0a 0a 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 ....;;;.Idle.Timer.(defvar.proje
84e0 63 74 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 ctile-idle-timer.nil..."The.time
8500 72 20 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 r.object.created.when.`projectil
8520 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 69 6c 2e e-enable-idle-timer'.is.non-nil.
8540 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 69 64 6c 65 2d 74 ")..(defcustom.projectile-idle-t
8560 69 6d 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 imer-seconds.30..."The.idle.peri
8580 6f 64 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 od.to.use.when.`projectile-enabl
85a0 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 0a 20 20 3a 67 72 e-idle-timer'.is.non-nil."...:gr
85c0 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 6e 75 6d 62 65 72 29 oup.'projectile...:type.'number)
85e0 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
8600 65 72 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 er-hook.'(projectile-regenerate-
8620 74 61 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 tags)..."The.hook.run.when.`proj
8640 65 63 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 ectile-enable-idle-timer'.is.non
8660 2d 6e 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 -nil."...:group.'projectile...:t
8680 79 70 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 ype.'(repeat.symbol))..(defcusto
86a0 6d 20 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 m.projectile-enable-idle-timer.n
86c0 69 6c 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 il..."Enables.idle.timer.hook.`p
86e0 72 6f 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 rojectile-idle-timer-functions'.
8700 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 2d 69 64 6c 65 2d 74 ..When.`projectile-enable-idle-t
8720 69 6d 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 imer'.is.non-nil,.the.hook.`proj
8740 65 63 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 ectile-idle-timer-hook'.is.run.e
8760 61 63 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 ach.time.Emacs.has.been.idle.for
8780 20 60 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 .`projectile-idle-timer-seconds'
87a0 20 73 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 .seconds.and.we're.in.a.project.
87c0 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 73 65 74 20 28 6c "...:group.'projectile...:set.(l
87e0 61 6d 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 ambda.(symbol.value)..........(s
8800 65 74 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 et.symbol.value)..........(when.
8820 70 72 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 projectile-idle-timer...........
8840 20 28 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 .(cancel-timer.projectile-idle-t
8860 69 6d 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 imer))..........(setq.projectile
8880 2d 69 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 -idle-timer.nil)..........(when.
88a0 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 0a 20 20 20 projectile-enable-idle-timer....
88c0 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 64 6c 65 2d 74 69 ........(setq.projectile-idle-ti
88e0 6d 65 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 mer.(run-with-idle-timer........
8900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8920 20 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 20 74 .projectile-idle-timer-seconds.t
8940 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 ................................
8960 20 20 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 .........(lambda.().............
8980 20 20 20 20 20 20 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 ..............................(w
89a0 68 65 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 hen.(projectile-project-p)......
89c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
89e0 20 20 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 .......(run-hooks.'projectile-id
8a00 6c 65 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 le-timer-hook)))))))...:type.'bo
8a20 6f 6c 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 olean)..(defvar.projectile-proje
8a40 63 74 73 2d 63 61 63 68 65 20 6e 69 6c 0a 20 20 22 41 20 68 61 73 68 6d 61 70 20 75 73 65 64 20 cts-cache.nil..."A.hashmap.used.
8a60 74 6f 20 63 61 63 68 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 to.cache.project.file.names.to.s
8a80 70 65 65 64 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 peed.up.related.operations.")..(
8aa0 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 73 2d 63 61 63 68 65 defvar.projectile-projects-cache
8ac0 2d 74 69 6d 65 20 6e 69 6c 0a 20 20 22 41 20 68 61 73 68 6d 61 70 20 75 73 65 64 20 74 6f 20 72 -time.nil..."A.hashmap.used.to.r
8ae0 65 63 6f 72 64 20 77 68 65 6e 20 77 65 20 70 6f 70 75 6c 61 74 65 64 20 60 70 72 6f 6a 65 63 74 ecord.when.we.populated.`project
8b00 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 ile-projects-cache'.")..(defvar.
8b20 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
8b40 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 22 ake-hash-table.:test.'equal)..."
8b60 43 61 63 68 65 64 20 76 61 6c 75 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 60 70 72 6f 6a 65 63 Cached.value.of.function.`projec
8b80 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 60 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 tile-project-root`.")..(defvar.p
8ba0 72 6f 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 rojectile-project-type-cache.(ma
8bc0 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 22 41 ke-hash-table.:test.'equal)..."A
8be0 20 68 61 73 68 6d 61 70 20 75 73 65 64 20 74 6f 20 63 61 63 68 65 20 70 72 6f 6a 65 63 74 20 74 .hashmap.used.to.cache.project.t
8c00 79 70 65 20 74 6f 20 73 70 65 65 64 20 75 70 20 72 65 6c 61 74 65 64 20 6f 70 65 72 61 74 69 6f ype.to.speed.up.related.operatio
8c20 6e 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d ns.")..(defvar.projectile-known-
8c40 70 72 6f 6a 65 63 74 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 6f 63 61 74 69 6f 6e projects.nil..."List.of.location
8c60 73 20 77 68 65 72 65 20 77 65 20 68 61 76 65 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 65 6e 20 s.where.we.have.previously.seen.
8c80 70 72 6f 6a 65 63 74 73 2e 0a 54 68 65 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 73 20 69 projects..The.list.of.projects.i
8ca0 73 20 6f 72 64 65 72 65 64 20 62 79 20 74 68 65 20 74 69 6d 65 20 74 68 65 79 20 68 61 76 65 20 s.ordered.by.the.time.they.have.
8cc0 62 65 65 6e 20 61 63 63 65 73 73 65 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 70 72 6f 6a 65 63 been.accessed...See.also.`projec
8ce0 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 27 2c 0a 60 70 72 6f tile-remove-known-project',.`pro
8d00 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 74 73 27 20 jectile-cleanup-known-projects'.
8d20 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 72 6f 6a and.`projectile-clear-known-proj
8d40 65 63 74 73 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 6b 6e 6f ects'.")..(defvar.projectile-kno
8d60 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 6f 6e 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 wn-projects-on-file.nil..."List.
8d80 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 72 65 66 65 72 65 6e 63 65 20 70 6f 69 6e of.known.projects.reference.poin
8da0 74 2e 0a 0a 43 6f 6e 74 61 69 6e 73 20 61 20 63 6f 70 79 20 6f 66 20 60 70 72 6f 6a 65 63 74 69 t...Contains.a.copy.of.`projecti
8dc0 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 20 77 68 65 6e 20 69 74 20 77 61 73 20 6c le-known-projects'.when.it.was.l
8de0 61 73 74 0a 73 79 6e 63 68 72 6f 6e 69 7a 65 64 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c ast.synchronized.with.`projectil
8e00 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 27 2e 22 29 0a 0a 28 64 65 66 63 e-known-projects-file'.")..(defc
8e20 75 73 74 6f 6d 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 ustom.projectile-known-projects-
8e40 66 69 6c 65 0a 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 72 6f 6a 65 63 file...(expand-file-name."projec
8e60 74 69 6c 65 2d 62 6f 6f 6b 6d 61 72 6b 73 2e 65 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 tile-bookmarks.eld".............
8e80 20 20 20 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 ........user-emacs-directory)...
8ea0 22 4e 61 6d 65 20 61 6e 64 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 50 72 6f 6a 65 63 "Name.and.location.of.the.Projec
8ec0 74 69 6c 65 27 73 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 66 69 6c 65 2e 22 0a 20 20 3a tile's.known.projects.file."...:
8ee0 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 6e group.'projectile...:type.'strin
8f00 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 69 67 6e 6f 72 65 g)..(defcustom.projectile-ignore
8f20 64 2d 70 72 6f 6a 65 63 74 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a d-projects.nil..."A.list.of.proj
8f40 65 63 74 73 20 6e 6f 74 20 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 60 70 72 6f 6a 65 63 74 ects.not.to.be.added.to.`project
8f60 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 ile-known-projects'."...:group.'
8f80 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 3a 74 61 67 projectile...:type.'(repeat.:tag
8fa0 20 22 50 72 6f 6a 65 63 74 20 6c 69 73 74 22 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 3a 70 61 ."Project.list".directory)...:pa
8fc0 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 30 2e ckage-version.'(projectile..."0.
8fe0 31 31 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 69 11.0"))..(defcustom.projectile-i
9000 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 46 gnored-project-function.nil..."F
9020 75 6e 63 74 69 6f 6e 20 74 6f 20 64 65 63 69 64 65 20 69 66 20 61 20 70 72 6f 6a 65 63 74 20 69 unction.to.decide.if.a.project.i
9040 73 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 s.added.to.`projectile-known-pro
9060 6a 65 63 74 73 27 2e 0a 0a 43 61 6e 20 62 65 20 65 69 74 68 65 72 20 6e 69 6c 2c 20 6f 72 20 61 jects'...Can.be.either.nil,.or.a
9080 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 74 68 65 20 74 72 75 65 6e 61 6d .function.that.takes.the.truenam
90a0 65 20 6f 66 20 74 68 65 0a 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 61 73 20 61 72 67 75 6d 65 6e e.of.the.project.root.as.argumen
90c0 74 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 20 70 72 6f t.and.returns.non-nil.if.the.pro
90e0 6a 65 63 74 20 69 73 20 74 6f 0a 62 65 20 69 67 6e 6f 72 65 64 20 6f 72 20 6e 69 6c 20 6f 74 68 ject.is.to.be.ignored.or.nil.oth
9100 65 72 77 69 73 65 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 63 erwise...This.function.is.only.c
9120 61 6c 6c 65 64 20 69 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 alled.if.the.project.is.not.list
9140 65 64 20 69 6e 0a 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 ed.in.the.variable.`projectile-i
9160 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 73 27 2e 0a 0a 41 20 73 75 69 74 61 62 6c 65 20 63 61 gnored-projects'...A.suitable.ca
9180 6e 64 69 64 61 74 65 20 77 6f 75 6c 64 20 62 65 20 60 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 27 ndidate.would.be.`file-remote-p'
91a0 20 74 6f 20 69 67 6e 6f 72 65 20 72 65 6d 6f 74 65 0a 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 3a .to.ignore.remote.projects."...:
91c0 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 63 68 6f 69 group.'projectile...:type.'(choi
91e0 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 74 68 69 6e ce...........(const.:tag."Nothin
9200 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 52 g".nil)...........(const.:tag."R
9220 65 6d 6f 74 65 20 66 69 6c 65 73 22 20 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 29 0a 20 20 20 20 emote.files".file-remote-p).....
9240 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 ......function)...:package-versi
9260 6f 6e 20 27 28 70 72 6f 6a 65 63 74 69 6c 65 20 2e 20 22 30 2e 31 33 2e 30 22 29 29 0a 0a 28 64 on.'(projectile..."0.13.0"))..(d
9280 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b 2d 6b 6e 6f 77 6e 2d efcustom.projectile-track-known-
92a0 70 72 6f 6a 65 63 74 73 2d 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 0a 20 20 22 43 6f 6e 74 projects-automatically.t..."Cont
92c0 72 6f 6c 73 20 77 68 65 74 68 65 72 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 69 6c 6c 20 61 75 74 rols.whether.Projectile.will.aut
92e0 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 67 69 73 74 65 72 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 omatically.register.known.projec
9300 74 73 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 6e 69 6c 20 79 6f 75 27 6c 6c 20 68 61 76 65 ts...When.set.to.nil.you'll.have
9320 20 61 6c 77 61 79 73 20 61 64 64 20 70 72 6f 6a 65 63 74 73 20 65 78 70 6c 69 63 69 74 6c 79 20 .always.add.projects.explicitly.
9340 77 69 74 68 0a 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 with.`projectile-add-known-proje
9360 63 74 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 79 ct'."...:group.'projectile...:ty
9380 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 20 27 pe.'boolean...:package-version.'
93a0 28 70 72 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 (projectile..."1.0.0"))..(defcus
93c0 74 6f 6d 20 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 2d 70 61 tom.projectile-project-search-pa
93e0 74 68 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 66 6f 6c 64 65 72 73 20 77 68 65 72 65 20 th.nil..."List.of.folders.where.
9400 70 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 6f 69 6e projectile.is.automatically.goin
9420 67 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 2e 0a 59 6f 75 20 63 61 6e 20 g.to.look.for.projects..You.can.
9440 74 68 69 6e 6b 20 6f 66 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 24 50 41 54 48 2c 20 62 think.of.something.like.$PATH,.b
9460 75 74 20 66 6f 72 20 70 72 6f 6a 65 63 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 65 78 65 63 75 ut.for.projects.instead.of.execu
9480 74 61 62 6c 65 73 2e 0a 45 78 61 6d 70 6c 65 73 20 6f 66 20 73 75 63 68 20 70 61 74 68 73 20 6d tables..Examples.of.such.paths.m
94a0 69 67 68 74 20 62 65 20 7e 2f 70 72 6f 6a 65 63 74 73 2c 20 7e 2f 77 6f 72 6b 2c 20 28 7e 2f 67 ight.be.~/projects,.~/work,.(~/g
94c0 69 74 68 75 62 20 2e 20 31 29 20 65 74 63 2e 0a 0a 46 6f 72 20 65 6c 65 6d 65 6e 74 73 20 6f 66 ithub...1).etc...For.elements.of
94e0 20 66 6f 72 6d 20 28 44 49 52 45 43 54 4f 52 59 20 2e 20 44 45 50 54 48 29 2c 20 44 49 52 45 43 .form.(DIRECTORY...DEPTH),.DIREC
9500 54 4f 52 59 20 68 61 73 20 74 6f 20 62 65 20 61 0a 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 44 TORY.has.to.be.a.directory.and.D
9520 45 50 54 48 20 61 6e 20 69 6e 74 65 67 65 72 20 74 68 61 74 20 73 70 65 63 69 66 69 65 73 20 74 EPTH.an.integer.that.specifies.t
9540 68 65 20 64 65 70 74 68 20 61 74 20 77 68 69 63 68 20 74 6f 0a 6c 6f 6f 6b 20 66 6f 72 20 70 72 he.depth.at.which.to.look.for.pr
9560 6f 6a 65 63 74 73 2e 20 20 41 20 44 45 50 54 48 20 6f 66 20 30 20 6d 65 61 6e 73 20 63 68 65 63 ojects...A.DEPTH.of.0.means.chec
9580 6b 20 44 49 52 45 43 54 4f 52 59 2e 20 20 41 20 64 65 70 74 68 20 6f 66 20 31 0a 6d 65 61 6e 73 k.DIRECTORY...A.depth.of.1.means
95a0 20 63 68 65 63 6b 20 61 6c 6c 20 74 68 65 20 73 75 62 64 69 72 65 63 74 6f 72 69 65 73 20 6f 66 .check.all.the.subdirectories.of
95c0 20 44 49 52 45 43 54 4f 52 59 2e 20 20 45 74 63 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f .DIRECTORY...Etc."...:group.'pro
95e0 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 28 63 68 6f 69 63 65 jectile...:type.'(repeat.(choice
9600 20 64 69 72 65 63 74 6f 72 79 20 28 63 6f 6e 73 20 64 69 72 65 63 74 6f 72 79 20 28 69 6e 74 65 .directory.(cons.directory.(inte
9620 67 65 72 20 3a 74 61 67 20 22 44 65 70 74 68 22 29 29 29 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d ger.:tag."Depth"))))...:package-
9640 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 30 22 29 29 version.'(projectile..."1.0.0"))
9660 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 64 2d 65 78 65 63 75 ..(defcustom.projectile-fd-execu
9680 74 61 62 6c 65 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 table...(cond....((executable-fi
96a0 6e 64 20 22 66 64 66 69 6e 64 22 29 20 22 66 64 66 69 6e 64 22 29 0a 20 20 20 28 28 65 78 65 63 nd."fdfind")."fdfind")....((exec
96c0 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 66 64 22 29 20 22 66 64 22 29 29 0a 20 20 22 50 61 74 68 utable-find."fd")."fd"))..."Path
96e0 20 6f 72 20 6e 61 6d 65 20 6f 66 20 66 64 20 65 78 65 63 75 74 61 62 6c 65 20 75 73 65 64 20 62 .or.name.of.fd.executable.used.b
9700 79 20 50 72 6f 6a 65 63 74 69 6c 65 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a 4e 69 6c 20 6d 65 61 y.Projectile.if.enabled..Nil.mea
9720 6e 73 20 66 64 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 73 68 6f 75 6c 64 ns.fd.is.not.installed.or.should
9740 20 6e 6f 74 20 62 65 20 75 73 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 .not.be.used."...:type.'string..
9760 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..
9780 20 22 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 ."2.8.0"))..(defcustom.projectil
97a0 65 2d 67 69 74 2d 75 73 65 2d 66 64 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 e-git-use-fd.(when.projectile-fd
97c0 2d 65 78 65 63 75 74 61 62 6c 65 20 74 29 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 -executable.t)..."Non-nil.means.
97e0 75 73 65 20 66 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 67 69 74 20 6c 73 2d 66 69 6c 65 73 use.fd.to.implement.git.ls-files
9800 2e 0a 54 68 69 73 20 6d 61 79 20 63 68 61 6e 67 65 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 70 ..This.may.change.Projectile's.p
9820 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 20 6c 61 72 67 65 20 47 69 74 20 72 65 70 6f 73 69 74 6f erformance.in.large.Git.reposito
9840 72 69 65 73 0a 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 62 ries.depending.on.your.system,.b
9860 75 74 20 69 74 20 77 69 6c 6c 20 61 6c 73 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 74 68 65 20 ut.it.will.also.work.around.the.
9880 47 69 74 20 62 65 68 61 76 69 6f 72 0a 74 68 61 74 20 63 61 75 73 65 73 20 64 65 6c 65 74 65 64 Git.behavior.that.causes.deleted
98a0 20 66 69 6c 65 73 20 74 6f 20 73 74 69 6c 6c 20 62 65 20 73 68 6f 77 6e 20 69 6e 20 50 72 6f 6a .files.to.still.be.shown.in.Proj
98c0 65 63 74 69 6c 65 20 6c 69 73 74 69 6e 67 73 20 75 6e 74 69 6c 0a 74 68 65 69 72 20 64 65 6c 65 ectile.listings.until.their.dele
98e0 74 69 6f 6e 73 20 61 72 65 20 73 74 61 67 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c tions.are.staged."...:type.'bool
9900 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
9920 69 6c 65 20 2e 20 22 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 ile..."2.8.0"))..(defcustom.proj
9940 65 63 74 69 6c 65 2d 67 69 74 2d 63 6f 6d 6d 61 6e 64 20 22 67 69 74 20 6c 73 2d 66 69 6c 65 73 ectile-git-command."git.ls-files
9960 20 2d 7a 63 6f 20 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 .-zco.--exclude-standard"..."Com
9980 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 74 20 74 mand.used.by.projectile.to.get.t
99a0 68 65 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 3a 67 he.files.in.a.git.project."...:g
99c0 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 6e 67 roup.'projectile...:type.'string
99e0 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 66 64 2d )..(defcustom.projectile-git-fd-
9a00 61 72 67 73 20 22 2d 48 20 2d 30 20 2d 45 20 2e 67 69 74 20 2d 74 66 20 2d 2d 73 74 72 69 70 2d args."-H.-0.-E..git.-tf.--strip-
9a20 63 77 64 2d 70 72 65 66 69 78 20 2d 63 20 6e 65 76 65 72 22 0a 20 20 22 41 72 67 75 6d 65 6e 74 cwd-prefix.-c.never"..."Argument
9a40 73 20 74 6f 20 66 64 20 75 73 65 64 20 74 6f 20 72 65 2d 69 6d 70 6c 65 6d 65 6e 74 20 60 67 69 s.to.fd.used.to.re-implement.`gi
9a60 74 20 6c 73 2d 66 69 6c 65 73 27 2e 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 77 69 74 68 20 60 t.ls-files'..This.is.used.with.`
9a80 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c 65 27 20 77 68 65 6e 20 60 projectile-fd-executable'.when.`
9aa0 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 75 73 65 2d 66 64 27 0a 69 73 20 6e 6f 6e 2d 6e 69 projectile-git-use-fd'.is.non-ni
9ac0 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 65 l."...:group.'projectile...:type
9ae0 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 72 .'string...:package-version.'(pr
9b00 6f 6a 65 63 74 69 6c 65 20 2e 20 22 32 2e 38 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d ojectile..."2.8.0"))..(defcustom
9b20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 69 74 2d 73 75 62 6d 6f 64 75 6c 65 2d 63 6f 6d 6d 61 6e .projectile-git-submodule-comman
9b40 64 20 22 67 69 74 20 73 75 62 6d 6f 64 75 6c 65 20 2d 2d 71 75 69 65 74 20 66 6f 72 65 61 63 68 d."git.submodule.--quiet.foreach
9b60 20 27 65 63 68 6f 20 24 64 69 73 70 6c 61 79 70 61 74 68 27 20 7c 20 74 72 20 27 5c 5c 6e 27 20 .'echo.$displaypath'.|.tr.'\\n'.
9b80 27 5c 5c 30 27 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 '\\0'"..."Command.used.by.projec
9ba0 74 69 6c 65 20 74 6f 20 6c 69 73 74 20 73 75 62 6d 6f 64 75 6c 65 73 20 6f 66 20 61 20 67 69 76 tile.to.list.submodules.of.a.giv
9bc0 65 6e 20 67 69 74 20 72 65 70 6f 73 69 74 6f 72 79 2e 0a 53 65 74 20 74 6f 20 6e 69 6c 20 74 6f en.git.repository..Set.to.nil.to
9be0 20 64 69 73 61 62 6c 65 20 6c 69 73 74 69 6e 67 20 73 75 62 6d 6f 64 75 6c 65 73 20 63 6f 6e 74 .disable.listing.submodules.cont
9c00 65 6e 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 74 ents."...:group.'projectile...:t
9c20 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 74 ype.'string)..(defcustom.project
9c40 69 6c 65 2d 67 69 74 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d 61 6e 64 20 22 67 69 74 20 6c 73 2d ile-git-ignored-command."git.ls-
9c60 66 69 6c 65 73 20 2d 7a 63 6f 69 20 2d 2d 65 78 63 6c 75 64 65 2d 73 74 61 6e 64 61 72 64 22 0a files.-zcoi.--exclude-standard".
9c80 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 74 6f .."Command.used.by.projectile.to
9ca0 20 67 65 74 20 74 68 65 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 69 6e 20 61 20 67 69 74 20 .get.the.ignored.files.in.a.git.
9cc0 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..
9ce0 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 69 6f .:type.'string...:package-versio
9d00 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
9d20 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 68 67 2d 63 6f 6d 6d 61 6e 64 20 22 68 fcustom.projectile-hg-command."h
9d40 67 20 6c 6f 63 61 74 65 20 2d 66 20 2d 30 20 2d 49 20 2e 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 g.locate.-f.-0.-I.."..."Command.
9d60 75 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 66 69 used.by.projectile.to.get.the.fi
9d80 6c 65 73 20 69 6e 20 61 20 68 67 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 les.in.a.hg.project."...:group.'
9da0 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 28 64 65 projectile...:type.'string)..(de
9dc0 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6f 73 73 69 6c 2d 63 6f 6d 6d 61 6e fcustom.projectile-fossil-comman
9de0 64 20 28 63 6f 6e 63 61 74 20 22 66 6f 73 73 69 6c 20 6c 73 20 7c 20 22 0a 20 20 20 20 20 20 20 d.(concat."fossil.ls.|."........
9e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9e20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 73 79 73 74 65 6d ......(when.(string-equal.system
9e40 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -type...........................
9e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9e80 20 20 20 20 20 20 20 22 77 69 6e 64 6f 77 73 2d 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......."windows-nt")............
9ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9ec0 20 20 20 20 22 64 6f 73 32 75 6e 69 78 20 7c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."dos2unix.|.")..............
9ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f00 22 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 29 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 "tr.'\\n'.'\\0'")..."Command.use
9f20 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 66 69 6c 65 73 d.by.projectile.to.get.the.files
9f40 20 69 6e 20 61 20 66 6f 73 73 69 6c 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 .in.a.fossil.project."...:group.
9f60 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 28 64 'projectile...:type.'string)..(d
9f80 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 7a 72 2d 63 6f 6d 6d 61 6e 64 20 efcustom.projectile-bzr-command.
9fa0 22 62 7a 72 20 6c 73 20 2d 52 20 2d 2d 76 65 72 73 69 6f 6e 65 64 20 2d 30 22 0a 20 20 22 43 6f "bzr.ls.-R.--versioned.-0"..."Co
9fc0 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 74 20 mmand.used.by.projectile.to.get.
9fe0 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 62 61 7a 61 61 72 20 70 72 6f 6a 65 63 74 2e 22 0a the.files.in.a.bazaar.project.".
a000 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 74 ..:group.'projectile...:type.'st
a020 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 64 61 72 ring)..(defcustom.projectile-dar
a040 63 73 2d 63 6f 6d 6d 61 6e 64 20 22 64 61 72 63 73 20 73 68 6f 77 20 66 69 6c 65 73 20 2d 30 20 cs-command."darcs.show.files.-0.
a060 2e 20 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 74 69 6c .."..."Command.used.by.projectil
a080 65 20 74 6f 20 67 65 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 61 20 64 61 72 63 73 20 70 72 e.to.get.the.files.in.a.darcs.pr
a0a0 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...:
a0c0 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
a0e0 74 69 6c 65 2d 70 69 6a 75 6c 2d 63 6f 6d 6d 61 6e 64 20 22 70 69 6a 75 6c 20 6c 69 73 74 20 7c tile-pijul-command."pijul.list.|
a100 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 .tr.'\\n'.'\\0'"...."Command.use
a120 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 66 69 6c 65 73 d.by.projectile.to.get.the.files
a140 20 69 6e 20 61 20 70 69 6a 75 6c 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 3a 67 72 6f 75 70 20 .in.a.pijul.project."....:group.
a160 27 70 72 6f 6a 65 63 74 69 6c 65 0a 20 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 'projectile....:type.'string)..(
a180 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 76 6e 2d 63 6f 6d 6d 61 6e 64 defcustom.projectile-svn-command
a1a0 20 22 73 76 6e 20 6c 69 73 74 20 2d 52 20 2e 20 7c 20 67 72 65 70 20 2d 76 20 27 24 2f 27 20 7c ."svn.list.-R...|.grep.-v.'$/'.|
a1c0 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 0a 20 20 22 43 6f 6d 6d 61 6e 64 20 75 73 65 64 .tr.'\\n'.'\\0'"..."Command.used
a1e0 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.
a200 69 6e 20 61 20 73 76 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f in.a.svn.project."...:group.'pro
a220 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
a240 73 74 6f 6d 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 0a stom.projectile-generic-command.
a260 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 77 65 20 70 72 65 66 65 72 20 66 64 20 6f 76 65 72 20 ..(cond....;;.we.prefer.fd.over.
a280 66 69 6e 64 0a 20 20 20 3b 3b 20 6e 6f 74 65 20 74 68 61 74 20 2d 2d 73 74 72 69 70 2d 63 77 64 find....;;.note.that.--strip-cwd
a2a0 2d 70 72 65 66 69 78 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 76 65 72 -prefix.is.only.available.in.ver
a2c0 73 69 6f 6e 20 38 2e 33 2e 30 2b 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 sion.8.3.0+....(projectile-fd-ex
a2e0 65 63 75 74 61 62 6c 65 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 2e 20 2d 30 20 2d 2d ecutable.....(format."%s...-0.--
a300 74 79 70 65 20 66 20 2d 2d 63 6f 6c 6f 72 3d 6e 65 76 65 72 20 2d 2d 73 74 72 69 70 2d 63 77 64 type.f.--color=never.--strip-cwd
a320 2d 70 72 65 66 69 78 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 64 2d 65 78 65 63 75 74 61 62 6c -prefix".projectile-fd-executabl
a340 65 29 29 0a 20 20 20 3b 3b 20 77 69 74 68 20 66 69 6e 64 20 77 65 20 68 61 76 65 20 74 6f 20 62 e))....;;.with.find.we.have.to.b
a360 65 20 63 61 72 65 66 75 6c 20 74 6f 20 73 74 72 69 70 20 74 68 65 20 2e 2f 20 66 72 6f 6d 20 74 e.careful.to.strip.the../.from.t
a380 68 65 20 70 61 74 68 73 0a 20 20 20 3b 3b 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 73 74 61 63 6b he.paths....;;.see.https://stack
a3a0 6f 76 65 72 66 6c 6f 77 2e 63 6f 6d 2f 71 75 65 73 74 69 6f 6e 73 2f 32 35 39 36 34 36 32 2f 68 overflow.com/questions/2596462/h
a3c0 6f 77 2d 74 6f 2d 73 74 72 69 70 2d 6c 65 61 64 69 6e 67 2d 69 6e 2d 75 6e 69 78 2d 66 69 6e 64 ow-to-strip-leading-in-unix-find
a3e0 0a 20 20 20 28 74 20 22 66 69 6e 64 20 2e 20 2d 74 79 70 65 20 66 20 7c 20 63 75 74 20 2d 63 33 ....(t."find...-type.f.|.cut.-c3
a400 2d 20 7c 20 74 72 20 27 5c 5c 6e 27 20 27 5c 5c 30 27 22 29 29 0a 20 20 22 43 6f 6d 6d 61 6e 64 -.|.tr.'\\n'.'\\0'"))..."Command
a420 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 74 20 74 68 65 20 66 .used.by.projectile.to.get.the.f
a440 69 6c 65 73 20 69 6e 20 61 20 67 65 6e 65 72 69 63 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 iles.in.a.generic.project."...:g
a460 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 6e 67 roup.'projectile...:type.'string
a480 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 63 73 2d 64 69 72 )..(defcustom.projectile-vcs-dir
a4a0 74 79 2d 73 74 61 74 65 20 27 28 22 65 64 69 74 65 64 22 20 22 75 6e 72 65 67 69 73 74 65 72 65 ty-state.'("edited"."unregistere
a4c0 64 22 20 22 6e 65 65 64 73 2d 75 70 64 61 74 65 22 20 22 6e 65 65 64 73 2d 6d 65 72 67 65 22 20 d"."needs-update"."needs-merge".
a4e0 22 75 6e 6c 6f 63 6b 65 64 2d 63 68 61 6e 67 65 73 22 20 22 63 6f 6e 66 6c 69 63 74 22 29 0a 20 "unlocked-changes"."conflict")..
a500 20 22 4c 69 73 74 20 6f 66 20 73 74 61 74 65 73 20 63 68 65 63 6b 65 64 20 62 79 20 60 70 72 6f ."List.of.states.checked.by.`pro
a520 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 65 63 74 73 27 2e 0a jectile-browse-dirty-projects'..
a540 50 6f 73 73 69 62 6c 65 20 63 68 65 63 6b 65 64 20 73 74 61 74 65 73 20 61 72 65 3a 0a 5c 22 65 Possible.checked.states.are:.\"e
a560 64 69 74 65 64 5c 22 2c 20 5c 22 75 6e 72 65 67 69 73 74 65 72 65 64 5c 22 2c 20 5c 22 6e 65 65 dited\",.\"unregistered\",.\"nee
a580 64 73 2d 75 70 64 61 74 65 5c 22 2c 20 5c 22 6e 65 65 64 73 2d 6d 65 72 67 65 5c 22 2c 0a 5c 22 ds-update\",.\"needs-merge\",.\"
a5a0 75 6e 6c 6f 63 6b 65 64 2d 63 68 61 6e 67 65 73 5c 22 20 61 6e 64 20 5c 22 63 6f 6e 66 6c 69 63 unlocked-changes\".and.\"conflic
a5c0 74 5c 22 2c 0a 61 73 20 64 65 66 69 6e 65 64 20 69 6e 20 60 76 63 2e 65 6c 27 2e 22 0a 20 20 3a t\",.as.defined.in.`vc.el'."...:
a5e0 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
a600 61 74 20 28 73 74 72 69 6e 67 29 29 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 at.(string))...:package-version.
a620 27 28 70 72 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 '(projectile..."1.0.0"))..(defcu
a640 73 74 6f 6d 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 stom.projectile-other-file-alist
a660 0a 20 20 27 28 20 3b 3b 20 68 61 6e 64 6c 65 20 43 2f 43 2b 2b 20 65 78 74 65 6e 73 69 6f 6e 73 ...'(.;;.handle.C/C++.extensions
a680 0a 20 20 20 20 28 22 63 70 70 22 20 2e 20 28 22 68 22 20 22 68 70 70 22 20 22 69 70 70 22 29 29 .....("cpp"...("h"."hpp"."ipp"))
a6a0 0a 20 20 20 20 28 22 69 70 70 22 20 2e 20 28 22 68 22 20 22 68 70 70 22 20 22 63 70 70 22 29 29 .....("ipp"...("h"."hpp"."cpp"))
a6c0 0a 20 20 20 20 28 22 68 70 70 22 20 2e 20 28 22 68 22 20 22 69 70 70 22 20 22 63 70 70 22 20 22 .....("hpp"...("h"."ipp"."cpp"."
a6e0 63 63 22 29 29 0a 20 20 20 20 28 22 63 78 78 22 20 2e 20 28 22 68 22 20 22 68 78 78 22 20 22 69 cc")).....("cxx"...("h"."hxx"."i
a700 78 78 22 29 29 0a 20 20 20 20 28 22 69 78 78 22 20 2e 20 28 22 68 22 20 22 68 78 78 22 20 22 63 xx")).....("ixx"...("h"."hxx"."c
a720 78 78 22 29 29 0a 20 20 20 20 28 22 68 78 78 22 20 2e 20 28 22 68 22 20 22 69 78 78 22 20 22 63 xx")).....("hxx"...("h"."ixx"."c
a740 78 78 22 29 29 0a 20 20 20 20 28 22 63 22 20 20 20 2e 20 28 22 68 22 29 29 0a 20 20 20 20 28 22 xx")).....("c".....("h")).....("
a760 6d 22 20 20 20 2e 20 28 22 68 22 29 29 0a 20 20 20 20 28 22 6d 6d 22 20 20 2e 20 28 22 68 22 29 m".....("h")).....("mm"....("h")
a780 29 0a 20 20 20 20 28 22 68 22 20 20 20 2e 20 28 22 63 22 20 22 63 63 22 20 22 63 70 70 22 20 22 ).....("h".....("c"."cc"."cpp"."
a7a0 69 70 70 22 20 22 68 70 70 22 20 22 63 78 78 22 20 22 69 78 78 22 20 22 68 78 78 22 20 22 6d 22 ipp"."hpp"."cxx"."ixx"."hxx"."m"
a7c0 20 22 6d 6d 22 29 29 0a 20 20 20 20 28 22 63 63 22 20 20 2e 20 28 22 68 22 20 22 68 68 22 20 22 ."mm")).....("cc"....("h"."hh"."
a7e0 68 70 70 22 29 29 0a 20 20 20 20 28 22 68 68 22 20 20 2e 20 28 22 63 63 22 29 29 0a 0a 20 20 20 hpp")).....("hh"....("cc")).....
a800 20 3b 3b 20 4f 43 61 6d 6c 20 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 20 20 28 22 6d 6c 22 20 2e .;;.OCaml.extensions.....("ml"..
a820 20 28 22 6d 6c 69 22 29 29 0a 20 20 20 20 28 22 6d 6c 69 22 20 2e 20 28 22 6d 6c 22 20 22 6d 6c .("mli")).....("mli"...("ml"."ml
a840 6c 22 20 22 6d 6c 79 22 29 29 0a 20 20 20 20 28 22 6d 6c 6c 22 20 2e 20 28 22 6d 6c 69 22 29 29 l"."mly")).....("mll"...("mli"))
a860 0a 20 20 20 20 28 22 6d 6c 79 22 20 2e 20 28 22 6d 6c 69 22 29 29 0a 20 20 20 20 28 22 65 6c 69 .....("mly"...("mli")).....("eli
a880 6f 6d 69 22 20 2e 20 28 22 65 6c 69 6f 6d 22 29 29 0a 20 20 20 20 28 22 65 6c 69 6f 6d 22 20 2e omi"...("eliom")).....("eliom"..
a8a0 20 28 22 65 6c 69 6f 6d 69 22 29 29 0a 0a 20 20 20 20 3b 3b 20 76 65 72 74 65 78 20 73 68 61 64 .("eliomi"))......;;.vertex.shad
a8c0 65 72 20 61 6e 64 20 66 72 61 67 6d 65 6e 74 20 73 68 61 64 65 72 20 65 78 74 65 6e 73 69 6f 6e er.and.fragment.shader.extension
a8e0 73 20 69 6e 20 67 6c 73 6c 0a 20 20 20 20 28 22 76 65 72 74 22 20 2e 20 28 22 66 72 61 67 22 29 s.in.glsl.....("vert"...("frag")
a900 29 0a 20 20 20 20 28 22 66 72 61 67 22 20 2e 20 28 22 76 65 72 74 22 29 29 0a 0a 20 20 20 20 3b ).....("frag"...("vert"))......;
a920 3b 20 68 61 6e 64 6c 65 20 66 69 6c 65 73 20 77 69 74 68 20 6e 6f 20 65 78 74 65 6e 73 69 6f 6e ;.handle.files.with.no.extension
a940 0a 20 20 20 20 28 6e 69 6c 20 20 20 20 2e 20 28 22 6c 6f 63 6b 22 20 22 67 70 67 22 29 29 0a 20 .....(nil......("lock"."gpg"))..
a960 20 20 20 28 22 6c 6f 63 6b 22 20 2e 20 28 22 22 29 29 0a 20 20 20 20 28 22 67 70 67 22 20 20 2e ...("lock"...("")).....("gpg"...
a980 20 28 22 22 29 29 0a 20 20 20 20 29 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 65 78 74 65 6e 73 69 .("")).....)..."Alist.of.extensi
a9a0 6f 6e 73 20 66 6f 72 20 73 77 69 74 63 68 69 6e 67 20 74 6f 20 66 69 6c 65 20 77 69 74 68 20 74 ons.for.switching.to.file.with.t
a9c0 68 65 20 73 61 6d 65 20 6e 61 6d 65 2c 0a 20 20 75 73 69 6e 67 20 6f 74 68 65 72 20 65 78 74 65 he.same.name,...using.other.exte
a9e0 6e 73 69 6f 6e 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 6f 66 nsions.based.on.the.extension.of
aa00 20 63 75 72 72 65 6e 74 0a 20 20 66 69 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 61 6c 69 73 74 .current...file."...:type.'alist
aa20 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 72 65 61 74 65 2d )..(defcustom.projectile-create-
aa40 6d 69 73 73 69 6e 67 2d 74 65 73 74 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 44 75 72 69 6e 67 missing-test-files.nil..."During
aa60 20 74 6f 67 67 6c 69 6e 67 2c 20 69 66 20 6e 6f 6e 2d 6e 69 6c 20 65 6e 61 62 6c 65 73 20 63 72 .toggling,.if.non-nil.enables.cr
aa80 65 61 74 69 6e 67 20 74 65 73 74 20 66 69 6c 65 73 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a eating.test.files.if.not.found..
aaa0 0a 57 68 65 6e 20 6e 6f 74 2d 6e 69 6c 2c 20 65 76 65 72 79 20 63 61 6c 6c 20 74 6f 20 70 72 6f .When.not-nil,.every.call.to.pro
aac0 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 6f 72 2d 74 jectile-find-implementation-or-t
aae0 65 73 74 2d 2a 0a 63 72 65 61 74 65 73 20 74 65 73 74 20 66 69 6c 65 73 20 69 66 20 6e 6f 74 20 est-*.creates.test.files.if.not.
ab00 66 6f 75 6e 64 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 73 79 73 74 65 6d 2e 20 20 44 65 66 61 75 found.on.the.file.system...Defau
ab20 6c 74 73 20 74 6f 20 6e 69 6c 2e 0a 49 74 20 61 73 73 75 6d 65 73 20 74 68 65 20 74 65 73 74 2f lts.to.nil..It.assumes.the.test/
ab40 20 66 6f 6c 64 65 72 20 69 73 20 61 74 20 74 68 65 20 73 61 6d 65 20 6c 65 76 65 6c 20 61 73 20 .folder.is.at.the.same.level.as.
ab60 73 72 63 2f 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 src/."...:group.'projectile...:t
ab80 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 63 ype.'boolean)..(defcustom.projec
aba0 74 69 6c 65 2d 70 65 72 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 tile-per-project-compilation-buf
abc0 66 65 72 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 63 6f 6d fer.nil..."When.non-nil,.the.com
abe0 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 6d 61 6b 65 73 20 74 68 65 20 70 65 72 2d 70 pilation.command.makes.the.per-p
ac00 72 6f 6a 65 63 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 roject.compilation.buffer."...:g
ac20 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
ac40 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
ac60 65 20 2e 20 22 32 2e 36 2e 30 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 e..."2.6.0"))..(defcustom.projec
ac80 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 20 6e tile-after-switch-project-hook.n
aca0 69 6c 0a 20 20 22 48 6f 6f 6b 73 20 72 75 6e 20 72 69 67 68 74 20 61 66 74 65 72 20 70 72 6f 6a il..."Hooks.run.right.after.proj
acc0 65 63 74 20 69 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 ect.is.switched."...:group.'proj
ace0 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 73 74 6f ectile...:type.'hook)..(defcusto
ad00 6d 20 70 72 6f 6a 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 m.projectile-before-switch-proje
ad20 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 77 68 65 6e 20 72 69 ct-hook.nil..."Hooks.run.when.ri
ad40 67 68 74 20 62 65 66 6f 72 65 20 70 72 6f 6a 65 63 74 20 69 73 20 73 77 69 74 63 68 65 64 2e 22 ght.before.project.is.switched."
ad60 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 68 ...:group.'projectile...:type.'h
ad80 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 63 75 72 72 ook)..(defcustom.projectile-curr
ada0 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 6f 6e 2d 73 77 69 74 63 68 20 27 72 65 6d 6f 76 65 0a 20 20 ent-project-on-switch.'remove...
adc0 22 44 65 74 65 72 6d 69 6e 65 73 20 77 68 65 74 68 65 72 20 74 6f 20 64 69 73 70 6c 61 79 20 63 "Determines.whether.to.display.c
ade0 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 77 68 65 6e 20 73 77 69 74 63 68 69 6e 67 20 70 72 urrent.project.when.switching.pr
ae00 6f 6a 65 63 74 73 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 60 72 65 6d 6f 76 65 27 20 63 75 ojects...When.set.to.`remove'.cu
ae20 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 69 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 2c 20 60 rrent.project.is.not.included,.`
ae40 6d 6f 76 65 2d 74 6f 2d 65 6e 64 27 0a 77 69 6c 6c 20 64 69 73 70 6c 61 79 20 63 75 72 72 65 6e move-to-end'.will.display.curren
ae60 74 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 t.project.and.the.end.of.the.lis
ae80 74 20 6f 66 20 6b 6e 6f 77 6e 0a 70 72 6f 6a 65 63 74 73 2c 20 60 6b 65 65 70 27 20 77 69 6c 6c t.of.known.projects,.`keep'.will
aea0 20 6c 65 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 61 74 20 74 68 .leave.the.current.project.at.th
aec0 65 20 64 65 66 61 75 6c 74 0a 70 6f 73 69 74 69 6f 6e 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 e.default.position."...:group.'p
aee0 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.......
af00 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 52 65 6d 6f 76 65 22 20 72 65 6d 6f 76 65 29 ....(const.:tag."Remove".remove)
af20 0a 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 76 65 20 74 6f 20 ...........(const.:tag."Move.to.
af40 65 6e 64 22 20 6d 6f 76 65 2d 74 6f 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e end".move-to-end)...........(con
af60 73 74 20 3a 74 61 67 20 22 4b 65 65 70 22 20 6b 65 65 70 29 29 29 0a 0a 28 64 65 66 63 75 73 74 st.:tag."Keep".keep)))..(defcust
af80 6f 6d 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 65 72 2d 63 6f om.projectile-max-file-buffer-co
afa0 75 6e 74 20 6e 69 6c 0a 20 20 22 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 66 69 6c unt.nil..."Maximum.number.of.fil
afc0 65 20 62 75 66 66 65 72 73 20 70 65 72 20 70 72 6f 6a 65 63 74 20 74 68 61 74 20 61 72 65 20 6b e.buffers.per.project.that.are.k
afe0 65 70 74 20 6f 70 65 6e 2e 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6e 69 6c 2c 20 ept.open...If.the.value.is.nil,.
b000 74 68 65 72 65 20 69 73 20 6e 6f 20 6c 69 6d 69 74 20 74 6f 20 74 68 65 20 6f 70 65 6e 64 20 62 there.is.no.limit.to.the.opend.b
b020 75 66 66 65 72 73 20 63 6f 75 6e 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f 6a 65 63 74 uffers.count."...:group.'project
b040 69 6c 65 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 70 61 63 6b 61 67 65 2d ile...:type.'integer...:package-
b060 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 32 2e 30 22 29 29 version.'(projectile..."2.2.0"))
b080 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
b0a0 74 2d 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 t-suffix.nil..."Use.this.variabl
b0c0 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 6a 65 63 e.to.override.the.current.projec
b0e0 74 27 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 t's.test-suffix.property..It.tak
b100 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 73 75 66 66 es.precedence.over.the.test-suff
b120 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 73 65 74 ix.for.the.project.type.when.set
b140 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 6c 73 2e ..Should.be.set.via..dir-locals.
b160 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 65 63 el.")..(defvar.projectile-projec
b180 74 2d 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 t-test-prefix.nil..."Use.this.va
b1a0 72 69 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 riable.to.override.the.current.p
b1c0 72 6f 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 roject's.test-prefix.property..I
b1e0 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 74 65 73 74 t.takes.precedence.over.the.test
b200 2d 70 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 -prefix.for.the.project.type.whe
b220 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 6f n.set..Should.be.set.via..dir-lo
b240 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 70 cals.el.")..(defvar.projectile-p
b260 72 6f 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 roject-related-files-fn.nil..."U
b280 73 65 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 se.this.variable.to.override.the
b2a0 20 63 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 .current.project's.related-files
b2c0 2d 66 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 -fn.property..It.takes.precedenc
b2e0 65 20 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 e.over.the.related-files-fn.attr
b300 69 62 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 ibute.for.the.project.type.when.
b320 73 65 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 set...Should.be.set.via..dir-loc
b340 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 70 72 als.el.")..(defvar.projectile-pr
b360 6f 6a 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 oject-src-dir.nil..."Use.this.va
b380 72 69 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 riable.to.override.the.current.p
b3a0 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 49 74 20 74 61 roject's.src-dir.property..It.ta
b3c0 6b 65 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 kes.precedence.over.the.src-dir.
b3e0 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 53 for.the.project.type.when.set..S
b400 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 2e hould.be.set.via..dir-locals.el.
b420 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 74 ")..(defvar.projectile-project-t
b440 65 73 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 est-dir.nil..."Use.this.variable
b460 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 6a 65 63 74 .to.override.the.current.project
b480 27 73 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 's.test-dir.property..It.takes.p
b4a0 72 65 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 recedence.over.the.test-dir.for.
b4c0 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 75 6c the.project.type.when.set..Shoul
b4e0 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 0a 0a d.be.set.via..dir-locals.el.")..
b500 0c 0a 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 ..;;;.Version.information..(defc
b520 6f 6e 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 38 2e 30 22 0a onst.projectile-version."2.8.0".
b540 20 20 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 .."The.current.version.of.Projec
b560 74 69 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 tile.")..(defun.projectile--pkg-
b580 76 65 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 version.()..."Extract.Projectile
b5a0 27 73 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 's.package.version.from.its.pack
b5c0 61 67 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 age.metadata."...;;.Use.`cond'.b
b5e0 65 6c 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 elow.to.avoid.a.compiler.unused.
b600 72 65 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 return.value.warning...;;.when.`
b620 70 61 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 package-get-version'.returns.nil
b640 2e 20 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 ..See.#3181....;;.FIXME:.Inline.
b660 74 68 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 the.logic.from.package-get-versi
b680 6f 6e 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 on.and.adapt.it...(cond.((fbound
b6a0 70 20 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 p.'package-get-version).........
b6c0 20 28 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 .(package-get-version))))..;;;##
b6e0 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 76 65 72 73 #autoload.(defun.projectile-vers
b700 69 6f 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 ion.(&optional.show-version)..."
b720 47 65 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 Get.the.Projectile.version.as.st
b740 72 69 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 ring...If.called.interactively.o
b760 72 20 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 r.if.SHOW-VERSION.is.non-nil,.sh
b780 6f 77 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 ow.the.version.in.the.echo.area.
b7a0 61 6e 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 and.the.messages.buffer...The.re
b7c0 74 75 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 turned.string.includes.both,.the
b7e0 20 76 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 .version.from.package.el.and.the
b800 20 6c 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 .library.version,.if.both.a.pres
b820 65 6e 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 ent.and.different...If.the.versi
b840 6f 6e 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 on.number.could.not.be.determine
b860 64 2c 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 d,.signal.an.error,.if.called.in
b880 74 65 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 teractively,.or.if.SHOW-VERSION.
b8a0 69 73 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 is.non-nil,.otherwise.just.retur
b8c0 6e 20 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 n.nil."...(interactive.(list.t))
b8e0 0a 20 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 ...(let.((version.(or.(projectil
b900 65 2d 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 e--pkg-version).projectile-versi
b920 6f 6e 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 on)))....(if.show-version.......
b940 20 28 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 .(message."Projectile.%s".versio
b960 6e 29 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 n)......version)))..;;;.Misc.uti
b980 6c 69 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 lity.functions.(defun.projectile
b9a0 2d 64 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 -difference.(list1.list2)...(cl-
b9c0 72 65 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 remove-if....(lambda.(x).(member
b9e0 20 78 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 .x.list2))....list1))..(defun.pr
ba00 6f 6a 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 ojectile-unixy-system-p.()..."Ch
ba20 65 63 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 eck.to.see.if.unixy.text.utiliti
ba40 65 73 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 es.are.installed."...(cl-every..
ba60 20 20 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 ..(lambda.(x).(executable-find.x
ba80 29 29 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 ))....'("grep"."cut"."uniq")))..
baa0 28 64 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 (defun.projectile-symbol-or-sele
bac0 63 74 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 ction-at-point.()..."Get.the.sym
bae0 62 6f 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 bol.or.selected.text.at.point.".
bb00 20 20 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 ..(if.(use-region-p).......(buff
bb20 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 72 65 67 69 er-substring-no-properties.(regi
bb40 6f 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 on-beginning).(region-end)).....
bb60 28 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 29 29 29 0a 0a (projectile-symbol-at-point)))..
bb80 28 64 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 (defun.projectile-symbol-at-poin
bba0 74 20 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 t.()..."Get.the.symbol.at.point.
bbc0 61 6e 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 and.strip.its.properties."...(su
bbe0 62 73 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 bstring-no-properties.(or.(thing
bc00 2d 61 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 -at-point.'symbol)."")))..(defun
bc20 20 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 .projectile-generate-process-nam
bc40 65 20 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 e.(process.make-new.&optional.pr
bc60 6f 6a 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 oject)..."Infer.the.buffer.name.
bc80 66 6f 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 for.PROCESS.or.generate.a.new.on
bca0 65 20 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 e.if.MAKE-NEW.is.true..The.funct
bcc0 69 6f 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 ion.operates.on.the.current.proj
bce0 65 63 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 ect.by.default,.but.you.can.also
bd00 0a 73 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 .specify.a.project.explicitly.vi
bd20 61 20 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 a.the.optional.PROJECT.param."..
bd40 20 28 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 .(let*.((project.(or.project.(pr
bd60 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 20 ojectile-acquire-root)))........
bd80 20 20 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 ..(base-name.(format."*%s.%s*".p
bda0 72 6f 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 rocess.(projectile-project-name.
bdc0 70 72 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 project)))).....(if.make-new....
bde0 20 20 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 .....(generate-new-buffer-name.b
be00 61 73 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 ase-name).......base-name)))....
be20 3b 3b 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 ;;;.Serialization.(defun.project
be40 69 6c 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 ile-serialize.(data.filename)...
be60 22 53 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 "Serialize.DATA.to.FILENAME...Th
be80 65 20 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 e.saved.data.can.be.restored.wit
bea0 68 20 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 h.`projectile-unserialize'."...(
bec0 69 66 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 if.(file-writable-p.filename)...
bee0 20 20 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 ..(with-temp-file.filename......
bf00 20 28 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 .(insert.(let.(print-length).(pr
bf20 69 6e 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 in1-to-string.data)))).....(mess
bf40 61 67 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 age."Projectile.cache.'%s'.not.w
bf60 72 69 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 riteable".filename)))..(defun.pr
bf80 6f 6a 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 ojectile-unserialize.(filename).
bfa0 20 20 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 .."Read.data.serialized.by.`proj
bfc0 65 63 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 ectile-serialize'.from.FILENAME.
bfe0 22 0a 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 "...(with-demoted-errors......."
c000 45 72 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 Error.during.file.deserializatio
c020 6e 3a 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 n:.%S".....(when.(file-exists-p.
c040 66 69 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 filename).......(with-temp-buffe
c060 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.
c080 66 69 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 filename).........;;.this.will.b
c0a0 6c 6f 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 low.up.if.the.contents.of.the.fi
c0c0 6c 65 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 le.aren't.........;;.lisp.data.s
c0e0 74 72 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 tructures.........(read.(buffer-
c100 73 74 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 string))))))....;;;.Caching.(def
c120 76 61 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 var.projectile-file-exists-cache
c140 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
c160 29 0a 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 )..."Cached.`projectile-file-exi
c180 73 74 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 sts-p'.results.")..(defvar.proje
c1a0 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 65 72 20 6e 69 ctile-file-exists-cache-timer.ni
c1c0 6c 0a 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 l..."Timer.for.scheduling`projec
c1e0 74 69 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 tile-file-exists-cache-cleanup'.
c200 22 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 2d 65 78 69 73 74 ")..(defun.projectile-file-exist
c220 73 2d 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 64 20 74 69 s-cache-cleanup.()..."Removed.ti
c240 6d 65 64 20 6f 75 74 20 63 61 63 68 65 20 65 6e 74 72 69 65 73 20 61 6e 64 20 72 65 73 63 68 65 med.out.cache.entries.and.resche
c260 64 75 6c 65 73 20 6f 72 20 72 65 6d 6f 76 65 20 74 68 65 0a 74 69 6d 65 72 20 69 66 20 6e 6f 20 dules.or.remove.the.timer.if.no.
c280 6d 6f 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 more.items.are.in.the.cache."...
c2a0 28 6c 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 (let.((now.(current-time))).....
c2c0 28 6d 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 (maphash.(lambda.(key.value)....
c2e0 20 20 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 ............(if.(time-less-p.(cd
c300 72 20 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 r.value).now)...................
c320 20 28 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 .(remhash.key.projectile-file-ex
c340 69 73 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 ists-cache)))..............proje
c360 63 74 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 ctile-file-exists-cache).....(se
c380 74 71 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 tq.projectile-file-exists-cache-
c3a0 74 69 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 timer...........(if.(>.(hash-tab
c3c0 6c 65 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 le-count.projectile-file-exists-
c3e0 63 61 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 cache).0)...............(run-wit
c400 68 2d 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 h-timer.10.nil.'projectile-file-
c420 65 78 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 exists-cache-cleanup)))))..(defu
c440 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 70 20 28 66 69 6c 65 n.projectile-file-exists-p.(file
c460 6e 61 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 name)..."Return.t.if.file.FILENA
c480 4d 45 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 ME.exist..A.wrapper.around.`file
c4a0 2d 65 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 -exists-p'.with.additional.cachi
c4c0 6e 67 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 ng.support."...(let*.((file-remo
c4e0 74 65 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 te.(file-remote-p.filename))....
c500 20 20 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 ......(expire-seconds...........
c520 28 69 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 (if.file-remote...............(a
c540 6e 64 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 nd.projectile-file-exists-remote
c560 2d 63 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 -cache-expire...................
c580 20 28 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 .(>.projectile-file-exists-remot
c5a0 65 2d 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 e-cache-expire.0)...............
c5c0 20 20 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 .....projectile-file-exists-remo
c5e0 74 65 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 te-cache-expire).............(an
c600 64 20 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 d.projectile-file-exists-local-c
c620 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 28 3e 20 ache-expire..................(>.
c640 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
c660 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 20 70 72 he-expire.0)..................pr
c680 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
c6a0 2d 65 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 -expire)))..........(remote-file
c6c0 2d 6e 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 -name-inhibit-cache.(if.expire-s
c6e0 65 63 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 econds..........................
c700 20 20 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 ....................expire-secon
c720 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 20 20 ds..............................
c740 20 20 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 ..............remote-file-name-i
c760 6e 68 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 nhibit-cache))).....(if.(not.exp
c780 69 72 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 ire-seconds).........(file-exist
c7a0 73 2d 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 s-p.filename).......(let*.((curr
c7c0 65 6e 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 ent-time.(current-time))........
c7e0 20 20 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 ......(cached.(gethash.filename.
c800 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 29 29 0a 20 projectile-file-exists-cache))..
c820 20 20 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 ............(cached-value.(if.ca
c840 63 68 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 ched.(car.cached))).............
c860 20 28 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 .(cached-expire.(if.cached.(cdr.
c880 63 61 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 cached)))..............(cached-e
c8a0 78 70 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 xpired.(if.cached.(time-less-p.c
c8c0 61 63 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 ached-expire.current-time).t))..
c8e0 20 20 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 ............(value.(or.(and.(not
c900 20 63 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 .cached-expired).cached-value)..
c920 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 66 69 6c 65 .......................(if.(file
c940 2d 65 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 -exists-p.filename).'found.'notf
c960 6f 75 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 ound)))).........(when.(or.(not.
c980 63 61 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 cached).cached-expired).........
c9a0 20 20 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 ..(puthash.filename.............
c9c0 20 20 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 .......(cons.value.(time-add.cur
c9e0 72 65 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 rent-time.(seconds-to-time.expir
ca00 65 2d 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 e-seconds)))....................
ca20 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 29 29 0a 20 projectile-file-exists-cache))..
ca40 20 20 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 .......(unless.projectile-file-e
ca60 78 69 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 xists-cache-timer...........(set
ca80 71 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 q.projectile-file-exists-cache-t
caa0 69 6d 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 imer.................(run-with-t
cac0 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 69 imer.10.nil.'projectile-file-exi
cae0 73 74 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 sts-cache-cleanup))).........(eq
cb00 75 61 6c 20 76 61 6c 75 65 20 27 66 6f 75 6e 64 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 ual.value.'found)))))..;;;###aut
cb20 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 76 61 6c 69 64 61 oload.(defun.projectile-invalida
cb40 74 65 2d 63 61 63 68 65 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 te-cache.(prompt)..."Remove.the.
cb60 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 66 69 6c 65 73 20 66 72 6f 6d 20 60 70 72 current.project's.files.from.`pr
cb80 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 27 2e 0a 0a 57 69 74 68 20 ojectile-projects-cache'...With.
cba0 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 50 52 4f 4d 50 54 20 70 72 6f 6d 70 74 73 a.prefix.argument.PROMPT.prompts
cbc0 20 66 6f 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 68 6f .for.the.name.of.the.project.who
cbe0 73 65 20 63 61 63 68 65 0a 74 6f 20 69 6e 76 61 6c 69 64 61 74 65 2e 22 0a 20 20 28 69 6e 74 65 se.cache.to.invalidate."...(inte
cc00 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 63 74 2d 72 6f ractive."P")...(let.((project-ro
cc20 6f 74 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 ot..........(if.prompt..........
cc40 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 52 65 6d 6f 76 65 20 63 61 63 ....(completing-read."Remove.cac
cc60 68 65 20 66 6f 72 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 he.for:.".......................
cc80 20 20 20 20 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 79 73 20 70 72 6f 6a 65 63 74 ........(hash-table-keys.project
cca0 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 20 20 20 20 20 20 ile-projects-cache))............
ccc0 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 29 0a 20 20 20 (projectile-acquire-root))))....
cce0 20 28 73 65 74 71 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 63 .(setq.projectile-project-root-c
cd00 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 65 71 75 ache.(make-hash-table.:test.'equ
cd20 61 6c 29 29 0a 20 20 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 al)).....(remhash.project-root.p
cd40 72 6f 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 29 0a 20 20 rojectile-project-type-cache)...
cd60 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
cd80 6c 65 2d 70 72 6f 6a 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 le-projects-cache).....(remhash.
cda0 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 74 73 project-root.projectile-projects
cdc0 2d 63 61 63 68 65 2d 74 69 6d 65 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 72 -cache-time).....(projectile-ser
cde0 69 61 6c 69 7a 65 2d 63 61 63 68 65 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 ialize-cache).....(when.projecti
ce00 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 61 6c le-verbose.......(message."Inval
ce20 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 2e 22 idated.Projectile.cache.for.%s."
ce40 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 6f 6a ................(propertize.proj
ce60 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 6f 72 ect-root.'face.'font-lock-keywor
ce80 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 65 63 d-face))))...(when.(fboundp.'rec
cea0 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 61 6e entf-cleanup).....(recentf-clean
cec0 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 73 65 up)))..(defun.projectile-time-se
cee0 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 6f 66 conds.()..."Return.the.number.of
cf00 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 22 0a .seconds.since.the.unix.epoch.".
cf20 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 20 20 ..(if.(fboundp.'time-convert)...
cf40 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 29 0a ....(time-convert.nil.'integer).
cf60 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 67 68 ....(cl-destructuring-bind.(high
cf80 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 65 29 .low._usec._psec).(current-time)
cfa0 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 29 0a .......(+.(ash.high.16).low)))).
cfc0 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 63 74 .(defun.projectile-cache-project
cfe0 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 45 43 .(project.files)..."Cache.PROJEC
d000 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 20 62 Ts.FILES..The.cache.is.created.b
d020 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 64 72 oth.in.memory.and.on.the.hard.dr
d040 69 76 65 2e 22 0a 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d ive."...(when.projectile-enable-
d060 63 61 63 68 69 6e 67 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 70 72 6f 6a 65 63 74 20 66 69 6c caching.....(puthash.project.fil
d080 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 20 es.projectile-projects-cache)...
d0a0 20 20 28 70 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 ..(puthash.project.(projectile-t
d0c0 69 6d 65 2d 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 ime-seconds).projectile-projects
d0e0 2d 63 61 63 68 65 2d 74 69 6d 65 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 72 -cache-time).....(projectile-ser
d100 69 61 6c 69 7a 65 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 ialize-cache)))..;;;###autoload.
d120 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 6f (defun.projectile-purge-file-fro
d140 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 6f m-cache.(file)..."Purge.FILE.fro
d160 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 65 m.the.cache.of.the.current.proje
d180 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 72 ct."...(interactive....(list.(pr
d1a0 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 20 ojectile-completing-read........
d1c0 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 20 ..."Remove.file.from.cache:."...
d1e0 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 6a ........(projectile-current-proj
d200 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 2d ect-files))))...(let*.((project-
d220 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 0a root.(projectile-project-root)).
d240 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 68 .........(project-cache.(gethash
d260 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 74 .project-root.projectile-project
d280 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 66 s-cache))).....(if.(projectile-f
d2a0 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 0a ile-cached-p.file.project-root).
d2c0 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 73 ........(progn...........(puthas
d2e0 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 6a h.project-root.(remove.file.proj
d300 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 63 ect-cache).projectile-projects-c
d320 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 65 72 69 ache)...........(projectile-seri
d340 61 6c 69 7a 65 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 6f alize-cache)...........(when.pro
d360 6a 65 63 74 69 6c 65 2d 76 65 72 62 6f 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 jectile-verbose.............(mes
d380 73 61 67 65 20 22 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 61 63 68 65 22 20 66 69 6c sage."%s.removed.from.cache".fil
d3a0 65 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 25 73 20 69 73 20 6e 6f 74 20 69 6e 20 e))).......(error."%s.is.not.in.
d3c0 74 68 65 20 63 61 63 68 65 22 20 66 69 6c 65 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c the.cache".file))))..;;;###autol
d3e0 6f 61 64 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 64 69 72 2d oad.(defun.projectile-purge-dir-
d400 66 72 6f 6d 2d 63 61 63 68 65 20 28 64 69 72 29 0a 20 20 22 50 75 72 67 65 20 44 49 52 20 66 72 from-cache.(dir)..."Purge.DIR.fr
d420 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
d440 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
d460 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.......
d480 20 20 20 20 22 52 65 6d 6f 76 65 20 64 69 72 65 63 74 6f 72 79 20 66 72 6f 6d 20 63 61 63 68 65 ...."Remove.directory.from.cache
d4a0 3a 20 22 0a 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 :."...........(projectile-curren
d4c0 74 2d 70 72 6f 6a 65 63 74 2d 64 69 72 73 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f t-project-dirs))))...(let*.((pro
d4e0 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 72 6f ject-root.(projectile-project-ro
d500 6f 74 29 29 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 ot))..........(project-cache.(ge
d520 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 2d 70 72 thash.project-root.projectile-pr
d540 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 70 72 6f ojects-cache))).....(puthash.pro
d560 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 ject-root..............(cl-remov
d580 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 e-if.(lambda.(str).(string-prefi
d5a0 78 2d 70 20 64 69 72 20 73 74 72 29 29 20 70 72 6f 6a 65 63 74 2d 63 61 63 68 65 29 0a 20 20 20 x-p.dir.str)).project-cache)....
d5c0 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 73 2d 63 61 ..........projectile-projects-ca
d5e0 63 68 65 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 65 2d 63 che)))..(defun.projectile-file-c
d600 61 63 68 65 64 2d 70 20 28 66 69 6c 65 20 70 72 6f 6a 65 63 74 29 0a 20 20 22 43 68 65 63 6b 20 ached-p.(file.project)..."Check.
d620 69 66 20 46 49 4c 45 20 69 73 20 61 6c 72 65 61 64 79 20 69 6e 20 50 52 4f 4a 45 43 54 20 63 61 if.FILE.is.already.in.PROJECT.ca
d640 63 68 65 2e 22 0a 20 20 28 6d 65 6d 62 65 72 20 66 69 6c 65 20 28 67 65 74 68 61 73 68 20 70 72 che."...(member.file.(gethash.pr
d660 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)
d680 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
d6a0 74 69 6c 65 2d 63 61 63 68 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 29 0a 20 20 22 41 64 tile-cache-current-file.()..."Ad
d6c0 64 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 6c 65 20 74 6f 20 d.the.currently.visited.file.to.
d6e0 74 68 65 20 63 61 63 68 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c the.cache."...(interactive)...(l
d700 65 74 20 28 28 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 et.((current-project.(projectile
d720 2d 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 28 61 6e 64 20 -project-root))).....(when.(and.
d740 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 20 28 67 65 74 68 61 73 68 20 28 70 72 6f (buffer-file-name).(gethash.(pro
d760 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 20 70 72 6f 6a 65 63 74 69 6c 65 jectile-project-root).projectile
d780 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 -projects-cache)).......(let*.((
d7a0 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 abs-current-file.(file-truename.
d7c0 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (buffer-file-name)))............
d7e0 20 20 28 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 76 65 2d 6e ..(current-file.(file-relative-n
d800 61 6d 65 20 61 62 73 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 63 75 72 72 65 6e 74 2d 70 72 6f ame.abs-current-file.current-pro
d820 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 70 72 6f ject))).........(unless.(or.(pro
d840 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 63 75 72 72 65 6e 74 2d 66 69 jectile-file-cached-p.current-fi
d860 6c 65 20 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 le.current-project).............
d880 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 64 69 72 65 ........(projectile-ignored-dire
d8a0 63 74 6f 72 79 2d 70 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 61 62 73 ctory-p.(file-name-directory.abs
d8c0 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -current-file)).................
d8e0 20 20 20 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 2d 70 20 61 ....(projectile-ignored-file-p.a
d900 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 20 20 20 28 70 75 74 bs-current-file))...........(put
d920 68 61 73 68 20 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 hash.current-project............
d940 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 63 75 72 72 65 6e 74 2d 66 69 6c 65 20 28 67 65 74 68 ........(cons.current-file.(geth
d960 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 69 6c 65 2d 70 ash.current-project.projectile-p
d980 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rojects-cache)).................
d9a0 20 20 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 ...projectile-projects-cache)...
d9c0 20 20 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 2d 63 61 ........(projectile-serialize-ca
d9e0 63 68 65 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 che)...........(message."File.%s
da00 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."....
da20 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
da40 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
da60 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
da80 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
daa0 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)))))))..;;.
dac0 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
dae0 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
db00 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
db20 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
db40 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
db60 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
db80 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))).
dba0 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
dbc0 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-
dbe0 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
dc00 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
dc20 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
dc40 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
dc60 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
dc80 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
dca0 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'
dcc0 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
dce0 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
dd00 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
dd20 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
dd40 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
dd60 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.(
dd80 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
dda0 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.
ddc0 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-
dde0 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
de00 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)...................
de20 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
de40 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d le-cache-file)).....(projectile-
de60 69 6e 76 61 6c 69 64 61 74 65 2d 63 61 63 68 65 20 6e 69 6c 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 invalidate-cache.nil)))..;;;###a
de80 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 63 6f 76 utoload.(defun.projectile-discov
dea0 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 64 69 72 65 63 74 er-projects-in-directory.(direct
dec0 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 70 74 68 29 0a 20 20 22 44 69 73 63 6f 76 65 72 ory.&optional.depth)..."Discover
dee0 20 61 6e 79 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 44 49 52 45 43 54 4f 52 59 20 61 6e 64 20 61 .any.projects.in.DIRECTORY.and.a
df00 64 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 63 61 63 68 65 2e dd.them.to.the.projectile.cache.
df20 0a 0a 49 66 20 44 45 50 54 48 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 72 65 63 75 72 73 69 76 65 6c ..If.DEPTH.is.non-nil.recursivel
df40 79 20 64 65 73 63 65 6e 64 20 65 78 61 63 74 6c 79 20 44 45 50 54 48 20 6c 65 76 65 6c 73 20 62 y.descend.exactly.DEPTH.levels.b
df60 65 6c 6f 77 20 44 49 52 45 43 54 4f 52 59 20 61 6e 64 0a 64 69 73 63 6f 76 65 72 20 70 72 6f 6a elow.DIRECTORY.and.discover.proj
df80 65 63 74 73 20 74 68 65 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 ects.there."...(interactive....(
dfa0 6c 69 73 74 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 53 74 61 72 74 list.(read-directory-name."Start
dfc0 69 6e 67 20 64 69 72 65 63 74 6f 72 79 3a 20 22 29 29 29 0a 0a 20 20 28 69 66 20 28 66 69 6c 65 ing.directory:.")))....(if.(file
dfe0 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 28 69 -directory-p.directory).......(i
e000 66 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 64 65 70 74 68 29 20 28 3e 20 64 65 70 74 68 20 f.(and.(numberp.depth).(>.depth.
e020 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 67 6e 6f 72 65 20 65 72 72 6f 72 73 20 77 0))...........;;.Ignore.errors.w
e040 68 65 6e 20 6c 69 73 74 69 6e 67 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 64 69 72 65 63 74 6f hen.listing.files.in.the.directo
e060 72 79 2c 20 62 65 63 61 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 6d 65 74 69 6d ry,.because...........;;.sometim
e080 65 73 20 74 68 61 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 61 6e 20 75 6e 72 65 61 64 61 62 es.that.directory.is.an.unreadab
e0a0 6c 65 20 6f 6e 65 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 61 0a 20 20 20 20 20 20 20 20 le.one.at.the.root.of.a.........
e0c0 20 20 3b 3b 20 76 6f 6c 75 6d 65 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 73 65 2c 20 66 ..;;.volume..This.is.the.case,.f
e0e0 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 20 6d 61 63 4f 53 20 77 69 74 68 20 74 68 65 0a 20 20 or.example,.on.macOS.with.the...
e100 20 20 20 20 20 20 20 20 3b 3b 20 2e 53 70 6f 74 6c 69 67 68 74 2d 56 31 30 30 20 64 69 72 65 63 ........;;..Spotlight-V100.direc
e120 74 6f 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 65 73 73 2d tory............(let.((progress-
e140 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d reporter..................(make-
e160 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 20 progress-reporter...............
e180 20 20 20 20 28 66 6f 72 6d 61 74 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 64 69 73 63 6f ....(format."Projectile.is.disco
e1a0 76 65 72 69 6e 67 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 25 73 2e 2e 2e 22 0a 20 20 20 20 20 20 vering.projects.in.%s...".......
e1c0 20 20 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 65 20 ....................(propertize.
e1e0 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 77 6f directory.'face.'font-lock-keywo
e200 72 64 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 72 65 rd-face))))).............(progre
e220 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 6f ss-reporter-update.progress-repo
e240 72 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 69 72 20 28 rter).............(dolist.(dir.(
e260 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 ignore-errors.(directory-files.d
e280 69 72 65 63 74 6f 72 79 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 irectory.t)))...............(whe
e2a0 6e 20 28 61 6e 64 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 29 0a 20 20 n.(and.(file-directory-p.dir)...
e2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d .......................(not.(mem
e2e0 62 65 72 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 64 69 72 29 ber.(file-name-nondirectory.dir)
e300 20 27 28 22 2e 2e 22 20 22 2e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'("..".".")))).................
e320 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 74 73 2d 69 6e (projectile-discover-projects-in
e340 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 20 28 31 2d 20 64 65 70 74 68 29 29 29 29 0a 20 20 20 -directory.dir.(1-.depth))))....
e360 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 2d 64 6f 6e 65 .........(progress-reporter-done
e380 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 .progress-reporter)).........(wh
e3a0 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 20 64 69 72 65 63 74 6f en.(projectile-project-p.directo
e3c0 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 61 62 62 72 65 76 ry)...........(let.((dir.(abbrev
e3e0 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 iate-file-name.(projectile-proje
e400 63 74 2d 72 6f 6f 74 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 ct-root.directory))))...........
e420 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 ..(unless.(member.dir.projectile
e440 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 20 20 20 20 20 28 -known-projects)...............(
e460 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 20 64 69 72 projectile-add-known-project.dir
e480 29 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 50 72 6f 6a 65 63 74 20 73 65 61 72 ))))).....(message."Project.sear
e4a0 63 68 20 70 61 74 68 20 64 69 72 65 63 74 6f 72 79 20 25 73 20 64 6f 65 73 6e 27 74 20 65 78 69 ch.path.directory.%s.doesn't.exi
e4c0 73 74 22 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 st".directory)))..;;;###autoload
e4e0 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 6f 76 65 72 2d 70 72 6f 6a .(defun.projectile-discover-proj
e500 65 63 74 73 2d 69 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 20 28 29 0a 20 20 22 44 69 73 63 6f 76 ects-in-search-path.()..."Discov
e520 65 72 20 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 er.projects.in.`projectile-proje
e540 63 74 2d 73 65 61 72 63 68 2d 70 61 74 68 27 2e 0a 49 6e 76 6f 6b 65 64 20 61 75 74 6f 6d 61 74 ct-search-path'..Invoked.automat
e560 69 63 61 6c 6c 79 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 ically.when.`projectile-mode'.is
e580 20 65 6e 61 62 6c 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 6f .enabled."...(interactive)...(do
e5a0 6c 69 73 74 20 28 70 61 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 73 65 list.(path.projectile-project-se
e5c0 61 72 63 68 2d 70 61 74 68 29 0a 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 70 61 74 68 29 0a arch-path).....(if.(consp.path).
e5e0 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 72 6f ........(projectile-discover-pro
e600 6a 65 63 74 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 20 28 63 61 72 20 70 61 74 68 29 20 28 63 jects-in-directory.(car.path).(c
e620 64 72 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 73 63 dr.path)).......(projectile-disc
e640 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 70 61 74 68 20 over-projects-in-directory.path.
e660 31 29 29 29 29 0a 0a 0c 0a 28 64 65 66 75 6e 20 64 65 6c 65 74 65 2d 66 69 6c 65 2d 70 72 6f 6a 1))))....(defun.delete-file-proj
e680 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 66 72 6f 6d 2d 63 61 63 68 65 20 28 66 69 6c 65 6e 61 ectile-remove-from-cache.(filena
e6a0 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 74 72 61 73 68 29 0a 20 20 28 69 66 20 28 61 6e 64 20 me.&optional._trash)...(if.(and.
e6c0 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 70 72 6f 6a 65 63 projectile-enable-caching.projec
e6e0 74 69 6c 65 2d 61 75 74 6f 2d 75 70 64 61 74 65 2d 63 61 63 68 65 20 28 70 72 6f 6a 65 63 74 69 tile-auto-update-cache.(projecti
e700 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f le-project-p)).......(let*.((pro
e720 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 72 6f ject-root.(projectile-project-ro
e740 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 65 2d 66 69 6c 65 6e 61 6d 65 ot))..............(true-filename
e760 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 .(file-truename.filename))......
e780 20 20 20 20 20 20 20 20 28 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 6e 61 6d 65 20 28 66 69 6c 65 ........(relative-filename.(file
e7a0 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 74 72 75 65 2d 66 69 6c 65 6e 61 6d 65 20 70 72 6f -relative-name.true-filename.pro
e7c0 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 70 72 6f 6a 65 63 ject-root))).........(if.(projec
e7e0 74 69 6c 65 2d 66 69 6c 65 2d 63 61 63 68 65 64 2d 70 20 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 tile-file-cached-p.relative-file
e800 6e 61 6d 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 28 name.project-root).............(
e820 70 72 6f 6a 65 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 projectile-purge-file-from-cache
e840 20 72 65 6c 61 74 69 76 65 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 50 .relative-filename)))))....;;;.P
e860 72 6f 6a 65 63 74 20 72 6f 6f 74 20 72 65 6c 61 74 65 64 20 75 74 69 6c 69 74 69 65 73 0a 28 64 roject.root.related.utilities.(d
e880 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 65 6e 74 20 28 70 61 74 68 29 0a 20 20 efun.projectile-parent.(path)...
e8a0 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 "Return.the.parent.directory.of.
e8c0 50 41 54 48 2e 0a 50 41 54 48 20 6d 61 79 20 62 65 20 61 20 66 69 6c 65 20 6f 72 20 64 69 72 65 PATH..PATH.may.be.a.file.or.dire
e8e0 63 74 6f 72 79 20 61 6e 64 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 73 20 6d 61 79 20 65 6e ctory.and.directory.paths.may.en
e900 64 20 77 69 74 68 20 61 20 73 6c 61 73 68 2e 22 0a 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 d.with.a.slash."...(directory-fi
e920 6c 65 2d 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 28 64 69 le-name.(file-name-directory.(di
e940 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e rectory-file-name.(expand-file-n
e960 61 6d 65 20 70 61 74 68 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 ame.path)))))..(defun.projectile
e980 2d 6c 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 20 28 66 69 6c 65 20 6e 61 -locate-dominating-file.(file.na
e9a0 6d 65 29 0a 20 20 22 4c 6f 6f 6b 20 75 70 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 68 69 65 me)..."Look.up.the.directory.hie
e9c0 72 61 72 63 68 79 20 66 72 6f 6d 20 46 49 4c 45 20 66 6f 72 20 61 20 64 69 72 65 63 74 6f 72 79 rarchy.from.FILE.for.a.directory
e9e0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 41 4d 45 2e 0a 53 74 6f 70 20 61 74 20 74 68 65 20 66 69 .containing.NAME..Stop.at.the.fi
ea00 72 73 74 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 rst.parent.directory.containing.
ea20 61 20 66 69 6c 65 20 4e 41 4d 45 2c 0a 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 64 69 72 65 a.file.NAME,.and.return.the.dire
ea40 63 74 6f 72 79 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e ctory...Return.nil.if.not.found.
ea60 0a 49 6e 73 74 65 61 64 20 6f 66 20 61 20 73 74 72 69 6e 67 2c 20 4e 41 4d 45 20 63 61 6e 20 61 .Instead.of.a.string,.NAME.can.a
ea80 6c 73 6f 20 62 65 20 61 20 70 72 65 64 69 63 61 74 65 20 74 61 6b 69 6e 67 20 6f 6e 65 20 61 72 lso.be.a.predicate.taking.one.ar
eaa0 67 75 6d 65 6e 74 0a 5c 28 61 20 64 69 72 65 63 74 6f 72 79 29 20 61 6e 64 20 72 65 74 75 72 6e gument.\(a.directory).and.return
eac0 69 6e 67 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 20 69 66 20 74 68 61 74 20 64 69 72 65 ing.a.non-nil.value.if.that.dire
eae0 63 74 6f 72 79 20 69 73 20 74 68 65 20 6f 6e 65 20 66 6f 72 0a 77 68 69 63 68 20 77 65 27 72 65 ctory.is.the.one.for.which.we're
eb00 20 6c 6f 6f 6b 69 6e 67 2e 22 0a 20 20 3b 3b 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 66 69 6c 65 .looking."...;;.copied.from.file
eb20 73 2e 65 6c 20 28 73 74 72 69 70 70 65 64 20 63 6f 6d 6d 65 6e 74 73 29 20 65 6d 61 63 73 2d 32 s.el.(stripped.comments).emacs-2
eb40 34 20 62 7a 72 20 62 72 61 6e 63 68 20 32 30 31 34 2d 30 33 2d 32 38 20 31 30 3a 32 30 0a 20 20 4.bzr.branch.2014-03-28.10:20...
eb60 28 73 65 74 71 20 66 69 6c 65 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 6d 65 (setq.file.(abbreviate-file-name
eb80 20 66 69 6c 65 29 29 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 6e 69 6c 29 0a 20 20 20 20 20 .file))...(let.((root.nil)......
eba0 20 20 20 74 72 79 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 72 6f 6f 74 ...try).....(while.(not.(or.root
ebc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6c 6c 20 66 69 6c 65 29 .....................(null.file)
ebe0 0a 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 .....................(string-mat
ec00 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 64 69 72 2d 72 65 ch.locate-dominating-stop-dir-re
ec20 67 65 78 70 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 72 79 20 28 69 66 gexp.file))).......(setq.try.(if
ec40 20 28 73 74 72 69 6e 67 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(stringp.name).................
ec60 20 20 20 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 ....(projectile-file-exists-p.(p
ec80 72 6f 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 rojectile-expand-file-name-wildc
eca0 61 72 64 20 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ard.name.file)).................
ecc0 20 20 28 66 75 6e 63 61 6c 6c 20 6e 61 6d 65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 63 ..(funcall.name.file))).......(c
ece0 6f 6e 64 20 28 74 72 79 20 28 73 65 74 71 20 72 6f 6f 74 20 66 69 6c 65 29 29 0a 20 20 20 20 20 ond.(try.(setq.root.file))......
ed00 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 6c 65 20 28 73 65 74 71 20 66 69 6c 65 20 28 .......((equal.file.(setq.file.(
ed20 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 file-name-directory.............
ed40 20 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 64 69 72 65 63 74 .........................(direct
ed60 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 ory-file-name.file))))..........
ed80 20 20 20 20 28 73 65 74 71 20 66 69 6c 65 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 61 6e 64 20 ....(setq.file.nil)))).....(and.
eda0 72 6f 6f 74 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d root.(expand-file-name.(file-nam
edc0 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 72 6f 6f 74 29 29 29 29 29 0a 0a 28 64 65 66 76 61 e-as-directory.root)))))..(defva
ede0 72 2d 6c 6f 63 61 6c 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 r-local.projectile-project-root.
ee00 6e 69 6c 0a 20 20 22 44 65 66 69 6e 65 73 20 61 20 63 75 73 74 6f 6d 20 50 72 6f 6a 65 63 74 69 nil..."Defines.a.custom.Projecti
ee20 6c 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 le.project.root..This.is.intende
ee40 64 20 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 20 66 69 6c 65 20 6c 6f 63 61 6c 20 76 61 72 d.to.be.used.as.a.file.local.var
ee60 69 61 62 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 72 6f 6f 74 iable.")..(defun.projectile-root
ee80 2d 6c 6f 63 61 6c 20 28 5f 64 69 72 29 0a 20 20 22 41 20 73 69 6d 70 6c 65 20 77 72 61 70 70 65 -local.(_dir)..."A.simple.wrappe
eea0 72 20 61 72 6f 75 6e 64 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 70 72 6f 6a 65 63 74 69 6c r.around.the.variable.`projectil
eec0 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 27 2e 22 0a 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 e-project-root'."...projectile-p
eee0 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d roject-root)..(defun.projectile-
ef00 72 6f 6f 74 2d 74 6f 70 2d 64 6f 77 6e 20 28 64 69 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 73 root-top-down.(dir.&optional.lis
ef20 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
ef40 20 44 49 52 20 62 79 20 74 6f 70 2d 64 6f 77 6e 20 73 65 61 72 63 68 20 66 6f 72 20 66 69 6c 65 .DIR.by.top-down.search.for.file
ef60 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 60 s.in.LIST..If.LIST.is.nil,.use.`
ef80 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 27 20 69 projectile-project-root-files'.i
efa0 6e 73 74 65 61 64 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 28 74 6f 70 6d 6f 73 nstead..Return.the.first.(topmos
efc0 74 29 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f 72 79 20 6f 72 20 6e 69 6c 20 69 66 20 6e t).matched.directory.or.nil.if.n
efe0 6f 74 20 66 6f 75 6e 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d ot.found."...(projectile-locate-
f000 64 6f 6d 69 6e 61 74 69 6e 67 2d 66 69 6c 65 0a 20 20 20 64 69 72 0a 20 20 20 28 6c 61 6d 62 64 dominating-file....dir....(lambd
f020 61 20 28 64 69 72 29 0a 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 a.(dir)......(cl-find-if.(lambda
f040 20 28 66 29 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 .(f).(projectile-file-exists-p.(
f060 70 72 6f 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 projectile-expand-file-name-wild
f080 63 61 72 64 20 66 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 card.f.dir)))..................(
f0a0 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-
f0c0 66 69 6c 65 73 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 72 6f files)))))..(defun.projectile-ro
f0e0 6f 74 2d 6d 61 72 6b 65 64 20 28 64 69 72 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 61 20 70 72 ot-marked.(dir)..."Identify.a.pr
f100 6f 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 44 49 52 20 62 79 20 73 65 61 72 63 68 20 66 6f 72 20 oject.root.in.DIR.by.search.for.
f120 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 2e 22 0a 20 20 `projectile-dirconfig-file`."...
f140 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 6f 6f 74 2d 62 6f 74 74 6f 6d 2d 75 70 20 64 69 72 20 28 (projectile-root-bottom-up.dir.(
f160 6c 69 73 74 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 29 29 list.projectile-dirconfig-file))
f180 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 62 6f 74 74 6f 6d )..(defun.projectile-root-bottom
f1a0 2d 75 70 20 28 64 69 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 73 74 29 0a 20 20 22 49 64 65 6e -up.(dir.&optional.list)..."Iden
f1c0 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 62 6f tify.a.project.root.in.DIR.by.bo
f1e0 74 74 6f 6d 2d 75 70 20 73 65 61 72 63 68 20 66 6f 72 20 66 69 6c 65 73 20 69 6e 20 4c 49 53 54 ttom-up.search.for.files.in.LIST
f200 2e 0a 49 66 20 4c 49 53 54 20 69 73 20 6e 69 6c 2c 20 75 73 65 20 60 70 72 6f 6a 65 63 74 69 6c ..If.LIST.is.nil,.use.`projectil
f220 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 2d 62 6f 74 74 6f 6d 2d 75 70 27 20 e-project-root-files-bottom-up'.
f240 69 6e 73 74 65 61 64 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 28 62 6f 74 74 6f instead..Return.the.first.(botto
f260 6d 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 72 20 6e 69 6c 20 mmost).matched.directory.or.nil.
f280 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 6c 65 2d 6c 6f 63 if.not.found."...(projectile-loc
f2a0 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 0a 20 20 20 28 6c ate-dominating-file....dir....(l
f2c0 61 6d 62 64 61 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 ambda.(directory)......(let.((fi
f2e0 6c 65 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 65 78 70 61 les.(mapcar.(lambda.(file).(expa
f300 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 0a 20 20 nd-file-name.file.directory))...
f320 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 6f 72 20 6c 69 73 74 ........................(or.list
f340 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 69 6c 65 73 2d 62 .projectile-project-root-files-b
f360 6f 74 74 6f 6d 2d 75 70 29 29 29 29 0a 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 ottom-up))))........(cl-some.(la
f380 6d 62 64 61 20 28 66 69 6c 65 29 20 28 61 6e 64 20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 69 73 mbda.(file).(and.file.(file-exis
f3a0 74 73 2d 70 20 66 69 6c 65 29 29 29 20 66 69 6c 65 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 ts-p.file))).files)))))..(defun.
f3c0 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 72 65 63 75 72 72 69 projectile-root-top-down-recurri
f3e0 6e 67 20 28 64 69 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6c 69 73 74 29 0a 20 20 22 49 64 65 6e 74 ng.(dir.&optional.list)..."Ident
f400 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 72 65 63 ify.a.project.root.in.DIR.by.rec
f420 75 72 72 69 6e 67 20 74 6f 70 2d 64 6f 77 6e 20 73 65 61 72 63 68 20 66 6f 72 20 66 69 6c 65 73 urring.top-down.search.for.files
f440 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 60 70 .in.LIST..If.LIST.is.nil,.use.`p
f460 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 74 6f 70 rojectile-project-root-files-top
f480 2d 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 27 0a 69 6e 73 74 65 61 64 2e 20 20 52 65 74 75 72 -down-recurring'.instead...Retur
f4a0 6e 20 74 68 65 20 6c 61 73 74 20 28 62 6f 74 74 6f 6d 6d 6f 73 74 29 20 6d 61 74 63 68 65 64 20 n.the.last.(bottommost).matched.
f4c0 64 69 72 65 63 74 6f 72 79 20 69 6e 20 74 68 65 0a 74 6f 70 6d 6f 73 74 20 73 65 71 75 65 6e 63 directory.in.the.topmost.sequenc
f4e0 65 20 6f 66 20 6d 61 74 63 68 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2e 20 20 4e 69 6c 20 6f e.of.matched.directories...Nil.o
f500 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 28 6c 61 6d 62 64 61 therwise."...(cl-some....(lambda
f520 20 28 66 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 74 65 2d 64 6f 6d .(f)......(projectile-locate-dom
f540 69 6e 61 74 69 6e 67 2d 66 69 6c 65 0a 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 20 20 28 6c 61 inating-file.......dir.......(la
f560 6d 62 64 61 20 28 64 69 72 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 70 72 6f 6a 65 63 74 mbda.(dir).........(and.(project
f580 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 65 78 ile-file-exists-p.(projectile-ex
f5a0 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 64 69 72 29 29 0a pand-file-name-wildcard.f.dir)).
f5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6c .............(or.(string-match.l
f5e0 6f 63 61 74 65 2d 64 6f 6d 69 6e 61 74 69 6e 67 2d 73 74 6f 70 2d 64 69 72 2d 72 65 67 65 78 70 ocate-dominating-stop-dir-regexp
f600 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 65 6e 74 20 64 69 72 29 29 0a 20 20 20 20 20 20 .(projectile-parent.dir)).......
f620 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 66 69 6c 65 ...........(not.(projectile-file
f640 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 66 69 6c -exists-p.(projectile-expand-fil
f660 65 2d 6e 61 6d 65 2d 77 69 6c 64 63 61 72 64 20 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 e-name-wildcard.f.(projectile-pa
f680 72 65 6e 74 20 64 69 72 29 29 29 29 29 29 29 29 29 0a 20 20 20 28 6f 72 20 6c 69 73 74 20 70 72 rent.dir)))))))))....(or.list.pr
f6a0 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 74 6f 70 2d ojectile-project-root-files-top-
f6c0 64 6f 77 6e 2d 72 65 63 75 72 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 down-recurring)))..(defun.projec
f6e0 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 tile-project-root.(&optional.dir
f700 29 0a 20 20 22 52 65 74 72 69 65 76 65 73 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 )..."Retrieves.the.root.director
f720 79 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 0a 49 66 20 y.of.a.project.if.available..If.
f740 44 49 52 20 69 73 20 6e 6f 74 20 73 75 70 70 6c 69 65 64 20 69 74 73 20 73 65 74 20 74 6f 20 74 DIR.is.not.supplied.its.set.to.t
f760 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 62 79 20 64 65 66 61 75 6c 74 2e he.current.directory.by.default.
f780 22 0a 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 6f 72 20 64 69 72 20 64 65 66 61 75 6c 74 2d 64 "...(let.((dir.(or.dir.default-d
f7a0 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 3b 3b 20 42 61 63 6b 20 6f 75 74 20 6f 66 20 61 irectory))).....;;.Back.out.of.a
f7c0 6e 79 20 61 72 63 68 69 76 65 73 2c 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 69 6c 6c 20 6c 69 ny.archives,.the.project.will.li
f7e0 76 65 20 6f 6e 20 74 68 65 20 6f 75 74 73 69 64 65 20 61 6e 64 0a 20 20 20 20 3b 3b 20 73 65 61 ve.on.the.outside.and.....;;.sea
f800 72 63 68 69 6e 67 20 74 68 65 6d 20 69 73 20 73 6c 6f 77 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 rching.them.is.slow......(when.(
f820 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 74 72 61 6d 70 2d 61 72 63 68 69 76 65 2d 66 69 6c 65 and.(fboundp.'tramp-archive-file
f840 2d 6e 61 6d 65 2d 61 72 63 68 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 -name-archive)................(t
f860 72 61 6d 70 2d 61 72 63 68 69 76 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 70 20 64 69 72 29 29 0a 20 ramp-archive-file-name-p.dir))..
f880 20 20 20 20 20 28 73 65 74 71 20 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 .....(setq.dir.(file-name-direct
f8a0 6f 72 79 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 2d 61 72 63 ory.(tramp-archive-file-name-arc
f8c0 68 69 76 65 20 64 69 72 29 29 29 29 0a 20 20 20 20 3b 3b 20 74 68 65 20 63 61 63 68 65 64 20 76 hive.dir)))).....;;.the.cached.v
f8e0 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 27 6e 6f 6e 65 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f alue.will.be.'none.in.the.case.o
f900 66 20 6e 6f 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 28 74 68 69 73 20 69 73 20 74 6f 0a 20 20 f.no.project.root.(this.is.to...
f920 20 20 3b 3b 20 65 6e 73 75 72 65 20 69 74 20 69 73 20 6e 6f 74 20 72 65 65 76 61 6c 75 61 74 65 ..;;.ensure.it.is.not.reevaluate
f940 64 20 65 61 63 68 20 74 69 6d 65 20 77 68 65 6e 20 6e 6f 74 20 69 6e 73 69 64 65 20 61 20 70 72 d.each.time.when.not.inside.a.pr
f960 6f 6a 65 63 74 29 20 73 6f 20 75 73 65 0a 20 20 20 20 3b 3b 20 63 6c 2d 73 75 62 73 74 20 74 6f oject).so.use.....;;.cl-subst.to
f980 20 72 65 70 6c 61 63 65 20 74 68 69 73 20 27 6e 6f 6e 65 20 76 61 6c 75 65 20 77 69 74 68 20 6e .replace.this.'none.value.with.n
f9a0 69 6c 20 73 6f 20 61 20 6e 69 6c 20 76 61 6c 75 65 20 69 73 20 75 73 65 64 0a 20 20 20 20 3b 3b il.so.a.nil.value.is.used.....;;
f9c0 20 69 6e 73 74 65 61 64 0a 20 20 20 20 28 63 6c 2d 73 75 62 73 74 20 6e 69 6c 20 27 6e 6f 6e 65 .instead.....(cl-subst.nil.'none
f9e0 0a 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 3b 3b 20 69 66 20 77 65 27 76 65 20 61 6c .......(or........;;.if.we've.al
fa00 72 65 61 64 79 20 66 61 69 6c 65 64 20 74 6f 20 66 69 6e 64 20 61 20 70 72 6f 6a 65 63 74 20 64 ready.failed.to.find.a.project.d
fa20 69 72 20 66 6f 72 20 74 68 69 73 0a 20 20 20 20 20 20 20 3b 3b 20 64 69 72 2c 20 61 6e 64 20 63 ir.for.this........;;.dir,.and.c
fa40 61 63 68 65 64 20 74 68 61 74 20 66 61 69 6c 75 72 65 2c 20 64 6f 6e 27 74 20 72 65 63 6f 6d 70 ached.that.failure,.don't.recomp
fa60 75 74 65 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 61 63 68 65 2d 6b 65 79 20 28 66 6f ute........(let*.((cache-key.(fo
fa80 72 6d 61 74 20 22 70 72 6f 6a 65 63 74 69 6c 65 72 6f 6f 74 6c 65 73 73 2d 25 73 22 20 64 69 72 rmat."projectilerootless-%s".dir
faa0 29 29 0a 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 20 28 67 ))...............(cache-value.(g
fac0 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 72 6f 6a ethash.cache-key.projectile-proj
fae0 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 63 61 63 68 65 ect-root-cache)))..........cache
fb00 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 -value)........;;.if.the.file.is
fb20 6e 27 74 20 6c 6f 63 61 6c 2c 20 61 6e 64 20 77 65 27 72 65 20 6e 6f 74 20 63 6f 6e 6e 65 63 74 n't.local,.and.we're.not.connect
fb40 65 64 2c 20 64 6f 6e 27 74 20 74 72 79 20 74 6f 0a 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 64 20 ed,.don't.try.to........;;.find.
fb60 61 20 72 6f 6f 74 20 6e 6f 77 20 6e 6f 77 2c 20 62 75 74 20 64 6f 6e 27 74 20 63 61 63 68 65 20 a.root.now.now,.but.don't.cache.
fb80 66 61 69 6c 75 72 65 2c 20 61 73 20 77 65 20 6d 69 67 68 74 0a 20 20 20 20 20 20 20 3b 3b 20 72 failure,.as.we.might........;;.r
fba0 65 2d 63 6f 6e 6e 65 63 74 2e 20 20 54 68 65 20 60 69 73 2d 6c 6f 63 61 6c 27 20 61 6e 64 20 60 e-connect...The.`is-local'.and.`
fbc0 69 73 2d 63 6f 6e 6e 65 63 74 65 64 27 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 0a 20 20 20 20 is-connected'.variables.are.....
fbe0 20 20 20 3b 3b 20 75 73 65 64 20 74 6f 20 66 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 77 ...;;.used.to.fix.the.behavior.w
fc00 68 65 72 65 20 45 6d 61 63 73 20 68 61 6e 67 73 20 62 65 63 61 75 73 65 20 6f 66 0a 20 20 20 20 here.Emacs.hangs.because.of.....
fc20 20 20 20 3b 3b 20 50 72 6f 6a 65 63 74 69 6c 65 20 77 68 65 6e 20 79 6f 75 20 6f 70 65 6e 20 61 ...;;.Projectile.when.you.open.a
fc40 20 66 69 6c 65 20 6f 76 65 72 20 54 52 41 4d 50 2e 20 49 74 20 62 61 73 69 63 61 6c 6c 79 0a 20 .file.over.TRAMP..It.basically..
fc60 20 20 20 20 20 20 3b 3b 20 70 72 65 76 65 6e 74 73 20 50 72 6f 6a 65 63 74 69 6c 65 20 66 72 6f ......;;.prevents.Projectile.fro
fc80 6d 20 74 72 79 69 6e 67 20 74 6f 20 66 69 6e 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f m.trying.to.find.information.abo
fca0 75 74 0a 20 20 20 20 20 20 20 3b 3b 20 66 69 6c 65 73 20 66 6f 72 20 77 68 69 63 68 20 69 74 27 ut........;;.files.for.which.it'
fcc0 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 74 68 61 74 20 69 6e 66 6f 72 s.not.possible.to.get.that.infor
fce0 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 3b 3b 20 72 69 67 68 74 20 6e 6f 77 2e 0a 20 20 20 20 mation........;;.right.now......
fd00 20 20 20 28 6c 65 74 20 28 28 69 73 2d 6c 6f 63 61 6c 20 28 6e 6f 74 20 28 66 69 6c 65 2d 72 65 ...(let.((is-local.(not.(file-re
fd20 6d 6f 74 65 2d 70 20 64 69 72 29 29 29 20 20 20 20 20 20 3b 3b 20 60 74 72 75 65 27 20 69 66 20 mote-p.dir)))......;;.`true'.if.
fd40 74 68 65 20 66 69 6c 65 20 69 73 20 6c 6f 63 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 the.file.is.local..............(
fd60 69 73 2d 63 6f 6e 6e 65 63 74 65 64 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 64 69 72 20 is-connected.(file-remote-p.dir.
fd80 6e 69 6c 20 74 29 29 29 20 3b 3b 20 60 74 72 75 65 27 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 nil.t))).;;.`true'.if.the.file.i
fda0 73 20 72 65 6d 6f 74 65 20 41 4e 44 20 77 65 20 61 72 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f s.remote.AND.we.are.connected.to
fdc0 20 74 68 65 20 72 65 6d 6f 74 65 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 .the.remote..........(unless.(or
fde0 20 69 73 2d 6c 6f 63 61 6c 20 69 73 2d 63 6f 6e 6e 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 .is-local.is-connected).........
fe00 20 20 20 27 6e 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 66 69 6c 65 ...'none))........;;.if.the.file
fe20 20 69 73 20 6c 6f 63 61 6c 20 6f 72 20 77 65 27 72 65 20 63 6f 6e 6e 65 63 74 65 64 20 74 6f 20 .is.local.or.we're.connected.to.
fe40 69 74 20 76 69 61 20 54 52 41 4d 50 2c 20 72 75 6e 0a 20 20 20 20 20 20 20 3b 3b 20 74 68 72 6f it.via.TRAMP,.run........;;.thro
fe60 75 67 68 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 75 6e 63 74 69 6f 6e 73 20 75 ugh.the.project.root.functions.u
fe80 6e 74 69 6c 20 77 65 20 66 69 6e 64 20 61 20 70 72 6f 6a 65 63 74 20 64 69 72 0a 20 20 20 20 20 ntil.we.find.a.project.dir......
fea0 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 75 6e 63 ..(cl-some.........(lambda.(func
fec0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 61 63 68 65 2d 6b 65 79 20 28 66 )...........(let*.((cache-key.(f
fee0 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 20 66 75 6e 63 20 64 69 72 29 29 0a 20 20 20 20 20 20 20 ormat."%s-%s".func.dir))........
ff00 20 20 20 20 20 20 20 20 20 20 28 63 61 63 68 65 2d 76 61 6c 75 65 20 28 67 65 74 68 61 73 68 20 ..........(cache-value.(gethash.
ff20 63 61 63 68 65 2d 6b 65 79 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f cache-key.projectile-project-roo
ff40 74 2d 63 61 63 68 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 t-cache))).............(if.(and.
ff60 63 61 63 68 65 2d 76 61 6c 75 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 63 61 63 68 65 cache-value.(file-exists-p.cache
ff80 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 63 68 65 2d 76 -value)).................cache-v
ffa0 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 alue...............(let.((value.
ffc0 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 64 69 72 (funcall.func.(file-truename.dir
ffe0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 63 61 )))).................(puthash.ca
10000 63 68 65 2d 6b 65 79 20 76 61 6c 75 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 che-key.value.projectile-project
10020 2d 72 6f 6f 74 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c -root-cache).................val
10040 75 65 29 29 29 29 0a 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 ue)))).........projectile-projec
10060 74 2d 72 6f 6f 74 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 3b 3b 20 69 66 20 77 t-root-functions)........;;.if.w
10080 65 20 67 65 74 20 68 65 72 65 2c 20 77 65 20 68 61 76 65 20 66 61 69 6c 65 64 20 74 6f 20 66 69 e.get.here,.we.have.failed.to.fi
100a0 6e 64 20 61 20 72 6f 6f 74 20 62 79 20 61 6c 6c 0a 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 76 65 nd.a.root.by.all........;;.conve
100c0 6e 74 69 6f 6e 61 6c 20 6d 65 61 6e 73 2c 20 61 6e 64 20 77 65 20 61 73 73 75 6d 65 20 74 68 65 ntional.means,.and.we.assume.the
100e0 20 66 61 69 6c 75 72 65 20 69 73 6e 27 74 20 74 72 61 6e 73 69 65 6e 74 0a 20 20 20 20 20 20 20 .failure.isn't.transient........
10100 3b 3b 20 2f 20 6e 65 74 77 6f 72 6b 20 72 65 6c 61 74 65 64 2c 20 73 6f 20 63 61 63 68 65 20 74 ;;./.network.related,.so.cache.t
10120 68 65 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 63 68 65 2d 6b he.failure........(let.((cache-k
10140 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 73 73 2d 25 ey.(format."projectilerootless-%
10160 73 22 20 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 63 61 63 68 s".dir)))..........(puthash.cach
10180 65 2d 6b 65 79 20 27 6e 6f 6e 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 e-key.'none.projectile-project-r
101a0 6f 6f 74 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 20 27 6e 6f 6e 65 29 29 29 29 29 0a 0a oot-cache)..........'none)))))..
101c0 28 64 65 66 75 6e 20 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 (defun.projectile-ensure-project
101e0 20 28 64 69 72 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 61 74 20 44 49 52 20 69 73 20 6e 6f 6e .(dir)..."Ensure.that.DIR.is.non
10200 2d 6e 69 6c 2e 0a 55 73 65 66 75 6c 20 66 6f 72 20 63 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 65 -nil..Useful.for.commands.that.e
10220 78 70 65 63 74 20 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 2e xpect.the.presence.of.a.project.
10240 0a 43 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 71 75 69 .Controlled.by.`projectile-requi
10260 72 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 70 72 6f re-project-root'...See.also.`pro
10280 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 27 2e 22 0a 20 20 28 69 66 20 64 69 jectile-acquire-root'."...(if.di
102a0 72 0a 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 65 71 20 r.......dir.....(cond......((eq.
102c0 70 72 6f 6a 65 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 projectile-require-project-root.
102e0 27 70 72 6f 6d 70 74 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 'prompt).(projectile-completing-
10300 72 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 20 20 20 20 20 read............................
10320 20 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 53 77 69 74 63 68 ........................."Switch
10340 20 74 6f 20 70 72 6f 6a 65 63 74 3a 20 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d .to.project:.".projectile-known-
10360 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 71 75 projects))......(projectile-requ
10380 69 72 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 65 72 72 6f 72 20 22 50 72 6f 6a 65 63 74 ire-project-root.(error."Project
103a0 69 6c 65 20 63 61 6e 6e 6f 74 20 66 69 6e 64 20 61 20 70 72 6f 6a 65 63 74 20 64 65 66 69 6e 69 ile.cannot.find.a.project.defini
103c0 74 69 6f 6e 20 69 6e 20 25 73 22 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a tion.in.%s".default-directory)).
103e0 20 20 20 20 20 28 74 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 0a 0a 28 .....(t.default-directory))))..(
10400 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 20 28 26 defun.projectile-acquire-root.(&
10420 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 63 75 72 72 65 6e optional.dir)..."Find.the.curren
10440 74 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2c 20 61 6e 64 20 70 72 6f 6d 70 74 73 20 74 68 65 20 t.project.root,.and.prompts.the.
10460 75 73 65 72 20 66 6f 72 20 69 74 20 69 66 20 74 68 61 74 20 66 61 69 6c 73 2e 0a 50 72 6f 76 69 user.for.it.if.that.fails..Provi
10480 64 65 73 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 69 64 69 6f 6d 20 28 70 72 6f 6a 65 63 74 69 6c 65 des.the.common.idiom.(projectile
104a0 2d 65 6e 73 75 72 65 2d 70 72 6f 6a 65 63 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a -ensure-project.(projectile-proj
104c0 65 63 74 2d 72 6f 6f 74 29 29 2e 0a 53 74 61 72 74 73 20 74 68 65 20 73 65 61 72 63 68 20 66 6f ect-root))..Starts.the.search.fo
104e0 72 20 74 68 65 20 70 72 6f 6a 65 63 74 20 77 69 74 68 20 44 49 52 2e 22 0a 20 20 28 70 72 6f 6a r.the.project.with.DIR."...(proj
10500 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 63 74 69 6c ectile-ensure-project.(projectil
10520 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 e-project-root.dir)))..(defun.pr
10540 6f 6a 65 63 74 69 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 ojectile-project-p.(&optional.di
10560 72 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 44 49 52 20 69 73 20 61 20 70 72 6f 6a 65 63 74 2e r)..."Check.if.DIR.is.a.project.
10580 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f .Defaults.to.the.current.directo
105a0 72 79 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 0a 65 78 70 6c 69 63 69 74 6c 79 2e 22 0a ry.if.not.provided.explicitly.".
105c0 20 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 28 6f 72 20 64 ..(projectile-project-root.(or.d
105e0 69 72 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 ir.default-directory)))..(defun.
10600 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 projectile-default-project-name.
10620 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 75 6e 63 74 69 (project-root)..."Default.functi
10640 6f 6e 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 on.used.to.create.the.project.na
10660 6d 65 2e 0a 54 68 65 20 70 72 6f 6a 65 63 74 20 6e 61 6d 65 20 69 73 20 62 61 73 65 64 20 6f 6e me..The.project.name.is.based.on
10680 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 2e 22 0a 20 20 28 .the.value.of.PROJECT-ROOT."...(
106a0 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 72 file-name-nondirectory.(director
106c0 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 0a 28 64 65 y-file-name.project-root)))..(de
106e0 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 28 26 6f 70 fun.projectile-project-name.(&op
10700 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a 20 20 22 52 65 74 75 72 6e 20 70 72 6f 6a 65 63 tional.project)..."Return.projec
10720 74 20 6e 61 6d 65 2e 0a 49 66 20 50 52 4f 4a 45 43 54 20 69 73 20 6e 6f 74 20 73 70 65 63 69 66 t.name..If.PROJECT.is.not.specif
10740 69 65 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 65 63 74 2e ied.acts.on.the.current.project.
10760 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 6e 61 6d 65 0a "...(or.projectile-project-name.
10780 20 20 20 20 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 70 72 ......(let.((project-root.(or.pr
107a0 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 29 29 oject.(projectile-project-root))
107c0 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 )).........(if.project-root.....
107e0 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 6c 65 2d 70 72 6f 6a ........(funcall.projectile-proj
10800 65 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 0a ect-name-function.project-root).
10820 20 20 20 20 20 20 20 20 20 20 22 2d 22 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 50 72 6f 6a 65 63 74 .........."-"))))....;;;.Project
10840 20 69 6e 64 65 78 69 6e 67 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d .indexing.(defun.projectile-get-
10860 70 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 70 72 6f 6a 65 63 74 2d 64 69 72 project-directories.(project-dir
10880 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 50 52 4f 4a 45 43 54 2d 44 49 52 )..."Get.the.list.of.PROJECT-DIR
108a0 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 61 72 65 20 6f 66 20 69 6e 74 65 72 65 73 .directories.that.are.of.interes
108c0 74 20 74 6f 20 74 68 65 20 75 73 65 72 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 t.to.the.user."...(mapcar.(lambd
108e0 61 20 28 73 75 62 64 69 72 29 20 28 63 6f 6e 63 61 74 20 70 72 6f 6a 65 63 74 2d 64 69 72 20 73 a.(subdir).(concat.project-dir.s
10900 75 62 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 74 68 20 30 20 28 70 72 ubdir))...........(or.(nth.0.(pr
10920 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 20 ojectile-parse-dirconfig-file)).
10940 27 28 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 2d 64 69 72 '(""))))..(defun.projectile--dir
10960 65 63 74 6f 72 79 2d 70 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 43 68 65 63 6b 73 20 69 ectory-p.(directory)..."Checks.i
10980 66 20 44 49 52 45 43 54 4f 52 59 20 69 73 20 61 20 73 74 72 69 6e 67 20 64 65 73 69 67 6e 61 74 f.DIRECTORY.is.a.string.designat
109a0 69 6e 67 20 61 20 76 61 6c 69 64 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 61 6e 64 20 28 ing.a.valid.directory."...(and.(
109c0 73 74 72 69 6e 67 70 20 64 69 72 65 63 74 6f 72 79 29 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f stringp.directory).(file-directo
109e0 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 ry-p.directory)))..(defun.projec
10a00 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 4c 69 tile-dir-files.(directory)..."Li
10a20 73 74 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 44 49 52 45 43 54 4f 52 59 20 61 6e 64 20 69 6e st.the.files.in.DIRECTORY.and.in
10a40 20 69 74 73 20 73 75 62 2d 64 69 72 65 63 74 6f 72 69 65 73 2e 0a 46 69 6c 65 73 20 61 72 65 20 .its.sub-directories..Files.are.
10a60 72 65 74 75 72 6e 65 64 20 61 73 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 74 6f 20 44 49 returned.as.relative.paths.to.DI
10a80 52 45 43 54 4f 52 59 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d RECTORY."...(unless.(projectile-
10aa0 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 65 72 72 -directory-p.directory).....(err
10ac0 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"
10ae0 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 3b 3b 20 63 68 65 63 6b 20 66 6f 72 20 61 20 63 61 .directory))...;;.check.for.a.ca
10b00 63 68 65 20 68 69 74 20 66 69 72 73 74 20 69 66 20 63 61 63 68 69 6e 67 20 69 73 20 65 6e 61 62 che.hit.first.if.caching.is.enab
10b20 6c 65 64 0a 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 2d 6c 69 73 74 20 28 61 6e 64 20 70 72 6f led...(let.((files-list.(and.pro
10b40 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 20 jectile-enable-caching..........
10b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 64 69 72 65 63 74 6f ................(gethash.directo
10b80 72 79 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 29 29 29 ry.projectile-projects-cache))))
10ba0 0a 20 20 20 20 3b 3b 20 63 61 63 68 65 20 64 69 73 61 62 6c 65 64 20 6f 72 20 63 61 63 68 65 20 .....;;.cache.disabled.or.cache.
10bc0 6d 69 73 73 0a 20 20 20 20 28 6f 72 20 66 69 6c 65 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 miss.....(or.files-list.........
10be0 28 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 (let.((vcs.(projectile-project-v
10c00 63 73 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 cs.directory)))...........(pcase
10c20 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 0a 20 20 20 20 .projectile-indexing-method.....
10c40 20 20 20 20 20 20 20 20 28 27 6e 61 74 69 76 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 ........('native.(projectile-dir
10c60 2d 66 69 6c 65 73 2d 6e 61 74 69 76 65 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 -files-native.directory)).......
10c80 20 20 20 20 20 20 3b 3b 20 75 73 65 20 65 78 74 65 72 6e 61 6c 20 74 6f 6f 6c 73 20 74 6f 20 67 ......;;.use.external.tools.to.g
10ca0 65 74 20 74 68 65 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 et.the.project.files............
10cc0 20 28 27 68 79 62 72 69 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 6a 75 73 74 2d 66 69 6c .('hybrid.(projectile-adjust-fil
10ce0 65 73 20 64 69 72 65 63 74 6f 72 79 20 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 es.directory.vcs.(projectile-dir
10d00 2d 66 69 6c 65 73 2d 61 6c 69 65 6e 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 -files-alien.directory))).......
10d20 20 20 20 20 20 20 28 27 61 6c 69 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 ......('alien.(projectile-dir-fi
10d40 6c 65 73 2d 61 6c 69 65 6e 20 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 les-alien.directory))...........
10d60 20 20 28 5f 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 69 6e ..(_.(user-error."Unsupported.in
10d80 64 65 78 69 6e 67 20 6d 65 74 68 6f 64 20 60 25 53 27 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 dexing.method.`%S'".projectile-i
10da0 6e 64 65 78 69 6e 67 2d 6d 65 74 68 6f 64 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 20 4e 61 74 69 76 ndexing-method)))))))..;;;.Nativ
10dc0 65 20 50 72 6f 6a 65 63 74 20 49 6e 64 65 78 69 6e 67 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 63 6f e.Project.Indexing.;;.;;.This.co
10de0 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 69 6e rresponds.to.`projectile-indexin
10e00 67 2d 6d 65 74 68 6f 64 27 20 62 65 69 6e 67 20 73 65 74 20 74 6f 20 6e 61 74 69 76 65 2e 0a 28 g-method'.being.set.to.native..(
10e20 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 2d 6e 61 74 69 76 defun.projectile-dir-files-nativ
10e40 65 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 66 69 6c 65 73 20 66 e.(directory)..."Get.the.files.f
10e60 6f 72 20 52 4f 4f 54 20 75 6e 64 65 72 20 44 49 52 45 43 54 4f 52 59 20 75 73 69 6e 67 20 6a 75 or.ROOT.under.DIRECTORY.using.ju
10e80 73 74 20 45 6d 61 63 73 20 4c 69 73 70 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 65 73 st.Emacs.Lisp."...(let.((progres
10ea0 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 70 72 6f 67 72 65 s-reporter..........(make-progre
10ec0 73 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 50 ss-reporter...........(format."P
10ee0 72 6f 6a 65 63 74 69 6c 65 20 69 73 20 69 6e 64 65 78 69 6e 67 20 25 73 22 0a 20 20 20 20 20 20 rojectile.is.indexing.%s".......
10f00 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 64 69 72 65 63 74 6f 72 ............(propertize.director
10f20 79 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 y.'face.'font-lock-keyword-face)
10f40 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 6e 65 65 64 20 74 68 65 20 66 69 6c 65 73 20 77 69 )))).....;;.we.need.the.files.wi
10f60 74 68 20 70 61 74 68 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 th.paths.relative.to.the.project
10f80 20 72 6f 6f 74 0a 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 .root.....(mapcar.(lambda.(file)
10fa0 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 64 69 72 65 63 74 .(file-relative-name.file.direct
10fc0 6f 72 79 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 69 6e ory)).............(projectile-in
10fe0 64 65 78 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 dex-directory.directory.(project
11000 69 6c 65 2d 66 69 6c 74 65 72 69 6e 67 2d 70 61 74 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 ile-filtering-patterns).........
11020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11040 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 progress-reporter))))..(defun.pr
11060 6f 6a 65 63 74 69 6c 65 2d 69 6e 64 65 78 2d 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 ojectile-index-directory.(direct
11080 6f 72 79 20 70 61 74 74 65 72 6e 73 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 20 26 ory.patterns.progress-reporter.&
110a0 6f 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 69 67 6e 6f 72 65 64 2d 64 optional.ignored-files.ignored-d
110c0 69 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 irectories.globally-ignored-dire
110e0 63 74 6f 72 69 65 73 29 0a 20 20 22 49 6e 64 65 78 20 44 49 52 45 43 54 4f 52 59 20 74 61 6b 69 ctories)..."Index.DIRECTORY.taki
11100 6e 67 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 20 50 41 54 54 45 52 4e 53 2e 0a 0a 54 68 65 20 66 ng.into.account.PATTERNS...The.f
11120 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 20 69 74 73 65 6c 66 20 72 65 63 75 72 73 69 76 65 6c 79 unction.calls.itself.recursively
11140 20 75 6e 74 69 6c 20 61 6c 6c 20 73 75 62 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 68 61 76 65 20 .until.all.sub-directories.have.
11160 62 65 65 6e 20 69 6e 64 65 78 65 64 2e 20 20 54 68 65 20 50 52 4f 47 52 45 53 53 2d 52 45 50 4f been.indexed...The.PROGRESS-REPO
11180 52 54 45 52 20 69 73 20 75 70 64 61 74 65 64 20 77 68 69 6c 65 20 74 68 65 0a 66 75 6e 63 74 69 RTER.is.updated.while.the.functi
111a0 6f 6e 20 69 73 20 65 78 65 63 75 74 69 6e 67 2e 20 20 54 68 65 20 6c 69 73 74 20 6f 66 20 49 47 on.is.executing...The.list.of.IG
111c0 4e 4f 52 45 44 2d 46 49 4c 45 53 20 61 6e 64 0a 49 47 4e 4f 52 45 44 2d 44 49 52 45 43 54 4f 52 NORED-FILES.and.IGNORED-DIRECTOR
111e0 49 45 53 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 IES.may.optionally.be.provided."
11200 0a 20 20 3b 3b 20 77 65 20 63 6f 6d 70 75 74 65 20 74 68 65 20 69 67 6e 6f 72 65 64 20 66 69 6c ...;;.we.compute.the.ignored.fil
11220 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 6c 79 20 6f 6e 63 65 20 61 6e 64 es.and.directories.only.once.and
11240 20 74 68 65 6e 20 77 65 20 72 65 75 73 65 20 74 68 65 0a 20 20 3b 3b 20 70 72 65 2d 63 6f 6d 70 .then.we.reuse.the...;;.pre-comp
11260 75 74 65 64 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 73 75 62 73 65 71 75 65 6e 74 20 72 65 uted.values.in.the.subsequent.re
11280 63 75 72 73 69 76 65 20 69 6e 76 6f 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 66 75 6e 63 74 cursive.invocations.of.the.funct
112a0 69 6f 6e 0a 20 20 28 6c 65 74 20 28 28 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 6f 72 20 69 ion...(let.((ignored-files.(or.i
112c0 67 6e 6f 72 65 64 2d 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 gnored-files.(projectile-ignored
112e0 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 -files))).........(ignored-direc
11300 74 6f 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 tories.(or.ignored-directories.(
11320 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 29 29 projectile-ignored-directories))
11340 29 0a 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 ).........(globally-ignored-dire
11360 63 74 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 ctories.(or.globally-ignored-dir
11380 65 63 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 ectories.(projectile-globally-ig
113a0 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 73 29 29 29 29 0a 20 20 20 20 28 61 nored-directory-names)))).....(a
113c0 70 70 6c 79 20 23 27 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 pply.#'append............(mapcar
113e0 0a 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 20 20 20 20 .............(lambda.(f)........
11400 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 6f 63 61 6c 2d 66 20 28 66 69 6c 65 2d 6e 61 6d 65 .......(let.((local-f.(file-name
11420 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 -nondirectory.(directory-file-na
11440 6d 65 20 66 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 me.f)))).................(unless
11460 20 28 6f 72 20 28 61 6e 64 20 70 61 74 74 65 72 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 .(or.(and.patterns.(projectile-i
11480 67 6e 6f 72 65 64 2d 72 65 6c 2d 70 20 66 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 74 65 72 6e gnored-rel-p.f.directory.pattern
114a0 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s)).............................
114c0 28 6d 65 6d 62 65 72 20 6c 6f 63 61 6c 2d 66 20 27 28 22 2e 22 20 22 2e 2e 22 29 29 29 0a 20 20 (member.local-f.'("."."..")))...
114e0 20 20 20 20 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 6f 72 74 ................(progress-report
11500 65 72 2d 75 70 64 61 74 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 0a 20 20 20 er-update.progress-reporter)....
11520 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 64 69 72 65 63 74 6f ...............(if.(file-directo
11540 72 79 2d 70 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 28 75 ry-p.f).......................(u
11560 6e 6c 65 73 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 65 63 74 nless.(projectile-ignored-direct
11580 6f 72 79 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 20 ory-p...........................
115a0 20 20 20 20 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 66 29 0a .....(file-name-as-directory.f).
115c0 20 20 20 20 20 20 20 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 ...............................i
115e0 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 20 20 20 20 gnored-directories..............
11600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c 2d 66 0a 20 20 20 20 20 20 ..................local-f.......
11620 20 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 6c 6f 62 61 6c 6c .........................globall
11640 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 20 20 20 20 20 20 20 y-ignored-directories)..........
11660 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 6e 64 65 78 ...............(projectile-index
11680 2d 64 69 72 65 63 74 6f 72 79 20 66 20 70 61 74 74 65 72 6e 73 20 70 72 6f 67 72 65 73 73 2d 72 -directory.f.patterns.progress-r
116a0 65 70 6f 72 74 65 72 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 69 67 6e 6f 72 65 64 2d 64 69 eporter.ignored-files.ignored-di
116c0 72 65 63 74 6f 72 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 rectories.globally-ignored-direc
116e0 74 6f 72 69 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 28 75 6e tories)).....................(un
11700 6c 65 73 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 2d 70 20 less.(projectile-ignored-file-p.
11720 66 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.ignored-files)................
11740 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .......(list.f))))))............
11760 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 65 63 74 6f 72 79 20 74 29 29 29 .(directory-files.directory.t)))
11780 29 29 0a 0a 3b 3b 3b 20 41 6c 69 65 6e 20 50 72 6f 6a 65 63 74 20 49 6e 64 65 78 69 6e 67 0a 3b ))..;;;.Alien.Project.Indexing.;
117a0 3b 0a 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 ;.;;.This.corresponds.to.`projec
117c0 74 69 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 tile-indexing-method'.being.set.
117e0 74 6f 20 68 79 62 72 69 64 20 6f 72 20 61 6c 69 65 6e 2e 0a 3b 3b 20 54 68 65 20 6f 6e 6c 79 20 to.hybrid.or.alien..;;.The.only.
11800 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 77 6f 20 6d 65 74 68 6f difference.between.the.two.metho
11820 64 73 20 69 73 20 74 68 61 74 20 61 6c 69 65 6e 20 64 6f 65 73 6e 27 74 20 64 6f 0a 3b 3b 20 61 ds.is.that.alien.doesn't.do.;;.a
11840 6e 79 20 70 6f 73 74 2d 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 66 69 6c 65 73 20 ny.post-processing.of.the.files.
11860 6f 62 74 61 69 6e 65 64 20 76 69 61 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e obtained.via.the.external.comman
11880 64 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 69 6c 65 73 2d 61 d..(defun.projectile-dir-files-a
118a0 6c 69 65 6e 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 47 65 74 20 74 68 65 20 66 69 6c 65 lien.(directory)..."Get.the.file
118c0 73 20 66 6f 72 20 44 49 52 45 43 54 4f 52 59 20 75 73 69 6e 67 20 65 78 74 65 72 6e 61 6c 20 74 s.for.DIRECTORY.using.external.t
118e0 6f 6f 6c 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ools."...(let.((vcs.(projectile-
11900 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 28 63 6f project-vcs.directory))).....(co
11920 6e 64 0a 20 20 20 20 20 28 28 65 71 20 76 63 73 20 27 67 69 74 29 0a 20 20 20 20 20 20 28 6e 63 nd......((eq.vcs.'git).......(nc
11940 6f 6e 63 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 onc.(projectile-files-via-ext-co
11960 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 2d mmand.directory.(projectile-get-
11980 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ext-command.vcs))..............(
119a0 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 66 69 6c 65 projectile-get-sub-projects-file
119c0 73 20 64 69 72 65 63 74 6f 72 79 20 76 63 73 29 29 29 0a 20 20 20 20 20 28 74 20 28 70 72 6f 6a s.directory.vcs)))......(t.(proj
119e0 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 61 6e 64 20 64 69 72 ectile-files-via-ext-command.dir
11a00 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 65 78 74 2d 63 6f 6d 6d 61 ectory.(projectile-get-ext-comma
11a20 6e 64 20 76 63 73 29 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 nd.vcs))))))..(define-obsolete-f
11a40 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 unction-alias.'projectile-dir-fi
11a60 6c 65 73 2d 65 78 74 65 72 6e 61 6c 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c les-external.'projectile-dir-fil
11a80 65 73 2d 61 6c 69 65 6e 20 22 32 2e 30 2e 30 22 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 es-alien."2.0.0").(define-obsole
11aa0 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 74 69 6c 65 2d 67 65 te-function-alias.'projectile-ge
11ac0 74 2d 72 65 70 6f 2d 66 69 6c 65 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c t-repo-files.'projectile-dir-fil
11ae0 65 73 2d 61 6c 69 65 6e 20 22 32 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 es-alien."2.0.0")..(defun.projec
11b00 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 20 20 22 44 65 tile-get-ext-command.(vcs)..."De
11b20 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 61 6e 64 20 74 termine.which.external.command.t
11b40 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 63 74 27 73 20 o.invoke.based.on.the.project's.
11b60 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 63 6f 6d 6d 61 VCS..Fallback.to.a.generic.comma
11b80 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 6c 6c 65 64 20 nd.when.not.in.a.VCS-controlled.
11ba0 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 28 27 67 69 74 project."...(pcase.vcs.....('git
11bc0 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 65 2d 66 64 20 .(if.(and.projectile-git-use-fd.
11be0 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 20 20 20 20 20 projectile-fd-executable).......
11c00 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 20 20 20 20 70 ........(concat................p
11c20 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 20 20 20 20 20 rojectile-fd-executable.........
11c40 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 72 6f 6a 65 63 ......."."................projec
11c60 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 20 20 20 70 72 tile-git-fd-args).............pr
11c80 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 28 27 68 67 20 ojectile-git-command)).....('hg.
11ca0 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 28 27 66 6f 73 projectile-hg-command).....('fos
11cc0 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 6e 64 29 0a 20 sil.projectile-fossil-command)..
11ce0 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 6d 61 6e 64 29 ...('bzr.projectile-bzr-command)
11d00 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 63 73 2d 63 6f .....('darcs.projectile-darcs-co
11d20 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 6c 65 2d 70 69 mmand).....('pijul.projectile-pi
11d40 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 65 63 74 69 6c jul-command).....('svn.projectil
11d60 65 2d 73 76 6e 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 5f 20 70 72 6f 6a 65 63 74 69 6c 65 e-svn-command).....(_.projectile
11d80 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a -generic-command)))..(defun.proj
11da0 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 6d 6d 61 6e 64 20 ectile-get-sub-projects-command.
11dc0 28 76 63 73 29 0a 20 20 22 47 65 74 20 74 68 65 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 63 6f (vcs)..."Get.the.sub-projects.co
11de0 6d 6d 61 6e 64 20 66 6f 72 20 56 43 53 2e 0a 43 75 72 72 65 6e 74 6c 79 20 74 68 61 74 27 73 20 mmand.for.VCS..Currently.that's.
11e00 73 75 70 70 6f 72 74 65 64 20 6a 75 73 74 20 66 6f 72 20 47 69 74 20 28 73 75 62 2d 70 72 6f 6a supported.just.for.Git.(sub-proj
11e20 65 63 74 73 20 62 65 69 6e 67 20 47 69 74 0a 73 75 62 2d 6d 6f 64 75 6c 65 73 20 74 68 65 72 65 ects.being.Git.sub-modules.there
11e40 29 2e 22 0a 20 20 28 70 63 61 73 65 20 76 63 73 0a 20 20 20 20 28 27 67 69 74 20 70 72 6f 6a 65 )."...(pcase.vcs.....('git.proje
11e60 63 74 69 6c 65 2d 67 69 74 2d 73 75 62 6d 6f 64 75 6c 65 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 ctile-git-submodule-command)....
11e80 20 28 5f 20 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 67 65 74 .(_."")))..(defun.projectile-get
11ea0 2d 65 78 74 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d 61 6e 64 20 28 76 63 73 29 0a 20 20 22 44 65 -ext-ignored-command.(vcs)..."De
11ec0 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 61 6e 64 20 74 termine.which.external.command.t
11ee0 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 63 74 27 73 20 o.invoke.based.on.the.project's.
11f00 56 43 53 2e 22 0a 20 20 28 70 63 61 73 65 20 76 63 73 0a 20 20 20 20 28 27 67 69 74 20 70 72 6f VCS."...(pcase.vcs.....('git.pro
11f20 6a 65 63 74 69 6c 65 2d 67 69 74 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 jectile-git-ignored-command)....
11f40 20 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6f 74 68 65 72 20 .;;.TODO:.Add.support.for.other.
11f60 56 43 53 0a 20 20 20 20 28 5f 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 VCS.....(_.nil)))..(defun.projec
11f80 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 28 6c 73 74 29 0a 20 20 22 54 61 6b 65 20 61 20 6e 65 73 tile-flatten.(lst)..."Take.a.nes
11fa0 74 65 64 20 6c 69 73 74 20 4c 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 73 20 63 6f 6e 74 ted.list.LST.and.return.its.cont
11fc0 65 6e 74 73 20 61 73 20 61 20 73 69 6e 67 6c 65 2c 20 66 6c 61 74 20 6c 69 73 74 2e 22 0a 20 20 ents.as.a.single,.flat.list."...
11fe0 28 69 66 20 28 61 6e 64 20 28 6c 69 73 74 70 20 6c 73 74 29 20 28 6c 69 73 74 70 20 28 63 64 72 (if.(and.(listp.lst).(listp.(cdr
12000 20 6c 73 74 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 20 27 70 72 6f 6a 65 63 .lst))).......(cl-mapcan.'projec
12020 74 69 6c 65 2d 66 6c 61 74 74 65 6e 20 6c 73 74 29 0a 20 20 20 20 28 6c 69 73 74 20 6c 73 74 29 tile-flatten.lst).....(list.lst)
12040 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 61 6c 6c 2d 73 75 ))..(defun.projectile-get-all-su
12060 62 2d 70 72 6f 6a 65 63 74 73 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 22 47 65 74 20 61 6c 6c 20 b-projects.(project)..."Get.all.
12080 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 6f 6a 65 63 74 sub-projects.for.a.given.project
120a0 2e 0a 0a 50 52 4f 4a 45 43 54 20 69 73 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 ...PROJECT.is.base.directory.to.
120c0 73 74 61 72 74 20 73 65 61 72 63 68 20 72 65 63 75 72 73 69 76 65 6c 79 2e 22 0a 20 20 28 6c 65 start.search.recursively."...(le
120e0 74 20 28 28 73 75 62 6d 6f 64 75 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 69 t.((submodules.(projectile-get-i
12100 6d 6d 65 64 69 61 74 65 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 70 72 6f 6a 65 63 74 29 29 29 mmediate-sub-projects.project)))
12120 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 73 75 62 6d 6f 64 75 6c 65 .....(cond......((null.submodule
12140 73 29 0a 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 6e 63 6f s).......nil)......(t.......(nco
12160 6e 63 20 73 75 62 6d 6f 64 75 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 6c 61 74 74 65 nc.submodules.(projectile-flatte
12180 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 n..........................;;.re
121a0 63 75 72 73 69 76 65 6c 79 20 67 65 74 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 6f 66 20 65 61 cursively.get.sub-projects.of.ea
121c0 63 68 20 73 75 62 2d 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 ch.sub-project..................
121e0 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 29 0a 20 20 20 20 ........(mapcar.(lambda.(s).....
12200 20 20 20 20 20 20 20 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 ...............................(
12220 70 72 6f 6a 65 63 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 projectile-get-all-sub-projects.
12240 73 29 29 20 73 75 62 6d 6f 64 75 6c 65 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 s)).submodules)))))))..(defun.pr
12260 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 65 ojectile-get-immediate-sub-proje
12280 63 74 73 20 28 70 61 74 68 29 0a 20 20 22 47 65 74 20 69 6d 6d 65 64 69 61 74 65 20 73 75 62 2d cts.(path)..."Get.immediate.sub-
122a0 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 6f 6a 65 63 74 20 77 69 74 projects.for.a.given.project.wit
122c0 68 6f 75 74 20 72 65 63 75 72 73 69 6e 67 2e 0a 0a 50 41 54 48 20 69 73 20 74 68 65 20 76 63 73 hout.recursing...PATH.is.the.vcs
122e0 20 72 6f 6f 74 20 6f 72 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 66 72 6f 6d 20 77 68 69 63 68 .root.or.project.root.from.which
12300 20 74 6f 20 73 74 61 72 74 0a 73 65 61 72 63 68 69 6e 67 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 .to.start.searching,.and.should.
12320 65 6e 64 20 77 69 74 68 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 61 74 68 20 64 65 6c end.with.an.appropriate.path.del
12340 69 6d 69 74 65 72 2c 20 73 75 63 68 20 61 73 0a 27 2f 27 20 6f 72 20 61 20 27 5c 5c 27 2e 0a 0a imiter,.such.as.'/'.or.a.'\\'...
12360 49 66 20 74 68 65 20 76 63 73 20 67 65 74 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 71 75 65 72 If.the.vcs.get-sub-projects.quer
12380 79 20 72 65 74 75 72 6e 73 20 72 65 73 75 6c 74 73 20 6f 75 74 73 69 64 65 20 6f 66 20 70 61 74 y.returns.results.outside.of.pat
123a0 68 2c 0a 74 68 65 79 20 61 72 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 h,.they.are.excluded.from.the.re
123c0 73 75 6c 74 73 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a sults.of.this.function."...(let*
123e0 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 73 20 70 .((vcs.(projectile-project-vcs.p
12400 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 65 61 72 63 68 20 66 6f 72 20 73 75 62 ath))..........;;.search.for.sub
12420 2d 70 72 6f 6a 65 63 74 73 20 75 6e 64 65 72 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 -projects.under.current.project.
12440 60 70 72 6f 6a 65 63 74 27 0a 20 20 20 20 20 20 20 20 20 28 73 75 62 6d 6f 64 75 6c 65 73 20 28 `project'..........(submodules.(
12460 6d 61 70 63 61 72 0a 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 mapcar.......................(la
12480 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 20 20 mbda.(s)........................
124a0 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 28 65 78 70 61 6e 64 .(file-name-as-directory.(expand
124c0 2d 66 69 6c 65 2d 6e 61 6d 65 20 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 -file-name.s.path)))............
124e0 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 73 2d 76 69 61 ...........(projectile-files-via
12500 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 70 61 74 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 -ext-command.path.(projectile-ge
12520 74 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 2d 63 6f 6d 6d 61 6e 64 20 76 63 73 29 29 29 29 0a 20 t-sub-projects-command.vcs))))..
12540 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 63 68 69 6c 64 2d 66 6f 6c 64 65 72 2d 72 65 ........(project-child-folder-re
12560 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 60 22 0a 20 20 20 20 gex...........(concat."\\`".....
12580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 61 74 68 ..............(regexp-quote.path
125a0 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 49 66 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 73 20 ))))......;;.If.project.root.is.
125c0 69 6e 73 69 64 65 20 6f 66 20 61 6e 20 56 43 53 20 66 6f 6c 64 65 72 2c 20 62 75 74 20 6e 6f 74 inside.of.an.VCS.folder,.but.not
125e0 20 61 63 74 75 61 6c 6c 79 20 61 6e 0a 20 20 20 20 3b 3b 20 56 43 53 20 72 6f 6f 74 20 69 74 73 .actually.an.....;;.VCS.root.its
12600 65 6c 66 2c 20 73 75 62 6d 6f 64 75 6c 65 73 20 65 78 74 65 72 6e 61 6c 20 74 6f 20 74 68 65 20 elf,.submodules.external.to.the.
12620 70 72 6f 6a 65 63 74 20 77 69 6c 6c 20 62 65 0a 20 20 20 20 3b 3b 20 69 6e 63 6c 75 64 65 64 20 project.will.be.....;;.included.
12640 69 6e 20 74 68 65 20 56 43 53 20 67 65 74 20 73 75 62 2d 70 72 6f 6a 65 63 74 73 20 72 65 73 75 in.the.VCS.get.sub-projects.resu
12660 6c 74 2e 20 4c 65 74 27 73 20 72 65 6d 6f 76 65 20 74 68 65 6d 2e 0a 20 20 20 20 28 63 6c 2d 72 lt..Let's.remove.them......(cl-r
12680 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 73 75 62 6d 6f emove-if-not......(lambda.(submo
126a0 64 75 6c 65 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 70 72 6f dule)........(string-match-p.pro
126c0 6a 65 63 74 2d 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 ject-child-folder-regex.........
126e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 62 6d 6f 64 75 6c 65 29 29 0a 20 20 20 20 20 ...............submodule))......
12700 73 75 62 6d 6f 64 75 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 submodules)))..(defun.projectile
12720 2d 67 65 74 2d 73 75 62 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 -get-sub-projects-files.(project
12740 2d 72 6f 6f 74 20 5f 76 63 73 29 0a 20 20 22 47 65 74 20 66 69 6c 65 73 20 66 72 6f 6d 20 73 75 -root._vcs)..."Get.files.from.su
12760 62 2d 70 72 6f 6a 65 63 74 73 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 72 65 63 75 b-projects.for.PROJECT-ROOT.recu
12780 72 73 69 76 65 6c 79 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 rsively."...(projectile-flatten.
127a0 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 75 62 2d 70 72 6f 6a 65 63 74 29 ...(mapcar.(lambda.(sub-project)
127c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 65 6c ..............(let.((project-rel
127e0 61 74 69 76 65 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 28 ative-path.....................(
12800 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 72 65 6c file-name-as-directory.(file-rel
12820 61 74 69 76 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 20 20 20 ative-name......................
12840 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 75 62 2d 70 72 6f 6a ........................sub-proj
12860 65 63 74 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ect.project-root))))............
12880 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 0a 20 20 20 20 20 ....(mapcar.(lambda.(file)......
128a0 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 70 72 6f 6a ....................(concat.proj
128c0 65 63 74 2d 72 65 6c 61 74 69 76 65 2d 70 61 74 68 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 ect-relative-path.file))........
128e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 53 65 65 6d 73 20 77 ................;;.TODO:.Seems.w
12900 65 20 66 6f 72 67 6f 74 20 67 69 74 20 68 61 72 64 63 6f 64 65 64 20 68 65 72 65 0a 20 20 20 20 e.forgot.git.hardcoded.here.....
12920 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 66 ...................(projectile-f
12940 69 6c 65 73 2d 76 69 61 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 73 75 62 2d 70 72 6f 6a 65 63 74 iles-via-ext-command.sub-project
12960 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 29 29 0a 20 20 20 20 .projectile-git-command)))).....
12980 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 6c 2d 73 75 62 2d 70 .......(projectile-get-all-sub-p
129a0 72 6f 6a 65 63 74 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e rojects.project-root))))..(defun
129c0 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 66 69 6c .projectile-get-repo-ignored-fil
129e0 65 73 20 28 70 72 6f 6a 65 63 74 20 76 63 73 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f es.(project.vcs)..."Get.a.list.o
12a00 66 20 74 68 65 20 66 69 6c 65 73 20 69 67 6e 6f 72 65 64 20 69 6e 20 74 68 65 20 50 52 4f 4a 45 f.the.files.ignored.in.the.PROJE
12a20 43 54 20 75 73 69 6e 67 20 56 43 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6d 64 20 28 70 72 6f CT.using.VCS."...(let.((cmd.(pro
12a40 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 61 6e 64 20 jectile-get-ext-ignored-command.
12a60 76 63 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a vcs))).....(when.cmd.......(proj
12a80 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 61 6e 64 20 70 72 6f ectile-files-via-ext-command.pro
12aa0 6a 65 63 74 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d ject.cmd))))..(defun.projectile-
12ac0 67 65 74 2d 72 65 70 6f 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a get-repo-ignored-directory.(proj
12ae0 65 63 74 20 64 69 72 20 76 63 73 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 74 68 ect.dir.vcs)..."Get.a.list.of.th
12b00 65 20 66 69 6c 65 73 20 69 67 6e 6f 72 65 64 20 69 6e 20 74 68 65 20 50 52 4f 4a 45 43 54 20 69 e.files.ignored.in.the.PROJECT.i
12b20 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 44 49 52 2e 0a 56 43 53 20 69 73 20 74 68 65 20 n.the.directory.DIR..VCS.is.the.
12b40 56 43 53 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6d VCS.of.the.project."...(let.((cm
12b60 64 20 28 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 d.(projectile-get-ext-ignored-co
12b80 6d 6d 61 6e 64 20 76 63 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6d 64 0a 20 20 20 20 20 mmand.vcs))).....(when.cmd......
12ba0 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 61 .(projectile-files-via-ext-comma
12bc0 6e 64 20 70 72 6f 6a 65 63 74 20 28 63 6f 6e 63 61 74 20 63 6d 64 20 22 20 22 20 64 69 72 29 29 nd.project.(concat.cmd.".".dir))
12be0 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 65 73 2d 76 69 61 )))..(defun.projectile-files-via
12c00 2d 65 78 74 2d 63 6f 6d 6d 61 6e 64 20 28 72 6f 6f 74 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 22 47 -ext-command.(root.command)..."G
12c20 65 74 20 61 20 6c 69 73 74 20 6f 66 20 72 65 6c 61 74 69 76 65 20 66 69 6c 65 20 6e 61 6d 65 73 et.a.list.of.relative.file.names
12c40 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 20 52 4f 4f 54 20 62 79 20 65 78 65 63 75 74 69 6e .in.the.project.ROOT.by.executin
12c60 67 20 43 4f 4d 4d 41 4e 44 2e 0a 0a 49 66 20 60 63 6f 6d 6d 61 6e 64 27 20 69 73 20 6e 69 6c 20 g.COMMAND...If.`command'.is.nil.
12c80 6f 72 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 0a or.an.empty.string,.return.nil..
12ca0 54 68 69 73 20 61 6c 6c 6f 77 73 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 62 65 20 64 69 73 61 62 This.allows.commands.to.be.disab
12cc0 6c 65 64 2e 0a 0a 4f 6e 6c 79 20 74 65 78 74 20 73 65 6e 74 20 74 6f 20 73 74 61 6e 64 61 72 64 led...Only.text.sent.to.standard
12ce0 20 6f 75 74 70 75 74 20 69 73 20 74 61 6b 65 6e 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 2e 22 0a .output.is.taken.into.account.".
12d00 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 6c ..(when.(stringp.command).....(l
12d20 65 74 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 72 6f 6f 74 29 29 0a 20 20 et.((default-directory.root))...
12d40 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 ....(with-temp-buffer.........(s
12d60 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 74 20 22 2a 70 72 6f 6a 65 63 74 hell-command.command.t."*project
12d80 69 6c 65 2d 66 69 6c 65 73 2d 65 72 72 6f 72 73 2a 22 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 ile-files-errors*").........(let
12da0 20 28 28 73 68 65 6c 6c 2d 6f 75 74 70 75 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e .((shell-output.(buffer-substrin
12dc0 67 20 28 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 0a 20 20 20 g.(point-min).(point-max))))....
12de0 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 2d 74 72 69 .......(split-string.(string-tri
12e00 6d 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 29 20 22 5c 30 22 20 74 29 29 29 29 29 29 0a 0a 28 64 m.shell-output)."\0".t))))))..(d
12e20 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 6a 75 73 74 2d 66 69 6c 65 73 20 28 70 72 efun.projectile-adjust-files.(pr
12e40 6f 6a 65 63 74 20 76 63 73 20 66 69 6c 65 73 29 0a 20 20 22 46 69 72 73 74 20 72 65 6d 6f 76 65 oject.vcs.files)..."First.remove
12e60 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 66 72 6f 6d 20 46 49 4c 45 53 2c 20 74 68 65 6e 20 .ignored.files.from.FILES,.then.
12e80 61 64 64 20 62 61 63 6b 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 70 72 add.back.unignored.files."...(pr
12ea0 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 75 6e 69 67 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 76 ojectile-add-unignored.project.v
12ec0 63 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 69 67 6e 6f 72 65 64 20 66 69 cs.(projectile-remove-ignored.fi
12ee0 6c 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 72 65 6d 6f 76 65 les)))..(defun.projectile-remove
12f00 2d 69 67 6e 6f 72 65 64 20 28 66 69 6c 65 73 29 0a 20 20 22 52 65 6d 6f 76 65 20 69 67 6e 6f 72 -ignored.(files)..."Remove.ignor
12f20 65 64 20 66 69 6c 65 73 20 61 6e 64 20 66 6f 6c 64 65 72 73 20 66 72 6f 6d 20 46 49 4c 45 53 2e ed.files.and.folders.from.FILES.
12f40 0a 0a 49 66 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 79 20 70 72 65 66 69 78 65 64 20 ..If.ignored.directory.prefixed.
12f60 77 69 74 68 20 27 2a 27 2c 20 74 68 65 6e 20 69 67 6e 6f 72 65 20 61 6c 6c 0a 64 69 72 65 63 74 with.'*',.then.ignore.all.direct
12f80 6f 72 69 65 73 2f 73 75 62 64 69 72 65 63 74 6f 72 69 65 73 20 77 69 74 68 20 6d 61 74 63 68 69 ories/subdirectories.with.matchi
12fa0 6e 67 20 66 69 6c 65 6e 61 6d 65 2c 0a 6f 74 68 65 72 77 69 73 65 20 6f 70 65 72 61 74 65 73 20 ng.filename,.otherwise.operates.
12fc0 72 65 6c 61 74 69 76 65 20 74 6f 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 20 28 6c 65 relative.to.project.root."...(le
12fe0 74 20 28 28 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 t.((ignored-files.(projectile-ig
13000 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 29 29 0a 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 nored-files-rel)).........(ignor
13020 65 64 2d 64 69 72 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 65 ed-dirs.(projectile-ignored-dire
13040 63 74 6f 72 69 65 73 2d 72 65 6c 29 29 29 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 ctories-rel))).....(cl-remove-if
13060 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 28 6f 72 20 ......(lambda.(file)........(or.
13080 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 61 20 28 66 29 (cl-some.............(lambda.(f)
130a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 66 20 28 66 69 6c 65 2d ...............(string=.f.(file-
130c0 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 name-nondirectory.file))).......
130e0 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......ignored-files)............
13100 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 61 20 28 64 69 (cl-some.............(lambda.(di
13120 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 64 69 72 65 63 r)...............;;.if.the.direc
13140 74 6f 72 79 20 69 73 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 27 2a 27 20 74 68 65 6e 20 69 tory.is.prefixed.with.'*'.then.i
13160 67 6e 6f 72 65 20 61 6c 6c 20 64 69 72 65 63 74 6f 72 69 65 73 20 6d 61 74 63 68 69 6e 67 20 74 gnore.all.directories.matching.t
13180 68 61 74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 hat.name...............(if.(stri
131a0 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2a 22 20 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 ng-prefix-p."*".dir)............
131c0 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 27 2a 27 20 61 6e 64 20 74 72 61 69 6c 69 6e .......;;.remove.'*'.and.trailin
131e0 67 20 73 6c 61 73 68 20 66 72 6f 6d 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 79 20 6e g.slash.from.ignored.directory.n
13200 61 6d 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 28 28 64 20 28 ame...................(let.((d.(
13220 73 75 62 73 74 72 69 6e 67 20 64 69 72 20 31 20 28 69 66 20 28 65 71 75 61 6c 20 28 73 75 62 73 substring.dir.1.(if.(equal.(subs
13240 74 72 69 6e 67 20 64 69 72 20 2d 31 29 20 22 2f 22 29 20 2d 31 20 6e 69 6c 29 29 29 29 0a 20 20 tring.dir.-1)."/").-1.nil))))...
13260 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 65 0a 20 20 20 20 20 ..................(cl-some......
13280 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 29 0a 20 20 20 20 ................(lambda.(p).....
132a0 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 3d 20 64 20 70 29 ...................(string=.d.p)
132c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 70 6c 69 74 20 )......................;;.split.
132e0 70 61 74 68 20 62 79 20 27 2f 27 2c 20 72 65 6d 6f 76 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 path.by.'/',.remove.empty.string
13300 73 2c 20 61 6e 64 20 63 68 65 63 6b 20 69 66 20 61 6e 79 20 73 75 62 64 69 72 73 20 6d 61 74 63 s,.and.check.if.any.subdirs.matc
13320 68 20 6e 61 6d 65 20 27 64 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.name.'d'......................
13340 28 64 65 6c 65 74 65 20 22 22 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6f 72 20 28 66 69 (delete."".(split-string.(or.(fi
13360 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 29 20 22 22 29 20 22 2f 22 29 le-name-directory.file)."")."/")
13380 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 ))).................(string-pref
133a0 69 78 2d 70 20 64 69 72 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 67 6e ix-p.dir.file))).............ign
133c0 6f 72 65 64 2d 64 69 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 ored-dirs)............(cl-some..
133e0 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 75 66 29 0a 20 20 20 20 20 20 20 ...........(lambda.(suf)........
13400 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 73 75 66 20 66 69 6c 65 .......(string-suffix-p.suf.file
13420 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 .t)).............projectile-glob
13440 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 29 29 29 0a 20 20 ally-ignored-file-suffixes)))...
13460 20 20 20 66 69 6c 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 6b ...files)))..(defun.projectile-k
13480 65 65 70 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 20 66 eep-ignored-files.(project.vcs.f
134a0 69 6c 65 73 29 0a 20 20 22 46 69 6c 74 65 72 20 46 49 4c 45 53 20 74 6f 20 72 65 74 61 69 6e 20 iles)..."Filter.FILES.to.retain.
134c0 6f 6e 6c 79 20 74 68 6f 73 65 20 74 68 61 74 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 only.those.that.are.ignored."...
134e0 28 77 68 65 6e 20 66 69 6c 65 73 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f (when.files.....(cl-remove-if-no
13500 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 28 63 6c t......(lambda.(file)........(cl
13520 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 -some.(lambda.(f).(string-prefix
13540 2d 70 20 66 20 66 69 6c 65 29 29 20 66 69 6c 65 73 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 -p.f.file)).files))......(projec
13560 74 69 6c 65 2d 67 65 74 2d 72 65 70 6f 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 70 72 6f 6a tile-get-repo-ignored-files.proj
13580 65 63 74 20 76 63 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 6b ect.vcs))))..(defun.projectile-k
135a0 65 65 70 2d 69 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 eep-ignored-directories.(project
135c0 20 76 63 73 20 64 69 72 65 63 74 6f 72 69 65 73 29 0a 20 20 22 47 65 74 20 69 67 6e 6f 72 65 64 .vcs.directories)..."Get.ignored
135e0 20 66 69 6c 65 73 20 77 69 74 68 69 6e 20 65 61 63 68 20 6f 66 20 44 49 52 45 43 54 4f 52 49 45 .files.within.each.of.DIRECTORIE
13600 53 2e 22 0a 20 20 28 77 68 65 6e 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 28 6c 65 74 S."...(when.directories.....(let
13620 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 69 72 20 64 69 72 .(result).......(dolist.(dir.dir
13640 65 63 74 6f 72 69 65 73 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 ectories.result).........(setq.r
13660 65 73 75 6c 74 20 28 61 70 70 65 6e 64 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 esult.(append.result............
13680 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 67 65 ..................(projectile-ge
136a0 74 2d 72 65 70 6f 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 t-repo-ignored-directory.project
136c0 20 64 69 72 20 76 63 73 29 29 29 29 0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 .dir.vcs)))).......result)))..(d
136e0 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 64 64 2d 75 6e 69 67 6e 6f 72 65 64 20 28 70 efun.projectile-add-unignored.(p
13700 72 6f 6a 65 63 74 20 76 63 73 20 66 69 6c 65 73 29 0a 20 20 22 54 68 69 73 20 61 64 64 73 20 75 roject.vcs.files)..."This.adds.u
13720 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 74 6f 20 46 49 4c 45 53 2e 0a 0a 55 73 65 66 75 6c nignored.files.to.FILES...Useful
13740 20 62 65 63 61 75 73 65 20 74 68 65 20 56 43 53 20 6d 61 79 20 6e 6f 74 20 72 65 74 75 72 6e 20 .because.the.VCS.may.not.return.
13760 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 74 20 61 6c 6c 2e 20 20 49 6e 0a 74 68 69 73 20 63 ignored.files.at.all...In.this.c
13780 61 73 65 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 61 62 73 65 ase.unignored.files.will.be.abse
137a0 6e 74 20 66 72 6f 6d 20 46 49 4c 45 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 75 6e 69 67 6e 6f 72 nt.from.FILES."...(let.((unignor
137c0 65 64 2d 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 65 70 2d 69 67 6e 6f 72 65 ed-files.(projectile-keep-ignore
137e0 64 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 20 20 20 20 d-files.........................
13800 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.......................
13820 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 20 ....vcs.........................
13840 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 2d 72 65 ..(projectile-unignored-files-re
13860 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 20 28 70 l))).........(unignored-paths.(p
13880 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 69 67 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 rojectile-remove-ignored........
138a0 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 6b ...................(projectile-k
138c0 65 65 70 2d 69 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 eep-ignored-directories.........
138e0 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 0a 20 20 20 20 20 ...................project......
13900 20 20 20 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 ......................vcs.......
13920 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
13940 2d 75 6e 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 29 29 0a -unignored-directories-rel))))).
13960 20 20 20 20 28 61 70 70 65 6e 64 20 66 69 6c 65 73 20 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 ....(append.files.unignored-file
13980 73 20 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f s.unignored-paths)))..(defun.pro
139a0 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 20 28 62 75 66 66 65 jectile-buffers-with-file.(buffe
139c0 72 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6f 6e 6c 79 20 74 68 6f 73 65 20 42 55 46 46 45 52 53 rs)..."Return.only.those.BUFFERS
139e0 20 62 61 63 6b 65 64 20 62 79 20 66 69 6c 65 73 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d .backed.by.files."...(cl-remove-
13a00 69 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 62 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d if-not.(lambda.(b).(buffer-file-
13a20 6e 61 6d 65 20 62 29 29 20 62 75 66 66 65 72 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 name.b)).buffers))..(defun.proje
13a40 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 77 69 74 68 2d 66 69 6c 65 2d 6f 72 2d 70 72 6f 63 65 ctile-buffers-with-file-or-proce
13a60 73 73 20 28 62 75 66 66 65 72 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6f 6e 6c 79 20 74 68 6f 73 ss.(buffers)..."Return.only.thos
13a80 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 20 6f 72 20 70 72 6f e.BUFFERS.backed.by.files.or.pro
13aa0 63 65 73 73 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 28 6c 61 cesses."...(cl-remove-if-not.(la
13ac0 6d 62 64 61 20 28 62 29 20 28 6f 72 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 mbda.(b).(or.(buffer-file-name.b
13ae0 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 )...............................
13b00 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 70 72 6f 63 65 73 73 20 62 29 29 29 20 62 ......(get-buffer-process.b))).b
13b20 75 66 66 65 72 73 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 uffers))..(defun.projectile-proj
13b40 65 63 74 2d 62 75 66 66 65 72 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 29 0a ect-buffers.(&optional.project).
13b60 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 .."Get.a.list.of.a.project's.buf
13b80 66 65 72 73 2e 0a 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 fers..If.PROJECT.is.not.specifie
13ba0 64 20 74 68 65 20 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 d.the.command.acts.on.the.curren
13bc0 74 20 70 72 6f 6a 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 t.project."...(let*.((project-ro
13be0 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 61 63 71 75 69 ot.(or.project.(projectile-acqui
13c00 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 62 75 66 66 65 72 73 re-root)))..........(all-buffers
13c20 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 20 20 20 20 20 .(cl-remove-if-not..............
13c40 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 20 ..........(lambda.(buffer)......
13c60 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-
13c80 70 72 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 project-buffer-p.buffer.project-
13ca0 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 20 20 20 28 62 root))........................(b
13cc0 75 66 66 65 72 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 69 6c uffer-list)))).....(if.projectil
13ce0 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 0a 20 20 20 20 20 20 e-buffers-filter-function.......
13d00 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 66 65 72 73 2d 66 69 ..(funcall.projectile-buffers-fi
13d20 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 lter-function.all-buffers)......
13d40 20 61 6c 6c 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 .all-buffers)))..(defun.projecti
13d60 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 65 le-process-current-project-buffe
13d80 72 73 20 28 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 6f 63 65 73 73 20 74 68 65 20 63 75 72 72 65 rs.(action)..."Process.the.curre
13da0 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 41 43 54 49 4f nt.project's.buffers.using.ACTIO
13dc0 4e 2e 22 0a 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 N."...(let.((project-buffers.(pr
13de0 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 20 20 20 20 ojectile-project-buffers))).....
13e00 28 64 6f 6c 69 73 74 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 (dolist.(buffer.project-buffers)
13e20 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 74 69 6f 6e 20 62 75 66 66 65 72 29 29 29 .......(funcall.action.buffer)))
13e40 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
13e60 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 2d 63 75 72 72 65 6e 74 20 28 61 63 rent-project-buffers-current.(ac
13e80 74 69 6f 6e 29 0a 20 20 22 49 6e 76 6f 6b 65 20 41 43 54 49 4f 4e 20 6f 6e 20 65 76 65 72 79 20 tion)..."Invoke.ACTION.on.every.
13ea0 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 61 74 20 62 75 66 66 65 72 20 project.buffer.with.that.buffer.
13ec0 63 75 72 72 65 6e 74 2e 0a 41 43 54 49 4f 4e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 6f 75 current..ACTION.is.called.withou
13ee0 74 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 62 t.arguments."...(let.((project-b
13f00 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 62 75 66 66 65 uffers.(projectile-project-buffe
13f20 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 72 6f 6a 65 63 rs))).....(dolist.(buffer.projec
13f40 74 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 t-buffers).......(with-current-b
13f60 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 uffer.buffer.........(funcall.ac
13f80 74 69 6f 6e 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 72 6f tion)))))..(defun.projectile-pro
13fa0 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f ject-buffer-files.(&optional.pro
13fc0 6a 65 63 74 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 20 70 72 6f 6a 65 63 74 ject)..."Get.a.list.of.a.project
13fe0 27 73 20 62 75 66 66 65 72 20 66 69 6c 65 73 2e 0a 49 66 20 50 52 4f 4a 45 43 54 20 69 73 20 6e 's.buffer.files..If.PROJECT.is.n
14000 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 73 20 6f 6e ot.specified.the.command.acts.on
14020 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 74 20 28 28 .the.current.project."...(let.((
14040 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 72 6f 6a 65 63 project-root.(or.project.(projec
14060 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 tile-project-root)))).....(mapca
14080 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 28 r......(lambda.(buffer)........(
140a0 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 20 28 62 75 66 66 file-relative-name.........(buff
140c0 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 70 72 6f er-file-name.buffer).........pro
140e0 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 62 75 66 ject-root))......(projectile-buf
14100 66 65 72 73 2d 77 69 74 68 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 fers-with-file.......(projectile
14120 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 29 29 0a 0a 28 -project-buffers.project)))))..(
14140 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 65 72 2d defun.projectile-project-buffer-
14160 70 20 28 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 43 68 65 63 6b p.(buffer.project-root)..."Check
14180 20 69 66 20 42 55 46 46 45 52 20 69 73 20 75 6e 64 65 72 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 .if.BUFFER.is.under.PROJECT-ROOT
141a0 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 ."...(with-current-buffer.buffer
141c0 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 65 63 74 6f 72 79 20 28 69 66 20 62 75 66 66 65 72 .....(let.((directory.(if.buffer
141e0 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 20 20 20 20 -file-name......................
14200 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 62 75 66 66 65 72 2d ....(file-name-directory.buffer-
14220 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 20 20 20 20 20 file-name)......................
14240 20 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 20 20 28 61 6e ..default-directory))).......(an
14260 64 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 20 22 20 28 62 75 66 d.(not.(string-prefix-p.".".(buf
14280 66 65 72 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e fer-name.buffer)))............(n
142a0 6f 74 20 28 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 ot.(projectile-ignored-buffer-p.
142c0 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 63 74 6f 72 79 0a 20 20 buffer))............directory...
142e0 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 66 69 6c 65 2d 72 65 6d .........(string-equal.(file-rem
14300 6f 74 65 2d 70 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 20 ote-p.directory)................
14320 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 70 72 6f 6a 65 63 74 ..........(file-remote-p.project
14340 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d -root))............(not.(string-
14360 6d 61 74 63 68 2d 70 20 22 5e 68 74 74 70 5c 5c 28 73 5c 5c 29 3f 3a 2f 2f 22 20 64 69 72 65 63 match-p."^http\\(s\\)?://".direc
14380 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 tory))............(string-prefix
143a0 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 66 69 6c 65 2d 74 72 75 65 6e 61 6d 65 20 64 -p.project-root.(file-truename.d
143c0 69 72 65 63 74 6f 72 79 29 20 28 65 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 27 77 69 6e 64 6f irectory).(eq.system-type.'windo
143e0 77 73 2d 6e 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 69 ws-nt))))))..(defun.projectile-i
14400 67 6e 6f 72 65 64 2d 62 75 66 66 65 72 2d 70 20 28 62 75 66 66 65 72 29 0a 20 20 22 43 68 65 63 gnored-buffer-p.(buffer)..."Chec
14420 6b 20 69 66 20 42 55 46 46 45 52 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a k.if.BUFFER.should.be.ignored...
14440 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 2e 22 Regular.expressions.can.be.use."
14460 0a 20 20 28 6f 72 0a 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 ...(or....(with-current-buffer.b
14480 75 66 66 65 72 0a 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 uffer......(cl-some.......(lambd
144a0 61 20 28 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 a.(name).........(string-match-p
144c0 20 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6a .name.(buffer-name))).......proj
144e0 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 62 75 66 66 65 72 73 29 ectile-globally-ignored-buffers)
14500 29 0a 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 )....(with-current-buffer.buffer
14520 0a 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 6f ......(cl-some.......(lambda.(mo
14540 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 28 63 6f 6e de).........(string-match-p.(con
14560 63 61 74 20 22 5e 22 20 6d 6f 64 65 20 22 24 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cat."^".mode."$")...............
14580 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6d 61 6a 6f 72 2d 6d 6f 64 ..........(symbol-name.major-mod
145a0 65 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 e))).......projectile-globally-i
145c0 67 6e 6f 72 65 64 2d 6d 6f 64 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 gnored-modes))))..(defun.project
145e0 69 6c 65 2d 72 65 63 65 6e 74 6c 79 2d 61 63 74 69 76 65 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 ile-recently-active-files.()..."
14600 47 65 74 20 6c 69 73 74 20 6f 66 20 72 65 63 65 6e 74 6c 79 20 61 63 74 69 76 65 20 66 69 6c 65 Get.list.of.recently.active.file
14620 73 2e 0a 0a 46 69 6c 65 73 20 61 72 65 20 6f 72 64 65 72 65 64 20 62 79 20 72 65 63 65 6e 74 6c s...Files.are.ordered.by.recentl
14640 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 73 2c 20 61 6e 64 20 74 68 65 6e 20 72 65 63 65 6e y.active.buffers,.and.then.recen
14660 74 6c 79 0a 6f 70 65 6e 65 64 20 74 68 72 6f 75 67 68 20 75 73 65 20 6f 66 20 72 65 63 65 6e 74 tly.opened.through.use.of.recent
14680 66 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 f."...(let.((project-buffer-file
146a0 73 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 66 69 6c s.(projectile-project-buffer-fil
146c0 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 62 75 66 66 65 72 es))).....(append.project-buffer
146e0 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 65 2d 64 -files.............(projectile-d
14700 69 66 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 ifference..............(projecti
14720 6c 65 2d 72 65 63 65 6e 74 66 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 le-recentf-files)..............p
14740 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 roject-buffer-files))))..(defun.
14760 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 73 20 projectile-project-buffer-names.
14780 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 62 75 66 66 ()..."Get.a.list.of.project.buff
147a0 65 72 20 6e 61 6d 65 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 23 27 62 75 66 66 65 72 2d 6e 61 er.names."...(mapcar.#'buffer-na
147c0 6d 65 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 29 29 me.(projectile-project-buffers))
147e0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f )..(defun.projectile-prepend-pro
14800 6a 65 63 74 2d 6e 61 6d 65 20 28 73 74 72 69 6e 67 29 0a 20 20 22 50 72 65 70 65 6e 64 20 74 68 ject-name.(string)..."Prepend.th
14820 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 73 20 6e 61 6d 65 20 74 6f 20 53 54 52 49 e.current.project's.name.to.STRI
14840 4e 47 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 73 5d 20 25 73 22 20 28 70 72 6f 6a 65 63 NG."...(format."[%s].%s".(projec
14860 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 tile-project-name).string))..(de
14880 66 75 6e 20 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 fun.projectile-read-buffer-to-sw
148a0 69 74 63 68 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f itch.(prompt)..."Read.the.name.o
148c0 66 20 61 20 62 75 66 66 65 72 20 74 6f 20 73 77 69 74 63 68 20 74 6f 2c 20 70 72 6f 6d 70 74 69 f.a.buffer.to.switch.to,.prompti
148e0 6e 67 20 77 69 74 68 20 50 52 4f 4d 50 54 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 65 ng.with.PROMPT...This.function.e
14900 78 63 6c 75 64 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 72 6f 6d 20 xcludes.the.current.buffer.from.
14920 74 68 65 20 6f 66 66 65 72 65 64 0a 63 68 6f 69 63 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 the.offered.choices."...(project
14940 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 70 72 6f 6d 70 74 0a 20 20 ile-completing-read....prompt...
14960 20 28 64 65 6c 65 74 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 .(delete.(buffer-name.(current-b
14980 75 66 66 65 72 29 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 uffer))............(projectile-p
149a0 72 6f 6a 65 63 74 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 roject-buffer-names))))..;;;###a
149c0 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 77 69 74 63 68 utoload.(defun.projectile-switch
149e0 2d 74 6f 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f -to-buffer.()..."Switch.to.a.pro
14a00 6a 65 63 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 ject.buffer."...(interactive)...
14a20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 (switch-to-buffer....(projectile
14a40 2d 72 65 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 -read-buffer-to-switch."Switch.t
14a60 6f 20 62 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 o.buffer:.")))..;;;###autoload.(
14a80 64 65 66 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 defun.projectile-switch-to-buffe
14aa0 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 61 r-other-window.()..."Switch.to.a
14ac0 20 70 72 6f 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 .project.buffer.and.show.it.in.a
14ae0 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 74 69 76 65 29 0a nother.window."...(interactive).
14b00 20 20 28 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 6f 77 ..(switch-to-buffer-other-window
14b20 0a 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 ....(projectile-read-buffer-to-s
14b40 77 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 witch."Switch.to.buffer:.")))..;
14b60 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-
14b80 73 77 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 20 28 29 0a switch-to-buffer-other-frame.().
14ba0 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
14bc0 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 2e 22 0a 20 20 28 d.show.it.in.another.frame."...(
14be0 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 72 interactive)...(switch-to-buffer
14c00 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 72 65 61 64 -other-frame....(projectile-read
14c20 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 75 66 -buffer-to-switch."Switch.to.buf
14c40 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 75 6e fer:.")))..;;;###autoload.(defun
14c60 20 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 20 28 29 0a 20 20 .projectile-display-buffer.()...
14c80 22 44 69 73 70 6c 61 79 20 61 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 20 69 6e 20 61 6e 6f "Display.a.project.buffer.in.ano
14ca0 74 68 65 72 20 77 69 6e 64 6f 77 20 77 69 74 68 6f 75 74 20 73 65 6c 65 63 74 69 6e 67 20 69 74 ther.window.without.selecting.it
14cc0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 69 73 70 6c 61 79 2d 62 75 ."...(interactive)...(display-bu
14ce0 66 66 65 72 0a 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 ffer....(projectile-completing-r
14d00 65 61 64 0a 20 20 20 20 22 44 69 73 70 6c 61 79 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 28 ead....."Display.buffer:.".....(
14d20 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 73 29 projectile-project-buffer-names)
14d40 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
14d60 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 75 66 66 ctile-project-buffers-other-buff
14d80 65 72 20 28 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 er.()..."Switch.to.the.most.rece
14da0 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 20 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 20 62 75 66 ntly.selected.buffer.project.buf
14dc0 66 65 72 2e 0a 4f 6e 6c 79 20 62 75 66 66 65 72 73 20 6e 6f 74 20 76 69 73 69 62 6c 65 20 69 6e fer..Only.buffers.not.visible.in
14de0 20 77 69 6e 64 6f 77 73 20 61 72 65 20 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 .windows.are.returned."...(inter
14e00 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 20 28 63 61 72 active)...(switch-to-buffer.(car
14e20 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 2d 6e 6f 6e .(projectile-project-buffers-non
14e40 2d 76 69 73 69 62 6c 65 29 29 29 20 6e 69 6c 20 74 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 -visible))).nil.t)..(defun.proje
14e60 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 69 73 69 62 6c ctile-project-buffers-non-visibl
14e80 65 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 6e 6f 6e 20 76 69 73 69 62 6c e.()..."Get.a.list.of.non.visibl
14ea0 65 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 e.project.buffers."...(cl-remove
14ec0 2d 69 66 2d 6e 6f 74 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 65 72 29 0a 20 20 20 20 -if-not....(lambda.(buffer).....
14ee0 20 28 6e 6f 74 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 62 75 66 66 65 72 20 .(not.(get-buffer-window.buffer.
14f00 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 'visible)))....(projectile-proje
14f20 63 74 2d 62 75 66 66 65 72 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 ct-buffers)))..;;;###autoload.(d
14f40 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 6c 74 69 2d 6f 63 63 75 72 20 28 26 6f 70 efun.projectile-multi-occur.(&op
14f60 74 69 6f 6e 61 6c 20 6e 6c 69 6e 65 73 29 0a 20 20 22 44 6f 20 61 20 60 6d 75 6c 74 69 2d 6f 63 tional.nlines)..."Do.a.`multi-oc
14f80 63 75 72 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 62 75 66 66 65 72 73 2e 0a 57 cur'.in.the.project's.buffers..W
14fa0 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 73 68 6f 77 20 4e 4c 49 4e ith.a.prefix.argument,.show.NLIN
14fc0 45 53 20 6f 66 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 ES.of.context."...(interactive."
14fe0 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 63 74 69 6c 65 P")...(let.((project.(projectile
15000 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 6d 75 6c 74 69 2d 6f 63 63 75 -acquire-root))).....(multi-occu
15020 72 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 r.(projectile-project-buffers.pr
15040 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 6f 63 oject)..................(car.(oc
15060 63 75 72 2d 72 65 61 64 2d 70 72 69 6d 61 72 79 2d 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 cur-read-primary-args)).........
15080 20 20 20 20 20 20 20 20 20 6e 6c 69 6e 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 .........nlines)))..(defun.proje
150a0 63 74 69 6c 65 2d 6e 6f 72 6d 61 6c 69 73 65 2d 70 61 74 68 73 20 28 70 61 74 74 65 72 6e 73 29 ctile-normalise-paths.(patterns)
150c0 0a 20 20 22 52 65 6d 6f 76 65 20 6c 65 61 64 69 6e 67 20 60 2f 27 20 66 72 6f 6d 20 74 68 65 20 ..."Remove.leading.`/'.from.the.
150e0 65 6c 65 6d 65 6e 74 73 20 6f 66 20 50 41 54 54 45 52 4e 53 2e 22 0a 20 20 28 64 65 6c 71 20 6e elements.of.PATTERNS."...(delq.n
15100 69 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 61 6e 64 20 28 73 il.(mapcar.(lambda.(pat).(and.(s
15120 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2f 22 20 70 61 74 29 0a 20 20 20 20 20 20 20 20 tring-prefix-p."/".pat).........
15140 20 20 20 20 20 20 20 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 ...............................;
15160 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 6c 65 61 64 69 6e 67 20 2f 0a 20 20 20 20 20 20 20 20 20 ;.remove.the.leading./..........
15180 20 20 20 20 20 20 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 ..............................(s
151a0 75 62 73 74 72 69 6e 67 20 70 61 74 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ubstring.pat.1)))...............
151c0 20 20 20 20 20 20 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 ......patterns)))..(defun.projec
151e0 74 69 6c 65 2d 65 78 70 61 6e 64 2d 70 61 74 68 73 20 28 70 61 74 68 73 29 0a 20 20 22 45 78 70 tile-expand-paths.(paths)..."Exp
15200 61 6e 64 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 50 41 54 48 53 2e 0a 0a 45 6c 65 6d and.the.elements.of.PATHS...Elem
15220 65 6e 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 77 69 6c 64 63 61 72 64 73 20 61 72 65 20 65 78 ents.containing.wildcards.are.ex
15240 70 61 6e 64 65 64 20 61 6e 64 20 73 70 6c 69 63 65 64 20 69 6e 74 6f 20 74 68 65 0a 72 65 73 75 panded.and.spliced.into.the.resu
15260 6c 74 69 6e 67 20 70 61 74 68 73 2e 20 20 54 68 65 20 72 65 74 75 72 6e 65 64 20 50 41 54 48 53 lting.paths...The.returned.PATHS
15280 20 61 72 65 20 61 62 73 6f 6c 75 74 65 2c 20 62 61 73 65 64 20 6f 6e 20 74 68 65 0a 70 72 6f 6a .are.absolute,.based.on.the.proj
152a0 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 ectile.project.root."...(let.((d
152c0 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 2d 70 72 6f efault-directory.(projectile-pro
152e0 6a 65 63 74 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 66 6c 61 ject-root))).....(projectile-fla
15300 74 74 65 6e 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 20 20 tten.(mapcar....................
15320 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 ......(lambda.(pattern).........
15340 20 20 20 20 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 65 78 70 ...................(or.(file-exp
15360 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 20 70 61 74 74 65 72 6e 20 74 29 0a 20 20 20 20 20 20 20 and-wildcards.pattern.t)........
15380 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
153a0 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 ile-expand-root.pattern)))......
153c0 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 29 0a 0a 28 ....................paths))))..(
153e0 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 74 74 65 defun.projectile-normalise-patte
15400 72 6e 73 20 28 70 61 74 74 65 72 6e 73 29 0a 20 20 22 52 65 6d 6f 76 65 20 70 61 74 68 73 20 66 rns.(patterns)..."Remove.paths.f
15420 72 6f 6d 20 50 41 54 54 45 52 4e 53 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 rom.PATTERNS."...(cl-remove-if.(
15440 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2f lambda.(pat).(string-prefix-p."/
15460 22 20 70 61 74 29 29 20 70 61 74 74 65 72 6e 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 ".pat)).patterns))..(defun.proje
15480 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 74 20 28 66 69 6c ctile-make-relative-to-root.(fil
154a0 65 73 29 0a 20 20 22 4d 61 6b 65 20 46 49 4c 45 53 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 es)..."Make.FILES.relative.to.th
154c0 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 e.project.root."...(let.((projec
154e0 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 74 29 t-root.(projectile-project-root)
15500 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 66 69 6c 65 )).....(mapcar.(lambda.(f).(file
15520 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 72 6f 6f 74 29 29 20 -relative-name.f.project-root)).
15540 66 69 6c 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 6e 6f files)))..(defun.projectile-igno
15560 72 65 64 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 20 26 red-directory-p.....(directory.&
15580 6f 70 74 69 6f 6e 61 6c 20 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 6c 6f 63 optional.ignored-directories.loc
155a0 61 6c 2d 64 69 72 65 63 74 6f 72 79 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 al-directory.globally-ignored-di
155c0 72 65 63 74 6f 72 69 65 73 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 44 49 52 45 43 54 4f 52 59 rectories)..."Check.if.DIRECTORY
155e0 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 52 65 67 75 6c 61 72 20 65 78 70 .should.be.ignored...Regular.exp
15600 72 65 73 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 2e 20 20 50 72 65 2d 63 6f 6d 70 75 ressions.can.be.used...Pre-compu
15620 74 65 64 20 6c 69 73 74 73 20 6f 66 0a 49 47 4e 4f 52 45 44 2d 44 49 52 45 43 54 4f 52 49 45 53 ted.lists.of.IGNORED-DIRECTORIES
15640 20 61 6e 64 20 47 4c 4f 42 41 4c 4c 59 2d 49 47 4e 4f 52 45 44 2d 44 49 52 45 43 54 4f 52 49 45 .and.GLOBALLY-IGNORED-DIRECTORIE
15660 53 0a 61 6e 64 20 74 68 65 20 4c 4f 43 41 4c 2d 44 49 52 45 43 54 4f 52 59 20 6e 61 6d 65 20 6d S.and.the.LOCAL-DIRECTORY.name.m
15680 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 28 6c ay.optionally.be.provided."...(l
156a0 65 74 20 28 28 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 20 28 6f 72 20 69 67 6e et.((ignored-directories.(or.ign
156c0 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 69 67 6e ored-directories.(projectile-ign
156e0 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6c 6f ored-directories))).........(glo
15700 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 20 28 6f 72 20 67 6c bally-ignored-directories.(or.gl
15720 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 20 28 70 72 6f 6a obally-ignored-directories.(proj
15740 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 63 74 6f 72 ectile-globally-ignored-director
15760 79 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 64 69 72 65 63 74 y-names))).........(local-direct
15780 6f 72 79 20 28 6f 72 20 6c 6f 63 61 6c 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 ory.(or.local-directory.(file-na
157a0 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d me-nondirectory.(directory-file-
157c0 6e 61 6d 65 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a 20 20 20 20 28 6f 72 20 28 63 6c 2d name.directory))))).....(or.(cl-
157e0 73 6f 6d 65 0a 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 some..........(lambda.(name)....
15800 20 20 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 64 69 72 ........(string-match-p.name.dir
15820 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 ectory))..........ignored-direct
15840 6f 72 69 65 73 29 0a 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 ories).........(cl-some.........
15860 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 .(lambda.(name)............(stri
15880 6e 67 2d 6d 61 74 63 68 2d 70 20 6e 61 6d 65 20 6c 6f 63 61 6c 2d 64 69 72 65 63 74 6f 72 79 29 ng-match-p.name.local-directory)
158a0 29 0a 20 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 6c 79 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 )..........globally-ignored-dire
158c0 63 74 6f 72 69 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 69 ctories))))..(defun.projectile-i
158e0 67 6e 6f 72 65 64 2d 66 69 6c 65 2d 70 20 28 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 69 67 gnored-file-p.(file.&optional.ig
15900 6e 6f 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 73 68 nored-files)..."Check.if.FILE.sh
15920 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 ould.be.ignored...Regular.expres
15940 73 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 2e 20 20 41 20 70 72 65 2d 63 6f 6d 70 75 74 sions.can.be.used...A.pre-comput
15960 65 64 20 6c 69 73 74 20 6f 66 0a 49 47 4e 4f 52 45 44 2d 46 49 4c 45 53 20 6d 61 79 20 6f 70 74 ed.list.of.IGNORED-FILES.may.opt
15980 69 6f 6e 61 6c 6c 79 20 62 65 20 70 72 6f 76 69 64 65 64 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d 65 ionally.be.provided."...(cl-some
159a0 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 29 0a 20 20 20 20 20 28 73 74 72 69 6e 67 2d ....(lambda.(name)......(string-
159c0 6d 61 74 63 68 2d 70 20 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 28 6f 72 20 69 67 6e 6f 72 match-p.name.file))....(or.ignor
159e0 65 64 2d 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 ed-files.(projectile-ignored-fil
15a00 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 68 65 63 6b 2d es))))..(defun.projectile-check-
15a20 70 61 74 74 65 72 6e 2d 70 20 28 66 69 6c 65 20 70 61 74 74 65 72 6e 29 0a 20 20 22 43 68 65 63 pattern-p.(file.pattern)..."Chec
15a40 6b 20 69 66 20 46 49 4c 45 20 6d 65 65 74 73 20 50 41 54 54 45 52 4e 2e 22 0a 20 20 28 6f 72 20 k.if.FILE.meets.PATTERN."...(or.
15a60 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 (string-suffix-p.(directory-file
15a80 2d 6e 61 6d 65 20 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.pattern)..................
15aa0 20 20 20 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 ......(directory-file-name.file)
15ac0 29 0a 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 70 61 6e ).......(member.file.(file-expan
15ae0 64 2d 77 69 6c 64 63 61 72 64 73 20 70 61 74 74 65 72 6e 20 74 29 29 29 29 0a 0a 28 64 65 66 75 d-wildcards.pattern.t))))..(defu
15b00 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 72 65 6c 2d 70 20 28 66 69 6c 65 n.projectile-ignored-rel-p.(file
15b20 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 74 65 72 6e 73 29 0a 20 20 22 43 68 65 63 6b 20 69 66 .directory.patterns)..."Check.if
15b40 20 46 49 4c 45 20 73 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 20 72 65 6c 61 74 69 76 65 .FILE.should.be.ignored.relative
15b60 20 74 6f 20 44 49 52 45 43 54 4f 52 59 2e 0a 50 41 54 54 45 52 4e 53 20 73 68 6f 75 6c 64 20 68 .to.DIRECTORY..PATTERNS.should.h
15b80 61 76 65 20 74 68 65 20 66 6f 72 6d 3a 20 28 69 67 6e 6f 72 65 64 20 2e 20 75 6e 69 67 6e 6f 72 ave.the.form:.(ignored...unignor
15ba0 65 64 29 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 ed)"...(let.((default-directory.
15bc0 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 61 6e 64 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 directory)).....(and.(cl-some...
15be0 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 74 69 6c ........(lambda.(pat).(projectil
15c00 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 20 20 20 e-check-pattern-p.file.pat))....
15c20 20 20 20 20 20 20 20 28 63 61 72 20 70 61 74 74 65 72 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 .......(car.patterns))..........
15c40 28 63 6c 2d 6e 6f 74 61 6e 79 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 (cl-notany...........(lambda.(pa
15c60 74 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 68 65 63 6b 2d 70 61 74 74 65 72 6e 2d 70 20 66 t).(projectile-check-pattern-p.f
15c80 69 6c 65 20 70 61 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 70 61 74 74 65 72 6e ile.pat))...........(cdr.pattern
15ca0 73 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 69 67 6e 6f 72 65 s)))))..(defun.projectile-ignore
15cc0 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 69 67 6e d-files.()..."Return.list.of.ign
15ce0 6f 72 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 ored.files."...(projectile-diffe
15d00 72 65 6e 63 65 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 23 27 70 72 6f 6a 65 63 74 69 6c rence....(mapcar.....#'projectil
15d20 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 70 e-expand-root.....(append......p
15d40 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 73 rojectile-globally-ignored-files
15d60 0a 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 69 67 6e 6f 72 65 ......(projectile-project-ignore
15d80 64 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 6e 6f d-files)))....(projectile-unigno
15da0 72 65 64 2d 66 69 6c 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 red-files)))..(defun.projectile-
15dc0 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 79 2d 6e 61 6d 65 73 globally-ignored-directory-names
15de0 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 64 69 .()..."Return.list.of.ignored.di
15e00 72 65 63 74 6f 72 79 20 6e 61 6d 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 rectory.names."...(projectile-di
15e20 66 66 65 72 65 6e 63 65 0a 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 2d fference....projectile-globally-
15e40 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 70 72 6f 6a 65 63 74 69 6c ignored-directories....projectil
15e60 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 74 6f 72 69 65 73 e-globally-unignored-directories
15e80 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 6f 72 65 64 2d 64 69 ))..(defun.projectile-ignored-di
15ea0 72 65 63 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 69 rectories.()..."Return.list.of.i
15ec0 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 gnored.directories."...(projecti
15ee0 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 23 27 66 le-difference....(mapcar.....#'f
15f00 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 28 6d 61 70 63 61 ile-name-as-directory.....(mapca
15f20 72 0a 20 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 6f 6f 74 0a r......#'projectile-expand-root.
15f40 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c .....(append.......projectile-gl
15f60 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 20 20 20 obally-ignored-directories......
15f80 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 72 65 64 2d 64 69 72 .(projectile-project-ignored-dir
15fa0 65 63 74 6f 72 69 65 73 29 29 29 29 0a 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 67 ectories))))....(projectile-unig
15fc0 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f nored-directories)))..(defun.pro
15fe0 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 72 65 6c 20 jectile-ignored-directories-rel.
16000 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
16020 65 63 74 6f 72 69 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 ectories,.relative.to.the.root."
16040 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 6f 2d ...(projectile-make-relative-to-
16060 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 64 69 72 65 63 74 6f root.(projectile-ignored-directo
16080 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 6e 6f 72 ries)))..(defun.projectile-ignor
160a0 65 64 2d 66 69 6c 65 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 ed-files-rel.()..."Return.list.o
160c0 66 20 69 67 6e 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 f.ignored.files,.relative.to.the
160e0 20 72 6f 6f 74 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 .root."...(projectile-make-relat
16100 69 76 65 2d 74 6f 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 ive-to-root.(projectile-ignored-
16120 66 69 6c 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 files)))..(defun.projectile-proj
16140 65 63 74 2d 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 ect-ignored-files.()..."Return.l
16160 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2e 0a 55 6e ist.of.project.ignored.files..Un
16180 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 2e 22 ignored.files.are.not.included."
161a0 0a 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 ...(cl-remove-if.'file-directory
161c0 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 72 65 64 29 29 -p.(projectile-project-ignored))
161e0 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 69 67 6e )..(defun.projectile-project-ign
16200 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 20 6c 69 ored-directories.()..."Return.li
16220 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 st.of.project.ignored.directorie
16240 73 2e 0a 55 6e 69 67 6e 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 72 65 20 6e 6f 74 s..Unignored.directories.are.not
16260 20 69 6e 63 6c 75 64 65 64 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 .included."...(cl-remove-if-not.
16280 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 74 69 6c 65 2d 70 72 'file-directory-p.(projectile-pr
162a0 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 70 72 6f 6a 65 63 74 oject-ignored)))..(defun.project
162c0 69 6c 65 2d 70 61 74 68 73 2d 74 6f 2d 69 67 6e 6f 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e ile-paths-to-ignore.()..."Return
162e0 20 61 20 6c 69 73 74 20 6f 66 20 69 67 6e 6f 72 65 64 20 70 72 6f 6a 65 63 74 20 70 61 74 68 73 .a.list.of.ignored.project.paths
16300 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 73 ."...(projectile-normalise-paths
16320 20 28 6e 74 68 20 31 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 .(nth.1.(projectile-parse-dircon
16340 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 2d fig-file))))..(defun.projectile-
16360 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 6e 6f 72 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 patterns-to-ignore.()..."Return.
16380 61 20 6c 69 73 74 20 6f 66 20 72 65 6c 61 74 69 76 65 20 66 69 6c 65 20 70 61 74 74 65 72 6e 73 a.list.of.relative.file.patterns
163a0 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 74 65 ."...(projectile-normalise-patte
163c0 72 6e 73 20 28 6e 74 68 20 31 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 72 73 65 2d 64 69 72 rns.(nth.1.(projectile-parse-dir
163e0 63 6f 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 config-file))))..(defun.projecti
16400 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 67 6e 6f 72 65 64 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 le-project-ignored.()..."Return.
16420 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 list.of.project.ignored.files/di
16440 72 65 63 74 6f 72 69 65 73 2e 0a 55 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 rectories..Unignored.files/direc
16460 74 6f 72 69 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 6c 65 74 tories.are.not.included."...(let
16480 20 28 28 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 2d 69 67 .((paths.(projectile-paths-to-ig
164a0 6e 6f 72 65 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 70 nore))).....(projectile-expand-p
164c0 61 74 68 73 20 70 61 74 68 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 aths.paths)))..(defun.projectile
164e0 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
16500 73 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 6d 61 70 63 61 st.of.unignored.files."...(mapca
16520 72 0a 20 20 20 23 27 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 r....#'projectile-expand-root...
16540 20 28 61 70 70 65 6e 64 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 6c 6f 62 61 6c 6c 79 .(append.....projectile-globally
16560 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 -unignored-files.....(projectile
16580 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 -project-unignored-files))))..(d
165a0 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 64 69 72 65 63 74 efun.projectile-unignored-direct
165c0 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 75 6e 69 67 6e ories.()..."Return.list.of.unign
165e0 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 0a 20 20 20 ored.directories."...(mapcar....
16600 23 27 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 28 6d 61 70 #'file-name-as-directory....(map
16620 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 6f 6f 74 car.....#'projectile-expand-root
16640 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 67 6c 6f .....(append......projectile-glo
16660 62 61 6c 6c 79 2d 75 6e 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 bally-unignored-directories.....
16680 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 2d 64 .(projectile-project-unignored-d
166a0 69 72 65 63 74 6f 72 69 65 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 irectories)))))..(defun.projecti
166c0 6c 65 2d 75 6e 69 67 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 le-unignored-directories-rel.().
166e0 20 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 .."Return.list.of.unignored.dire
16700 63 74 6f 72 69 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 ctories,.relative.to.the.root.".
16720 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 6f 2d 72 ..(projectile-make-relative-to-r
16740 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 64 69 72 65 63 74 oot.(projectile-unignored-direct
16760 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 75 6e 69 67 ories)))..(defun.projectile-unig
16780 6e 6f 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 6c 69 73 nored-files-rel.()..."Return.lis
167a0 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 66 69 6c 65 73 2c 20 72 65 6c 61 74 69 76 65 20 74 t.of.unignored.files,.relative.t
167c0 6f 20 74 68 65 20 72 6f 6f 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 6b 65 2d o.the.root."...(projectile-make-
167e0 72 65 6c 61 74 69 76 65 2d 74 6f 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 relative-to-root.(projectile-uni
16800 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 gnored-files)))..(defun.projecti
16820 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 20 28 29 0a 20 20 le-project-unignored-files.()...
16840 22 52 65 74 75 72 6e 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 "Return.list.of.project.unignore
16860 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 27 66 69 6c 65 2d d.files."...(cl-remove-if.'file-
16880 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 63 74 2d directory-p.(projectile-project-
168a0 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 6c 65 2d unignored)))..(defun.projectile-
168c0 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 20 28 29 project-unignored-directories.()
168e0 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 75 6e 69 67 6e ..."Return.list.of.project.unign
16900 6f 72 65 64 20 64 69 72 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d ored.directories."...(cl-remove-
16920 69 66 2d 6e 6f 74 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 if-not.'file-directory-p.(projec
16940 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 75 6e 69 67 6e 6f 72 65 64 29 29 29 0a 0a 28 64 65 66 75 tile-project-unignored)))..(defu
16960 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 68 73 2d 74 6f 2d 65 6e 73 75 72 65 20 28 29 0a n.projectile-paths-to-ensure.().
16980 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 75 6e 69 67 6e 6f 72 65 64 20 70 72 .."Return.a.list.of.unignored.pr
169a0 6f 6a 65 63 74 20 70 61 74 68 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 6f 72 6d oject.paths."...(projectile-norm
169c0 61 6c 69 73 65 2d 70 61 74 68 73 20 28 6e 74 68 20 32 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 alise-paths.(nth.2.(projectile-p
169e0 61 72 73 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 arse-dirconfig-file))))..(defun.
16a00 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 74 6f 2d 65 6e 73 75 72 65 20 28 29 0a 20 20 projectile-files-to-ensure.()...
16a20 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 20 28 6c 61 6d (projectile-flatten.(mapcar.(lam
16a40 62 64 61 20 28 70 61 74 29 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 2d 77 69 6c 64 63 61 72 64 73 bda.(pat).(file-expand-wildcards
16a60 20 70 61 74 20 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 .pat.t))........................
16a80 20 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 65 .......(projectile-patterns-to-e
16aa0 6e 73 75 72 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 61 74 nsure))))..(defun.projectile-pat
16ac0 74 65 72 6e 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 61 20 6c terns-to-ensure.()..."Return.a.l
16ae0 69 73 74 20 6f 66 20 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 ist.of.relative.file.patterns.".
16b00 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 74 65 72 6e 73 ..(projectile-normalise-patterns
16b20 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 6e .(nth.2.(projectile-parse-dircon
16b40 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 2d fig-file))))..(defun.projectile-
16b60 66 69 6c 74 65 72 69 6e 67 2d 70 61 74 74 65 72 6e 73 20 28 29 0a 20 20 28 63 6f 6e 73 20 28 70 filtering-patterns.()...(cons.(p
16b80 72 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 6e 6f 72 65 29 0a 20 20 rojectile-patterns-to-ignore)...
16ba0 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 65 6e ......(projectile-patterns-to-en
16bc0 73 75 72 65 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 sure)))..(defun.projectile-proje
16be0 63 74 2d 75 6e 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 ct-unignored.()..."Return.list.o
16c00 66 20 70 72 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 f.project.ignored.files/director
16c20 69 65 73 2e 22 0a 20 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 28 61 70 70 65 6e 64 20 28 70 72 ies."...(delete-dups.(append.(pr
16c40 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 63 74 69 6c ojectile-expand-paths.(projectil
16c60 65 2d 70 61 74 68 73 2d 74 6f 2d 65 6e 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-paths-to-ensure)).............
16c80 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 6e 64 2d 70 61 ...........(projectile-expand-pa
16ca0 74 68 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 74 6f 2d 65 6e 73 75 72 65 29 ths.(projectile-files-to-ensure)
16cc0 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 64 69 72 63 6f 6e 66 ))))...(defun.projectile-dirconf
16ce0 69 67 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 61 62 73 6f 6c 75 74 ig-file.()..."Return.the.absolut
16d00 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 64 69 72 63 6f 6e 66 69 e.path.to.the.project's.dirconfi
16d20 67 20 66 69 6c 65 2e 22 0a 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 72 6f g.file."...(expand-file-name.pro
16d40 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 jectile-dirconfig-file.(projecti
16d60 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 le-project-root)))..(defun.proje
16d80 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 20 28 29 0a 20 20 ctile-parse-dirconfig-file.()...
16da0 22 50 61 72 73 65 20 70 72 6f 6a 65 63 74 20 69 67 6e 6f 72 65 20 66 69 6c 65 20 61 6e 64 20 72 "Parse.project.ignore.file.and.r
16dc0 65 74 75 72 6e 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f 72 65 20 61 6e 64 20 eturn.directories.to.ignore.and.
16de0 6b 65 65 70 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 77 69 6c 6c 20 62 65 20 keep...The.return.value.will.be.
16e00 61 20 6c 69 73 74 20 6f 66 20 74 68 72 65 65 20 65 6c 65 6d 65 6e 74 73 2c 20 74 68 65 20 63 61 a.list.of.three.elements,.the.ca
16e20 72 20 62 65 69 6e 67 0a 74 68 65 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 r.being.the.list.of.directories.
16e40 74 6f 20 6b 65 65 70 2c 20 74 68 65 20 63 61 64 72 20 62 65 69 6e 67 20 74 68 65 20 6c 69 73 74 to.keep,.the.cadr.being.the.list
16e60 20 6f 66 20 66 69 6c 65 73 0a 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f .of.files.or.directories.to.igno
16e80 72 65 2c 20 61 6e 64 20 74 68 65 20 63 61 64 64 72 20 62 65 69 6e 67 20 74 68 65 20 6c 69 73 74 re,.and.the.caddr.being.the.list
16ea0 20 6f 66 20 66 69 6c 65 73 0a 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 65 6e 73 75 .of.files.or.directories.to.ensu
16ec0 72 65 2e 0a 0a 53 74 72 69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 2b 20 77 69 6c re...Strings.starting.with.+.wil
16ee0 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 20 64 69 72 65 63 74 l.be.added.to.the.list.of.direct
16f00 6f 72 69 65 73 0a 74 6f 20 6b 65 65 70 2c 20 61 6e 64 20 73 74 72 69 6e 67 73 20 73 74 61 72 74 ories.to.keep,.and.strings.start
16f20 69 6e 67 20 77 69 74 68 20 2d 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 ing.with.-.will.be.added.to.the.
16f40 6c 69 73 74 20 6f 66 0a 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 69 67 6e 6f 72 65 2e 20 20 list.of.directories.to.ignore...
16f60 46 6f 72 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2c 20 77 69 74 68 For.backward.compatibility,.with
16f80 6f 75 74 20 61 0a 70 72 65 66 69 78 20 74 68 65 20 73 74 72 69 6e 67 20 77 69 6c 6c 20 62 65 20 out.a.prefix.the.string.will.be.
16fa0 61 73 73 75 6d 65 64 20 74 6f 20 62 65 20 61 6e 20 69 67 6e 6f 72 65 20 73 74 72 69 6e 67 2e 22 assumed.to.be.an.ignore.string."
16fc0 0a 20 20 28 6c 65 74 20 28 6b 65 65 70 20 69 67 6e 6f 72 65 20 65 6e 73 75 72 65 20 28 64 69 72 ...(let.(keep.ignore.ensure.(dir
16fe0 63 6f 6e 66 69 67 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 66 69 6c config.(projectile-dirconfig-fil
17000 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 2d e))).....(when.(projectile-file-
17020 65 78 69 73 74 73 2d 70 20 64 69 72 63 6f 6e 66 69 67 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d exists-p.dirconfig).......(with-
17040 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 temp-buffer.........(insert-file
17060 2d 63 6f 6e 74 65 6e 74 73 20 64 69 72 63 6f 6e 66 69 67 29 0a 20 20 20 20 20 20 20 20 28 77 68 -contents.dirconfig).........(wh
17080 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 ile.(not.(eobp))...........(pcas
170a0 65 20 28 63 68 61 72 2d 61 66 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 67 e.(char-after).............;;.ig
170c0 6e 6f 72 65 20 63 6f 6d 6d 65 6e 74 20 6c 69 6e 65 73 20 69 66 20 70 72 65 66 69 78 20 63 68 61 nore.comment.lines.if.prefix.cha
170e0 72 20 68 61 73 20 62 65 65 6e 20 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 72 65 r.has.been.set.............((pre
17100 64 20 28 6c 61 6d 62 64 61 20 28 6c 65 61 64 69 6e 67 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 d.(lambda.(leading-char)........
17120 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 69 6c 65 2d 64 69 ..............(and.projectile-di
17140 72 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 rconfig-comment-prefix..........
17160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 6c 65 61 64 69 6e 67 2d 63 68 .................(eql.leading-ch
17180 61 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 ar..............................
171a0 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 63 6f 6e 66 69 67 2d 63 6f 6d 6d 65 6e 74 2d 70 ..projectile-dirconfig-comment-p
171c0 72 65 66 69 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 refix))))..............nil).....
171e0 20 20 20 20 20 20 20 20 28 3f 2b 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 ........(?+.(push.(buffer-substr
17200 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 64 2d 70 6f 73 69 74 ing.(1+.(point)).(line-end-posit
17220 69 6f 6e 29 29 20 6b 65 65 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 2d 20 28 70 75 ion)).keep)).............(?-.(pu
17240 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 6f 69 6e 74 29 sh.(buffer-substring.(1+.(point)
17260 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 69 67 6e 6f 72 65 29 29 0a ).(line-end-position)).ignore)).
17280 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 21 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 73 75 ............(?!.(push.(buffer-su
172a0 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 64 2d 70 bstring.(1+.(point)).(line-end-p
172c0 6f 73 69 74 69 6f 6e 29 29 20 65 6e 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 osition)).ensure)).............(
172e0 5f 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 70 6f 69 6e 74 _.(push.(buffer-substring.(point
17300 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 69 67 6e 6f 72 65 29 29 29 ).(line-end-position)).ignore)))
17320 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 ...........(forward-line))).....
17340 20 20 28 6c 69 73 74 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 66 69 6c ..(list.(mapcar.(lambda.(f).(fil
17360 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 28 73 74 72 69 6e 67 2d 74 72 69 6d e-name-as-directory.(string-trim
17380 20 66 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 64 65 6c 65 74 .f))).....................(delet
173a0 65 20 22 22 20 28 72 65 76 65 72 73 65 20 6b 65 65 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 e."".(reverse.keep)))...........
173c0 20 20 28 6d 61 70 63 61 72 20 23 27 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 ..(mapcar.#'string-trim.........
173e0 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 72 73 65 20 ............(delete."".(reverse.
17400 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 ignore))).............(mapcar.#'
17420 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 20 20 string-trim.....................
17440 28 64 65 6c 65 74 65 20 22 22 20 28 72 65 76 65 72 73 65 20 65 6e 73 75 72 65 29 29 29 29 29 29 (delete."".(reverse.ensure))))))
17460 29 0a 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 72 6f 6f 74 )..(defun.projectile-expand-root
17480 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 29 0a 20 20 22 45 78 70 61 6e 64 20 .(name.&optional.dir)..."Expand.
174a0 4e 41 4d 45 20 74 6f 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 57 68 65 6e 20 44 49 52 20 69 NAME.to.project.root..When.DIR.i
174c0 73 20 73 70 65 63 69 66 69 65 64 20 69 74 20 75 73 65 73 20 44 49 52 27 73 20 70 72 6f 6a 65 63 s.specified.it.uses.DIR's.projec
174e0 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 68 65 20 63 75 72 72 t,.otherwise.it.acts.on.the.curr
17500 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 4e 65 76 65 72 20 75 73 65 20 6f 6e 20 6d 61 6e 79 20 ent.project...Never.use.on.many.
17520 66 69 6c 65 73 20 73 69 6e 63 65 20 69 74 27 73 20 67 6f 69 6e 67 20 74 6f 20 72 65 63 61 6c 63 files.since.it's.going.to.recalc
17540 75 6c 61 74 65 20 74 68 65 0a 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 66 6f 72 20 65 76 65 72 79 ulate.the.project-root.for.every
17560 20 66 69 6c 65 2e 22 0a 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 .file."...(expand-file-name.name
17580 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 29 29 .(projectile-project-root.dir)))
175a0 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6e ..(cl-defun.projectile-completin
175c0 67 2d 72 65 61 64 20 28 70 72 6f 6d 70 74 20 63 68 6f 69 63 65 73 20 26 6b 65 79 20 69 6e 69 74 g-read.(prompt.choices.&key.init
175e0 69 61 6c 2d 69 6e 70 75 74 20 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 65 73 65 6e 74 20 61 20 70 ial-input.action)..."Present.a.p
17600 72 6f 6a 65 63 74 20 74 61 69 6c 6f 72 65 64 20 50 52 4f 4d 50 54 20 77 69 74 68 20 43 48 4f 49 roject.tailored.PROMPT.with.CHOI
17620 43 45 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 20 28 70 72 6f 6a 65 63 74 69 6c CES."...(let.((prompt.(projectil
17640 65 2d 70 72 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 70 72 6f 6d 70 74 29 29 0a e-prepend-project-name.prompt)).
17660 20 20 20 20 20 20 20 20 72 65 73 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73 0a 20 20 20 20 20 ........res).....(setq.res......
17680 20 20 20 20 20 28 70 63 61 73 65 20 28 69 66 20 28 65 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 .....(pcase.(if.(eq.projectile-c
176a0 6f 6d 70 6c 65 74 69 6f 6e 2d 73 79 73 74 65 6d 20 27 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 ompletion-system.'auto).........
176c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .............(cond..............
176e0 20 20 20 20 20 20 20 20 20 28 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 69 64 6f 2d .........((bound-and-true-p.ido-
17700 6d 6f 64 65 29 20 20 27 69 64 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mode)..'ido)....................
17720 20 20 20 28 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 68 65 6c 6d 2d 6d 6f 64 65 29 ...((bound-and-true-p.helm-mode)
17740 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 28 .'helm).......................((
17760 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 69 76 79 2d 6d 6f 64 65 29 20 20 27 69 76 79 bound-and-true-p.ivy-mode)..'ivy
17780 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 74 20 27 64 65 66 61 ).......................(t.'defa
177a0 75 6c 74 29 29 0a 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 ult))....................project
177c0 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 2d 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 ile-completion-system)..........
177e0 20 20 20 28 27 64 65 66 61 75 6c 74 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 ...('default.(completing-read.pr
17800 6f 6d 70 74 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 6e 69 6c 20 69 6e 69 74 69 61 6c 2d 69 6e 70 ompt.choices.nil.nil.initial-inp
17820 75 74 29 29 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 ut)).............('ido.(ido-comp
17840 6c 65 74 69 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 leting-read.prompt.choices.nil.n
17860 69 6c 20 69 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 il.initial-input)).............(
17880 27 68 65 6c 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 'helm..............(if.(and.(fbo
178a0 75 6e 64 70 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 undp.'helm).....................
178c0 20 20 28 66 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 ..(fboundp.'helm-make-source))..
178e0 20 20 20 20 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 ................(helm.:sources..
17900 20 20 20 20 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 ......................(helm-make
17920 2d 73 6f 75 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 -source."Projectile".'helm-sourc
17940 65 2d 73 79 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 e-sync..........................
17960 20 20 20 20 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 ................:candidates.choi
17980 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 20 ces.............................
179a0 20 20 20 20 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 .............:action.(if.action.
179c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
179e0 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 67 31 20 61 63 74 69 .....................(prog1.acti
17a00 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on..............................
17a20 20 20 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 65 74 71 20 ..........................(setq.
17a40 61 63 74 69 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 action.nil))....................
17a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17a80 23 27 69 64 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 #'identity))....................
17aa0 20 20 20 20 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 ....:prompt.prompt..............
17ac0 20 20 20 20 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 ..........:input.initial-input..
17ae0 20 20 20 20 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 ......................:buffer."*
17b00 68 65 6c 6d 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 helm-projectile*")..............
17b20 20 20 28 75 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 ..(user-error."Please.install.he
17b40 6c 6d 22 29 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 lm"))).............('ivy........
17b60 20 20 20 20 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 ......(if.(fboundp.'ivy-read)...
17b80 20 20 20 20 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 ...............(ivy-read.prompt.
17ba0 63 68 6f 69 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 choices.........................
17bc0 20 20 20 3a 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 ...:initial-input.initial-input.
17be0 20 20 20 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 61 63 74 69 ...........................:acti
17c00 6f 6e 20 28 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 on.(prog1.action................
17c20 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
17c40 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))........................
17c60 20 20 20 20 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 ....:caller.'projectile-completi
17c80 6e 67 2d 72 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 ng-read)................(user-er
17ca0 72 6f 72 20 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 ror."Please.install.ivy"))).....
17cc0 20 20 20 20 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 ........(_.(funcall.projectile-c
17ce0 6f 6d 70 6c 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 ompletion-system.prompt.choices)
17d00 29 29 29 0a 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 ))).....(if.action.........(func
17d20 61 6c 6c 20 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 all.action.res).......res)))..(d
17d40 65 66 75 6e 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 efun.projectile-project-files.(p
17d60 72 6f 6a 65 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 roject-root)..."Return.a.list.of
17d80 20 66 69 6c 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 .files.for.the.PROJECT-ROOT."...
17da0 28 6c 65 74 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 (let.(files).....;;.If.the.cache
17dc0 20 69 73 20 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 .is.too.stale,.don't.use.it.....
17de0 20 28 77 68 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 .(when.projectile-files-cache-ex
17e00 70 69 72 65 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 pire.......(let.((cache-time....
17e20 20 20 20 20 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 ..........(gethash.project-root.
17e40 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 29 29 projectile-projects-cache-time))
17e60 29 0a 20 20 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 ).........(when.(or.(null.cache-
17e80 74 69 6d 65 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 time)...................(<.(+.ca
17ea0 63 68 65 2d 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 che-time.projectile-files-cache-
17ec0 65 78 70 69 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 expire)......................(pr
17ee0 6f 6a 65 63 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 ojectile-time-seconds)))........
17f00 20 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 ...(remhash.project-root.project
17f20 69 6c 65 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 28 72 ile-projects-cache)...........(r
17f40 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 70 emhash.project-root.projectile-p
17f60 72 6f 6a 65 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 rojects-cache-time))))......;;.U
17f80 73 65 20 74 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 se.the.cache,.if.requested.and.a
17fa0 76 61 69 6c 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 vailable......(when.projectile-e
17fc0 6e 61 62 6c 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 nable-caching.......(setq.files.
17fe0 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
18000 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 29 29 29 0a 0a 20 20 20 20 3b 3b 20 43 61 6c 63 75 -projects-cache)))......;;.Calcu
18020 6c 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 late.the.list.of.files......(whe
18040 6e 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 n.(null.files).......(when.proje
18060 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 6d 65 ctile-enable-caching.........(me
18080 73 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 ssage."Projectile.is.initializin
180a0 67 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 g.cache.for.%s....".project-root
180c0 29 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 )).......(setq.files............
180e0 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 6e 67 2d 6d 65 74 .(if.(eq.projectile-indexing-met
18100 68 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 hod.'alien).................;;.I
18120 6e 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 n.alien.mode.we.can.just.skip.re
18140 61 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 ading.................;;..projec
18160 74 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 tile.and.find.all.files.in.the.r
18180 6f 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 oot.dir..................(projec
181a0 74 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 tile-dir-files-alien.project-roo
181c0 74 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 t)...............;;.If.a.project
181e0 20 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 .is.defined.as.a.list.of.subfold
18200 65 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 ers...............;;.then.we'll.
18220 68 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 have.the.files.returned.for.each
18240 20 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 .subfolder,...............;;.so.
18260 74 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 they.are.relative.to.the.project
18280 20 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 .root................;;.........
182a0 20 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 ......;;.TODO:.That's.pretty.slo
182c0 77 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 w.and.we.need.to.improve.it.....
182e0 20 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 ...........;;.One.options.would.
18300 62 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 be.to.pass.explicitly.the.subdir
18320 73 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 s...............;;.to.commands.l
18340 69 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 ike.`git.ls-files`.which.would.r
18360 65 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 eturn...............;;.files.pat
18380 68 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 hs.relative.to.the.project.root.
183a0 0a 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 ...............(cl-mapcan.......
183c0 20 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 .........(lambda.(dir)..........
183e0 20 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 ........(mapcar.(lambda.(f).....
18400 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 65 6c .......................(file-rel
18420 61 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 ative-name.(concat.dir.f).......
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 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 .........project-root)).........
18480 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 64 69 72 .................(projectile-dir
184a0 2d 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 -files.dir)))................(pr
184c0 6f 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 ojectile-get-project-directories
184e0 20 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 .project-root))))........;;.Save
18500 20 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 .the.cached.list........(when.pr
18520 6f 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 ojectile-enable-caching.........
18540 28 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 (projectile-cache-project.projec
18560 74 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 t-root.files)))......;;;.Sorting
18580 0a 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 .....;;.....;;.Files.can't.be.ca
185a0 63 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 ched.in.sorted.order.as.some.sor
185c0 74 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 ting.schemes.....;;.require.dyna
185e0 6d 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 mic.data...Sorting.is.ignored.co
18600 6d 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 mpletely.when.in.....;;.alien.mo
18620 64 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 de......(if.(eq.projectile-index
18640 69 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 ing-method.'alien).........files
18660 0a 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 .......(projectile-sort-files.fi
18680 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 63 75 72 72 65 les))))..(defun.projectile-curre
186a0 6e 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 nt-project-files.()..."Return.a.
186c0 6c 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 list.of.the.files.in.the.current
186e0 20 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 .project."...(projectile-project
18700 2d 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 -files.(projectile-acquire-root)
18720 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 63 65 73 73 2d 63 75 ))..(defun.projectile-process-cu
18740 72 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 rrent-project-files.(action)..."
18760 50 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 Process.the.current.project's.fi
18780 6c 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 les.using.ACTION."...(let.((proj
187a0 65 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 ect-files.(projectile-current-pr
187c0 6f 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 oject-files)).........(default-d
187e0 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 72 6f 6f irectory.(projectile-project-roo
18800 74 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 t))).....(dolist.(filename.proje
18820 63 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 ct-files).......(funcall.action.
18840 66 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 filename))))..(defun.projectile-
18860 70 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 project-dirs.(project)..."Return
18880 20 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 .a.list.of.dirs.for.PROJECT."...
188a0 28 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 (delete-dups....(delq.nil.......
188c0 20 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 ...(mapcar.#'file-name-directory
188e0 0a 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 ..................(projectile-pr
18900 6f 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 oject-files.project)))))..(defun
18920 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 63 74 2d 64 69 72 73 .projectile-current-project-dirs
18940 20 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 .()..."Return.a.list.of.dirs.for
18960 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 70 72 6f 6a 65 63 .the.current.project."...(projec
18980 74 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 tile-project-dirs.(projectile-ac
189a0 71 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 quire-root)))..(defun.projectile
189c0 2d 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 -get-other-files.(file-name.&opt
189e0 69 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 ional.flex-matching)..."Return.a
18a00 20 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 .list.of.other.files.for.FILE-NA
18a20 4d 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 ME..The.list.depends.on.`:relate
18a40 64 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 d-files-fn'.project.option.and.`
18a60 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 20 20 46 projectile-other-file-alist'...F
18a80 6f 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 or.the.latter,.FLEX-MATCHING.can
18aa0 20 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 .be.used.to.match.any.basename."
18ac0 0a 20 20 28 69 66 2d 6c 65 74 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--
18ae0 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
18b00 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
18b20 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
18b40 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
18b60 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............
18b80 20 20 20 20 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
18ba0 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)..
18bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
18be0 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
18c00 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
18c20 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).
18c40 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
18c60 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
18c80 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
18ca0 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
18cc0 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.
18ce0 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
18d00 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
18d20 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
18d40 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.
18d60 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
18d80 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
18da0 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
18dc0 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
18de0 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))......
18e00 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-
18e20 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
18e40 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
18e60 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
18e80 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
18ea0 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
18ec0 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
18ee0 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...............................
18f00 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
18f20 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
18f40 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.
18f60 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
18f80 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
18fa0 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
18fc0 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
18fe0 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
19000 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
19020 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
19040 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
19060 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
19080 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'
190a0 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
190c0 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
190e0 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
19100 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
19120 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)..
19140 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
19160 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
19180 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.
191a0 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
191c0 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
191e0 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
19200 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
19220 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.
19240 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.
19260 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'.".
19280 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
192a0 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
192c0 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 ................................
192e0 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))..;;;#
19300 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
19320 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
19340 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
19360 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
19380 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
193a0 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
193c0 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
193e0 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.
19400 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.
19420 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
19440 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
19460 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
19480 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.
194a0 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
194c0 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...............
194e0 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
19500 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
19520 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
19540 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
19560 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
19580 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
195a0 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.
195c0 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
195e0 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
19600 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
19620 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
19640 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
19660 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
19680 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
196a0 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.
196c0 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
196e0 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.'.'"
19700 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
19720 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
19740 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?...
19760 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
19780 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
197a0 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
197c0 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.
197e0 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."
19800 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))............
19820 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)...
19840 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
19860 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
19880 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
198a0 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-
198c0 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
198e0 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
19900 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
19920 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
19940 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
19960 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
19980 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
199a0 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
199c0 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
199e0 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))).........
19a00 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
19a20 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
19a40 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)).....
19a60 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
19a80 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
19aa0 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))
19ac0 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
19ae0 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
19b00 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
19b20 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
19b40 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
19b60 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
19b80 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
19ba0 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.
19bc0 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
19be0 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
19c00 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
19c20 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
19c40 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.
19c60 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
19c80 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
19ca0 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
19cc0 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
19ce0 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
19d00 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)......................
19d20 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
19d40 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
19d60 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
19d80 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)))....
19da0 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
19dc0 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
19de0 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
19e00 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)..
19e20 20 20 20 20 20 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
19e40 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..................
19e60 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
19e80 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."\\'").....
19ea0 20 20 20 20 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
19ec0 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................
19ee0 20 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
19f00 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."").................
19f20 20 20 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
19f40 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))....................
19f60 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 ....................."\\'")))...
19f80 20 20 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
19fa0 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.(
19fc0 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................
19fe0 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)...
1a000 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
1a020 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)).....
1a040 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
1a060 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......
1a080 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
1a0a0 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 ................................
1a0c0 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)..................
1a0e0 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
1a100 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...............................
1a120 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)......
1a140 20 20 20 20 20 20 20 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 ...............................(
1a160 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...............
1a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a1a0 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
1a1c0 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).......................
1a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a200 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
1a220 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)......
1a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1a260 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."
1a280 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
1a2a0 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)))))).....................
1a2c0 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))......
1a2e0 20 20 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
1a300 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.....
1a320 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.
1a340 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.
1a360 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
1a380 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
1a3a0 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).........
1a3c0 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._).....
1a3e0 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
1a400 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
1a420 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
1a440 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)))))...........
1a460 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
1a480 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
1a4a0 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
1a4c0 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)))
1a4e0 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
1a500 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
1a520 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)
1a540 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
1a560 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
1a580 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
1a5a0 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
1a5c0 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
1a5e0 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.(
1a600 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)............
1a620 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
1a640 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))......
1a660 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.
1a680 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.
1a6a0 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
1a6c0 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
1a6e0 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).(
1a700 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)).......
1a720 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
1a740 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.....................(
1a760 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................
1a780 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)....
1a7a0 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
1a7c0 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))...........
1a7e0 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).......
1a800 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))..
1a820 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
1a840 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
1a860 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
1a880 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
1a8a0 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
1a8c0 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..
1a8e0 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,
1a900 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'
1a920 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
1a940 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
1a960 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'
1a980 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
1a9a0 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
1a9c0 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
1a9e0 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
1aa00 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
1aa20 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
1aa40 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
1aa60 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
1aa80 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)).........
1aaa0 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).
1aac0 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
1aae0 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))......................((>.(
1ab00 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)................
1ab20 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
1ab40 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))........
1ab60 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................
1ab80 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
1aba0 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))
1abc0 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.#
1abe0 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
1ac00 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
1ac20 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
1ac40 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
1ac60 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
1ac80 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)..
1aca0 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
1acc0 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...
1ace0 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
1ad00 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..
1ad20 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
1ad40 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
1ad60 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.
1ad80 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
1ada0 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
1adc0 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
1ade0 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
1ae00 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
1ae20 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.
1ae40 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
1ae60 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/
1ae80 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.
1aea0 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\".
1aec0 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
1aee0 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
1af00 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
1af20 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
1af40 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
1af60 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
1af80 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
1afa0 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
1afc0 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
1afe0 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.
1b000 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
1b020 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
1b040 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
1b060 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
1b080 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.
1b0a0 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
1b0c0 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
1b0e0 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
1b100 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\".
1b120 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..
1b140 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.
1b160 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
1b180 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
1b1a0 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
1b1c0 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
1b1e0 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-
1b200 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
1b220 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
1b240 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
1b260 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...
1b280 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
1b2a0 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..
1b2c0 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
1b2e0 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
1b300 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.
1b320 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
1b340 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
1b360 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
1b380 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
1b3a0 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
1b3c0 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.
1b3e0 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
1b400 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/
1b420 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.
1b440 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\".
1b460 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
1b480 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
1b4a0 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
1b4c0 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
1b4e0 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
1b500 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
1b520 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
1b540 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
1b560 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
1b580 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
1b5a0 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
1b5c0 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
1b5e0 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-
1b600 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.
1b620 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
1b640 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
1b660 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
1b680 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
1b6a0 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
1b6c0 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
1b6e0 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.
1b700 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
1b720 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
1b740 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")...(
1b760 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
1b780 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
1b7a0 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
1b7c0 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
1b7e0 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)
1b800 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
1b820 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.
1b840 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
1b860 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.
1b880 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
1b8a0 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
1b8c0 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
1b8e0 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
1b900 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
1b920 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.
1b940 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
1b960 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
1b980 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
1b9a0 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,.
1b9c0 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
1b9e0 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\"
1ba00 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
1ba20 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),.`
1ba40 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-
1ba60 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
1ba80 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
1baa0 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
1bac0 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
1bae0 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
1bb00 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
1bb20 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
1bb40 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
1bb60 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
1bb80 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.
1bba0 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,
1bbc0 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
1bbe0 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
1bc00 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
1bc20 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
1bc40 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
1bc60 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
1bc80 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
1bca0 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
1bcc0 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,
1bce0 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.
1bd00 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
1bd20 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-
1bd40 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
1bd60 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
1bd80 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
1bda0 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
1bdc0 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
1bde0 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
1be00 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
1be20 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
1be40 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'....
1be60 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
1be80 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
1bea0 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'".
1bec0 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
1bee0 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
1bf00 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
1bf20 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))....
1bf40 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
1bf60 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:."...........
1bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1bfa0 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
1bfc0 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
1bfe0 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.
1c000 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
1c020 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))....
1c040 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
1c060 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
1c080 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
1c0a0 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
1c0c0 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
1c0e0 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
1c100 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
1c120 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
1c140 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
1c160 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
1c180 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.(&
1c1a0 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
1c1c0 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
1c1e0 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
1c200 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
1c220 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
1c240 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")...(
1c260 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
1c280 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)
1c2a0 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
1c2c0 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
1c2e0 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
1c300 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
1c320 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
1c340 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-
1c360 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
1c380 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
1c3a0 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
1c3c0 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))..;;;
1c3e0 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
1c400 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
1c420 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
1c440 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
1c460 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
1c480 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
1c4a0 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))
1c4c0 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
1c4e0 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
1c500 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)....
1c520 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
1c540 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))...
1c560 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
1c580 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
1c5a0 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")))))..;;;#
1c5c0 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
1c5e0 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
1c600 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-
1c620 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
1c640 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
1c660 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
1c680 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
1c6a0 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
1c6c0 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
1c6e0 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 61 64 ojectile-acquire-root))).....(ad
1c700 64 2d 64 69 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 d-dir-local-variable.mode.variab
1c720 6c 65 20 76 61 6c 75 65 29 0a 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 le.value).....(save-buffer).....
1c740 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a (kill-buffer)))..;;;###autoload.
1c760 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 63 (defun.projectile-delete-dir-loc
1c780 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 52 al-variable.(mode.variable)..."R
1c7a0 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 77 un.`delete-dir-local-variable'.w
1c7c0 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 72 ith..dir-locals.el.in.root.of.pr
1c7e0 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 45 oject...Parameters.MODE.VARIABLE
1c800 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 64 .VALUE.are.passed.directly.to.`d
1c820 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 6c elete-dir-local-variable'."...(l
1c840 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 20 et.((inhibit-read-only.t).......
1c860 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 65 ..(default-directory.(projectile
1c880 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 64 69 72 -acquire-root))).....(delete-dir
1c8a0 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 29 0a 20 -local-variable.mode.variable)..
1c8c0 20 20 20 28 73 61 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 ...(save-buffer).....(kill-buffe
1c8e0 72 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 69 6c r)))....;;;;.Sorting.project.fil
1c900 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 73 20 es.(defun.projectile-sort-files.
1c920 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 67 20 (files)..."Sort.FILES.according.
1c940 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 20 28 to.`projectile-sort-order'."...(
1c960 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 20 20 cl-case.projectile-sort-order...
1c980 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 20 28 ..(default.files).....(recentf.(
1c9a0 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 73 74 projectile-sort-by-recentf-first
1c9c0 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 28 70 .files)).....(recently-active.(p
1c9e0 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 69 76 rojectile-sort-by-recently-activ
1ca00 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 69 6f e-first.files)).....(modificatio
1ca20 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 69 66 n-time.(projectile-sort-by-modif
1ca40 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 73 73 ication-time.files)).....(access
1ca60 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 73 73 -time.(projectile-sort-by-access
1ca80 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 74 69 -time.files))))..(defun.projecti
1caa0 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 73 29 le-sort-by-recentf-first.(files)
1cac0 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 73 74 ..."Sort.FILES.by.a.recent.first
1cae0 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 65 6e .scheme."...(let.((project-recen
1cb00 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 69 6c tf-files.(projectile-recentf-fil
1cb20 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 6e 74 es))).....(append.project-recent
1cb40 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 65 2d f-files.............(projectile-
1cb60 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 74 66 difference.files.project-recentf
1cb80 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 73 6f -files))))..(defun.projectile-so
1cba0 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 69 6c rt-by-recently-active-first.(fil
1cbc0 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 6e 74 es)..."Sort.FILES.by.most.recent
1cbe0 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 6c 65 ly.active.buffers.or.opened.file
1cc00 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 61 63 s."...(let.((project-recently-ac
1cc20 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 79 2d tive-files.(projectile-recently-
1cc40 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 6f 6a active-files))).....(append.proj
1cc60 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 20 20 ect-recently-active-files.......
1cc80 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 69 6c ......(projectile-difference.fil
1cca0 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 65 73 es.project-recently-active-files
1ccc0 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 79 2d ))))..(defun.projectile-sort-by-
1cce0 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 6f 72 modification-time.(files)..."Sor
1cd00 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 0a 20 t.FILES.by.modification.time."..
1cd20 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 6a 65 .(let.((default-directory.(proje
1cd40 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 73 6f ctile-project-root))).....(cl-so
1cd60 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 20 20 rt......(copy-sequence.files)...
1cd80 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 20 20 ...(lambda.(file1.file2)........
1cda0 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 65 2d (let.((file1-mtime.(nth.5.(file-
1cdc0 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 20 20 attributes.file1))).............
1cde0 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 72 69 .(file2-mtime.(nth.5.(file-attri
1ce00 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 28 74 butes.file2))))..........(not.(t
1ce20 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 74 69 ime-less-p.file1-mtime.file2-mti
1ce40 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 6f 72 me)))))))..(defun.projectile-sor
1ce60 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 72 74 t-by-access-time.(files)..."Sort
1ce80 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 20 28 .FILES.by.access.time."...(let.(
1cea0 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 2d 70 (default-directory.(projectile-p
1cec0 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 20 20 roject-root))).....(cl-sort.....
1cee0 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 61 6d .(copy-sequence.files)......(lam
1cf00 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 28 28 bda.(file1.file2)........(let.((
1cf20 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 62 75 file1-atime.(nth.4.(file-attribu
1cf40 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 65 32 tes.file1)))..............(file2
1cf60 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 20 66 -atime.(nth.4.(file-attributes.f
1cf80 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 65 73 ile2))))..........(not.(time-les
1cfa0 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 29 29 s-p.file1-atime.file2-atime)))))
1cfc0 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 72 6f ))....;;;;.Find.directory.in.pro
1cfe0 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 65 63 ject.functionality.(defun.projec
1d000 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 68 65 tile--find-dir.(invalidate-cache
1d020 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 75 6d .&optional.dired-variant)..."Jum
1d040 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 6e 67 p.to.a.project's.directory.using
1d060 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 43 41 .completion...With.INVALIDATE-CA
1d080 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 74 2e CHE.invalidates.the.cache.first.
1d0a0 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 64 65 ..With.DIRED-VARIANT.set.to.a.de
1d0c0 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 64 27 fun,.use.that.instead.of.`dired'
1d0e0 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 20 64 ...A.typical.example.of.such.a.d
1d100 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 64 6f efun.would.be.`dired-other-windo
1d120 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 70 72 w'.or.`dired-other-frame'"...(pr
1d140 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 65 20 ojectile-maybe-invalidate-cache.
1d160 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 6f 6a invalidate-cache)...(let*.((proj
1d180 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))..
1d1a0 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 65 74 ........(dir.(projectile-complet
1d1c0 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 64 2d e-dir.project))..........(dired-
1d1e0 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 0a 20 v.(or.dired-variant.#'dired)))..
1d200 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 6c 65 ...(funcall.dired-v.(expand-file
1d220 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 6f 6f -name.dir.project)).....(run-hoo
1d240 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 29 0a ks.'projectile-find-dir-hook))).
1d260 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 6c .;;;###autoload.(defun.projectil
1d280 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 74 65 e-find-dir.(&optional.invalidate
1d2a0 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 20 64 -cache)..."Jump.to.a.project's.d
1d2c0 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 74 68 irectory.using.completion...With
1d2e0 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 20 69 .a.prefix.arg.INVALIDATE-CACHE.i
1d300 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 20 28 nvalidates.the.cache.first."...(
1d320 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 2d 2d interactive."P")...(projectile--
1d340 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 3b 3b find-dir.invalidate-cache))..;;;
1d360 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
1d380 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 20 69 nd-dir-other-window.(&optional.i
1d3a0 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 70 72 nvalidate-cache)..."Jump.to.a.pr
1d3c0 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 64 6f oject's.directory.in.other.windo
1d3e0 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 65 66 w.using.completion...With.a.pref
1d400 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 64 61 ix.arg.INVALIDATE-CACHE.invalida
1d420 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 61 63 tes.the.cache.first."...(interac
1d440 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 64 69 tive."P")...(projectile--find-di
1d460 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 65 72 r.invalidate-cache.#'dired-other
1d480 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 75 6e -window))..;;;###autoload.(defun
1d4a0 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 6d 65 .projectile-find-dir-other-frame
1d4c0 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 20 .(&optional.invalidate-cache)...
1d4e0 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 20 69 "Jump.to.a.project's.directory.i
1d500 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 2e 0a n.other.frame.using.completion..
1d520 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 43 41 .With.a.prefix.arg.INVALIDATE-CA
1d540 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 74 2e CHE.invalidates.the.cache.first.
1d560 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 74 "...(interactive."P")...(project
1d580 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 20 23 ile--find-dir.invalidate-cache.#
1d5a0 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 72 6f 'dired-other-frame))..(defun.pro
1d5c0 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 0a 20 jectile-complete-dir.(project)..
1d5e0 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 6c 65 .(let.((project-dirs.(projectile
1d600 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 70 72 -project-dirs.project))).....(pr
1d620 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 22 46 ojectile-completing-read......"F
1d640 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 2d 66 ind.dir:."......(if.projectile-f
1d660 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 20 20 ind-dir-includes-top-level......
1d680 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 72 73 ....(append.'("./").project-dirs
1d6a0 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 23 23 )........project-dirs))))..;;;##
1d6c0 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 64 #autoload.(defun.projectile-find
1d6e0 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 74 65 -test-file.(&optional.invalidate
1d700 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 20 74 -cache)..."Jump.to.a.project's.t
1d720 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 74 68 est.file.using.completion...With
1d740 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 20 69 .a.prefix.arg.INVALIDATE-CACHE.i
1d760 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 20 28 nvalidates.the.cache.first."...(
1d780 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 2d 6d interactive."P")...(projectile-m
1d7a0 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 74 65 aybe-invalidate-cache.invalidate
1d7c0 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 69 6c -cache)...(let.((file.(projectil
1d7e0 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 69 6c e-completing-read."Find.test.fil
1d800 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e:."............................
1d820 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 72 65 ...............(projectile-curre
1d840 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 28 66 nt-project-test-files)))).....(f
1d860 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 65 20 ind-file.(expand-file-name.file.
1d880 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 0a 28 (projectile-project-root)))))..(
1d8a0 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 69 6c defun.projectile-test-files.(fil
1d8c0 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 4c 45 es)..."Return.only.the.test.FILE
1d8e0 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 63 74 S."...(cl-remove-if-not.'project
1d900 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 6e 20 ile-test-file-p.files))..(defun.
1d920 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 73 2d projectile--merge-related-files-
1d940 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 67 65 fns.(related-files-fns)..."Merge
1d960 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 74 6f .multiple.RELATED-FILES-FNS.into
1d980 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 68 29 .one.function."...(lambda.(path)
1d9a0 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 20 28 .....(let.(merged-plist).......(
1d9c0 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 65 72 dolist.(fn.related-files-fns.mer
1d9e0 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 74 20 ged-plist).........(let.((plist.
1da00 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 28 63 (funcall.fn.path)))...........(c
1da20 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 74 20 l-loop.for.(key.value).on.plist.
1da40 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 6f 20 by.#'cddr....................do.
1da60 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 29 20 (let.((values.(if.(consp.value).
1da80 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 20 20 value.(list.value))))...........
1daa0 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 72 20 ..............(if.(plist-member.
1dac0 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 20 20 merged-plist.key)...............
1dae0 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 74 20 ..............(nconc.(plist-get.
1db00 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 20 20 merged-plist.key).values).......
1db20 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 65 64 ....................(setq.merged
1db40 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 20 6b -plist.(plist-put.merged-plist.k
1db60 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 6f 6a ey.values))))))))))..(defun.proj
1db80 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 72 6f ectile--related-files-plist.(pro
1dba0 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 69 73 ject-root.file)..."Return.a.plis
1dbc0 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 20 69 t.containing.all.related.files.i
1dbe0 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 4f 4f nformation.for.FILE..PROJECT-ROO
1dc00 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 6c 65 T.is.the.project.root."...(if-le
1dc20 74 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 62 73 6f t.((rel-path.(if.(file-name-abso
1dc40 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 20 20 20 lute-p.file)....................
1dc60 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 65 20 70 ......(file-relative-name.file.p
1dc80 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 20 20 roject-root)....................
1dca0 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 2d 66 75 ....file))............(custom-fu
1dcc0 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 6c 61 74 nction.(funcall.projectile-relat
1dce0 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 69 6c 65 ed-files-fn-function.(projectile
1dd00 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 61 6c 6c -project-type)))).......(funcall
1dd20 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 63 74 69 .(cond.((functionp.custom-functi
1dd40 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 74 6f 6d on).......................custom
1dd60 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -function)......................
1dd80 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 20 20 20 ((consp.custom-function)........
1dda0 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 65 72 67 ...............(projectile--merg
1ddc0 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 6e 63 74 e-related-files-fns.custom-funct
1dde0 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 0a 20 20 ion))......................(t...
1de00 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 6e 73 75 ....................(error."Unsu
1de20 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 64 2d 66 pported.value.type.of.:related-f
1de40 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 6c 2d 70 iles-fn")))................rel-p
1de60 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 6c 61 74 ath)))..(defun.projectile--relat
1de80 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 6b 69 6e ed-files-plist-by-kind.(file.kin
1dea0 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 6e 67 20 d)..."Return.a.plist.containing.
1dec0 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 49 4e 44 :paths.and/or.:predicate.of.KIND
1dee0 20 66 6f 72 20 46 49 4c 45 2e 22 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d .for.FILE."...(if-let.((project-
1df00 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 0a root.(projectile-project-root)).
1df20 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 65 2d 2d 72 ...........(plist.(projectile--r
1df40 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 6f 6f 74 20 elated-files-plist.project-root.
1df60 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 20 28 70 6c file))............(has-kind?.(pl
1df80 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 20 20 20 28 ist-member.plist.kind))).......(
1dfa0 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 20 70 6c 69 let*.((kind-value.(plist-get.pli
1dfc0 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 65 73 20 28 st.kind))..............(values.(
1dfe0 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 20 73 74 72 if.(cl-typep.kind-value.'(or.str
1e000 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 20 20 20 20 ing.function))..................
1e020 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 20 20 20 20 ........(list.kind-value).......
1e040 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 29 0a 20 20 .................kind-value))...
1e060 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 70 73 20 28 ...........(paths.(delete-dups.(
1e080 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 6c 75 65 73 cl-remove-if-not.'stringp.values
1e0a0 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 20 28 64 65 )))..............(predicates.(de
1e0c0 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 27 66 75 6e lete-dups.(cl-remove-if-not.'fun
1e0e0 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 70 70 65 6e ctionp.values)))).........(appen
1e100 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 20 3a 70 61 d..........;;.Make.sure.that.:pa
1e120 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 74 68 65 72 ths.exists.even.with.nil.if.ther
1e140 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 28 77 68 65 e.is.no.predicates..........(whe
1e160 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 29 29 0a 20 n.(or.paths.(null.predicates))..
1e180 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 65 6d 6f 76 ..........(list.:paths.(cl-remov
1e1a0 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 20 20 20 20 e-if-not........................
1e1c0 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 20 20 20 20 ..(lambda.(f)...................
1e1e0 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 69 73 74 73 .........(projectile-file-exists
1e200 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 61 6d 65 2d -p.(projectile-expand-file-name-
1e220 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 20 20 20 20 wildcard.f.project-root)))......
1e240 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 0a 20 20 20 ....................paths)))....
1e260 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 20 20 20 20 ......(when.predicates..........
1e280 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 28 6c 65 6e ..(list.:predicate.(if.(=.1.(len
1e2a0 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 20 20 20 20 gth.predicates))................
1e2c0 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 61 74 65 73 .................(car.predicates
1e2e0 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 )...............................
1e300 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 20 20 20 20 (lambda.(other-file)............
1e320 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 65 20 28 6c .....................(cl-some.(l
1e340 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 20 20 20 20 ambda.(predicate)...............
1e360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 .............................(fu
1e380 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 0a 20 20 20 ncall.predicate.other-file))....
1e3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e3c0 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 64 65 66 75 ......predicates)))))))))..(defu
1e3e0 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 66 72 6f 6d n.projectile--related-files-from
1e400 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 69 73 74 20 -plist.(plist)..."Return.a.list.
1e420 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 72 6f 6d 20 of.files.matching.to.PLIST.from.
1e440 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 65 74 2a 20 current.project.files."...(let*.
1e460 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 20 3a 70 72 ((predicate.(plist-get.plist.:pr
1e480 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 6c 69 73 74 edicate))..........(paths.(plist
1e4a0 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 6c 65 74 65 -get.plist.:paths))).....(delete
1e4c0 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 20 20 20 20 -dups.(append...................
1e4e0 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 6e 20 70 72 paths...................(when.pr
1e500 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 28 63 6c 2d edicate.....................(cl-
1e520 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 6a 65 63 74 remove-if-not.predicate.(project
1e540 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 29 29 29 29 ile-current-project-files)))))))
1e560 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 2d 66 69 6c ..(defun.projectile--related-fil
1e580 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 69 73 74 20 es-kinds(file)..."Return.a.list.
1e5a0 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 20 72 65 6c o.keywords.meaning.available.rel
1e5c0 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 6c 65 74 20 ated.kinds.for.FILE."...(if-let.
1e5e0 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 72 6f 6a 65 ((project-root.(projectile-proje
1e600 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 20 28 70 72 6f ct-root))............(plist.(pro
1e620 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 70 72 6f jectile--related-files-plist.pro
1e640 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 2d 6c 6f 6f 70 ject-root.file))).......(cl-loop
1e660 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 0a 20 20 20 20 .for.key.in.plist.by.#'cddr.....
1e680 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 28 64 65 66 75 ...........collect.key)))..(defu
1e6a0 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 20 28 66 69 6c n.projectile--related-files.(fil
1e6c0 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 20 72 65 6c 61 e.kind)..."Return.a.list.of.rela
1e6e0 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 22 0a 20 20 28 ted.files.of.KIND.for.FILE."...(
1e700 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 72 6f 6d 2d 70 projectile--related-files-from-p
1e720 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 69 6c 65 73 2d list.(projectile--related-files-
1e740 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 0a 28 64 65 66 plist-by-kind.file.kind)))..(def
1e760 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 2d 66 69 6c 65 un.projectile--find-related-file
1e780 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 68 6f 6f 73 65 .(file.&optional.kind)..."Choose
1e7a0 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 74 6f 20 46 49 .a.file.from.files.related.to.FI
1e7c0 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 70 72 6f 76 69 LE.as.KIND..If.KIND.is.not.provi
1e7e0 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 64 73 20 63 61 ded,.a.list.of.possible.kinds.ca
1e800 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 64 0a 20 20 20 n.be.chosen."...(unless.kind....
1e820 20 28 69 66 2d 6c 65 74 20 28 28 61 76 61 69 6c 61 62 6c 65 2d 6b 69 6e 64 73 20 28 70 72 6f 6a .(if-let.((available-kinds.(proj
1e840 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 6c 65 ectile--related-files-kinds.file
1e860 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 20 28 3d 20 28 6c ))).........(setq.kind.(if.(=.(l
1e880 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 20 20 20 20 20 20 ength.available-kinds).1).......
1e8a0 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 6c 61 62 6c 65 2d .................(car.available-
1e8c0 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 20 20 28 69 6e 74 kinds)......................(int
1e8e0 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 2d 72 65 61 64 20 ern.(projectile-completing-read.
1e900 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 29 29 0a 20 20 20 "Kind.:".available-kinds))))....
1e920 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 73 20 66 6f 75 6e ...(error."No.related.files.foun
1e940 64 22 29 29 29 0a 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 73 20 28 70 d")))....(if-let.((candidates.(p
1e960 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 66 69 6c 65 20 6b 69 rojectile--related-files.file.ki
1e980 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 78 70 61 6e 64 2d 72 nd))).......(projectile-expand-r
1e9a0 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 72 6f 6d 2d 63 61 6e oot.(projectile--choose-from-can
1e9c0 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 28 65 72 72 6f 72 0a didates.candidates)).....(error.
1e9e0 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 20 66 69 6c 65 20 61 ....."No.matching.related.file.a
1ea00 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 74 79 70 65 20 60 25 s.`%s'.found.for.project.type.`%
1ea20 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 2d 70 72 6f 6a 65 63 s'"......kind.(projectile-projec
1ea40 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 64 0a 28 64 65 66 75 t-type))))..;;;###autoload.(defu
1ea60 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 2d 66 69 6c 65 2d 6f n.projectile-find-related-file-o
1ea80 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 6c 61 74 65 64 20 66 ther-window.()..."Open.related.f
1eaa0 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 69 6e 74 65 72 61 63 ile.in.other.window."...(interac
1eac0 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 77 69 6e 64 6f 77 0a tive)...(find-file-other-window.
1eae0 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 74 65 64 2d 66 69 6c ...(projectile--find-related-fil
1eb00 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 3b 3b 3b 23 23 23 61 e.(buffer-file-name))))..;;;###a
1eb20 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 64 2d 72 utoload.(defun.projectile-find-r
1eb40 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 29 0a 20 20 22 4f 70 elated-file-other-frame.()..."Op
1eb60 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 66 72 61 6d 65 2e 22 en.related.file.in.other.frame."
1eb80 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 66 69 6c 65 2d 6f 74 ...(interactive)...(find-file-ot
1eba0 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 2d 66 69 6e 64 2d 72 her-frame....(projectile--find-r
1ebc0 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 6e 61 6d 65 29 29 29 elated-file.(buffer-file-name)))
1ebe0 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
1ec00 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 20 22 4f 70 65 6e 20 ile-find-related-file()..."Open.
1ec20 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 74 69 76 65 29 0a 20 related.file."...(interactive)..
1ec40 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 65 2d 2d 66 69 6e 64 .(find-file....(projectile--find
1ec60 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 6e 61 6d 65 29 -related-file.(buffer-file-name)
1ec80 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
1eca0 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 6f 75 70 73 28 6b 69 ctile-related-files-fn-groups(ki
1ecc0 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 72 65 6c 61 74 65 64 nd.groups)..."Generate.a.related
1ece0 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 73 20 4b 49 4e 44 20 -files-fn.which.relates.as.KIND.
1ed00 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 50 53 2e 22 0a 20 20 for.files.in.each.of.GROUPS."...
1ed20 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 74 20 28 28 67 72 6f (lambda.(path).....(if-let.((gro
1ed40 75 70 2d 66 6f 75 6e 64 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 67 72 up-found.(cl-find-if.(lambda.(gr
1ed60 6f 75 70 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 oup)............................
1ed80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 70 61 74 68 20 67 72 6f 75 70 29 .............(member.path.group)
1eda0 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 )...............................
1edc0 20 20 20 20 20 20 20 20 67 72 6f 75 70 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 ........groups))).........(list.
1ede0 6b 69 6e 64 20 28 63 6c 2d 72 65 6d 6f 76 65 20 70 61 74 68 20 67 72 6f 75 70 2d 66 6f 75 6e 64 kind.(cl-remove.path.group-found
1ee00 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f .:test.'equal)))))..;;;###autolo
1ee20 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6c 61 74 65 64 2d 66 69 6c ad.(defun.projectile-related-fil
1ee40 65 73 2d 66 6e 2d 65 78 74 65 6e 73 69 6f 6e 73 28 6b 69 6e 64 20 65 78 74 65 6e 73 69 6f 6e 73 es-fn-extensions(kind.extensions
1ee60 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 6e )..."Generate.a.related-files-fn
1ee80 20 77 68 69 63 68 20 72 65 6c 61 74 65 73 20 61 73 20 4b 49 4e 44 20 66 6f 72 20 66 69 6c 65 73 .which.relates.as.KIND.for.files
1eea0 20 68 61 76 69 6e 67 20 45 58 54 45 4e 53 49 4f 4e 53 2e 22 0a 20 20 28 6c 61 6d 62 64 61 20 28 .having.EXTENSIONS."...(lambda.(
1eec0 70 61 74 68 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 path).....(let*.((ext.(file-name
1eee0 2d 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 61 -extension.path))............(ba
1ef00 73 65 6e 61 6d 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 62 61 73 65 20 70 61 74 68 29 29 0a 20 20 sename.(file-name-base.path))...
1ef20 20 20 20 20 20 20 20 20 20 28 62 61 73 65 6e 61 6d 65 2d 72 65 67 65 78 70 20 28 72 65 67 65 78 .........(basename-regexp.(regex
1ef40 70 2d 71 75 6f 74 65 20 62 61 73 65 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 p-quote.basename))).......(when.
1ef60 28 6d 65 6d 62 65 72 20 65 78 74 20 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 (member.ext.extensions).........
1ef80 28 6c 69 73 74 20 6b 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 72 2d 70 61 74 68 29 0a (list.kind.(lambda.(other-path).
1efa0 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 73 74 72 69 6e .....................(and.(strin
1efc0 67 2d 6d 61 74 63 68 2d 70 20 62 61 73 65 6e 61 6d 65 2d 72 65 67 65 78 70 20 6f 74 68 65 72 2d g-match-p.basename-regexp.other-
1efe0 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path)...........................
1f000 28 65 71 75 61 6c 20 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 (equal.basename.(file-name-base.
1f020 6f 74 68 65 72 2d 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 other-path))....................
1f040 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 74 68 65 72 2d 65 78 74 20 28 66 69 6c 65 2d 6e 61 .......(let.((other-ext.(file-na
1f060 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 6f 74 68 65 72 2d 70 61 74 68 29 29 29 0a 20 20 20 20 20 me-extension.other-path)))......
1f080 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 28 6d 65 6d .......................(and.(mem
1f0a0 62 65 72 20 6f 74 68 65 72 2d 65 78 74 20 65 78 74 65 6e 73 69 6f 6e 73 29 0a 20 20 20 20 20 20 ber.other-ext.extensions).......
1f0c0 20 20 20 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 6e 6f 74 20 ...........................(not.
1f0e0 28 65 71 75 61 6c 20 6f 74 68 65 72 2d 65 78 74 20 65 78 74 29 29 29 29 29 29 29 29 29 29 29 0a (equal.other-ext.ext))))))))))).
1f100 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 6c .;;;###autoload.(defun.projectil
1f120 65 2d 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 70 72 65 e-related-files-fn-test-with-pre
1f140 66 69 78 28 65 78 74 65 6e 73 69 6f 6e 20 74 65 73 74 2d 70 72 65 66 69 78 29 0a 20 20 22 47 65 fix(extension.test-prefix)..."Ge
1f160 6e 65 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 nerate.a.related-files-fn.which.
1f180 72 65 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 relates.tests.and.impl..Use.file
1f1a0 73 20 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 50 s.with.EXTENSION.based.on.TEST-P
1f1c0 52 45 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 REFIX."...(lambda.(path).....(wh
1f1e0 65 6e 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 en.(equal.(file-name-extension.p
1f200 61 74 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 ath).extension).......(let*.((fi
1f220 6c 65 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 le-name.(file-name-nondirectory.
1f240 70 61 74 68 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 6c 3f 20 path))..............(find-impl?.
1f260 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 74 65 73 74 2d 70 72 65 66 69 78 20 66 69 6c (string-prefix-p.test-prefix.fil
1f280 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 6d 65 e-name))..............(file-name
1f2a0 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 20 20 -to-find.(if.find-impl?.........
1f2c0 20 20 20 20 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 75 62 ............................(sub
1f2e0 73 74 72 69 6e 67 20 66 69 6c 65 2d 6e 61 6d 65 20 28 6c 65 6e 67 74 68 20 74 65 73 74 2d 70 72 string.file-name.(length.test-pr
1f300 65 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efix))..........................
1f320 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 70 72 65 66 69 78 20 66 69 6c .........(concat.test-prefix.fil
1f340 65 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 69 66 20 66 69 6e e-name)))).........(list.(if.fin
1f360 64 2d 69 6d 70 6c 3f 20 3a 69 6d 70 6c 20 3a 74 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 d-impl?.:impl.:test)............
1f380 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 74 68 65 72 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 ...(lambda.(other-path).........
1f3a0 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 66 69 ........(and.(string-suffix-p.fi
1f3c0 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 20 6f 74 68 65 72 2d 70 61 74 68 29 0a 20 20 20 20 le-name-to-find.other-path).....
1f3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 66 69 6c 65 2d 6e 61 .................(equal.(file-na
1f400 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6f 74 68 65 72 2d 70 61 74 68 29 20 66 69 6c 65 me-nondirectory.other-path).file
1f420 2d 6e 61 6d 65 2d 74 6f 2d 66 69 6e 64 29 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 -name-to-find))))))))..;;;###aut
1f440 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 61 74 65 64 2d oload.(defun.projectile-related-
1f460 66 69 6c 65 73 2d 66 6e 2d 74 65 73 74 2d 77 69 74 68 2d 73 75 66 66 69 78 28 65 78 74 65 6e 73 files-fn-test-with-suffix(extens
1f480 69 6f 6e 20 74 65 73 74 2d 73 75 66 66 69 78 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 72 ion.test-suffix)..."Generate.a.r
1f4a0 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 74 65 elated-files-fn.which.relates.te
1f4c0 73 74 73 20 61 6e 64 20 69 6d 70 6c 2e 0a 55 73 65 20 66 69 6c 65 73 20 77 69 74 68 20 45 58 54 sts.and.impl..Use.files.with.EXT
1f4e0 45 4e 53 49 4f 4e 20 62 61 73 65 64 20 6f 6e 20 54 45 53 54 2d 53 55 46 46 49 58 2e 22 0a 20 20 ENSION.based.on.TEST-SUFFIX."...
1f500 28 6c 61 6d 62 64 61 20 28 70 61 74 68 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 (lambda.(path).....(when.(equal.
1f520 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 68 29 20 65 78 74 65 6e (file-name-extension.path).exten
1f540 73 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 2d 6e 61 6d 65 20 28 66 sion).......(let*.((file-name.(f
1f560 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 20 20 ile-name-nondirectory.path))....
1f580 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 2d 65 78 74 20 28 63 6f 6e 63 61 74 20 22 2e 22 20 65 ..........(dot-ext.(concat.".".e
1f5a0 78 74 65 6e 73 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 66 66 69 78 2d xtension))..............(suffix-
1f5c0 65 78 74 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 73 75 66 66 69 78 20 64 6f 74 2d 65 78 74 29 ext.(concat.test-suffix.dot-ext)
1f5e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 69 6d 70 6c 3f 20 28 73 74 72 69 )..............(find-impl?.(stri
1f600 6e 67 2d 73 75 66 66 69 78 2d 70 20 73 75 66 66 69 78 2d 65 78 74 20 66 69 6c 65 2d 6e 61 6d 65 ng-suffix-p.suffix-ext.file-name
1f620 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 66 69 ))..............(file-name-to-fi
1f640 6e 64 20 28 69 66 20 66 69 6e 64 2d 69 6d 70 6c 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(if.find-impl?...............
1f660 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 28 73 ......................(concat.(s
1f680 75 62 73 74 72 69 6e 67 20 66 69 6c 65 2d 6e 61 6d 65 20 30 20 28 2d 20 28 6c 65 6e 67 74 68 20 ubstring.file-name.0.(-.(length.
1f6a0 73 75 66 66 69 78 2d 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 suffix-ext)))...................
1f6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 74 2d 65 78 ..........................dot-ex
1f6e0 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 20 20 20 t)..............................
1f700 20 20 20 20 20 28 63 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 .....(concat.(substring.file-nam
1f720 65 20 30 20 28 2d 20 28 6c 65 6e 67 74 68 20 64 6f 74 2d 65 78 74 29 29 29 0a 20 20 20 20 20 20 e.0.(-.(length.dot-ext))).......
1f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1f760 20 20 20 20 73 75 66 66 69 78 2d 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 ....suffix-ext)))).........(list
1f780 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)....
1f7a0 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).
1f7c0 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
1f7e0 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
1f800 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.
1f820 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
1f840 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 28 th).file-name-to-find))))))))..(
1f860 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 2d 70 20 28 66 69 defun.projectile-test-file-p.(fi
1f880 6c 65 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 46 49 4c 45 20 69 73 20 61 20 74 65 73 74 20 66 le)..."Check.if.FILE.is.a.test.f
1f8a0 69 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 69 6e 64 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 ile."...(let.((kinds.(projectile
1f8c0 2d 2d 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 6b 69 6e 64 73 20 66 69 6c 65 29 29 29 0a 20 20 --related-files-kinds.file)))...
1f8e0 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 62 65 72 20 3a 69 6d 70 6c 20 6b 69 6e 64 73 29 20 74 29 ..(cond.((member.:impl.kinds).t)
1f900 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 3a 74 65 73 74 20 6b 69 6e 64 73 29 ...........((member.:test.kinds)
1f920 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6f 72 20 28 63 6c 2d 73 6f 6d 65 20 .nil)...........(t.(or.(cl-some.
1f940 28 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 70 (lambda.(pat).(string-prefix-p.p
1f960 61 74 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 29 at.(file-name-nondirectory.file)
1f980 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 28 64 65 ))...........................(de
1f9a0 6c 71 20 6e 69 6c 20 28 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 lq.nil.(list.(funcall.projectile
1f9c0 2d 74 65 73 74 2d 70 72 65 66 69 78 2d 66 75 6e 63 74 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c -test-prefix-function.(projectil
1f9e0 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 e-project-type))))).............
1fa00 20 20 20 20 20 28 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 .....(cl-some.(lambda.(pat).(str
1fa20 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 70 61 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 73 61 6e 73 ing-suffix-p.pat.(file-name-sans
1fa40 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
1fa60 72 79 20 66 69 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 ry.file)))).....................
1fa80 20 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 ......(delq.nil.(list.(funcall.p
1faa0 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 28 rojectile-test-suffix-function.(
1fac0 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 29 29 29 29 29 projectile-project-type)))))))))
1fae0 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 2d 70 72 6f )..(defun.projectile-current-pro
1fb00 6a 65 63 74 2d 74 65 73 74 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c ject-test-files.()..."Return.a.l
1fb20 69 73 74 20 6f 66 20 74 65 73 74 20 66 69 6c 65 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e ist.of.test.files.for.the.curren
1fb40 74 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 66 t.project."...(projectile-test-f
1fb60 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 6a 65 63 74 iles.(projectile-current-project
1fb80 2d 66 69 6c 65 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 70 72 -files)))..(defvar.projectile-pr
1fba0 6f 6a 65 63 74 2d 74 79 70 65 73 20 6e 69 6c 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 68 6f 6c 64 oject-types.nil..."An.alist.hold
1fbc0 69 6e 67 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 20 74 68 61 74 20 61 72 65 20 6b ing.all.project.types.that.are.k
1fbe0 6e 6f 77 6e 20 74 6f 20 50 72 6f 6a 65 63 74 69 6c 65 2e 0a 54 68 65 20 70 72 6f 6a 65 63 74 20 nown.to.Projectile..The.project.
1fc00 74 79 70 65 73 20 61 72 65 20 73 79 6d 62 6f 6c 73 20 61 6e 64 20 74 68 65 79 20 61 72 65 20 6c types.are.symbols.and.they.are.l
1fc20 69 6e 6b 65 64 20 74 6f 20 70 6c 69 73 74 73 20 68 6f 6c 64 69 6e 67 0a 74 68 65 20 70 72 6f 70 inked.to.plists.holding.the.prop
1fc40 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75 73 20 70 72 6f 6a 65 63 74 20 74 79 erties.of.the.various.project.ty
1fc60 70 65 73 2e 22 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 62 69 pes.")..(defun.projectile--combi
1fc80 6e 65 2d 70 6c 69 73 74 73 20 28 26 72 65 73 74 20 70 6c 69 73 74 73 29 0a 20 20 22 43 72 65 61 ne-plists.(&rest.plists)..."Crea
1fca0 74 65 20 61 20 73 69 6e 67 6c 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74 20 66 72 6f 6d 20 61 te.a.single.property.list.from.a
1fcc0 6c 6c 20 70 6c 69 73 74 73 20 69 6e 20 50 4c 49 53 54 53 2e 0a 54 68 65 20 70 72 6f 63 65 73 73 ll.plists.in.PLISTS..The.process
1fce0 20 73 74 61 72 74 73 20 62 79 20 63 6f 70 79 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 6c 69 73 .starts.by.copying.the.first.lis
1fd00 74 2c 20 61 6e 64 20 74 68 65 6e 20 73 65 74 74 69 6e 67 20 70 72 6f 70 65 72 74 69 65 73 0a 66 t,.and.then.setting.properties.f
1fd20 72 6f 6d 20 74 68 65 20 6f 74 68 65 72 20 6c 69 73 74 73 2e 20 20 53 65 74 74 69 6e 67 73 20 69 rom.the.other.lists...Settings.i
1fd40 6e 20 74 68 65 20 6c 61 73 74 20 6c 69 73 74 20 61 72 65 20 74 68 65 20 6d 6f 73 74 20 73 69 67 n.the.last.list.are.the.most.sig
1fd60 6e 69 66 69 63 61 6e 74 0a 6f 6e 65 73 20 61 6e 64 20 6f 76 65 72 72 75 6c 65 20 73 65 74 74 69 nificant.ones.and.overrule.setti
1fd80 6e 67 73 20 69 6e 20 74 68 65 20 6f 74 68 65 72 20 6c 69 73 74 73 2e 22 0a 20 20 28 6c 65 74 20 ngs.in.the.other.lists."...(let.
1fda0 28 28 72 74 6e 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6f 70 20 70 6c 69 73 74 73 ((rtn.(copy-sequence.(pop.plists
1fdc0 29 29 29 0a 20 20 20 20 20 20 20 20 70 20 76 20 6c 73 29 0a 20 20 20 20 28 77 68 69 6c 65 20 70 ))).........p.v.ls).....(while.p
1fde0 6c 69 73 74 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 73 20 28 70 6f 70 20 70 6c 69 73 74 73 lists.......(setq.ls.(pop.plists
1fe00 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 6c 73 0a 09 28 73 65 74 71 20 70 20 28 70 6f 70 )).......(while.ls..(setq.p.(pop
1fe20 20 6c 73 29 20 76 20 28 70 6f 70 20 6c 73 29 29 0a 09 28 73 65 74 71 20 72 74 6e 20 28 70 6c 69 .ls).v.(pop.ls))..(setq.rtn.(pli
1fe40 73 74 2d 70 75 74 20 72 74 6e 20 70 20 76 29 29 29 29 0a 20 20 20 20 72 74 6e 29 29 0a 0a 28 63 st-put.rtn.p.v)))).....rtn))..(c
1fe60 6c 2d 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 62 75 69 6c 64 2d 70 72 6f 6a 65 63 l-defun.projectile--build-projec
1fe80 74 2d 70 6c 69 73 74 0a 20 20 20 20 28 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 26 6b 65 79 20 70 t-plist.....(marker-files.&key.p
1fea0 72 6f 6a 65 63 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 roject-file.compilation-dir.conf
1fec0 69 67 75 72 65 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 igure.compile.install.package.te
1fee0 73 74 20 72 75 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 st.run.test-suffix.test-prefix.s
1ff00 72 63 2d 64 69 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 rc-dir.test-dir.related-files-fn
1ff20 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 70 6c 69 73 74 )..."Return.a.project.type.plist
1ff40 20 77 69 74 68 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 41 .with.the.provided.arguments...A
1ff60 20 70 72 6f 6a 65 63 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 .project.type.is.defined.by.PROJ
1ff80 45 43 54 2d 54 59 50 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 ECT-TYPE,.a.set.of.MARKER-FILES,
1ffa0 0a 61 6e 64 20 6f 70 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 .and.optional.keyword.arguments:
1ffc0 0a 50 52 4f 4a 45 43 54 2d 46 49 4c 45 20 74 68 65 20 6d 61 69 6e 20 70 72 6f 6a 65 63 74 20 66 .PROJECT-FILE.the.main.project.f
1ffe0 69 6c 65 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 ile.in.the.root.project.director
20000 79 2e 0a 43 4f 4d 50 49 4c 41 54 49 4f 4e 2d 44 49 52 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 y..COMPILATION-DIR.the.directory
20020 20 74 6f 20 72 75 6e 20 74 68 65 20 74 65 73 74 73 2d 20 61 6e 64 20 63 6f 6d 70 69 6c 61 74 69 .to.run.the.tests-.and.compilati
20040 6f 6e 73 20 69 6e 2c 0a 43 4f 4e 46 49 47 55 52 45 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 ons.in,.CONFIGURE.which.specifie
20060 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 63 6f 6e 66 69 67 75 72 65 73 20 74 68 65 20 s.a.command.that.configures.the.
20080 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 60 25 73 27 20 69 6e 20 74 68 65 20 63 6f project...........`%s'.in.the.co
200a0 6d 6d 61 6e 64 20 77 69 6c 6c 20 62 65 20 73 75 62 73 74 69 74 75 74 65 64 20 77 69 74 68 20 28 mmand.will.be.substituted.with.(
200c0 70 72 6f 6a 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 20 projectile-project-root)........
200e0 20 20 20 62 65 66 6f 72 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 75 6e 2c 0a 43 4f ...before.the.command.is.run,.CO
20100 4d 50 49 4c 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 MPILE.which.specifies.a.command.
20120 74 68 61 74 20 62 75 69 6c 64 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 49 4e 53 54 41 4c 4c that.builds.the.project,.INSTALL
20140 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 6f 20 69 6e .which.specifies.a.command.to.in
20160 73 74 61 6c 6c 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 50 41 43 4b 41 47 45 20 77 68 69 63 68 stall.the.project..PACKAGE.which
20180 20 73 70 65 63 69 66 69 65 73 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 70 61 63 6b 61 67 65 20 .specifies.a.command.to.package.
201a0 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 54 45 53 54 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 the.project..TEST.which.specifie
201c0 64 20 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 74 65 73 74 73 20 74 68 65 20 70 72 6f 6a 65 d.a.command.that.tests.the.proje
201e0 63 74 2c 0a 52 55 4e 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 ct,.RUN.which.specifies.a.comman
20200 64 20 74 68 61 74 20 72 75 6e 73 20 74 68 65 20 70 72 6f 6a 65 63 74 2c 0a 54 45 53 54 2d 53 55 d.that.runs.the.project,.TEST-SU
20220 46 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 65 20 73 FFIX.which.specifies.test.file.s
20240 75 66 66 69 78 2c 20 61 6e 64 0a 54 45 53 54 2d 50 52 45 46 49 58 20 77 68 69 63 68 20 73 70 65 uffix,.and.TEST-PREFIX.which.spe
20260 63 69 66 69 65 73 20 74 65 73 74 20 66 69 6c 65 20 70 72 65 66 69 78 2e 0a 53 52 43 2d 44 49 52 cifies.test.file.prefix..SRC-DIR
20280 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 20 74 68 65 .which.specifies.the.path.to.the
202a0 20 73 6f 75 72 63 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 .source.relative.to.the.project.
202c0 72 6f 6f 74 2e 0a 54 45 53 54 2d 44 49 52 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 74 root..TEST-DIR.which.specifies.t
202e0 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 74 65 73 74 73 20 72 65 6c 61 74 69 76 65 20 74 6f he.path.to.the.tests.relative.to
20300 20 74 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2e 0a 52 45 4c 41 54 45 44 2d 46 49 4c 45 53 .the.project.root..RELATED-FILES
20320 2d 46 4e 20 77 68 69 63 68 20 73 70 65 63 69 66 69 65 73 20 61 20 63 75 73 74 6f 6d 20 66 75 6e -FN.which.specifies.a.custom.fun
20340 63 74 69 6f 6e 20 74 6f 20 66 69 6e 64 20 74 68 65 20 72 65 6c 61 74 65 64 0a 66 69 6c 65 73 20 ction.to.find.the.related.files.
20360 73 75 63 68 20 61 73 20 74 65 73 74 2f 69 6d 70 6c 2f 6f 74 68 65 72 20 66 69 6c 65 73 20 61 73 such.as.test/impl/other.files.as
20380 20 62 65 6c 6f 77 3a 0a 20 20 20 20 43 55 53 54 4f 4d 2d 46 55 4e 43 54 49 4f 4e 20 61 63 63 65 .below:.....CUSTOM-FUNCTION.acce
203a0 70 74 73 20 46 49 4c 45 20 61 73 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 66 72 6f 6d 20 74 pts.FILE.as.relative.path.from.t
203c0 68 65 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 61 6e 64 0a 20 20 20 20 72 65 74 75 72 6e 73 20 he.project.root.and.....returns.
203e0 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 3a 74 65 73 74 2c 20 3a 69 6d 70 6c 20 a.plist.containing.:test,.:impl.
20400 6f 72 20 3a 6f 74 68 65 72 20 61 73 20 6b 65 79 20 61 6e 64 20 74 68 65 0a 20 20 20 20 72 65 6c or.:other.as.key.and.the.....rel
20420 61 74 69 76 65 20 70 61 74 68 2f 70 61 74 68 73 20 6f 72 20 70 72 65 64 69 63 61 74 65 20 61 73 ative.path/paths.or.predicate.as
20440 20 76 61 6c 75 65 2e 20 20 50 52 45 44 49 43 41 54 45 20 61 63 63 65 70 74 73 20 61 0a 20 20 20 .value...PREDICATE.accepts.a....
20460 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 61 73 20 74 68 65 20 69 6e 70 75 74 2e 22 0a 20 20 .relative.path.as.the.input."...
20480 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 20 28 6c 69 73 74 20 27 6d 61 72 6b (let.((project-plist.(list.'mark
204a0 65 72 2d 66 69 6c 65 73 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 er-files.marker-files...........
204c0 20 20 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 2d 66 69 6c 65 ...................'project-file
204e0 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 20 20 20 20 .project-file...................
20500 20 20 20 20 20 20 20 20 20 20 20 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 63 6f 6d 70 ...........'compilation-dir.comp
20520 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 20 20 20 20 20 20 20 ilation-dir.....................
20540 20 20 20 20 20 20 20 20 20 27 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6e 66 .........'configure-command.conf
20560 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 20 20 igure...........................
20580 20 20 20 27 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 ...'compile-command.compile.....
205a0 20 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 74 65 73 74 2d 63 .........................'test-c
205c0 6f 6d 6d 61 6e 64 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 ommand.test.....................
205e0 20 20 20 20 20 20 20 20 20 27 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 69 6e 73 74 61 6c .........'install-command.instal
20600 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 20 20 20 27 l..............................'
20620 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 70 61 63 6b 61 67 65 0a 20 20 20 20 20 20 20 20 package-command.package.........
20640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 75 6e 2d 63 6f 6d 6d 61 6e .....................'run-comman
20660 64 20 72 75 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 28 d.run)).........(project-files.(
20680 69 66 20 28 6c 69 73 74 70 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 if.(listp.project-file).........
206a0 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 2d 66 69 6c 65 0a ...................project-file.
206c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 70 .........................(list.p
206e0 72 6f 6a 65 63 74 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72 6f roject-file)))).....(dolist.(pro
20700 6a 65 63 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 28 ject-file.project-files).......(
20720 77 68 65 6e 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 28 6e 6f 74 20 28 6d 65 6d when.(and.project-file.(not.(mem
20740 62 65 72 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a ber.project-file.projectile-proj
20760 65 63 74 2d 72 6f 6f 74 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 ect-root-files))).........(add-t
20780 6f 2d 6c 69 73 74 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 2d o-list.'projectile-project-root-
207a0 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 files.project-file))).....(when.
207c0 74 65 73 74 2d 73 75 66 66 69 78 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f test-suffix.......(plist-put.pro
207e0 6a 65 63 74 2d 70 6c 69 73 74 20 27 74 65 73 74 2d 73 75 66 66 69 78 20 74 65 73 74 2d 73 75 66 ject-plist.'test-suffix.test-suf
20800 66 69 78 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 70 72 65 66 69 78 0a 20 20 20 20 fix)).....(when.test-prefix.....
20820 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 74 65 73 74 ..(plist-put.project-plist.'test
20840 2d 70 72 65 66 69 78 20 74 65 73 74 2d 70 72 65 66 69 78 29 29 0a 20 20 20 20 28 77 68 65 6e 20 -prefix.test-prefix)).....(when.
20860 73 72 63 2d 64 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 src-dir.......(plist-put.project
20880 2d 70 6c 69 73 74 20 27 73 72 63 2d 64 69 72 20 73 72 63 2d 64 69 72 29 29 0a 20 20 20 20 28 77 -plist.'src-dir.src-dir)).....(w
208a0 68 65 6e 20 74 65 73 74 2d 64 69 72 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 hen.test-dir.......(plist-put.pr
208c0 6f 6a 65 63 74 2d 70 6c 69 73 74 20 27 74 65 73 74 2d 64 69 72 20 74 65 73 74 2d 64 69 72 29 29 oject-plist.'test-dir.test-dir))
208e0 0a 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 0a 20 20 20 20 .....(when.related-files-fn.....
20900 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 72 65 6c 61 ..(plist-put.project-plist.'rela
20920 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 29 0a ted-files-fn.related-files-fn)).
20940 20 20 20 20 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 70 ....project-plist))..(cl-defun.p
20960 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 0a rojectile-register-project-type.
20980 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 26 ....(project-type.marker-files.&
209a0 6b 65 79 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 key.project-file.compilation-dir
209c0 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 70 69 6c 65 20 69 6e 73 74 61 6c 6c 20 70 61 63 6b 61 .configure.compile.install.packa
209e0 67 65 20 74 65 73 74 20 72 75 6e 20 74 65 73 74 2d 73 75 66 66 69 78 20 74 65 73 74 2d 70 72 65 ge.test.run.test-suffix.test-pre
20a00 66 69 78 20 73 72 63 2d 64 69 72 20 74 65 73 74 2d 64 69 72 20 72 65 6c 61 74 65 64 2d 66 69 6c fix.src-dir.test-dir.related-fil
20a20 65 73 2d 66 6e 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 70 72 6f 6a 65 63 74 20 74 79 70 es-fn)..."Register.a.project.typ
20a40 65 20 77 69 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 41 20 70 72 6f 6a 65 63 74 20 74 79 e.with.projectile...A.project.ty
20a60 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 61 pe.is.defined.by.PROJECT-TYPE,.a
20a80 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 6e .set.of.MARKER-FILES,.and.option
20aa0 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 49 al.keyword.arguments:.PROJECT-FI
20ac0 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 20 LE.the.main.project.file.in.the.
20ae0 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 54 root.project.directory..COMPILAT
20b00 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 65 ION-DIR.the.directory.to.run.the
20b20 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 4e .tests-.and.compilations.in,.CON
20b40 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 64 FIGURE.which.specifies.a.command
20b60 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 20 .that.configures.the.project....
20b80 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 20 .......`%s'.in.the.command.will.
20ba0 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 2d be.substituted.with.(projectile-
20bc0 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 74 project-root)...........before.t
20be0 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 68 he.command.is.run,.COMPILE.which
20c00 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 73 .specifies.a.command.that.builds
20c20 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 63 .the.project,.INSTALL.which.spec
20c40 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 70 ifies.a.command.to.install.the.p
20c60 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 20 roject..PACKAGE.which.specifies.
20c80 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 74 a.command.to.package.the.project
20ca0 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 64 ..TEST.which.specified.a.command
20cc0 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 69 .that.tests.the.project,.RUN.whi
20ce0 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 73 ch.specifies.a.command.that.runs
20d00 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 20 .the.project,.TEST-SUFFIX.which.
20d20 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 0a specifies.test.file.suffix,.and.
20d40 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 74 TEST-PREFIX.which.specifies.test
20d60 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 63 .file.prefix..SRC-DIR.which.spec
20d80 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 6c ifies.the.path.to.the.source.rel
20da0 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 2d ative.to.the.project.root..TEST-
20dc0 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 20 DIR.which.specifies.the.path.to.
20de0 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 63 the.tests.relative.to.the.projec
20e00 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 73 t.root..RELATED-FILES-FN.which.s
20e20 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 69 pecifies.a.custom.function.to.fi
20e40 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 73 nd.the.related.files.such.as.tes
20e60 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 20 t/impl/other.files.as.below:....
20e80 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 73 .CUSTOM-FUNCTION.accepts.FILE.as
20ea0 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 20 .relative.path.from.the.project.
20ec0 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 6e root.and.....returns.a.plist.con
20ee0 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 61 taining.:test,.:impl.or.:other.a
20f00 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 2f s.key.and.the.....relative.path/
20f20 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 52 paths.or.predicate.as.value...PR
20f40 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 70 EDICATE.accepts.a.....relative.p
20f60 61 74 68 20 61 73 20 74 68 65 20 69 6e 70 75 74 2e 22 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 ath.as.the.input."...(setq.proje
20f80 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 28 63 6f 6e ctile-project-types.........(con
20fa0 73 20 60 28 2c 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 s.`(,project-type...............
20fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d ..................,(projectile--
20fe0 62 75 69 6c 64 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 build-project-plist.............
21000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 ....................marker-files
21020 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 ................................
21040 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 70 72 6f 6a 65 63 74 2d 66 69 6c 65 0a 20 20 20 20 .:project-file.project-file.....
21060 20 20 20 20 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
21080 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 72 0a 20 20 20 pilation-dir.compilation-dir....
210a0 20 20 20 20 20 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
210c0 6e 66 69 67 75 72 65 20 63 6f 6e 66 69 67 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nfigure.configure...............
210e0 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 63 6f 6d 70 69 ..................:compile.compi
21100 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 20 le..............................
21120 20 20 20 3a 69 6e 73 74 61 6c 6c 20 69 6e 73 74 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...:install.install.............
21140 20 20 20 20 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 70 61 63 ....................:package.pac
21160 6b 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kage............................
21180 20 20 20 20 20 3a 74 65 73 74 20 74 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....:test.test.................
211a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 72 75 6e 0a 20 20 20 20 20 20 20 ................:run.run........
211c0 20 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
211e0 75 66 66 69 78 20 74 65 73 74 2d 73 75 66 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uffix.test-suffix...............
21200 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 74 ..................:test-prefix.t
21220 65 73 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 20 20 est-prefix......................
21240 20 20 20 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 73 72 63 2d 64 69 72 0a 20 20 20 20 ...........:src-dir.src-dir.....
21260 20 20 20 20 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
21280 74 2d 64 69 72 20 74 65 73 74 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-dir.test-dir..................
212a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e ...............:related-files-fn
212c0 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .related-files-fn)).............
212e0 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 29 0a 0a 28 ..projectile-project-types)))..(
21300 63 6c 2d 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 75 70 64 61 74 65 2d 70 72 6f 6a 65 cl-defun.projectile-update-proje
21320 63 74 2d 74 79 70 65 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 0a 20 20 20 20 20 26 ct-type.....(project-type......&
21340 6b 65 79 20 70 72 65 63 65 64 65 6e 63 65 0a 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 66 69 6c 65 key.precedence......(marker-file
21360 73 20 6e 69 6c 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 s.nil.marker-files-specified)...
21380 20 20 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 6e 69 6c 20 70 72 6f 6a 65 63 74 2d 66 69 6c ...(project-file.nil.project-fil
213a0 65 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 e-specified)......(compilation-d
213c0 69 72 20 6e 69 6c 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 ir.nil.compilation-dir-specified
213e0 29 0a 20 20 20 20 20 28 63 6f 6e 66 69 67 75 72 65 20 6e 69 6c 20 63 6f 6e 66 69 67 75 72 65 2d )......(configure.nil.configure-
21400 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 63 6f 6d 70 69 6c 65 20 6e 69 6c 20 63 6f 6d specified)......(compile.nil.com
21420 70 69 6c 65 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 69 6e 73 74 61 6c 6c 20 6e 69 pile-specified)......(install.ni
21440 6c 20 69 6e 73 74 61 6c 6c 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 70 61 63 6b 61 l.install-specified)......(packa
21460 67 65 20 6e 69 6c 20 70 61 63 6b 61 67 65 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 ge.nil.package-specified)......(
21480 74 65 73 74 20 6e 69 6c 20 74 65 73 74 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 72 test.nil.test-specified)......(r
214a0 75 6e 20 6e 69 6c 20 72 75 6e 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 65 73 74 un.nil.run-specified)......(test
214c0 2d 73 75 66 66 69 78 20 6e 69 6c 20 74 65 73 74 2d 73 75 66 66 69 78 2d 73 70 65 63 69 66 69 65 -suffix.nil.test-suffix-specifie
214e0 64 29 0a 20 20 20 20 20 28 74 65 73 74 2d 70 72 65 66 69 78 20 6e 69 6c 20 74 65 73 74 2d 70 72 d)......(test-prefix.nil.test-pr
21500 65 66 69 78 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 73 72 63 2d 64 69 72 20 6e 69 efix-specified)......(src-dir.ni
21520 6c 20 73 72 63 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 20 28 74 65 73 74 2d l.src-dir-specified)......(test-
21540 64 69 72 20 6e 69 6c 20 74 65 73 74 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 29 0a 20 20 20 20 dir.nil.test-dir-specified).....
21560 20 28 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 6e 69 6c 20 72 65 6c 61 74 65 64 2d 66 .(related-files-fn.nil.related-f
21580 69 6c 65 73 2d 66 6e 2d 73 70 65 63 69 66 69 65 64 29 29 0a 20 20 20 20 22 55 70 64 61 74 65 20 iles-fn-specified))....."Update.
215a0 61 6e 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 6f 6a 65 63 74 20 74 an.existing.projectile.project.t
215c0 79 70 65 2e 0a 0a 50 61 73 73 65 64 20 69 74 65 6d 73 20 77 69 6c 6c 20 6f 76 65 72 72 69 64 65 ype...Passed.items.will.override
215e0 20 65 78 69 73 74 69 6e 67 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 .existing.values.for.the.project
21600 20 74 79 70 65 20 67 69 76 65 6e 0a 62 79 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 20 20 6e 69 .type.given.by.PROJECT-TYPE...ni
21620 6c 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6d 6f 76 65 20 61 20 70 72 6f 6a 65 63 l.can.be.used.to.remove.a.projec
21640 74 20 74 79 70 65 20 61 74 74 72 69 62 75 74 65 2e 20 20 52 61 69 73 65 0a 61 6e 20 65 72 72 6f t.type.attribute...Raise.an.erro
21660 72 20 69 66 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 20 69 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 r.if.PROJECT-TYPE.is.not.already
21680 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 68 20 70 72 6f 6a 65 63 74 69 6c 65 2e 20 20 54 68 .registered.with.projectile...Th
216a0 69 73 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 61 6c 73 6f 20 74 61 6b 65 20 74 68 65 20 6b 65 is.function.may.also.take.the.ke
216c0 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 20 50 52 45 43 45 44 45 4e 43 45 20 77 68 69 63 68 20 yword.argument.PRECEDENCE.which.
216e0 77 68 65 6e 20 73 65 74 20 74 6f 20 e2 80 98 68 69 67 68 e2 80 99 0a 77 69 6c 6c 20 6d 61 6b 65 when.set.to....high....will.make
21700 20 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 69 6f 72 69 74 69 73 65 20 74 68 69 73 20 70 72 6f 6a .projectile.prioritise.this.proj
21720 65 63 74 20 74 79 70 65 20 6f 76 65 72 20 6f 74 68 65 72 20 63 6c 61 73 68 69 6e 67 20 70 72 6f ect.type.over.other.clashing.pro
21740 6a 65 63 74 0a 74 79 70 65 73 2c 20 61 6e 64 20 61 20 76 61 6c 75 65 20 6f 66 20 e2 80 98 6c 6f ject.types,.and.a.value.of....lo
21760 77 e2 80 99 20 77 69 6c 6c 20 6d 61 6b 65 20 70 72 6f 6a 65 63 74 69 6c 65 20 70 72 65 66 65 72 w....will.make.projectile.prefer
21780 20 28 61 6c 6c 29 20 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 0a 74 79 70 65 73 20 62 79 20 64 65 .(all).other.project.types.by.de
217a0 66 61 75 6c 74 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 fault...Otherwise,.the.arguments
217c0 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 61 72 65 20 61 73 20 66 6f 72 0a 60 70 72 .to.this.function.are.as.for.`pr
217e0 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 27 3a ojectile-register-project-type':
21800 0a 0a 41 20 70 72 6f 6a 65 63 74 20 74 79 70 65 20 69 73 20 64 65 66 69 6e 65 64 20 62 79 20 50 ..A.project.type.is.defined.by.P
21820 52 4f 4a 45 43 54 2d 54 59 50 45 2c 20 61 20 73 65 74 20 6f 66 20 4d 41 52 4b 45 52 2d 46 49 4c ROJECT-TYPE,.a.set.of.MARKER-FIL
21840 45 53 2c 0a 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e ES,.and.optional.keyword.argumen
21860 74 73 3a 0a 4d 41 52 4b 45 52 2d 46 49 4c 45 53 20 61 20 73 65 74 20 6f 66 20 69 6e 64 69 63 61 ts:.MARKER-FILES.a.set.of.indica
21880 74 6f 72 20 66 69 6c 65 73 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 0a 50 52 4f 4a tor.files.for.PROJECT-TYPE..PROJ
218a0 45 43 54 2d 46 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 ECT-FILE.the.main.project.file.i
218c0 6e 20 74 68 65 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 n.the.root.project.directory..CO
218e0 4d 50 49 4c 41 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 MPILATION-DIR.the.directory.to.r
21900 75 6e 20 74 68 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 un.the.tests-.and.compilations.i
21920 6e 2c 0a 43 4f 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 n,.CONFIGURE.which.specifies.a.c
21940 6f 6d 6d 61 6e 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 ommand.that.configures.the.proje
21960 63 74 0a 20 20 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 ct...........`%s'.in.the.command
21980 20 77 69 6c 6c 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 .will.be.substituted.with.(proje
219a0 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 20 20 20 20 62 65 ctile-project-root)...........be
219c0 66 6f 72 65 20 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 fore.the.command.is.run,.COMPILE
219e0 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 74 20 .which.specifies.a.command.that.
21a00 62 75 69 6c 64 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 builds.the.project,.INSTALL.whic
21a20 68 20 73 70 65 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 h.specifies.a.command.to.install
21a40 20 74 68 65 20 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 .the.project..PACKAGE.which.spec
21a60 69 66 69 65 73 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 ifies.a.command.to.package.the.p
21a80 72 6f 6a 65 63 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 roject..TEST.which.specified.a.c
21aa0 6f 6d 6d 61 6e 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 ommand.that.tests.the.project,.R
21ac0 55 4e 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 UN.which.specifies.a.command.tha
21ae0 74 20 72 75 6e 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 t.runs.the.project,.TEST-SUFFIX.
21b00 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 73 75 66 66 69 78 which.specifies.test.file.suffix
21b20 2c 20 61 6e 64 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 ,.and.TEST-PREFIX.which.specifie
21b40 73 20 74 65 73 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 s.test.file.prefix..SRC-DIR.whic
21b60 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 73 6f 75 72 h.specifies.the.path.to.the.sour
21b80 63 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 72 6f 6f 74 2e ce.relative.to.the.project.root.
21ba0 0a 54 45 53 54 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 .TEST-DIR.which.specifies.the.pa
21bc0 74 68 20 74 6f 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 th.to.the.tests.relative.to.the.
21be0 70 72 6f 6a 65 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 project.root..RELATED-FILES-FN.w
21c00 68 69 63 68 20 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 hich.specifies.a.custom.function
21c20 20 74 6f 20 66 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 .to.find.the.related.files.such.
21c40 61 73 20 74 65 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 as.test/impl/other.files.as.belo
21c60 77 3a 0a 20 20 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 w:.....CUSTOM-FUNCTION.accepts.F
21c80 49 4c 45 20 61 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 ILE.as.relative.path.from.the.pr
21ca0 6f 6a 65 63 74 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 oject.root.and.....returns.a.pli
21cc0 73 74 20 63 6f 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 st.containing.:test,.:impl.or.:o
21ce0 74 68 65 72 20 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 ther.as.key.and.the.....relative
21d00 20 70 61 74 68 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 .path/paths.or.predicate.as.valu
21d20 65 2e 20 20 50 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 e...PREDICATE.accepts.a.....rela
21d40 74 69 76 65 20 70 61 74 68 20 61 73 20 74 68 65 20 69 6e 70 75 74 2e 22 0a 20 20 20 20 28 6c 65 tive.path.as.the.input.".....(le
21d60 74 2a 20 28 28 65 78 69 73 74 69 6e 67 2d 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 0a 20 20 20 20 t*.((existing-project-plist.....
21d80 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 ........(or.(cl-find-if.........
21da0 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 29 20 28 65 71 20 70 72 6f 6a 65 63 74 .........(lambda.(p).(eq.project
21dc0 2d 74 79 70 65 20 28 63 61 72 20 70 29 29 29 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 -type.(car.p))).projectile-proje
21de0 63 74 2d 74 79 70 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 ct-types).................(error
21e00 20 22 4e 6f 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6a 65 63 74 20 66 6f 75 6e 64 20 66 6f 72 3a ."No.existing.project.found.for:
21e20 20 25 73 22 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .%s".project-type)))............
21e40 28 6e 65 77 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 (new-plist.............(append..
21e60 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 61 72 6b 65 72 2d 66 69 6c 65 73 2d 73 ............(when.marker-files-s
21e80 70 65 63 69 66 69 65 64 20 60 28 6d 61 72 6b 65 72 2d 66 69 6c 65 73 20 2c 6d 61 72 6b 65 72 2d pecified.`(marker-files.,marker-
21ea0 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 files))..............(when.proje
21ec0 63 74 2d 66 69 6c 65 2d 73 70 65 63 69 66 69 65 64 20 60 28 70 72 6f 6a 65 63 74 2d 66 69 6c 65 ct-file-specified.`(project-file
21ee0 20 2c 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 20 20 20 28 77 .,project-file))..............(w
21f00 68 65 6e 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 20 60 28 hen.compilation-dir-specified.`(
21f20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 2c 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 compilation-dir.,compilation-dir
21f40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 66 69 67 75 72 65 2d ))..............(when.configure-
21f60 73 70 65 63 69 66 69 65 64 20 60 28 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 2c 63 specified.`(configure-command.,c
21f80 6f 6e 66 69 67 75 72 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 onfigure))..............(when.co
21fa0 6d 70 69 6c 65 2d 73 70 65 63 69 66 69 65 64 20 60 28 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 6e mpile-specified.`(compile-comman
21fc0 64 20 2c 63 6f 6d 70 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 d.,compile))..............(when.
21fe0 74 65 73 74 2d 73 70 65 63 69 66 69 65 64 20 60 28 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 2c 74 test-specified.`(test-command.,t
22000 65 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 73 74 61 6c 6c est))..............(when.install
22020 2d 73 70 65 63 69 66 69 65 64 20 60 28 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2c 69 6e -specified.`(install-command.,in
22040 73 74 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 63 6b 61 stall))..............(when.packa
22060 67 65 2d 73 70 65 63 69 66 69 65 64 20 60 28 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 20 2c ge-specified.`(package-command.,
22080 70 61 63 6b 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 75 6e package))..............(when.run
220a0 2d 73 70 65 63 69 66 69 65 64 20 60 28 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 2c 72 75 6e 29 29 0a -specified.`(run-command.,run)).
220c0 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 75 66 66 69 78 2d 73 .............(when.test-suffix-s
220e0 70 65 63 69 66 69 65 64 20 60 28 74 65 73 74 2d 73 75 66 66 69 78 20 2c 74 65 73 74 2d 73 75 66 pecified.`(test-suffix.,test-suf
22100 66 69 78 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 70 72 fix))..............(when.test-pr
22120 65 66 69 78 2d 73 70 65 63 69 66 69 65 64 20 60 28 74 65 73 74 2d 70 72 65 66 69 78 20 2c 74 65 efix-specified.`(test-prefix.,te
22140 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 28 77 68 65 6e 20 73 st-prefix))..............(when.s
22160 72 63 2d 64 69 72 2d 73 70 65 63 69 66 69 65 64 20 60 28 73 72 63 2d 64 69 72 20 2c 73 72 63 2d rc-dir-specified.`(src-dir.,src-
22180 64 69 72 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 64 69 dir))..............(when.test-di
221a0 72 2d 73 70 65 63 69 66 69 65 64 20 60 28 74 65 73 74 2d 64 69 72 20 2c 74 65 73 74 2d 64 69 72 r-specified.`(test-dir.,test-dir
221c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 65 6c 61 74 65 64 2d 66 69 ))..............(when.related-fi
221e0 6c 65 73 2d 66 6e 2d 73 70 65 63 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 les-fn-specified................
22200 60 28 72 65 6c 61 74 65 64 2d 66 69 6c 65 73 2d 66 6e 20 2c 72 65 6c 61 74 65 64 2d 66 69 6c 65 `(related-files-fn.,related-file
22220 73 2d 66 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 72 67 65 64 2d 70 6c 69 73 s-fn))))............(merged-plis
22240 74 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 2d 63 6f 6d 62 69 t.............(projectile--combi
22260 6e 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 65 78 69 73 ne-plists..............(cdr.exis
22280 74 69 6e 67 2d 70 72 6f 6a 65 63 74 2d 70 6c 69 73 74 29 20 6e 65 77 2d 70 6c 69 73 74 29 29 0a ting-project-plist).new-plist)).
222a0 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 20 28 63 6f ...........(project-type-elt.(co
222c0 6e 73 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 6d 65 72 67 65 64 2d 70 6c 69 73 74 29 29 29 0a ns.project-type.merged-plist))).
222e0 20 20 20 20 20 20 28 63 6c 2d 66 6c 65 74 2a 20 28 28 70 72 6f 6a 65 63 74 2d 66 69 6c 74 65 72 ......(cl-flet*.((project-filter
22300 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 20 70 29 29 29 0a .(p).(eq.project-type.(car.p))).
22320 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 2d 6d 61 70 20 28 70 .................(project-map.(p
22340 29 20 28 69 66 20 28 70 72 6f 6a 65 63 74 2d 66 69 6c 74 65 72 20 70 29 20 70 72 6f 6a 65 63 74 ).(if.(project-filter.p).project
22360 2d 74 79 70 65 2d 65 6c 74 20 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f -type-elt.p))).........(setq.pro
22380 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 0a 20 20 20 20 20 20 20 20 20 20 jectile-project-types...........
223a0 20 20 20 20 28 69 66 20 70 72 65 63 65 64 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(if.precedence..............
223c0 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 74 65 72 65 64 2d 74 79 70 65 73 0a 20 20 20 20 20 .....(let.((filtered-types......
223e0 20 20 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 20 ..................(cl-remove-if.
22400 23 27 70 72 6f 6a 65 63 74 2d 66 69 6c 74 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a #'project-filter.projectile-proj
22420 65 63 74 2d 74 79 70 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 ect-types)))....................
22440 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 63 .(setq.projectile-project-type-c
22460 61 63 68 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 ache.(make-hash-table)).........
22480 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 70 72 65 63 65 64 65 6e 63 ............(cond.((eq.precedenc
224a0 65 20 27 68 69 67 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.'high)........................
224c0 20 20 20 20 28 63 6f 6e 73 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 2d 65 6c 74 20 66 69 6c 74 65 ....(cons.project-type-elt.filte
224e0 72 65 64 2d 74 79 70 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 red-types)).....................
22500 20 20 20 20 20 20 28 28 65 71 20 70 72 65 63 65 64 65 6e 63 65 20 27 6c 6f 77 29 0a 20 20 20 20 ......((eq.precedence.'low).....
22520 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 70 65 6e 64 20 66 .......................(append.f
22540 69 6c 74 65 72 65 64 2d 74 79 70 65 73 20 28 6c 69 73 74 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 iltered-types.(list.project-type
22560 2d 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -elt))).........................
22580 20 20 28 74 20 28 65 72 72 6f 72 20 22 50 72 65 63 65 64 65 6e 63 65 20 6d 75 73 74 20 62 65 20 ..(t.(error."Precedence.must.be.
225a0 6f 6e 65 20 6f 66 20 27 28 68 69 67 68 20 6c 6f 77 29 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 one.of.'(high.low)")))).........
225c0 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 70 72 6f 6a 65 63 74 2d 6d 61 70 20 70 72 ........(mapcar.#'project-map.pr
225e0 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 29 29 29 0a 0a 28 64 ojectile-project-types))))))..(d
22600 65 66 75 6e 20 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 20 efun.projectile-eldev-project-p.
22620 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 70 72 (&optional.dir)..."Check.if.a.pr
22640 6f 6a 65 63 74 20 63 6f 6e 74 61 69 6e 73 20 65 6c 64 65 76 20 66 69 6c 65 73 2e 0a 57 68 65 6e oject.contains.eldev.files..When
22660 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 49 52 27 .DIR.is.specified.it.checks.DIR'
22680 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 6f 6e 20 s.project,.otherwise.it.acts.on.
226a0 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 72 20 28 70 72 6f the.current.project."...(or.(pro
226c0 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 22 20 64 69 72 29 jectile-verify-file."Eldev".dir)
226e0 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 2d 66 69 6c 65 20 22 .......(projectile-verify-file."
22700 45 6c 64 65 76 2d 6c 6f 63 61 6c 22 20 64 69 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a Eldev-local".dir)))..(defun.proj
22720 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 64 ectile-expand-file-name-wildcard
22740 20 28 6e 61 6d 65 2d 70 61 74 74 65 72 6e 20 64 69 72 29 0a 20 20 22 45 78 70 61 6e 64 20 74 68 .(name-pattern.dir)..."Expand.th
22760 65 20 6d 61 79 62 65 2d 77 69 6c 64 63 61 72 64 2d 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 41 4d 45 e.maybe-wildcard-containing.NAME
22780 2d 50 41 54 54 45 52 4e 20 69 6e 20 44 49 52 2e 0a 49 66 20 74 68 65 72 65 20 61 72 65 20 72 65 -PATTERN.in.DIR..If.there.are.re
227a0 73 75 6c 74 73 20 65 78 70 61 6e 64 69 6e 67 20 61 20 77 69 6c 64 63 61 72 64 2c 20 67 65 74 20 sults.expanding.a.wildcard,.get.
227c0 74 68 65 20 66 69 72 73 74 20 72 65 73 75 6c 74 2c 0a 6f 74 68 65 72 77 69 73 65 20 65 78 70 61 the.first.result,.otherwise.expa
227e0 6e 64 20 4e 41 4d 45 2d 50 41 54 54 45 52 4e 20 69 6e 20 44 49 52 20 69 67 6e 6f 72 69 6e 67 20 nd.NAME-PATTERN.in.DIR.ignoring.
22800 77 69 6c 64 63 61 72 64 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 64 65 64 20 28 65 wildcards."...(let.((expanded.(e
22820 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 70 61 74 74 65 72 6e 20 64 69 72 xpand-file-name.name-pattern.dir
22840 29 29 29 0a 20 20 20 20 28 6f 72 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 ))).....(or.(if.(string-match-p.
22860 22 5b 5b 2a 3f 5d 22 20 6e 61 6d 65 2d 70 61 74 74 65 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 "[[*?]".name-pattern)...........
22880 20 20 28 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 70 61 6e 64 ..(car..............(file-expand
228a0 2d 77 69 6c 64 63 61 72 64 73 20 65 78 70 61 6e 64 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 65 -wildcards.expanded))).........e
228c0 78 70 61 6e 64 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 63 61 xpanded)))..(defun.projectile-ca
228e0 62 61 6c 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 0a 20 20 bal-project-p.(&optional.dir)...
22900 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 2a 2e 63 "Check.if.a.project.contains.*.c
22920 61 62 61 6c 20 66 69 6c 65 73 20 62 75 74 20 6e 6f 20 73 74 61 63 6b 2e 79 61 6d 6c 20 66 69 6c abal.files.but.no.stack.yaml.fil
22940 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 68 65 63 e..When.DIR.is.specified.it.chec
22960 6b 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 ks.DIR's.project,.otherwise.it.a
22980 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 2e 22 0a 20 20 28 cts.on.the.current.project."...(
229a0 61 6e 64 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 6c 64 and.(projectile-verify-file-wild
229c0 63 61 72 64 20 22 3f 2a 2e 63 61 62 61 6c 22 20 64 69 72 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 card."?*.cabal".dir)........(not
229e0 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 73 74 61 63 6b 2e .(projectile-verify-file."stack.
22a00 79 61 6d 6c 22 20 64 69 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 yaml".dir))))..(defun.projectile
22a20 2d 64 6f 74 6e 65 74 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 -dotnet-project-p.(&optional.dir
22a40 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 61 69 6e 73 )..."Check.if.a.project.contains
22a60 20 61 20 2e 4e 45 54 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 .a..NET.project.marker..When.DIR
22a80 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 72 .is.specified.it.checks.DIR's.pr
22aa0 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 20 oject,.otherwise.it.acts.on.the.
22ac0 63 75 72 72 65 6e 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 current.project."...(or.(project
22ae0 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 73 70 ile-verify-file-wildcard."?*.csp
22b00 72 6f 6a 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 roj".dir).......(projectile-veri
22b20 66 79 2d 66 69 6c 65 2d 77 69 6c 64 63 61 72 64 20 22 3f 2a 2e 66 73 70 72 6f 6a 22 20 64 69 72 fy-file-wildcard."?*.fsproj".dir
22b40 29 29 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 )))..(defun.projectile-go-projec
22b60 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.
22b80 61 20 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 a.project.contains.Go.source.fil
22ba0 65 73 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 es..When.DIR.is.specified.it.che
22bc0 63 6b 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 cks.DIR's.project,.otherwise.it.
22be0 61 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 2e 22 0a 20 20 acts.on.the.current.project."...
22c00 28 6f 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 (or.(projectile-verify-file."go.
22c20 6d 6f 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 mod".dir).......(projectile-veri
22c40 66 79 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 fy-file-wildcard."*.go".dir)))..
22c60 28 64 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 (defcustom.projectile-go-project
22c80 2d 74 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 -test-function.#'projectile-go-p
22ca0 72 6f 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 roject-p..."Function.to.determin
22cc0 65 20 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 e.if.project's.type.is.go."...:g
22ce0 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 74 69 roup.'projectile...:type.'functi
22d00 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 72 6f 6a 65 63 74 69 on...:package-version.'(projecti
22d20 6c 65 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 le..."1.0.0"))..(defun.projectil
22d40 65 2d 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 e-nimble-project-p.(&optional.di
22d60 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 61 69 6e r)..."Check.if.a.project.contain
22d80 73 20 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 s.a.Nimble.project.marker..Nim.p
22da0 72 6f 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 rojects.that.use.Nimble.contain.
22dc0 61 20 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 a.<projectname>.nimble.file..Whe
22de0 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 49 52 n.DIR.is.specified.it.checks.DIR
22e00 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 6f 6e 's.project,.otherwise.it.acts.on
22e20 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 70 72 6f 6a 65 63 .the.current.project."...(projec
22e40 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 6e 69 tile-verify-file-wildcard."?*.ni
22e60 6d 62 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 mble".dir))..;;;;.Constant.signi
22e80 66 79 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 fying.opting.out.of.CMake.preset
22ea0 20 63 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 .commands..(defconst.projectile-
22ec0 2d 63 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 -cmake-no-preset."*no.preset*").
22ee0 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 76 65 72 73 69 6f .(defun.projectile--cmake-versio
22f00 6e 20 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 n.()..."Compute.CMake.version.".
22f20 20 20 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 ..(let*.((string.(shell-command-
22f40 74 6f 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 to-string."cmake.--version"))...
22f60 20 20 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 .......(match.(string-match."^cm
22f80 61 6b 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 ake.version.\\(.*\\)$".string)))
22fa0 0a 20 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 .....(when.match.......(version-
22fc0 74 6f 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 to-list.(match-string.1.string))
22fe0 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 65 2d 63 68 )))..(defun.projectile--cmake-ch
23000 65 63 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 eck-version.(version)..."Check.i
23020 66 20 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 f.CMake.version.is.at.least.VERS
23040 49 4f 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 ION."...(and....(version-list-<=
23060 20 76 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 .version.(projectile--cmake-vers
23080 69 6f 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 ion))))..(defconst.projectile--c
230a0 6d 61 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 make-command-presets-minimum-ver
230c0 73 69 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 sion-alist...'((:configure-comma
230e0 6e 64 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 nd...(3.19)).....(:compile-comma
23100 6e 64 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 nd...(3.20)).....(:test-command.
23120 2e 20 28 33 20 32 30 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 ..(3.20)).....(:install-command.
23140 2e 20 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 ..(3.20))))..(defun.projectile--
23160 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.
23180 28 63 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 (command-type)..."Check.if.CMake
231a0 20 73 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 .supports.presets.for.COMMAND-TY
231c0 50 45 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 PE."...(let.((minimum-version...
231e0 20 20 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 .......(cdr.(assoc.command-type.
23200 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
23220 73 2d 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 s-minimum-version-alist)))).....
23240 28 70 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 (projectile--cmake-check-version
23260 20 6d 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 .minimum-version)))..(defun.proj
23280 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 66 69 6c 65 6e ectile--cmake-read-preset.(filen
232a0 61 6d 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 ame)..."Read.CMake.preset.from.F
232c0 49 4c 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 ILENAME."...(when.(file-exists-p
232e0 20 66 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 .filename).....(with-temp-buffer
23300 0a 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 6c .......(insert-file-contents.fil
23320 65 6e 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 ename).......(when.(functionp.'j
23340 73 6f 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 son-parse-buffer).........(json-
23360 70 61 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 parse-buffer.:array-type.'list))
23380 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 6b 65 )))..(defconst.projectile--cmake
233a0 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 0a 20 -command-preset-array-id-alist..
233c0 20 27 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 .'((:configure-command..."config
233e0 75 72 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 urePresets").....(:compile-comma
23400 6e 64 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 nd..."buildPresets").....(:test-
23420 63 6f 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 69 command..."testPresets").....(:i
23440 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 62 75 69 6c 64 50 72 65 73 65 74 73 22 29 nstall-command..."buildPresets")
23460 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
23480 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 mand-preset-array-id.(command-ty
234a0 70 65 29 0a 20 20 22 4d 61 70 20 66 72 6f 6d 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 74 6f 20 pe)..."Map.from.COMMAND-TYPE.to.
234c0 69 64 20 6f 66 20 63 6f 6d 6d 61 6e 64 20 70 72 65 73 65 74 20 61 72 72 61 79 20 69 6e 20 43 4d id.of.command.preset.array.in.CM
234e0 61 6b 65 20 70 72 65 73 65 74 2e 22 0a 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 63 6f 6d 6d 61 ake.preset."...(cdr.(assoc.comma
23500 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 63 6f 6d 6d 61 6e nd-type.projectile--cmake-comman
23520 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 2d 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 d-preset-array-id-alist)))..(def
23540 75 6e 20 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 un.projectile--cmake-command-pre
23560 73 65 74 73 2d 73 68 61 6c 6c 6f 77 20 28 66 69 6c 65 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d 74 sets-shallow.(filename.command-t
23580 79 70 65 29 0a 20 20 22 47 65 74 20 43 4d 61 6b 65 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 70 ype)..."Get.CMake.COMMAND-TYPE.p
235a0 72 65 73 65 74 73 20 66 72 6f 6d 20 46 49 4c 45 4e 41 4d 45 2e 22 0a 20 20 28 77 68 65 6e 2d 6c resets.from.FILENAME."...(when-l
235c0 65 74 20 28 28 70 72 65 73 65 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 72 et.((preset.(projectile--cmake-r
235e0 65 61 64 2d 70 72 65 73 65 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f ead-preset.(projectile-expand-ro
23600 6f 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 ot.filename)))).....(cl-remove-i
23620 66 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 65 73 65 74 29 20 28 65 71 75 61 6c 20 28 f......(lambda.(preset).(equal.(
23640 67 65 74 68 61 73 68 20 22 68 69 64 64 65 6e 22 20 70 72 65 73 65 74 29 20 74 29 29 0a 20 20 20 gethash."hidden".preset).t))....
23660 20 20 28 67 65 74 68 61 73 68 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f ..(gethash.(projectile--cmake-co
23680 6d 6d 61 6e 64 2d 70 72 65 73 65 74 2d 61 72 72 61 79 2d 69 64 20 63 6f 6d 6d 61 6e 64 2d 74 79 mmand-preset-array-id.command-ty
236a0 70 65 29 20 70 72 65 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 pe).preset))))..(defun.projectil
236c0 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 28 66 69 6c 65 6e 61 e--cmake-command-presets.(filena
236e0 6d 65 20 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 43 4f me.command-type)..."Get.CMake.CO
23700 4d 4d 41 4e 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 MMAND-TYPE.presets.from.FILENAME
23720 2e 20 46 6f 6c 6c 6f 77 73 20 69 6e 63 6c 75 64 65 64 20 66 69 6c 65 73 22 0a 20 20 28 77 68 65 ..Follows.included.files"...(whe
23740 6e 2d 6c 65 74 20 28 28 70 72 65 73 65 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b n-let.((preset.(projectile--cmak
23760 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 65 78 70 61 6e 64 e-read-preset.(projectile-expand
23780 2d 72 6f 6f 74 20 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 0a 20 -root.filename)))).....(append..
237a0 20 20 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 2d 70 ....(projectile--cmake-command-p
237c0 72 65 73 65 74 73 2d 73 68 61 6c 6c 6f 77 20 66 69 6c 65 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d resets-shallow.filename.command-
237e0 74 79 70 65 29 0a 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 type)......(mapcar.......(lambda
23800 20 28 69 6e 63 6c 75 64 65 64 2d 66 69 6c 65 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d .(included-file).(projectile--cm
23820 61 6b 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 ake-command-presets.............
23840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d ...................(expand-file-
23860 6e 61 6d 65 20 69 6e 63 6c 75 64 65 64 2d 66 69 6c 65 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 name.included-file.(file-name-di
23880 72 65 63 74 6f 72 79 20 66 69 6c 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 rectory.filename))..............
238a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 ..................command-type))
238c0 0a 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 22 69 6e 63 6c 75 64 65 22 20 70 72 65 73 65 74 .......(gethash."include".preset
238e0 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 63 6d 61 6b 65 2d )))))..(defun.projectile--cmake-
23900 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 all-command-presets.(command-typ
23920 65 29 0a 20 20 22 47 65 74 20 43 4d 61 6b 65 20 75 73 65 72 20 61 6e 64 20 73 79 73 74 65 6d 20 e)..."Get.CMake.user.and.system.
23940 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 70 72 65 73 65 74 73 2e 22 0a 20 20 28 70 72 6f 6a 65 63 COMMAND-TYPE.presets."...(projec
23960 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 61 20 tile-flatten....(mapcar.(lambda.
23980 28 66 69 6c 65 6e 61 6d 65 29 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 63 6f (filename).(projectile--cmake-co
239a0 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 66 69 6c 65 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 2d 74 mmand-presets.filename.command-t
239c0 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22 43 4d 61 6b 65 55 73 65 72 50 72 65 ype))............'("CMakeUserPre
239e0 73 65 74 73 2e 6a 73 6f 6e 22 20 22 43 4d 61 6b 65 50 72 65 73 65 74 73 2e 6a 73 6f 6e 22 29 29 sets.json"."CMakePresets.json"))
23a00 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
23a20 6d 61 6e 64 2d 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 mand-preset-names.(command-type)
23a40 0a 20 20 22 47 65 74 20 6e 61 6d 65 73 20 6f 66 20 43 4d 61 6b 65 20 75 73 65 72 20 61 6e 64 20 ..."Get.names.of.CMake.user.and.
23a60 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 2e 22 0a 20 20 system.COMMAND-TYPE.presets."...
23a80 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 (mapcar.(lambda.(preset)........
23aa0 20 20 20 20 20 28 67 65 74 68 61 73 68 20 22 6e 61 6d 65 22 20 70 72 65 73 65 74 29 29 0a 20 20 .....(gethash."name".preset))...
23ac0 20 20 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 61 6c 6c 2d 63 ........(projectile--cmake-all-c
23ae0 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 29 0a 0a ommand-presets.command-type)))..
23b00 28 64 65 66 63 75 73 74 6f 6d 20 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6e 61 62 6c 65 2d 63 6d 61 (defcustom.projectile-enable-cma
23b20 6b 65 2d 70 72 65 73 65 74 73 20 6e 69 6c 0a 20 20 22 45 6e 61 62 6c 65 73 20 63 6f 6e 66 69 67 ke-presets.nil..."Enables.config
23b40 75 72 61 74 69 6f 6e 20 77 69 74 68 20 43 4d 61 6b 65 20 70 72 65 73 65 74 73 2e 0a 0a 57 68 65 uration.with.CMake.presets...Whe
23b60 6e 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 65 n.`projectile-enable-cmake-prese
23b80 74 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 43 4d 61 6b 65 20 70 72 6f 6a 65 63 74 73 20 63 ts'.is.non-nil,.CMake.projects.c
23ba0 61 6e 0a 62 65 20 63 6f 6e 66 69 67 75 72 65 64 2c 20 62 75 69 6c 74 20 61 6e 64 20 74 65 73 74 an.be.configured,.built.and.test
23bc0 65 64 20 75 73 69 6e 67 20 70 72 65 73 65 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 70 72 6f ed.using.presets."...:group.'pro
23be0 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 20 20 3a 70 61 63 6b jectile...:type.'boolean...:pack
23c00 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 34 2e age-version.'(projectile..."2.4.
23c20 30 22 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 75 0"))..(defun.projectile--cmake-u
23c40 73 65 2d 63 6f 6d 6d 61 6e 64 2d 70 72 65 73 65 74 73 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 se-command-presets.(command-type
23c60 29 0a 20 20 22 54 65 73 74 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 6f 20 75 73 65 20 )..."Test.whether.or.not.to.use.
23c80 63 6f 6d 6d 61 6e 64 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 command.presets.for.COMMAND-TYPE
23ca0 2e 0a 0a 50 72 65 73 65 74 73 20 61 72 65 20 75 73 65 64 20 69 66 20 60 70 72 6f 6a 65 63 74 69 ...Presets.are.used.if.`projecti
23cc0 6c 65 2d 65 6e 61 62 6c 65 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 73 27 20 69 73 20 6e 6f 6e 2d le-enable-cmake-presets'.is.non-
23ce0 6e 69 6c 2c 20 61 6e 64 20 43 4d 61 6b 65 0a 73 75 70 70 6f 72 74 73 20 70 72 65 73 65 74 73 20 nil,.and.CMake.supports.presets.
23d00 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 2c 20 61 6e 64 20 60 6a 73 6f 6e 2d 70 61 72 73 for.COMMAND-TYPE,.and.`json-pars
23d20 65 2d 62 75 66 66 65 72 27 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2e 22 0a 20 20 28 61 6e 64 20 e-buffer'.is.available."...(and.
23d40 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 65 74 73 0a projectile-enable-cmake-presets.
23d60 20 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 63 6f 6d 6d 61 6e .......(projectile--cmake-comman
23d80 64 2d 70 72 65 73 65 74 73 2d 73 75 70 70 6f 72 74 65 64 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 d-presets-supported.command-type
23da0 29 0a 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 70 20 27 6a 73 6f 6e 2d 70 61 72 73 65 2d )........(functionp.'json-parse-
23dc0 62 75 66 66 65 72 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 buffer)))..(defun.projectile--cm
23de0 61 6b 65 2d 73 65 6c 65 63 74 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 ake-select-command.(command-type
23e00 29 0a 20 20 22 53 65 6c 65 63 74 20 61 20 43 4d 61 6b 65 20 63 6f 6d 6d 61 6e 64 20 70 72 65 73 )..."Select.a.CMake.command.pres
23e20 65 74 20 6f 72 20 61 20 6d 61 6e 75 61 6c 20 43 4d 61 6b 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 54 et.or.a.manual.CMake.command...T
23e40 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 73 20 64 6f 6e 65 20 6c 69 6b 65 20 74 68 69 73 3a 0a he.selection.is.done.like.this:.
23e60 0a 2d 20 49 66 20 60 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 .-.If.`projectile--cmake-use-com
23e80 6d 61 6e 64 73 2d 70 72 65 73 65 74 73 27 20 66 6f 72 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 mands-presets'.for.COMMAND-TYPE.
23ea0 72 65 74 75 72 6e 73 20 74 72 75 65 2c 20 61 6e 64 0a 74 68 65 72 65 20 69 73 20 61 74 20 6c 65 returns.true,.and.there.is.at.le
23ec0 61 73 74 20 6f 6e 65 20 70 72 65 73 65 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 43 4f 4d ast.one.preset.available.for.COM
23ee0 4d 41 4e 44 2d 54 59 50 45 2c 20 74 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 MAND-TYPE,.the.user.is.prompted.
23f00 74 6f 0a 73 65 6c 65 63 74 20 61 20 6e 61 6d 65 20 6f 66 20 61 20 63 6f 6d 6d 61 6e 64 20 70 72 to.select.a.name.of.a.command.pr
23f20 65 73 65 74 2c 20 6f 72 20 6f 70 74 20 61 20 6d 61 6e 75 61 6c 20 63 6f 6d 6d 61 6e 64 20 62 79 eset,.or.opt.a.manual.command.by
23f40 20 73 65 6c 65 63 74 69 6e 67 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6e 6f .selecting.`projectile--cmake-no
23f60 2d 70 72 65 73 65 74 27 2e 0a 0a 2d 20 45 6c 73 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 -preset'...-.Else.`projectile--c
23f80 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 27 20 69 73 20 75 73 65 64 2e 22 0a 20 20 28 69 66 2d make-no-preset'.is.used."...(if-
23fa0 6c 65 74 20 28 28 75 73 65 2d 70 72 65 73 65 74 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 let.((use-presets.(projectile--c
23fc0 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 63 6f 6d 6d 61 6e 64 make-use-command-presets.command
23fe0 2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 65 74 2d 6e 61 6d 65 73 -type))............(preset-names
24000 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 2d 70 72 65 73 .(projectile--cmake-command-pres
24020 65 74 2d 6e 61 6d 65 73 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 28 et-names.command-type))).......(
24040 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......
24060 20 20 22 55 73 65 20 70 72 65 73 65 74 3a 20 22 0a 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 .."Use.preset:."........(append.
24080 70 72 65 73 65 74 2d 6e 61 6d 65 73 20 60 28 2c 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b preset-names.`(,projectile--cmak
240a0 65 2d 6e 6f 2d 70 72 65 73 65 74 29 29 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 e-no-preset))).....projectile--c
240c0 6d 61 6b 65 2d 6e 6f 2d 70 72 65 73 65 74 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a make-no-preset))..(defconst.proj
240e0 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e 64 2d 61 6c 69 ectile--cmake-manual-command-ali
24100 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 20 2e 20 22 63 6d st...'((:configure-command..."cm
24120 61 6b 65 20 2d 53 20 2e 20 2d 42 20 62 75 69 6c 64 22 29 0a 20 20 20 20 28 3a 63 6f 6d 70 69 6c ake.-S...-B.build").....(:compil
24140 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 64 20 62 75 69 6c 64 e-command..."cmake.--build.build
24160 22 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6d 61 6b 65 20 2d ").....(:test-command..."cmake.-
24180 2d 62 75 69 6c 64 20 62 75 69 6c 64 20 2d 2d 74 61 72 67 65 74 20 74 65 73 74 22 29 0a 20 20 20 -build.build.--target.test")....
241a0 20 28 3a 69 6e 73 74 61 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 6d 61 6b 65 20 2d 2d 62 75 .(:install-command..."cmake.--bu
241c0 69 6c 64 20 62 75 69 6c 64 20 2d 2d 74 61 72 67 65 74 20 69 6e 73 74 61 6c 6c 22 29 29 29 0a 0a ild.build.--target.install")))..
241e0 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 6d 61 6e 75 61 6c 2d (defun.projectile--cmake-manual-
24200 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 43 72 65 61 74 65 command.(command-type)..."Create
24220 20 6d 61 75 6e 75 61 6c 20 43 4d 61 6b 65 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 20 63 6f 6d 6d .maunual.CMake.COMMAND-TYPE.comm
24240 61 6e 64 2e 22 0a 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 and."...(cdr.(assoc.command-type
24260 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6d 61 6b 65 2d 6d 61 6e 75 61 6c 2d 63 6f 6d 6d 61 6e .projectile--cmake-manual-comman
24280 64 2d 61 6c 69 73 74 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 d-alist)))..(defconst.projectile
242a0 2d 2d 63 6d 61 6b 65 2d 70 72 65 73 65 74 2d 63 6f 6d 6d 61 6e 64 2d 61 6c 69 73 74 0a 20 20 27 --cmake-preset-command-alist...'
242c0 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 6d 61 6b 65 20 2e 20 ((:configure-command..."cmake...
242e0 2d 2d 70 72 65 73 65 74 20 25 73 22 29 0a 20 20 20 20 28 3a 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d --preset.%s").....(:compile-comm
24300 61 6e 64 20 2e 20 22 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 and..."cmake.--build.--preset.%s
24320 22 29 0a 20 20 20 20 28 3a 74 65 73 74 2d 63 6f 6d 6d 61 6e 64 20 2e 20 22 63 74 65 73 74 20 2d ").....(:test-command..."ctest.-
24340 2d 70 72 65 73 65 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 -preset.%s").....(:install-comma
24360 6e 64 20 2e 20 22 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 nd..."cmake.--build.--preset.%s.
24380 2d 2d 74 61 72 67 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 --target.install")))..(defun.pro
243a0 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 61 6e 64 20 28 63 jectile--cmake-preset-command.(c
243c0 6f 6d 6d 61 6e 64 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 ommand-type.preset)..."Create.CM
243e0 61 6b 65 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 50 ake.COMMAND-TYPE.command.using.P
24400 52 45 53 45 54 2e 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 RESET."...(format.(cdr.(assoc.co
24420 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 70 72 65 mmand-type.projectile--cmake-pre
24440 73 65 74 2d 63 6f 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 set-command-alist)).preset))..(d
24460 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 6d 61 6e 64 20 28 efun.projectile--cmake-command.(
24480 63 6f 6d 6d 61 6e 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 command-type)..."Create.a.CMake.
244a0 43 4f 4d 4d 41 4e 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 COMMAND-TYPE.command...The.comma
244c0 6e 64 20 69 73 20 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 nd.is.created.like.this:..-.If.`
244e0 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
24500 27 20 72 65 74 75 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 '.returns.`projectile--cmake-no-
24520 70 72 65 73 65 74 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 preset'.a.manual.COMMAND-TYPE.co
24540 6d 6d 61 6e 64 20 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 mmand.is.created.with.`projectil
24560 65 2d 2d 63 6d 61 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 e--cmake-manual-command'...-.Els
24580 65 20 61 20 70 72 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 e.a.preset.COMMAND-TYPE.command.
245a0 75 73 69 6e 67 20 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 using.the.selected.preset.is.cre
245c0 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 6b 65 2d 70 72 65 ated.with.`projectile--cmake-pre
245e0 73 65 74 2d 63 6f 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 set-command'."...(let.((maybe-pr
24600 65 73 65 74 20 28 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 eset.(projectile--cmake-select-c
24620 6f 6d 6d 61 6e 64 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 ommand.command-type))).....(if.(
24640 65 71 75 61 6c 20 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 equal.maybe-preset.projectile--c
24660 6d 61 6b 65 2d 6e 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 make-no-preset).........(project
24680 69 6c 65 2d 2d 63 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 ile--cmake-manual-command.comman
246a0 64 2d 74 79 70 65 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 d-type).......(projectile--cmake
246c0 2d 70 72 65 73 65 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 -preset-command.command-type.may
246e0 62 65 2d 70 72 65 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 be-preset))))..(defun.projectile
24700 2d 2d 63 6d 61 6b 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 --cmake-configure-command.()..."
24720 43 4d 61 6b 65 20 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 CMake.configure.command."...(pro
24740 6a 65 63 74 69 6c 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 jectile--cmake-command.:configur
24760 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 6c 65 2d 2d e-command))..(defun.projectile--
24780 63 6d 61 6b 65 2d 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 cmake-compile-command.()..."CMak
247a0 65 20 63 6f 6d 70 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 e.compile.command."...(projectil
247c0 65 2d 2d 63 6d 61 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 e--cmake-command.:compile-comman
247e0 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 74 65 d))..(defun.projectile--cmake-te
24800 73 74 2d 63 6f 6d 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 st-command.()..."CMake.test.comm
24820 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 65 2d 63 6f 6d 6d 61 and."...(projectile--cmake-comma
24840 6e 64 20 3a 74 65 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 nd.:test-command))..(defun.proje
24860 63 74 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 20 28 29 0a ctile--cmake-install-command.().
24880 20 20 22 43 4d 61 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 .."CMake.install.command."...(pr
248a0 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 69 6e 73 74 61 6c 6c ojectile--cmake-command.:install
248c0 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 3b 3b 3b 20 50 72 6f 6a 65 63 74 20 74 79 70 65 20 72 65 67 -command))..;;;.Project.type.reg
248e0 69 73 74 72 61 74 69 6f 6e 0a 3b 3b 0a 3b 3b 20 50 72 6f 6a 65 63 74 20 74 79 70 65 20 64 65 74 istration.;;.;;.Project.type.det
24900 65 63 74 69 6f 6e 20 68 61 70 70 65 6e 73 20 69 6e 20 61 20 72 65 76 65 72 73 65 20 6f 72 64 65 ection.happens.in.a.reverse.orde
24920 72 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 3b 3b 20 70 72 6f 6a 65 63 74 20 74 79 70 r.with.respect.to.;;.project.typ
24940 65 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 28 69 6e 76 6f 63 61 74 69 6f 6e 73 20 6f 66 20 60 e.registration.(invocations.of.`
24960 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
24980 27 29 2e 0a 3b 3b 0a 3b 3b 20 41 73 20 66 75 6e 63 74 69 6f 6e 2d 62 61 73 65 64 20 70 72 6f 6a ')..;;.;;.As.function-based.proj
249a0 65 63 74 20 74 79 70 65 20 64 65 74 65 63 74 69 6f 6e 20 69 73 20 70 72 65 74 74 79 20 73 6c 6f ect.type.detection.is.pretty.slo
249c0 77 2c 20 73 6f 20 69 74 0a 3b 3b 20 73 68 6f 75 6c 64 20 62 65 20 74 72 69 65 64 20 61 74 20 74 w,.so.it.;;.should.be.tried.at.t
249e0 68 65 20 65 6e 64 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 65 6c 73 65 20 66 61 69 6c 65 64 he.end.if.everything.else.failed
24a00 20 28 6d 65 61 6e 69 6e 67 20 68 65 72 65 0a 3b 3b 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c .(meaning.here.;;.it.should.be.l
24a20 69 73 74 65 64 20 66 69 72 73 74 29 2e 0a 3b 3b 0a 3b 3b 20 49 64 65 61 6c 6c 79 20 63 6f 6d 6d isted.first)..;;.;;.Ideally.comm
24a40 6f 6e 20 70 72 6f 6a 65 63 74 20 74 79 70 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 68 65 63 6b on.project.types.should.be.check
24a60 65 64 20 65 61 72 6c 69 65 72 20 74 68 61 6e 20 65 78 6f 74 69 63 20 6f 6e 65 73 2e 0a 0a 3b 3b ed.earlier.than.exotic.ones...;;
24a80 20 46 75 6e 63 74 69 6f 6e 2d 62 61 73 65 64 20 64 65 74 65 63 74 69 6f 6e 20 70 72 6f 6a 65 63 .Function-based.detection.projec
24aa0 74 20 74 79 70 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 t.type.(projectile-register-proj
24ac0 65 63 74 2d 74 79 70 65 20 27 68 61 73 6b 65 6c 6c 2d 63 61 62 61 6c 20 23 27 70 72 6f 6a 65 63 ect-type.'haskell-cabal.#'projec
24ae0 74 69 6c 65 2d 63 61 62 61 6c 2d 70 72 6f 6a 65 63 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 tile-cabal-project-p............
24b00 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.
24b20 22 63 61 62 61 6c 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 "cabal.build"...................
24b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 63 61 62 61 6c 20 74 65 73 ................:test."cabal.tes
24b60 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"..............................
24b80 20 20 20 20 20 3a 72 75 6e 20 22 63 61 62 61 6c 20 72 75 6e 22 0a 20 20 20 20 20 20 20 20 20 20 .....:run."cabal.run"...........
24ba0 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
24bc0 66 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 ffix."Spec").(projectile-registe
24be0 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 64 6f 74 6e 65 74 20 23 27 70 72 6f 6a 65 63 74 r-project-type.'dotnet.#'project
24c00 69 6c 65 2d 64 6f 74 6e 65 74 2d 70 72 6f 6a 65 63 74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 ile-dotnet-project-p............
24c20 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-
24c40 66 69 6c 65 20 27 28 22 3f 2a 2e 63 73 70 72 6f 6a 22 20 22 3f 2a 2e 66 73 70 72 6f 6a 22 29 0a file.'("?*.csproj"."?*.fsproj").
24c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24c80 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".......
24ca0 20 20 20 20 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
24cc0 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"...................
24ce0 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
24d00 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
24d20 74 2d 74 79 70 65 20 27 64 6f 74 6e 65 74 2d 73 6c 6e 20 27 28 22 73 72 63 22 29 0a 20 20 20 20 t-type.'dotnet-sln.'("src").....
24d40 20 20 20 20 20 20 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
24d60 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 3f 2a 2e 73 6c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 roject-file."?*.sln"............
24d80 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.
24da0 22 64 6f 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 "dotnet.build"..................
24dc0 20 20 20 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 .................:run."dotnet.ru
24de0 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 20 n"..............................
24e00 20 20 20 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 .....:test."dotnet.test").(proje
24e20 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 6e 69 6d ctile-register-project-type.'nim
24e40 2d 6e 69 6d 62 6c 65 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 69 6d 62 6c 65 2d 70 72 6f 6a -nimble.#'projectile-nimble-proj
24e60 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 20 ect-p...........................
24e80 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 6e 69 6d 62 6c 65 ........:project-file."?*.nimble
24ea0 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 "...............................
24ec0 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 6e 69 6d 62 6c 65 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 62 ....:compile."nimble.--noColor.b
24ee0 75 69 6c 64 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 uild.--colors:off"..............
24f00 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 6c 20 22 6e .....................:install."n
24f20 69 6d 62 6c 65 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 69 6e 73 74 61 6c 6c 20 2d 2d 63 6f 6c 6f 72 73 imble.--noColor.install.--colors
24f40 3a 6f 66 66 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 :off"...........................
24f60 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6e 69 6d 62 6c 65 20 2d 2d 6e 6f 43 6f 6c 6f 72 20 ........:test."nimble.--noColor.
24f80 74 65 73 74 20 2d 64 3a 6e 69 6d 55 6e 69 74 74 65 73 74 43 6f 6c 6f 72 3a 6f 66 66 20 2d 2d 63 test.-d:nimUnittestColor:off.--c
24fa0 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 20 20 20 20 20 20 olors:off"......................
24fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 75 6e 20 22 6e 69 6d 62 6c 65 20 2d 2d 6e 6f 43 6f .............:run."nimble.--noCo
24fe0 6c 6f 72 20 72 75 6e 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.run.--colors:off"...........
25000 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 2d 64 69 72 ........................:src-dir
25020 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 20 20 20 20 ."src"..........................
25040 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 74 65 73 74 73 22 29 0a 3b 3b 20 46 .........:test-dir."tests").;;.F
25060 69 6c 65 2d 62 61 73 65 64 20 64 65 74 65 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 20 74 79 70 65 ile-based.detection.project.type
25080 73 0a 0a 3b 3b 20 55 6e 69 76 65 72 73 61 6c 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 s..;;.Universal.(projectile-regi
250a0 73 74 65 72 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 ster-project-type.'scons.'("SCon
250c0 73 74 72 75 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 struct")........................
250e0 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 53 43 6f 6e 73 74 ...........:project-file."SConst
25100 72 75 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 20 20 ruct"...........................
25120 20 20 20 20 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 ........:compile."scons"........
25140 20 20 20 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
25160 20 22 73 63 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 ."scons.test"...................
25180 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 74 65 ................:test-suffix."te
251a0 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
251c0 74 2d 74 79 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 t-type.'meson.'("meson.build")..
251e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25200 20 3a 70 72 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 .:project-file."meson.build"....
25220 20 20 20 20 20 20 20 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 ...............................:
25240 63 6f 6d 70 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 compilation-dir."build".........
25260 20 20 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 6e 66 69 ..........................:confi
25280 67 75 72 65 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 gure."meson.%s".................
252a0 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 6e 69 6e 6a ..................:compile."ninj
252c0 61 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 a"..............................
252e0 20 20 20 20 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 .....:test."ninja.test").(projec
25300 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 6e 69 78 20 tile-register-project-type.'nix.
25320 27 28 22 64 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 '("default.nix")................
25340 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
25360 20 22 64 65 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 ."default.nix"..................
25380 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 2d 62 .................:compile."nix-b
253a0 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"...........................
253c0 20 20 20 20 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 ........:test."nix-build").(proj
253e0 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 6e 69 ectile-register-project-type.'ni
25400 78 2d 66 6c 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 x-flake.'("flake.nix")..........
25420 20 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
25440 74 2d 66 69 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 t-file."flake.nix"..............
25460 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 6e .....................:compile."n
25480 69 78 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 ix.build".......................
254a0 20 20 20 20 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 ............:test."nix.flake.che
254c0 63 6b 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 ck".............................
254e0 20 20 20 20 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 ......:run."nix.run").(projectil
25500 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 62 61 7a 65 6c 20 27 e-register-project-type.'bazel.'
25520 28 22 57 4f 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 ("WORKSPACE")...................
25540 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 57 ................:project-file."W
25560 4f 52 4b 53 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 ORKSPACE".......................
25580 20 20 20 20 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 ............:compile."bazel.buil
255a0 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 20 20 d"..............................
255c0 20 20 20 20 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 .....:test."bazel.test".........
255e0 20 20 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 ..........................:run."
25600 62 61 7a 65 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 bazel.run").(projectile-register
25620 2d 70 72 6f 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 -project-type.'debian.'("debian/
25640 63 6f 6e 74 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 control").......................
25660 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 62 69 61 ............:project-file."debia
25680 6e 2f 63 6f 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 n/control"......................
256a0 20 20 20 20 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 .............:compile."debuild.-
256c0 75 63 20 2d 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 uc.-us")..;;.Make.&.CMake.(proje
256e0 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 61 6b ctile-register-project-type.'mak
25700 65 20 27 28 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 e.'("Makefile").................
25720 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.
25740 22 4d 61 6b 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 "Makefile"......................
25760 20 20 20 20 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 .............:compile."make"....
25780 20 20 20 20 20 20 20 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 ...............................:
257a0 74 65 73 74 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 test."make.test"................
257c0 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 6c 20 22 6d 61 6b ...................:install."mak
257e0 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
25800 2d 70 72 6f 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 -project-type.'gnumake.'("GNUMak
25820 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 20 20 20 20 efile").........................
25840 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 4e 55 4d 61 6b 65 ..........:project-file."GNUMake
25860 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 20 file"...........................
25880 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 20 ........:compile."make".........
258a0 20 20 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 ..........................:test.
258c0 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 20 "make.test".....................
258e0 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 73 ..............:install."make.ins
25900 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 6a tall").(projectile-register-proj
25920 65 63 74 2d 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 ect-type.'cmake.'("CMakeLists.tx
25940 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 20 t").............................
25960 20 20 20 20 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 ......:project-file."CMakeLists.
25980 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 20 20 20 txt"............................
259a0 20 20 20 20 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 .......:configure.#'projectile--
259c0 63 6d 61 6b 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 cmake-configure-command.........
259e0 20 20 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
25a00 6c 65 20 23 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 le.#'projectile--cmake-compile-c
25a20 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 20 20 20 20 20 ommand..........................
25a40 20 20 20 20 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 .........:test.#'projectile--cma
25a60 6b 65 2d 74 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 ke-test-command.................
25a80 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 23 27 70 72 6f ..................:install.#'pro
25aa0 6a 65 63 74 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 jectile--cmake-install-command..
25ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25ae0 20 3a 70 61 63 6b 61 67 65 20 22 63 6d 61 6b 65 20 2d 2d 62 75 69 6c 64 20 62 75 69 6c 64 20 2d .:package."cmake.--build.build.-
25b00 2d 74 61 72 67 65 74 20 70 61 63 6b 61 67 65 22 29 0a 3b 3b 20 67 6f 2d 74 61 73 6b 2f 74 61 73 -target.package").;;.go-task/tas
25b20 6b 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 k.(projectile-register-project-t
25b40 79 70 65 20 27 67 6f 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 ype.'go-task.'("Taskfile.yml")..
25b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25b80 20 3a 70 72 6f 6a 65 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 .:project-file."Taskfile.yml"...
25ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25bc0 3a 63 6f 6d 70 69 6c 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 :compile."task.build"...........
25be0 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 74 ........................:test."t
25c00 61 73 6b 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 ask.test".......................
25c20 20 20 20 20 20 20 20 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 ............:install."task.insta
25c40 6c 6c 22 29 0a 3b 3b 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 ll").;;.Go.should.take.higher.pr
25c60 65 63 65 64 65 6e 63 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 ecedence.than.Make.because.Go.pr
25c80 6f 6a 65 63 74 73 20 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 ojects.often.have.a.Makefile..(p
25ca0 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.
25cc0 27 67 6f 20 70 72 6f 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 'go.projectile-go-project-test-f
25ce0 75 6e 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 20 20 20 20 20 unction.........................
25d00 20 20 20 20 20 20 20 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 ..........:compile."go.build"...
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 3a 74 65 73 74 20 22 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 :test."go.test../..."...........
25d60 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
25d80 66 66 69 78 20 22 5f 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 ffix."_test").;;.PHP.(projectile
25da0 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 68 70 2d 73 79 6d 66 -register-project-type.'php-symf
25dc0 6f 6e 79 20 27 28 22 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 ony.'("composer.json"."app"."src
25de0 22 20 22 76 65 6e 64 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 "."vendor").....................
25e00 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 63 6f 6d ..............:project-file."com
25e20 70 6f 73 65 72 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 poser.json".....................
25e40 20 20 20 20 20 20 20 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 ..............:compile."app/cons
25e60 6f 6c 65 20 73 65 72 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 ole.server:run".................
25e80 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 68 70 75 6e 69 74 ..................:test."phpunit
25ea0 20 2d 63 20 61 70 70 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 .-c.app.".......................
25ec0 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 54 65 73 74 22 29 ............:test-suffix."Test")
25ee0 0a 3b 3b 20 45 72 6c 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 .;;.Erlang.&.Elixir.(projectile-
25f00 72 65 67 69 73 74 65 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 register-project-type.'rebar.'("
25f20 72 65 62 61 72 2e 63 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 rebar.config")..................
25f40 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."
25f60 72 65 62 61 72 2e 63 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 rebar.config"...................
25f80 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 72 65 62 61 72 33 ................:compile."rebar3
25fa0 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".......................
25fc0 20 20 20 20 20 20 20 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 ............:test."rebar3.do.eun
25fe0 69 74 2c 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 20 it,ct"..........................
26000 20 20 20 20 20 20 20 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 .........:test-suffix."_SUITE").
26020 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
26040 65 20 27 65 6c 69 78 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 e.'elixir.'("mix.exs")..........
26060 20 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
26080 74 2d 66 69 6c 65 20 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 t-file."mix.exs"................
260a0 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 6d 69 78 ...................:compile."mix
260c0 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".......................
260e0 20 20 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 ............:src-dir."lib/".....
26100 20 20 20 20 20 20 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
26120 65 73 74 20 22 6d 69 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 est."mix.test"..................
26140 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."_
26160 74 65 73 74 22 29 0a 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 test").;;.JavaScript.(projectile
26180 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 72 75 6e 74 20 27 28 -register-project-type.'grunt.'(
261a0 22 47 72 75 6e 74 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 "Gruntfile.js").................
261c0 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.
261e0 22 47 72 75 6e 74 66 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 "Gruntfile.js"..................
26200 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 67 72 75 6e 74 .................:compile."grunt
26220 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 "...............................
26240 20 20 20 20 3a 74 65 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 ....:test."grunt.test").(project
26260 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 75 6c 70 20 ile-register-project-type.'gulp.
26280 27 28 22 67 75 6c 70 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 '("gulpfile.js")................
262a0 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
262c0 20 22 67 75 6c 70 66 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 ."gulpfile.js"..................
262e0 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 67 75 6c 70 22 .................:compile."gulp"
26300 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 ................................
26320 20 20 20 3a 74 65 73 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 ...:test."gulp.test").(projectil
26340 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 70 6d 20 27 28 22 e-register-project-type.'npm.'("
26360 70 61 63 6b 61 67 65 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 package.json"."package-lock.json
26380 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 ")..............................
263a0 20 20 20 20 20 3a 70 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 .....:project-file."package.json
263c0 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 "...............................
263e0 20 20 20 20 3a 63 6f 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 ....:compile."npm.install.&&.npm
26400 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 20 20 20 20 20 .run.build".....................
26420 20 20 20 20 20 20 20 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 ..............:test."npm.test"..
26440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26460 20 3a 74 65 73 74 2d 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 .:test-suffix.".test").(projecti
26480 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 79 61 72 6e 20 27 le-register-project-type.'yarn.'
264a0 28 22 70 61 63 6b 61 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 ("package.json"."yarn.lock")....
264c0 20 20 20 20 20 20 20 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 ...............................:
264e0 70 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 project-file."package.json".....
26500 20 20 20 20 20 20 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 ..............................:c
26520 6f 6d 70 69 6c 65 20 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 ompile."yarn.&&.yarn.build".....
26540 20 20 20 20 20 20 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
26560 65 73 74 20 22 79 61 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 est."yarn.test".................
26580 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 22 ..................:test-suffix."
265a0 2e 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 72 2d 70 72 6f .test").(projectile-register-pro
265c0 6a 65 63 74 2d 74 79 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 ject-type.'pnpm.'("package.json"
265e0 20 22 70 6e 70 6d 2d 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 ."pnpm-lock.yaml")..............
26600 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
26620 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 20 20 20 le."package.json"...............
26640 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 6e ....................:compile."pn
26660 70 6d 20 69 6e 73 74 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 pm.install.&&.pnpm.build".......
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 3a 74 65 73 ............................:tes
266a0 74 20 22 70 6e 70 6d 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."pnpm.test"...................
266c0 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 2e 74 ................:test-suffix.".t
266e0 65 73 74 22 29 0a 3b 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 est").;;.Angular.(projectile-reg
26700 69 73 74 65 72 2d 70 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 ister-project-type.'angular.'("a
26720 6e 67 75 6c 61 72 2e 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 ngular.json".".angular-cli.json"
26740 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 )...............................
26760 20 20 20 20 3a 70 72 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 ....:project-file."angular.json"
26780 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 ................................
267a0 20 20 20 3a 63 6f 6d 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 ...:compile."ng.build"..........
267c0 20 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 .........................:run."n
267e0 67 20 73 65 72 76 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 g.serve"........................
26800 20 20 20 20 20 20 20 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 ...........:test."ng.test"......
26820 20 20 20 20 20 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
26840 73 74 2d 73 75 66 66 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 st-suffix.".spec").;;.Python.(pr
26860 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 27 ojectile-register-project-type.'
26880 64 6a 61 6e 67 6f 20 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 django.'("manage.py")...........
268a0 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
268c0 2d 66 69 6c 65 20 22 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 -file."manage.py"...............
268e0 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 79 ....................:compile."py
26900 74 68 6f 6e 20 6d 61 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 thon.manage.py.runserver".......
26920 20 20 20 20 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
26940 74 20 22 70 79 74 68 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 t."python.manage.py.test".......
26960 20 20 20 20 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
26980 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 20 t-prefix."test_"................
269a0 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 22 ...................:test-suffix"
269c0 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 72 2d 70 72 6f _test").(projectile-register-pro
269e0 6a 65 63 74 2d 74 79 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 ject-type.'python-pip.'("require
26a00 6d 65 6e 74 73 2e 74 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 ments.txt").....................
26a20 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 72 65 71 ..............:project-file."req
26a40 75 69 72 65 6d 65 6e 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 uirements.txt"..................
26a60 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 79 74 68 6f .................:compile."pytho
26a80 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 20 20 20 20 20 20 20 n.setup.py.build"...............
26aa0 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 6f ....................:test."pytho
26ac0 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 20 20 20 n.-m.unittest.discover".........
26ae0 20 20 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-
26b00 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 20 20 20 prefix."test_"..................
26b20 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 22 5f 74 .................:test-suffix"_t
26b40 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
26b60 63 74 2d 74 79 70 65 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 ct-type.'python-pkg.'("setup.py"
26b80 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 )...............................
26ba0 20 20 20 20 3a 70 72 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 ....:project-file."setup.py"....
26bc0 20 20 20 20 20 20 20 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 ...............................:
26be0 63 6f 6d 70 69 6c 65 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 compile."python.setup.py.build".
26c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26c20 20 20 3a 74 65 73 74 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 ..:test."python.-m.unittest.disc
26c40 6f 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 over"...........................
26c60 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 22 0a 20 20 20 ........:test-prefix."test_"....
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 20 20 3a ...............................:
26ca0 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 65 63 74 69 6c 65 2d test-suffix"_test").(projectile-
26cc0 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
26ce0 78 20 27 28 22 74 6f 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 x.'("tox.ini")..................
26d00 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."
26d20 74 6f 78 2e 69 6e 69 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 tox.ini"........................
26d40 20 20 20 20 20 20 20 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 ...........:compile."tox.-r.--no
26d60 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"...........................
26d80 20 20 20 20 20 20 20 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 ........:test."tox".............
26da0 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 66 ......................:test-pref
26dc0 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 20 20 20 20 20 20 20 ix."test_"......................
26de0 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 22 5f 74 65 73 74 22 .............:test-suffix"_test"
26e00 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
26e20 79 70 65 20 27 70 79 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 ype.'python-pipenv.'("Pipfile").
26e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26e60 20 20 3a 70 72 6f 6a 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 ..:project-file."Pipfile".......
26e80 20 20 20 20 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
26ea0 70 69 6c 65 20 22 70 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 pile."pipenv.run.build".........
26ec0 20 20 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 ..........................:test.
26ee0 22 70 69 70 65 6e 76 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 "pipenv.run.test"...............
26f00 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 78 ....................:test-prefix
26f20 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 20 ."test_"........................
26f40 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 65 73 74 22 29 ...........:test-suffix."_test")
26f60 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
26f80 70 65 20 27 70 79 74 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 pe.'python-poetry.'("poetry.lock
26fa0 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 ")..............................
26fc0 20 20 20 20 20 3a 70 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 .....:project-file."poetry.lock"
26fe0 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 ................................
27000 20 20 20 3a 63 6f 6d 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 ...:compile."poetry.build"......
27020 20 20 20 20 20 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
27040 73 74 20 22 70 6f 65 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 st."poetry.run.python.-m.unittes
27060 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 20 20 20 20 20 t.discover".....................
27080 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 74 ..............:test-prefix."test
270a0 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 20 _"..............................
270c0 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 28 70 72 6f 6a .....:test-suffix."_test").(proj
270e0 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
27100 74 68 6f 6e 2d 74 6f 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 thon-toml.'("pyproject.toml")...
27120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27140 3a 70 72 6f 6a 65 63 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 :project-file."pyproject.toml"..
27160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27180 20 3a 63 6f 6d 70 69 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 .:compile."python.-m.build".....
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 3a 74 ..............................:t
271c0 65 73 74 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 est."python.-m.unittest.discover
271e0 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 "...............................
27200 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 20 20 20 ....:test-prefix."test_"........
27220 20 20 20 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
27240 2d 73 75 66 66 69 78 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 -suffix."_test").;;.Java.&.frien
27260 64 73 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 ds.(projectile-register-project-
27280 74 79 70 65 20 27 6d 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 type.'maven.'("pom.xml")........
272a0 20 20 20 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
272c0 65 63 74 2d 66 69 6c 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 ect-file."pom.xml"..............
272e0 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 6d .....................:compile."m
27300 76 6e 20 2d 42 20 63 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 vn.-B.clean.install"............
27320 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 76 .......................:test."mv
27340 6e 20 2d 42 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 n.-B.test"......................
27360 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 54 65 73 74 22 .............:test-suffix."Test"
27380 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 ................................
273a0 20 20 20 3a 73 72 63 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 ...:src-dir."src/main/".........
273c0 20 20 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-
273e0 64 69 72 20 22 73 72 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 dir."src/test/").(projectile-reg
27400 69 73 74 65 72 2d 70 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 ister-project-type.'gradle.'("bu
27420 69 6c 64 2e 67 72 61 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 ild.gradle")....................
27440 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 62 75 ...............:project-file."bu
27460 69 6c 64 2e 67 72 61 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 ild.gradle".....................
27480 20 20 20 20 20 20 20 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 ..............:compile."gradle.b
274a0 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"...........................
274c0 20 20 20 20 20 20 20 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 ........:test."gradle.test".....
274e0 20 20 20 20 20 20 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
27500 65 73 74 2d 73 75 66 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 est-suffix."Spec").(projectile-r
27520 65 67 69 73 74 65 72 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 egister-project-type.'gradlew.'(
27540 22 67 72 61 64 6c 65 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 "gradlew")......................
27560 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 67 72 61 64 .............:project-file."grad
27580 6c 65 77 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 lew"............................
275a0 20 20 20 20 20 20 20 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 .......:compile."./gradlew.build
275c0 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 "...............................
275e0 20 20 20 20 3a 74 65 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 ....:test."./gradlew.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 20 20 20 3a 74 65 .............................:te
27620 73 74 2d 73 75 66 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 st-suffix."Spec").(projectile-re
27640 67 69 73 74 65 72 2d 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 gister-project-type.'grails.'("a
27660 70 70 6c 69 63 61 74 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 pplication.yml"."grails-app")...
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 20 20 20 20 20 20 20 20 ................................
276a0 3a 70 72 6f 6a 65 63 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 :project-file."application.yml".
276c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
276e0 20 20 3a 63 6f 6d 70 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 ..:compile."grails.package".....
27700 20 20 20 20 20 20 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
27720 65 73 74 20 22 67 72 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 est."grails.test-app"...........
27740 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
27760 66 66 69 78 20 22 53 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 ffix."Spec").;;.Scala.(projectil
27780 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 73 62 74 20 27 28 22 e-register-project-type.'sbt.'("
277a0 62 75 69 6c 64 2e 73 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 build.sbt").....................
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 62 75 69 ..............:project-file."bui
277e0 6c 64 2e 73 62 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 ld.sbt".........................
27800 20 20 20 20 20 20 20 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 ..........:src-dir."main".......
27820 20 20 20 20 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
27840 74 2d 64 69 72 20 22 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 t-dir."test"....................
27860 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 73 62 74 20 63 6f 6d ...............:compile."sbt.com
27880 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 20 20 20 20 pile"...........................
278a0 20 20 20 20 20 20 20 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 ........:test."sbt.test"........
278c0 20 20 20 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
278e0 2d 73 75 66 66 69 78 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 -suffix."Spec")..(projectile-reg
27900 69 73 74 65 72 2d 70 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 ister-project-type.'mill.'("buil
27920 64 2e 73 63 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 d.sc")..........................
27940 20 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 73 63 .........:project-file."build.sc
27960 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 "...............................
27980 20 20 20 20 3a 73 72 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 ....:src-dir."src/".............
279a0 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 72 20 ......................:test-dir.
279c0 22 74 65 73 74 2f 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 "test/src/".....................
279e0 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 69 6c 6c 20 61 6c 6c ..............:compile."mill.all
27a00 20 5f 5f 2e 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 .__.compile"....................
27a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6d 69 6c 6c 20 61 6c 6c 20 5f ...............:test."mill.all._
27a40 5f 2e 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 _.test".........................
27a60 20 20 20 20 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 29 0a 0a ..........:test-suffix."Test")..
27a80 3b 3b 20 43 6c 6f 6a 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 ;;.Clojure.(projectile-register-
27aa0 70 72 6f 6a 65 63 74 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 project-type.'lein-test.'("proje
27ac0 63 74 2e 63 6c 6a 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 ct.clj")........................
27ae0 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 72 6f 6a 65 63 ...........:project-file."projec
27b00 74 2e 63 6c 6a 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 t.clj"..........................
27b20 20 20 20 20 20 20 20 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 .........:compile."lein.compile"
27b40 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 ................................
27b60 20 20 20 3a 74 65 73 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 ...:test."lein.test"............
27b80 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
27ba0 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 74 65 fix."_test").(projectile-registe
27bc0 72 2d 70 72 6f 6a 65 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 r-project-type.'lein-midje.'("pr
27be0 6f 6a 65 63 74 2e 63 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 oject.clj".".midje.clj")........
27c00 20 20 20 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
27c20 65 63 74 2d 66 69 6c 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 ect-file."project.clj"..........
27c40 20 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
27c60 65 20 22 6c 65 69 6e 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 e."lein.compile"................
27c80 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 6c 65 69 6e 20 6d ...................:test."lein.m
27ca0 69 64 6a 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 idje"...........................
27cc0 20 20 20 20 20 20 20 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 ........:test-prefix."t_").(proj
27ce0 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 62 6f ectile-register-project-type.'bo
27d00 6f 74 2d 63 6c 6a 20 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 ot-clj.'("build.boot")..........
27d20 20 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
27d40 74 2d 66 69 6c 65 20 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 t-file."build.boot".............
27d60 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 22 ......................:compile."
27d80 62 6f 6f 74 20 61 6f 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 boot.aot".......................
27da0 20 20 20 20 20 20 20 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 ............:test."boot.test"...
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 20 20 20 20 20 ................................
27de0 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 6c :test-suffix."_test").(projectil
27e00 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 6c 6f 6a 75 72 65 e-register-project-type.'clojure
27e20 2d 63 6c 69 20 27 28 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 -cli.'("deps.edn")..............
27e40 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
27e60 6c 65 20 22 64 65 70 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 le."deps.edn"...................
27e80 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
27ea0 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
27ec0 63 74 2d 74 79 70 65 20 27 62 6c 6f 6f 70 20 27 28 22 2e 62 6c 6f 6f 70 22 29 0a 20 20 20 20 20 ct-type.'bloop.'(".bloop")......
27ee0 20 20 20 20 20 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
27f00 6f 6a 65 63 74 2d 66 69 6c 65 20 22 2e 62 6c 6f 6f 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 oject-file.".bloop".............
27f20 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 22 ......................:compile."
27f40 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 20 20 20 20 20 20 bloop.compile.root".............
27f60 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 62 6c 6f ......................:test."blo
27f80 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 72 74 65 72 20 73 op.test.--propagate.--reporter.s
27fa0 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 20 20 20 20 20 20 calac.root".....................
27fc0 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 63 2f 6d 61 69 6e ..............:src-dir."src/main
27fe0 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 20 20 /"..............................
28000 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 0a 20 20 20 20 20 .....:test-dir."src/test/"......
28020 20 20 20 20 20 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
28040 73 74 2d 73 75 66 66 69 78 20 22 53 70 65 63 22 29 0a 3b 3b 20 52 75 62 79 0a 28 70 72 6f 6a 65 st-suffix."Spec").;;.Ruby.(proje
28060 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 72 75 62 ctile-register-project-type.'rub
28080 79 2d 72 73 70 65 63 20 27 28 22 47 65 6d 66 69 6c 65 22 20 22 6c 69 62 22 20 22 73 70 65 63 22 y-rspec.'("Gemfile"."lib"."spec"
280a0 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 )...............................
280c0 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 65 22 0a 20 20 20 20 ....:project-file."Gemfile".....
280e0 20 20 20 20 20 20 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 ..............................:c
28100 6f 6d 70 69 6c 65 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 61 6b 65 22 0a 20 20 20 20 20 20 ompile."bundle.exec.rake".......
28120 20 20 20 20 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
28140 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 20 20 20 20 20 20 -dir."lib/".....................
28160 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 65 20 65 78 65 63 ..............:test."bundle.exec
28180 20 72 73 70 65 63 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 .rspec".........................
281a0 20 20 20 20 20 20 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 ..........:test-dir."spec/".....
281c0 20 20 20 20 20 20 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
281e0 65 73 74 2d 73 75 66 66 69 78 20 22 5f 73 70 65 63 22 29 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d est-suffix."_spec").(projectile-
28200 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 62 79 2d 74 65 73 74 register-project-type.'ruby-test
28220 20 27 28 22 47 65 6d 66 69 6c 65 22 20 22 6c 69 62 22 20 22 74 65 73 74 22 29 0a 20 20 20 20 20 .'("Gemfile"."lib"."test")......
28240 20 20 20 20 20 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
28260 6f 6a 65 63 74 2d 66 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 oject-file."Gemfile"............
28280 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 22 .......................:compile"
282a0 62 75 6e 64 6c 65 20 65 78 65 63 20 72 61 6b 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 bundle.exec.rake"...............
282c0 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 6c 69 ....................:src-dir."li
282e0 62 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 20 b/".............................
28300 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 61 6b 65 20 74 65 ......:test."bundle.exec.rake.te
28320 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".............................
28340 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 3b 3b 20 52 ......:test-suffix."_test").;;.R
28360 61 69 6c 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 72 65 67 69 73 74 65 72 65 64 20 61 66 74 65 ails.needs.to.be.registered.afte
28380 72 20 6e 70 6d 2c 20 6f 74 68 65 72 77 69 73 65 20 60 70 61 63 6b 61 67 65 2e 6a 73 6f 6e 60 20 r.npm,.otherwise.`package.json`.
283a0 6d 61 6b 65 73 20 69 74 20 60 6e 70 6d 60 2e 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 makes.it.`npm`..;;.https://githu
283c0 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 31 b.com/bbatsov/projectile/pull/11
283e0 39 31 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 91.(projectile-register-project-
28400 74 79 70 65 20 27 72 61 69 6c 73 2d 74 65 73 74 20 27 28 22 47 65 6d 66 69 6c 65 22 20 22 61 70 type.'rails-test.'("Gemfile"."ap
28420 70 22 20 22 6c 69 62 22 20 22 64 62 22 20 22 63 6f 6e 66 69 67 22 20 22 74 65 73 74 22 29 0a 20 p"."lib"."db"."config"."test")..
28440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28460 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 47 65 6d 66 69 6c 65 22 0a 20 20 20 20 20 20 20 .:project-file."Gemfile"........
28480 20 20 20 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
284a0 69 6c 65 20 22 62 75 6e 64 6c 65 20 65 78 65 63 20 72 61 69 6c 73 20 73 65 72 76 65 72 22 0a 20 ile."bundle.exec.rails.server"..
284c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
284e0 20 3a 73 72 63 2d 64 69 72 20 22 61 70 70 2f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:src-dir."app/"................
28500 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 65 ...................:test."bundle
28520 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 20 .exec.rake.test"................
28540 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.
28560 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 72 2d 70 72 "_test").(projectile-register-pr
28580 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 61 69 6c 73 2d 72 73 70 65 63 20 27 28 22 47 65 6d 66 69 oject-type.'rails-rspec.'("Gemfi
285a0 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 66 69 67 22 20 22 73 le"."app"."lib"."db"."config"."s
285c0 70 65 63 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 pec")...........................
285e0 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 65 22 0a ........:project-file."Gemfile".
28600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28620 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 61 69 6c 73 20 73 65 ..:compile."bundle.exec.rails.se
28640 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 20 20 20 20 20 20 20 rver"...........................
28660 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 20 20 20 20 20 20 20 ........:src-dir."app/".........
28680 20 20 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 ..........................:test.
286a0 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 20 20 "bundle.exec.rspec".............
286c0 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 72 20 ......................:test-dir.
286e0 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 20 20 "spec/".........................
28700 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 29 0a ..........:test-suffix."_spec").
28720 3b 3b 20 43 72 79 73 74 61 6c 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 2d ;;.Crystal.(projectile-register-
28740 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 72 79 73 74 61 6c 2d 73 70 65 63 20 27 28 22 73 68 project-type.'crystal-spec.'("sh
28760 61 72 64 2e 79 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 20 20 ard.yml").......................
28780 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 73 68 61 72 64 ............:project-file."shard
287a0 2e 79 6d 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 .yml"...........................
287c0 20 20 20 20 20 20 20 20 3a 73 72 63 2d 64 69 72 20 22 73 72 63 2f 22 0a 20 20 20 20 20 20 20 20 ........:src-dir."src/".........
287e0 20 20 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 ..........................:test.
28800 22 63 72 79 73 74 61 6c 20 73 70 65 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "crystal.spec"..................
28820 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 70 65 63 .................:test-dir."spec
28840 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 20 20 /"..............................
28860 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 29 0a 0a 3b 3b 20 45 .....:test-suffix."_spec")..;;.E
28880 6d 61 63 73 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 macs.(projectile-register-projec
288a0 74 2d 74 79 70 65 20 27 65 6d 61 63 73 2d 63 61 73 6b 20 27 28 22 43 61 73 6b 22 29 0a 20 20 20 t-type.'emacs-cask.'("Cask")....
288c0 20 20 20 20 20 20 20 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 ...............................:
288e0 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 43 61 73 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 project-file."Cask".............
28900 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 22 ......................:compile."
28920 63 61 73 6b 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 cask.install"...................
28940 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 22 74 65 ................:test-prefix."te
28960 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 20 20 20 20 20 20 20 st-"............................
28980 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 74 22 29 0a 28 70 72 .......:test-suffix."-test").(pr
289a0 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 27 ojectile-register-project-type.'
289c0 65 6d 61 63 73 2d 65 6c 64 65 76 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 65 6c 64 65 76 2d 70 emacs-eldev.#'projectile-eldev-p
289e0 72 6f 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 roject-p........................
28a00 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 45 6c 64 65 76 22 ...........:project-file."Eldev"
28a20 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 ................................
28a40 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 65 6c 64 65 76 20 63 6f 6d 70 69 6c 65 22 0a 20 20 20 20 ...:compile."eldev.compile".....
28a60 20 20 20 20 20 20 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
28a80 65 73 74 20 22 65 6c 64 65 76 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 est."eldev.test"................
28aa0 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 65 6c 64 65 76 20 65 ...................:run."eldev.e
28ac0 6d 61 63 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 macs"...........................
28ae0 20 20 20 20 20 20 20 20 3a 70 61 63 6b 61 67 65 20 22 65 6c 64 65 76 20 70 61 63 6b 61 67 65 22 ........:package."eldev.package"
28b00 29 0a 0a 3b 3b 20 52 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 )..;;.R.(projectile-register-pro
28b20 6a 65 63 74 2d 74 79 70 65 20 27 72 20 27 28 22 44 45 53 43 52 49 50 54 49 4f 4e 22 29 0a 20 20 ject-type.'r.'("DESCRIPTION")...
28b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28b60 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 44 45 53 43 52 49 50 54 49 4f 4e 22 0a 20 20 20 20 :project-file."DESCRIPTION".....
28b80 20 20 20 20 20 20 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 ..............................:c
28ba0 6f 6d 70 69 6c 65 20 22 52 20 43 4d 44 20 49 4e 53 54 41 4c 4c 20 2d 2d 77 69 74 68 2d 6b 65 65 ompile."R.CMD.INSTALL.--with-kee
28bc0 70 2e 73 6f 75 72 63 65 20 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p.source..".....................
28be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 28 63 6f 6e 63 61 74 20 22 52 20 43 ..............:test.(concat."R.C
28c00 4d 44 20 63 68 65 63 6b 20 2d 6f 20 22 20 74 65 6d 70 6f 72 61 72 79 2d 66 69 6c 65 2d 64 69 72 MD.check.-o.".temporary-file-dir
28c20 65 63 74 6f 72 79 20 22 20 2e 22 29 29 0a 0a 3b 3b 20 48 61 73 6b 65 6c 6c 0a 28 70 72 6f 6a 65 ectory.".."))..;;.Haskell.(proje
28c40 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 68 61 73 ctile-register-project-type.'has
28c60 6b 65 6c 6c 2d 73 74 61 63 6b 20 27 28 22 73 74 61 63 6b 2e 79 61 6d 6c 22 29 0a 20 20 20 20 20 kell-stack.'("stack.yaml")......
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 20 3a 70 72 .............................:pr
28ca0 6f 6a 65 63 74 2d 66 69 6c 65 20 22 73 74 61 63 6b 2e 79 61 6d 6c 22 0a 20 20 20 20 20 20 20 20 oject-file."stack.yaml".........
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 3a 63 6f 6d 70 69 ..........................:compi
28ce0 6c 65 20 22 73 74 61 63 6b 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le."stack.build"................
28d00 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 74 61 63 6b 20 ...................:test."stack.
28d20 62 75 69 6c 64 20 2d 2d 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 build.--test"...................
28d40 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 70 ................:test-suffix."Sp
28d60 65 63 22 29 0a 0a 3b 3b 20 52 75 73 74 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 ec")..;;.Rust.(projectile-regist
28d80 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 72 75 73 74 2d 63 61 72 67 6f 20 27 28 22 43 er-project-type.'rust-cargo.'("C
28da0 61 72 67 6f 2e 74 6f 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 argo.toml").....................
28dc0 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 43 61 72 ..............:project-file."Car
28de0 67 6f 2e 74 6f 6d 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 go.toml"........................
28e00 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6d 70 69 6c 65 20 22 63 61 72 67 6f 20 62 75 69 6c 64 ...........:compile."cargo.build
28e20 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 "...............................
28e40 20 20 20 20 3a 74 65 73 74 20 22 63 61 72 67 6f 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 20 20 ....:test."cargo.test"..........
28e60 20 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 63 .........................:run."c
28e80 61 72 67 6f 20 72 75 6e 22 29 0a 0a 3b 3b 20 52 61 63 6b 65 74 0a 28 70 72 6f 6a 65 63 74 69 6c argo.run")..;;.Racket.(projectil
28ea0 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 63 6b 65 74 20 e-register-project-type.'racket.
28ec0 27 28 22 69 6e 66 6f 2e 72 6b 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '("info.rkt")...................
28ee0 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 69 ................:project-file."i
28f00 6e 66 6f 2e 72 6b 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 nfo.rkt"........................
28f20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 72 61 63 6f 20 74 65 73 74 20 2e 22 0a 20 ...........:test."raco.test.."..
28f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28f60 20 3a 69 6e 73 74 61 6c 6c 20 22 72 61 63 6f 20 70 6b 67 20 69 6e 73 74 61 6c 6c 22 0a 20 20 20 .:install."raco.pkg.install"....
28f80 20 20 20 20 20 20 20 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 ...............................:
28fa0 70 61 63 6b 61 67 65 20 22 72 61 63 6f 20 70 6b 67 20 63 72 65 61 74 65 20 2d 2d 73 6f 75 72 63 package."raco.pkg.create.--sourc
28fc0 65 20 24 28 70 77 64 29 22 29 0a 0a 3b 3b 20 44 61 72 74 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d e.$(pwd)")..;;.Dart.(projectile-
28fe0 72 65 67 69 73 74 65 72 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 64 61 72 74 20 27 28 22 70 register-project-type.'dart.'("p
29000 75 62 73 70 65 63 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 ubspec.yaml")...................
29020 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 70 ................:project-file."p
29040 75 62 73 70 65 63 2e 79 61 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ubspec.yaml"....................
29060 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 75 62 20 67 65 74 ...............:compile."pub.get
29080 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 "...............................
290a0 20 20 20 20 3a 74 65 73 74 20 22 70 75 62 20 72 75 6e 20 74 65 73 74 22 0a 20 20 20 20 20 20 20 ....:test."pub.run.test"........
290c0 20 20 20 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.
290e0 22 64 61 72 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 "dart"..........................
29100 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 2e 64 61 72 .........:test-suffix."_test.dar
29120 74 22 29 0a 0a 3b 3b 20 45 6c 6d 0a 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 69 73 74 65 72 t")..;;.Elm.(projectile-register
29140 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 65 6c 6d 20 27 28 22 65 6c 6d 2e 6a 73 6f 6e 22 29 -project-type.'elm.'("elm.json")
29160 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 ................................
29180 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 65 6c 6d 2e 6a 73 6f 6e 22 0a 20 20 20 20 ...:project-file."elm.json".....
291a0 20 20 20 20 20 20 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 ..............................:c
291c0 6f 6d 70 69 6c 65 20 22 65 6c 6d 20 6d 61 6b 65 22 29 0a 0a 3b 3b 20 4a 75 6c 69 61 0a 28 70 72 ompile."elm.make")..;;.Julia.(pr
291e0 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 27 ojectile-register-project-type.'
29200 6a 75 6c 69 61 20 27 28 22 50 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 29 0a 20 20 20 20 20 20 20 20 julia.'("Project.toml").........
29220 20 20 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
29240 63 74 2d 66 69 6c 65 20 22 50 72 6f 6a 65 63 74 2e 74 6f 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 ct-file."Project.toml"..........
29260 20 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
29280 65 20 22 6a 75 6c 69 61 20 2d 2d 70 72 6f 6a 65 63 74 3d 40 2e 20 2d 65 20 27 69 6d 70 6f 72 74 e."julia.--project=@..-e.'import
292a0 20 50 6b 67 3b 20 50 6b 67 2e 70 72 65 63 6f 6d 70 69 6c 65 28 29 3b 20 50 6b 67 2e 62 75 69 6c .Pkg;.Pkg.precompile();.Pkg.buil
292c0 64 28 29 27 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 d()'"...........................
292e0 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 22 6a 75 6c 69 61 20 2d 2d 70 72 6f 6a 65 63 74 3d 40 ........:test."julia.--project=@
29300 2e 20 2d 65 20 27 69 6d 70 6f 72 74 20 50 6b 67 3b 20 50 6b 67 2e 74 65 73 74 28 29 27 20 2d 2d ..-e.'import.Pkg;.Pkg.test()'.--
29320 63 68 65 63 6b 2d 62 6f 75 6e 64 73 3d 79 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 check-bounds=yes"...............
29340 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
29360 63 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 c"..............................
29380 20 20 20 20 20 3a 74 65 73 74 2d 64 69 72 20 22 74 65 73 74 22 29 0a 0a 3b 3b 20 4f 43 61 6d 6c .....:test-dir."test")..;;.OCaml
293a0 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
293c0 70 65 20 27 6f 63 61 6d 6c 2d 64 75 6e 65 20 27 28 22 64 75 6e 65 2d 70 72 6f 6a 65 63 74 22 29 pe.'ocaml-dune.'("dune-project")
293e0 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 ................................
29400 20 20 20 3a 70 72 6f 6a 65 63 74 2d 66 69 6c 65 20 22 64 75 6e 65 2d 70 72 6f 6a 65 63 74 22 0a ...:project-file."dune-project".
29420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29440 20 20 3a 63 6f 6d 70 69 6c 65 20 22 64 75 6e 65 20 62 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 ..:compile."dune.build".........
29460 20 20 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 ..........................:test.
29480 22 64 75 6e 65 20 72 75 6e 74 65 73 74 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 70 "dune.runtest")..(defvar-local.p
294a0 72 6f 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 rojectile-project-type.nil..."Bu
294c0 66 66 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 ffer.local.var.for.overriding.th
294e0 65 20 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 e.auto-detected.project.type..No
29500 72 6d 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 rmally.you'd.set.this.from..dir-
29520 6c 6f 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 locals.el.").(put.'projectile-pr
29540 6f 6a 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 oject-type.'safe-local-variable.
29560 23 27 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 #'symbolp)..(defun.projectile-de
29580 74 65 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 tect-project-type.(&optional.dir
295a0 29 0a 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 )..."Detect.the.type.of.the.proj
295c0 65 63 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 ect..When.DIR.is.specified.it.de
295e0 74 65 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 tects.its.project.type,.otherwis
29600 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 74 e.it.acts.on.the.current.project
29620 2e 0a 0a 46 61 6c 6c 73 62 61 63 6b 20 74 6f 20 61 20 67 65 6e 65 72 69 63 20 70 72 6f 6a 65 63 ...Fallsback.to.a.generic.projec
29640 74 20 74 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 t.type.when.the.type.can't.be.de
29660 74 65 72 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 termined."...(let.((project-type
29680 0a 20 20 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 ..........(or.(car.(cl-find-if..
296a0 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 72 6f 6a 65 ..................(lambda.(proje
296c0 63 74 2d 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 ct-type-record).................
296e0 20 20 20 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 .....(let.((project-type.(car.pr
29700 6f 6a 65 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 oject-type-record)).............
29720 20 20 20 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 ...............(marker.(plist-ge
29740 74 20 28 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 t.(cdr.project-type-record).'mar
29760 6b 65 72 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 ker-files)))....................
29780 20 20 20 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 ....(if.(functionp.marker)......
297a0 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 66 75 6e 63 ......................(and.(func
297c0 61 6c 6c 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 all.marker.dir).project-type)...
297e0 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 28 70 72 6f .......................(and.(pro
29800 6a 65 63 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 jectile-verify-files.marker.dir)
29820 20 70 72 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 .project-type))))...............
29840 20 20 20 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 .....projectile-project-types)).
29860 20 20 20 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 .............'generic))).....(pu
29880 74 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 20 64 thash.(projectile-project-root.d
298a0 69 72 29 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 ir).project-type.projectile-proj
298c0 65 63 74 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 ect-type-cache).....project-type
298e0 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 74 79 ))..(defun.projectile-project-ty
29900 70 65 20 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 pe.(&optional.dir)..."Determine.
29920 61 20 70 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 a.project's.type.based.on.its.st
29940 72 75 63 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 ructure..When.DIR.is.specified.i
29960 74 20 63 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 t.checks.it,.otherwise.it.acts.o
29980 6e 20 74 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 n.the.current.project...The.proj
299a0 65 63 74 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 ect.type.is.cached.for.improved.
299c0 70 65 72 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 performance."...(or.(and.(not.di
299e0 72 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 29 0a 20 20 20 20 r).projectile-project-type).....
29a00 20 20 28 69 66 2d 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 ..(if-let.((project-root.(projec
29a20 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 20 20 20 20 20 20 20 tile-project-root.dir)))........
29a40 20 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 6f ...(or.(gethash.project-root.pro
29a60 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 29 0a 20 20 20 20 jectile-project-type-cache).....
29a80 20 20 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 ..........(projectile-detect-pro
29aa0 6a 65 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 ject-type.dir)))))..;;;###autolo
29ac0 61 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 69 6e 66 ad.(defun.projectile-project-inf
29ae0 6f 20 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 o.()..."Display.info.for.current
29b00 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 29 0a 20 20 28 6d 65 .project."...(interactive)...(me
29b20 73 73 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 ssage."Project.dir:.%s.##.Projec
29b40 74 20 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 t.VCS:.%s.##.Project.type:.%s"..
29b60 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 65 2d 72 6f ..........(projectile-acquire-ro
29b80 6f 74 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 ot)............(projectile-proje
29ba0 63 74 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 ct-vcs)............(projectile-p
29bc0 72 6f 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 roject-type)))..(defun.projectil
29be0 65 2d 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 e-verify-files.(files.&optional.
29c00 64 69 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 dir)..."Check.whether.all.FILES.
29c20 65 78 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 exist.in.the.project..When.DIR.i
29c40 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 72 6f 6a s.specified.it.checks.DIR's.proj
29c60 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 20 63 75 ect,.otherwise.it.acts.on.the.cu
29c80 72 72 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 rrent.project."...(cl-every.#'(l
29ca0 61 6d 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 ambda.(file).(projectile-verify-
29cc0 66 69 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 file.file.dir)).files))..(defun.
29ce0 70 72 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 projectile-verify-file.(file.&op
29d00 74 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 tional.dir)..."Check.whether.FIL
29d20 45 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 E.exists.in.the.current.project.
29d40 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 73 .When.DIR.is.specified.it.checks
29d60 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 74 .DIR's.project,.otherwise.it.act
29d80 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 66 69 s.on.the.current.project."...(fi
29da0 6c 65 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 le-exists-p.(projectile-expand-r
29dc0 6f 6f 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 oot.file.dir)))..(defun.projecti
29de0 6c 65 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 le-verify-file-wildcard.(file.&o
29e00 70 74 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 ptional.dir)..."Check.whether.FI
29e20 4c 45 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 LE.exists.in.the.current.project
29e40 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
29e60 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
29e80 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 0a 45 78 70 61 6e ts.on.the.current.project..Expan
29ea0 64 73 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 ds.wildcards.using.`file-expand-
29ec0 77 69 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 wildcards'.before.checking."...(
29ee0 66 69 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 file-expand-wildcards.(projectil
29f00 65 2d 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 e-expand-root.file.dir)))..(defu
29f20 6e 20 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 n.projectile-project-vcs.(&optio
29f40 6e 61 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 nal.project-root)..."Determine.t
29f60 68 65 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 he.VCS.used.by.the.project.if.an
29f80 79 2e 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 y..PROJECT-ROOT.is.the.targeted.
29fa0 64 69 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 directory...If.nil,.use.the.vari
29fc0 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 72 6f 6f 74 27 2e 22 able.`projectile-project-root'."
29fe0 0a 20 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 ...(or.project-root.(setq.projec
2a000 74 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 t-root.(projectile-acquire-root)
2a020 29 29 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 ))...(cond....;;.first.we.check.
2a040 66 6f 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 for.a.VCS.marker.in.the.project.
2a060 72 6f 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 root.itself....((projectile-file
2a080 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 67 69 -exists-p.(expand-file-name.".gi
2a0a0 74 22 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 t".project-root)).'git)....((pro
2a0c0 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 70 61 6e 64 2d 66 69 jectile-file-exists-p.(expand-fi
2a0e0 6c 65 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 le-name.".hg".project-root)).'hg
2a100 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 20 )....((projectile-file-exists-p.
2a120 28 65 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 (expand-file-name.".fslckout".pr
2a140 6f 6a 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 oject-root)).'fossil)....((proje
2a160 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
2a180 2d 6e 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 -name."_FOSSIL_".project-root)).
2a1a0 27 66 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 'fossil)....((projectile-file-ex
2a1c0 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 62 7a 72 22 20 ists-p.(expand-file-name.".bzr".
2a1e0 70 72 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 project-root)).'bzr)....((projec
2a200 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 2d tile-file-exists-p.(expand-file-
2a220 6e 61 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 name."_darcs".project-root)).'da
2a240 72 63 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 rcs)....((projectile-file-exists
2a260 2d 70 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 -p.(expand-file-name.".pijul".pr
2a280 6f 6a 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 oject-root)).'pijul)....((projec
2a2a0 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 2d tile-file-exists-p.(expand-file-
2a2c0 6e 61 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 name.".svn".project-root)).'svn)
2a2e0 0a 20 20 20 3b 3b 20 74 68 65 6e 20 77 65 20 63 68 65 63 6b 20 69 66 20 74 68 65 72 65 27 73 20 ....;;.then.we.check.if.there's.
2a300 61 20 56 43 53 20 6d 61 72 6b 65 72 20 75 70 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 a.VCS.marker.up.the.directory.tr
2a320 65 65 0a 20 20 20 3b 3b 20 74 68 61 74 20 63 6f 76 65 72 73 20 74 68 65 20 63 61 73 65 20 77 68 ee....;;.that.covers.the.case.wh
2a340 65 6e 20 61 20 70 72 6f 6a 65 63 74 20 69 73 20 70 61 72 74 20 6f 66 20 61 20 6d 75 6c 74 69 2d en.a.project.is.part.of.a.multi-
2a360 70 72 6f 6a 65 63 74 20 72 65 70 6f 73 69 74 6f 72 79 0a 20 20 20 3b 3b 20 69 6e 20 74 68 6f 73 project.repository....;;.in.thos
2a380 65 20 63 61 73 65 73 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 74 68 65 20 56 43 53 20 74 6f e.cases.you.can.still.the.VCS.to
2a3a0 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 66 6f 72 0a 20 20 20 3b 3b 20 74 .get.a.list.of.files.for....;;.t
2a3c0 68 65 20 70 72 6f 6a 65 63 74 20 69 6e 20 71 75 65 73 74 69 6f 6e 0a 20 20 20 28 28 70 72 6f 6a he.project.in.question....((proj
2a3e0 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 72 ectile-locate-dominating-file.pr
2a400 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 67 69 74 22 29 20 27 67 69 74 29 0a 20 20 20 28 28 70 72 oject-root.".git").'git)....((pr
2a420 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 20 ojectile-locate-dominating-file.
2a440 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 68 67 22 29 20 27 68 67 29 0a 20 20 20 28 28 70 72 project-root.".hg").'hg)....((pr
2a460 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 20 ojectile-locate-dominating-file.
2a480 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 66 73 6c 63 6b 6f 75 74 22 29 20 27 66 6f 73 73 69 project-root.".fslckout").'fossi
2a4a0 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
2a4c0 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 46 4f 53 53 49 4c 5f ting-file.project-root."_FOSSIL_
2a4e0 22 29 20 27 66 6f 73 73 69 6c 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f 63 61 ").'fossil)....((projectile-loca
2a500 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 74 20 te-dominating-file.project-root.
2a520 22 2e 62 7a 72 22 29 20 27 62 7a 72 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6c 6f ".bzr").'bzr)....((projectile-lo
2a540 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
2a560 74 20 22 5f 64 61 72 63 73 22 29 20 27 64 61 72 63 73 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 t."_darcs").'darcs)....((project
2a580 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 72 6f 6a 65 ile-locate-dominating-file.proje
2a5a0 63 74 2d 72 6f 6f 74 20 22 2e 70 69 6a 75 6c 22 29 20 27 70 69 6a 75 6c 29 0a 20 20 20 28 28 70 ct-root.".pijul").'pijul)....((p
2a5c0 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
2a5e0 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 22 2e 73 76 6e 22 29 20 27 73 76 6e 29 0a 20 20 20 28 .project-root.".svn").'svn)....(
2a600 74 20 27 6e 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 t.'none)))..(defun.projectile--t
2a620 65 73 74 2d 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 est-name-for-impl-name.(impl-fil
2a640 65 2d 70 61 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 e-path)..."Determine.the.name.of
2a660 20 74 68 65 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 .the.test.file.for.IMPL-FILE-PAT
2a680 48 2e 0a 0a 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 H...IMPL-FILE-PATH.may.be.a.abso
2a6a0 6c 75 74 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 lute.path,.relative.path.or.a.fi
2a6c0 6c 65 20 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 le.name."...(let*.((project-type
2a6e0 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 0a 20 20 20 20 .(projectile-project-type)).....
2a700 20 20 20 20 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 .....(impl-file-name.(file-name-
2a720 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 6e 64 69 72 sans-extension.(file-name-nondir
2a740 65 63 74 6f 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 ectory.impl-file-path)))........
2a760 20 20 28 69 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 ..(impl-file-ext.(file-name-exte
2a780 6e 73 69 6f 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 nsion.impl-file-path))..........
2a7a0 28 74 65 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 (test-prefix.(funcall.projectile
2a7c0 2d 74 65 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 -test-prefix-function.project-ty
2a7e0 70 65 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 pe))..........(test-suffix.(func
2a800 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
2a820 69 6f 6e 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 ion.project-type))).....(cond...
2a840 20 20 20 28 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 ...(test-prefix.(concat.test-pre
2a860 66 69 78 20 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 fix.impl-file-name.".".impl-file
2a880 2d 65 78 74 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 -ext))......(test-suffix.(concat
2a8a0 20 69 6d 70 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 .impl-file-name.test-suffix.".".
2a8c0 69 6d 70 6c 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 impl-file-ext))......(t.(error."
2a8e0 43 61 6e 6e 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 Cannot.determine.a.test.file.nam
2a900 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 22 74 e,.one.of.\"test-suffix\".or.\"t
2a920 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 72 6f est-prefix\".must.be.set.for.pro
2a940 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 29 29 ject.type.`%s'".project-type))))
2a960 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 2d 6e 61 6d 65 2d )..(defun.projectile--impl-name-
2a980 66 6f 72 2d 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 for-test-name.(test-file-path)..
2a9a0 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 20 69 6d 70 6c ."Determine.the.name.of.the.impl
2a9c0 65 6d 65 6e 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 ementation.file.for.TEST-FILE-PA
2a9e0 54 48 2e 0a 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 TH...TEST-FILE-PATH.may.be.a.abs
2aa00 6f 6c 75 74 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 olute.path,.relative.path.or.a.f
2aa20 69 6c 65 20 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 ile.name."...(let*.((project-typ
2aa40 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 29 29 0a 20 20 20 e.(projectile-project-type))....
2aa60 20 20 20 20 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 ......(test-file-name.(file-name
2aa80 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 6e 64 69 -sans-extension.(file-name-nondi
2aaa0 72 65 63 74 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 rectory.test-file-path))).......
2aac0 20 20 20 28 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 ...(test-file-ext.(file-name-ext
2aae0 65 6e 73 69 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 ension.test-file-path)).........
2ab00 20 28 74 65 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 .(test-prefix.(funcall.projectil
2ab20 65 2d 74 65 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 e-test-prefix-function.project-t
2ab40 79 70 65 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 ype))..........(test-suffix.(fun
2ab60 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 6e 63 call.projectile-test-suffix-func
2ab80 74 69 6f 6e 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 tion.project-type))).....(cond..
2aba0 20 20 20 20 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 ....(test-prefix.......(concat.(
2abc0 73 74 72 69 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 string-remove-prefix.test-prefix
2abe0 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 2d 65 .test-file-name).".".test-file-e
2ac00 78 74 29 29 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 xt))......(test-suffix.......(co
2ac20 6e 63 61 74 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 ncat.(string-remove-suffix.test-
2ac40 73 75 66 66 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 suffix.test-file-name).".".test-
2ac60 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 6f file-ext))......(t.(error."Canno
2ac80 74 20 64 65 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 t.determine.an.implementation.fi
2aca0 6c 65 20 6e 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 le.name,.one.of.\"test-suffix\".
2acc0 6f 72 20 5c 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 or.\"test-prefix\".must.be.set.f
2ace0 6f 72 20 70 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 or.project.type.`%s'".project-ty
2ad00 70 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 2d 74 65 73 74 pe)))))..(defun.projectile--test
2ad20 2d 74 6f 2d 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 -to-impl-dir.(test-dir-path)..."
2ad40 52 65 74 75 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 Return.the.directory.path.of.an.
2ad60 69 6d 70 6c 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 impl.file.with.test.file.in.TEST
2ad80 2d 44 49 52 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 -DIR-PATH...Occurrences.of.the.c
2ada0 75 72 72 65 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 urrent.project.type's.test-dir.p
2adc0 72 6f 70 65 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 roperty.(which.should.be.a.strin
2ade0 67 29 20 61 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 g).are.replaced.with.the.current
2ae00 20 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 .project.type's.src-dir.property
2ae20 0a 20 28 77 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 ..(which.should.be.a.string).to.
2ae40 6f 62 74 61 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 obtain.the.new.directory...Nil.i
2ae60 73 20 72 65 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 s.returned.if.either.the.src-dir
2ae80 20 6f 72 20 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 .or.test-dir.properties.are.not.
2aea0 73 74 72 69 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 strings."...(let*.((project-type
2aec0 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 0a 20 20 20 20 .(projectile-project-type)).....
2aee0 20 20 20 20 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 .....(test-dir.(projectile-test-
2af00 64 69 72 65 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 directory.project-type))........
2af20 20 20 28 69 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 ..(impl-dir.(projectile-src-dire
2af40 63 74 6f 72 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 ctory.project-type))).....(when.
2af60 28 61 6e 64 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 (and.(stringp.test-dir).(stringp
2af80 20 69 6d 70 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 .impl-dir)).......(if.(not.(stri
2afa0 6e 67 2d 6d 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 ng-match-p.test-dir.(file-name-d
2afc0 69 72 65 63 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 irectory.test-dir-path))).......
2afe0 20 20 20 20 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 ....(error."Attempted.to.find.a.
2b000 69 6d 70 6c 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 implementation.file.by.switching
2b020 20 74 68 69 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 .this.project.type's.(%s).test-d
2b040 69 72 20 70 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 ir.property.\"%s\".with.this.pro
2b060 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 5c 22 25 ject.type's.src-dir.property.\"%
2b080 73 5c 22 2c 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 s\",.but.%s.does.not.contain.\"%
2b0a0 73 5c 22 22 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 s\""..................project-ty
2b0c0 70 65 20 74 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 pe.test-dir.impl-dir.test-dir-pa
2b0e0 74 68 20 74 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 th.test-dir).........(projectile
2b100 2d 63 6f 6d 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 -complementary-dir.test-dir-path
2b120 20 74 65 73 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 .test-dir.impl-dir)))))..(defun.
2b140 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 69 72 2d 66 61 6c projectile--impl-to-test-dir-fal
2b160 6c 62 61 63 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 lback.(impl-dir-path)..."Return.
2b180 74 68 65 20 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 the.test.file.for.IMPL-DIR-PATH.
2b1a0 62 79 20 67 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 by.guessing.a.test.directory...O
2b1c0 63 63 75 72 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 ccurrences.of.the.`projectile-de
2b1e0 66 61 75 6c 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 fault-src-directory'.in.the.dire
2b200 63 74 6f 72 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 ctory.of.IMPL-DIR-PATH.are.repla
2b220 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 74 65 73 ced.with.`projectile-default-tes
2b240 74 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 t-directory'...Nil.is.returned.i
2b260 66 20 60 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 f.`projectile-default-src-direct
2b280 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 49 4d 50 4c 2d ory'.is.not.a.substring.of.IMPL-
2b2a0 44 49 52 2d 50 41 54 48 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 66 69 6c 65 20 28 70 DIR-PATH."...(when-let.((file.(p
2b2c0 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...
2b2e0 20 20 20 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 ..................impl-dir-path.
2b300 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 0a ....................(lambda.(f).
2b320 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 72 ......................(when.(str
2b340 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 73 ing-match-p.projectile-default-s
2b360 72 63 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 20 20 rc-directory.f).................
2b380 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 61 72 ........(projectile-complementar
2b3a0 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 20 69 y-dir..........................i
2b3c0 6d 70 6c 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 mpl-dir-path....................
2b3e0 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 73 72 63 2d 64 69 72 ......projectile-default-src-dir
2b400 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 20 20 20 ectory..........................
2b420 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 6f 72 projectile-default-test-director
2b440 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 6a 65 y))).....................#'proje
2b460 63 74 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 ctile--test-name-for-impl-name))
2b480 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 20 28 ).....(file-relative-name.file.(
2b4a0 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 64 65 projectile-project-root))))..(de
2b4c0 66 75 6e 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 fun.projectile--test-to-impl-dir
2b4e0 2d 66 61 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 -fallback.(test-dir-path)..."Ret
2b500 75 72 6e 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 urn.the.impl.file.for.TEST-DIR-P
2b520 41 54 48 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 ATH.by.guessing.a.source.directo
2b540 72 79 2e 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 ry...Occurrences.of.`projectile-
2b560 64 65 66 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 default-test-directory'.in.the.d
2b580 69 72 65 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 irectory.of.TEST-DIR-PATH.are.re
2b5a0 70 6c 61 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 placed.with.`projectile-default-
2b5c0 73 72 63 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 src-directory'...Nil.is.returned
2b5e0 20 69 66 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 .if.`projectile-default-test-dir
2b600 65 63 74 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 ectory'.is.not.a.substring.of.TE
2b620 53 54 2d 44 49 52 2d 50 41 54 48 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 66 69 6c 65 ST-DIR-PATH."...(when-let.((file
2b640 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 65 .(projectile--complementary-file
2b660 0a 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 64 69 72 2d 70 61 .....................test-dir-pa
2b680 74 68 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 th.....................(lambda.(
2b6a0 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 28 77 68 65 6e 20 28 f).......................(when.(
2b6c0 73 74 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 string-match-p.projectile-defaul
2b6e0 74 2d 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 t-test-directory.f).............
2b700 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 70 6c 65 6d 65 ............(projectile-compleme
2b720 6e 74 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 ntary-dir.......................
2b740 20 20 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 ...test-dir-path................
2b760 20 20 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 ..........projectile-default-tes
2b780 74 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-directory.....................
2b7a0 20 20 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 .....projectile-default-src-dire
2b7c0 63 74 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 ctory))).....................#'p
2b7e0 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 74 65 73 74 2d 6e 61 rojectile--impl-name-for-test-na
2b800 6d 65 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 me))).....(file-relative-name.fi
2b820 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 29 0a le.(projectile-project-root)))).
2b840 0a 28 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 .(defun.projectile--impl-to-test
2b860 2d 64 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 -dir.(impl-dir-path)..."Return.t
2b880 68 65 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 he.directory.path.of.a.test.whos
2b8a0 65 20 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 e.impl.file.resides.in.IMPL-DIR-
2b8c0 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 6e PATH...Occurrences.of.the.curren
2b8e0 74 20 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 t.project.type's.src-dir.propert
2b900 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 72 65 y.(which.should.be.a.string).are
2b920 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 6a 65 .replaced.with.the.current.proje
2b940 63 74 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 ct.type's.test-dir.property..(wh
2b960 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 69 ich.should.be.a.string).to.obtai
2b980 6e 20 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 n.the.new.directory...If.the.src
2b9a0 2d 64 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 -dir.property.is.set.and.IMPL-DI
2b9c0 52 2d 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 R-PATH.does.not.contain.(as.a.su
2b9e0 62 73 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 bstring).the.src-dir.property.of
2ba00 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 2c 20 61 6e 20 65 72 .the.current.project.type,.an.er
2ba20 72 6f 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 ror.is.signalled...Nil.is.return
2ba40 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 74 65 73 74 ed.if.either.the.src-dir.or.test
2ba60 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 6e 67 73 2e -dir.properties.are.not.strings.
2ba80 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 6f 6a 65 63 "...(let*.((project-type.(projec
2baa0 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 20 28 74 65 tile-project-type))..........(te
2bac0 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
2bae0 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 6d 70 6c 2d y.project-type))..........(impl-
2bb00 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 79 20 70 72 dir.(projectile-src-directory.pr
2bb20 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 20 28 73 74 oject-type))).....(when.(and.(st
2bb40 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 6c 2d 64 69 ringp.test-dir).(stringp.impl-di
2bb60 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 61 74 63 68 r)).......(if.(not.(string-match
2bb80 2d 70 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 -p.impl-dir.(file-name-directory
2bba0 20 69 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 .impl-dir-path)))...........(err
2bbc0 6f 72 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 or."Attempted.to.find.a.test.fil
2bbe0 65 20 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 e.by.switching.this.project.type
2bc00 27 73 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 's.(%s).src-dir.property.\"%s\".
2bc20 77 69 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 with.this.project.type's.test-di
2bc40 72 20 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 r.property.\"%s\",.but.%s.does.n
2bc60 6f 74 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 ot.contain.\"%s\""..............
2bc80 20 20 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 ....project-type.impl-dir.test-d
2bca0 69 72 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 ir.impl-dir-path.impl-dir)......
2bcc0 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 69 72 ...(projectile-complementary-dir
2bce0 20 69 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 .impl-dir-path.impl-dir.test-dir
2bd00 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 6f 6d 70 6c 65 6d )))))..(defun.projectile-complem
2bd20 65 6e 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 entary-dir.(dir-path.string.repl
2bd40 61 63 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 acement)..."Return.the.\"complem
2bd60 65 6e 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 entary\".directory.of.DIR-PATH..
2bd80 52 65 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 Replace.STRING.in.DIR-PATH.with.
2bda0 52 45 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 REPLACEMENT."...(let*.((project-
2bdc0 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 0a root.(projectile-project-root)).
2bde0 20 20 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 .........(relative-dir.(file-nam
2be00 65 2d 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 e-directory.(file-relative-name.
2be20 64 69 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 dir-path.project-root)))).....(p
2be40 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 3b 3b 20 54 4f rojectile-expand-root......;;.TO
2be60 44 4f 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 DO:.Use.string-replace.once.we.t
2be80 61 72 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 arget.emacs.28......(replace-reg
2bea0 65 78 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 exp-in-string.string.replacement
2bec0 20 72 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 .relative-dir.t))))..(defun.proj
2bee0 65 63 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 ectile--create-directories-for.(
2bf00 70 61 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 path)..."Create.directories.nece
2bf20 73 73 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 ssary.for.PATH."...(unless.(file
2bf40 2d 65 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 -exists-p.path).....(make-direct
2bf60 6f 72 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 ory.(if.(file-directory-p.path).
2bf80 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 0a 20 20 20 ........................path....
2bfa0 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
2bfc0 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 20 20 20 20 rectory.path))..................
2bfe0 20 20 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 ...:create-parents)))..(defun.pr
2c000 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 6f 72 2d ojectile-find-implementation-or-
2c020 74 65 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 test.(file-name)..."Given.a.FILE
2c040 2d 4e 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 -NAME.return.the.matching.implem
2c060 65 6e 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 entation.or.test.filename...If.`
2c080 70 72 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 projectile-create-missing-test-f
2c0a0 69 6c 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 iles'.is.non-nil,.create.the.mis
2c0c0 73 69 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 sing.test.file."...(unless.file-
2c0e0 6e 61 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 name.(error."The.current.buffer.
2c100 69 73 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 is.not.visiting.a.file"))...(unl
2c120 65 73 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 ess.(projectile-project-type).(p
2c140 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 6e 69 6c 29 29 0a 20 rojectile-ensure-project.nil))..
2c160 20 28 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 .(if.(projectile-test-file-p.fil
2c180 65 2d 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 e-name).......;;.find.the.matchi
2c1a0 6e 67 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 ng.impl.file.......(let.((impl-f
2c1c0 69 6c 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 ile.(projectile-find-matching-fi
2c1e0 6c 65 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 le.file-name))).........(if.impl
2c200 2d 66 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 -file.............(projectile-ex
2c220 70 61 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 pand-root.impl-file)...........(
2c240 65 72 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 error............"No.matching.so
2c260 75 72 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 urce.file.found.for.project.type
2c280 20 60 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 .`%s'"............(projectile-pr
2c2a0 6f 6a 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 oject-type)))).....;;.find.the.m
2c2c0 61 74 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 atching.test.file.....(let*.((er
2c2e0 72 6f 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 ror-msg.(format.................
2c300 20 20 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 ......."No.matching.test.file.fo
2c320 75 6e 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 und.for.project.type.`%s'"......
2c340 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 70 72 ..................(projectile-pr
2c360 6f 6a 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 oject-type)))............(test-f
2c380 69 6c 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 ile.(or.(projectile-find-matchin
2c3a0 67 2d 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 g-test.file-name)...............
2c3c0 20 20 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 ............(error.error-msg))).
2c3e0 20 20 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 ...........(expanded-test-file.(
2c400 70 72 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 projectile-expand-root.test-file
2c420 29 29 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 ))).......(cond.((file-exists-p.
2c440 65 78 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 expanded-test-file).expanded-tes
2c460 74 2d 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 t-file).............(projectile-
2c480 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 0a 20 20 20 20 20 20 create-missing-test-files.......
2c4a0 20 20 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 .......(projectile--create-direc
2c4c0 74 6f 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 tories-for.expanded-test-file)..
2c4e0 20 20 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 ............expanded-test-file).
2c500 20 20 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 ............(t.(error."Determine
2c520 64 20 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 d.test.file.to.be.\"%s\",.which.
2c540 64 6f 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 does.not.exist...Set.`projectile
2c560 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 27 20 74 6f 20 61 -create-missing-test-files'.to.a
2c580 6c 6c 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 llow.`projectile-find-implementa
2c5a0 74 69 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 tion-or-test'.to.create.new.file
2c5c0 73 22 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 s".test-file))))))..;;;###autolo
2c5e0 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 69 6d 70 6c 65 6d ad.(defun.projectile-find-implem
2c600 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 20 28 29 entation-or-test-other-window.()
2c620 0a 20 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 ..."Open.matching.implementation
2c640 20 6f 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 .or.test.file.in.other.window...
2c660 53 65 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 See.the.documentation.of.`projec
2c680 74 69 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 tile--find-matching-file'.and.`p
2c6a0 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 74 65 73 74 27 20 66 rojectile--find-matching-test'.f
2c6c0 6f 72 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 or.how.implementation.and.test.f
2c6e0 69 6c 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 iles.are.determined."...(interac
2c700 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 77 69 6e 64 6f 77 0a tive)...(find-file-other-window.
2c720 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 6d 65 6e 74 61 74 69 ...(projectile-find-implementati
2c740 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 61 6d 65 29 29 29 29 on-or-test.(buffer-file-name))))
2c760 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
2c780 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 73 74 2d 6f le-find-implementation-or-test-o
2c7a0 74 68 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 ther-frame.()..."Open.matching.i
2c7c0 6d 70 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 mplementation.or.test.file.in.ot
2c7e0 68 65 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 her.frame...See.the.documentatio
2c800 6e 20 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 n.of.`projectile--find-matching-
2c820 66 69 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 file'.and.`projectile--find-matc
2c840 68 69 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 hing-test'.for.how.implementatio
2c860 6e 20 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 n.and.test.files.are.determined.
2c880 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 66 69 6c 65 2d 6f "...(interactive)...(find-file-o
2c8a0 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 66 69 6e 64 2d 69 ther-frame....(projectile-find-i
2c8c0 6d 70 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 mplementation-or-test.(buffer-fi
2c8e0 6c 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 le-name))))..;;;###autoload.(def
2c900 75 6e 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 un.projectile-toggle-between-imp
2c920 6c 65 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 lementation-and-test.()..."Toggl
2c940 65 20 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 e.between.an.implementation.file
2c960 20 61 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 .and.its.test.file....See.the.do
2c980 63 75 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 cumentation.of.`projectile--find
2c9a0 2d 6d 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 -matching-file'.and.`projectile-
2c9c0 2d 66 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 -find-matching-test'.for.how.imp
2c9e0 6c 65 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 lementation.and.test.files.are.d
2ca00 65 74 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 etermined."...(interactive)...(f
2ca20 69 6e 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 ind-file....(projectile-find-imp
2ca40 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
2ca60 2d 6e 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 -name))))...(defun.projectile-pr
2ca80 6f 6a 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 oject-type-attribute.(project-ty
2caa0 70 65 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 pe.key.&optional.default-value).
2cac0 20 20 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 .."Return.the.value.of.some.PROJ
2cae0 45 43 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 ECT-TYPE.attribute.identified.by
2cb00 20 4b 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 .KEY..Fallback.to.DEFAULT-VALUE.
2cb20 66 6f 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 for.missing.attributes."...(let.
2cb40 28 28 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 ((project.(alist-get.project-typ
2cb60 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 29 29 0a 20 20 e.projectile-project-types)))...
2cb80 20 20 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 ..(if.(and.project.(plist-member
2cba0 20 70 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 .project.key)).........(plist-ge
2cbc0 74 20 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 t.project.key).......default-val
2cbe0 75 65 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 ue)))..(defun.projectile-test-pr
2cc00 65 66 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 efix.(project-type)..."Find.defa
2cc20 75 6c 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 ult.test.files.prefix.based.on.P
2cc40 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 65 2d 70 ROJECT-TYPE."...(or.projectile-p
2cc60 72 6f 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 roject-test-prefix.......(projec
2cc80 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
2cca0 65 63 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 ect-type.'test-prefix)))..(defun
2ccc0 20 70 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 .projectile-test-suffix.(project
2cce0 2d 74 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 -type)..."Find.default.test.file
2cd00 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 2d 54 59 50 45 2e 22 s.suffix.based.on.PROJECT-TYPE."
2cd20 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 74 65 73 74 2d 73 ...(or.projectile-project-test-s
2cd40 75 66 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 uffix.......(projectile-project-
2cd60 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 74 65 73 type-attribute.project-type.'tes
2cd80 74 2d 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 t-suffix)))..(defun.projectile-r
2cda0 65 6c 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 elated-files-fn.(project-type)..
2cdc0 20 22 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 ."Find.relative.file.based.on.PR
2cde0 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 65 2d 70 72 OJECT-TYPE."...(or.projectile-pr
2ce00 6f 6a 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 oject-related-files-fn.......(pr
2ce20 6f 6a 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 ojectile-project-type-attribute.
2ce40 70 72 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 project-type.'related-files-fn))
2ce60 29 0a 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 )..(defun.projectile-src-directo
2ce80 72 79 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 ry.(project-type)..."Find.defaul
2cea0 74 20 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 t.src.directory.based.on.PROJECT
2cec0 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 65 63 74 -TYPE."...(or.projectile-project
2cee0 2d 73 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 -src-dir.......(projectile-proje
2cf00 63 74 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 ct-type-attribute.project-type.'
2cf20 73 72 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 src-dir)))..(defun.projectile-te
2cf40 73 74 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 st-directory.(project-type)..."F
2cf60 69 6e 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 ind.default.test.directory.based
2cf80 20 6f 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 .on.PROJECT-TYPE."...(or.project
2cfa0 69 6c 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 ile-project-test-dir.......(proj
2cfc0 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
2cfe0 6f 6a 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 oject-type.'test-dir)))..(defun.
2d000 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 67 2d 63 6f 75 6e projectile-dirname-matching-coun
2d020 74 20 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 t.(a.b)..."Count.matching.dirnam
2d040 65 73 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 es.ascending.file.paths.in.A.and
2d060 20 42 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 .B."...(setq.a.(reverse.(split-s
2d080 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 20 61 tring.(or.(file-name-directory.a
2d0a0 29 20 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 )."")."/".t)).........b.(reverse
2d0c0 20 28 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 .(split-string.(or.(file-name-di
2d0e0 72 65 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 rectory.b)."")."/".t)))...(let.(
2d100 28 63 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 (common.0)).....(while.(and.a.b.
2d120 28 73 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 (string-equal.(pop.a).(pop.b))).
2d140 20 20 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 ......(setq.common.(1+.common)))
2d160 0a 20 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 .....common))..(defun.projectile
2d180 2d 67 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 -group-file-candidates.(file.can
2d1a0 64 69 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 didates)..."Group.file.candidate
2d1c0 73 20 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 s.by.dirname.matching.count."...
2d1e0 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 20 (cl-sort.(copy-sequence.........
2d200 20 20 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 ....(let.(value.result).........
2d220 20 20 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 ......(while.(setq.value.(pop.ca
2d240 6e 64 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 ndidates)).................(let*
2d260 20 28 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 .((key.(projectile-dirname-match
2d280 69 6e 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 ing-count.file.value))..........
2d2a0 20 20 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 ..............(kv.(assoc.key.res
2d2c0 75 6c 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 ult)))...................(if.kv.
2d2e0 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 63 64 72 20 6b 76 ......................(setcdr.kv
2d300 20 28 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 .(cons.value.(cdr.kv))).........
2d320 20 20 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 ............(push.(list.key.valu
2d340 65 29 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 e).result))))...............(map
2d360 63 61 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 car.(lambda.(x).................
2d380 20 20 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 ........(cons.(car.x).(nreverse.
2d3a0 28 63 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 (cdr.x))))......................
2d3c0 20 28 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 .(nreverse.result))))...........
2d3e0 20 28 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 .(lambda.(a.b).(>.(car.a).(car.b
2d400 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 62 65 73 74 2d 6f )))))..(defun.projectile--best-o
2d420 72 2d 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 r-all-candidates-based-on-parent
2d440 73 2d 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 s-dirs.(file.candidates)..."Retu
2d460 72 6e 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 rn.a.list.of.the.best.one.one.fo
2d480 72 20 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 r.FILE.from.CANDIDATES.or.all.CA
2d4a0 4e 44 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 NDIDATES."...(let.((grouped-cand
2d4c0 69 64 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 idates.(projectile-group-file-ca
2d4e0 6e 64 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 ndidates.file.candidates))).....
2d500 28 69 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 (if.(=.(length.(car.grouped-cand
2d520 69 64 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 idates)).2).........(list.(car.(
2d540 6c 61 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 last.(car.grouped-candidates))))
2d560 0a 20 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 .......(apply.#'append.(mapcar.#
2d580 27 63 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 'cdr.grouped-candidates)))))..(d
2d5a0 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 70 72 efun.projectile--impl-to-test-pr
2d5c0 65 64 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 edicate.(impl-file)..."Return.a.
2d5e0 70 72 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 predicate,.which.returns.t.for.a
2d600 6e 79 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 ny.test.files.for.IMPL-FILE."...
2d620 28 6c 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 (let*.((basename.(file-name-sans
2d640 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
2d660 72 79 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 ry.impl-file)))..........(test-p
2d680 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 74 2d 70 refix.(funcall.projectile-test-p
2d6a0 72 65 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 refix-function.(projectile-proje
2d6c0 63 74 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 ct-type)))..........(test-suffix
2d6e0 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 73 75 66 66 69 78 .(funcall.projectile-test-suffix
2d700 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 2d 74 79 -function.(projectile-project-ty
2d720 70 65 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 pe)))..........(prefix-name.(whe
2d740 6e 20 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 n.test-prefix.(concat.test-prefi
2d760 78 20 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 x.basename)))..........(suffix-n
2d780 61 6d 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 ame.(when.test-suffix.(concat.ba
2d7a0 73 65 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 sename.test-suffix)))).....(lamb
2d7c0 64 61 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 da.(current-file).......(let.((n
2d7e0 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 73 69 6f 6e 20 28 66 ame.(file-name-sans-extension.(f
2d800 69 6c 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 ile-name-nondirectory.current-fi
2d820 6c 65 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 le)))).........(or.(string-equal
2d840 20 70 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 .prefix-name.name).............(
2d860 73 74 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 string-equal.suffix-name.name)))
2d880 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 6f 6d 70 6c 65 6d 65 )))..(defun.projectile--compleme
2d8a0 6e 74 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 ntary-file.(file-path.dir-fn.fil
2d8c0 65 6e 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 ename-fn)..."Apply.DIR-FN.and.FI
2d8e0 4c 45 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 LENAME-FN.to.the.directory.and.n
2d900 61 6d 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 ame.of.FILE-PATH...More.specific
2d920 61 6c 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 ally,.return.DIR-FN.applied.to.t
2d940 68 65 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 he.directory.of.FILE-PATH.concat
2d960 65 6e 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 enated.with.FILENAME-FN.applied.
2d980 74 6f 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 to.the.file.name.of.FILE-PATH...
2d9a0 49 66 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 If.either.function.returns.nil,.
2d9c0 72 65 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 return.nil."...(let.((filename.(
2d9e0 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 2d 70 61 74 68 file-name-nondirectory.file-path
2da00 29 29 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 ))).....(when-let.((complementar
2da20 79 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 y-filename.(funcall.filename-fn.
2da40 66 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 filename))................(dir.(
2da60 66 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 funcall.dir-fn.(file-name-direct
2da80 6f 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 ory.file-path))))......(concat.(
2daa0 66 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 file-name-as-directory.dir).comp
2dac0 6c 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 lementary-filename))))..(defun.p
2dae0 72 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 rojectile--impl-file-from-src-di
2db00 72 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 r-str.(file-name)..."Get.the.rel
2db20 61 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 ative.path.of.the.implementation
2db40 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 20 72 .file.FILE-NAME..Return.a.path.r
2db60 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 72 20 elative.to.the.project.root.for.
2db80 74 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 the.impl.file.of.FILE-NAME.using
2dba0 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 65 72 .the.src-dir.and.test-dir.proper
2dbc0 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 70 65 ties.of.the.current.project.type
2dbe0 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 72 65 .which.should.be.strings,.nil.re
2dc00 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 2e 22 turned.if.this.is.not.the.case."
2dc20 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 6c ...(when-let.((complementary-fil
2dc40 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
2dc60 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...............................
2dc80 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...................
2dca0 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
2dcc0 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..................
2dce0 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
2dd00 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
2dd20 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-
2dd40 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)))
2dd60 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-
2dd80 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)...
2dda0 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
2ddc0 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
2dde0 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
2de00 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
2de20 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
2de40 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
2de60 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.
2de80 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
2dea0 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 63 6f 6d 70 6c 65 6d 65 6e 74 61 72 79 2d 66 69 ."...(when-let.(complementary-fi
2dec0 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 66 69 le.(projectile--complementary-fi
2dee0 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 20 le..............................
2df00 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...................
2df20 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 6d 70 ...............#'projectile--imp
2df40 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 20 20 20 20 20 20 l-to-test-dir...................
2df60 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 73 ...............#'projectile--tes
2df80 74 2d 6e 61 6d 65 2d 66 6f 72 2d 69 6d 70 6c 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 66 69 6c 65 t-name-for-impl-name)).....(file
2dfa0 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 66 69 6c -relative-name.complementary-fil
2dfc0 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 0a 0a e.(projectile-project-root))))..
2dfe0 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 66 69 6c 65 2d 66 72 6f (defun.projectile--impl-file-fro
2e000 6d 2d 73 72 63 2d 64 69 72 2d 66 6e 20 28 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 22 47 65 74 20 m-src-dir-fn.(test-file)..."Get.
2e020 74 68 65 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 69 6d 70 6c 65 6d 65 the.relative.path.to.the.impleme
2e040 6e 74 61 74 69 6f 6e 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 54 45 ntation.file.corresponding.to.TE
2e060 53 54 2d 46 49 4c 45 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 ST-FILE..Return.the.implementati
2e080 6f 6e 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 on.file.path.for.the.absolute.pa
2e0a0 74 68 20 54 45 53 54 2d 46 49 4c 45 0a 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 70 72 6f th.TEST-FILE.relative.to.the.pro
2e0c0 6a 65 63 74 20 72 6f 6f 74 20 69 6e 20 74 68 65 20 63 61 73 65 20 74 68 65 20 63 75 72 72 65 6e ject.root.in.the.case.the.curren
2e0e0 74 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 73 72 63 2d 64 69 72 0a 68 61 73 20 62 65 65 t.project.type's.src-dir.has.bee
2e100 6e 20 73 65 74 20 74 6f 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 2c 20 72 65 74 75 n.set.to.a.custom.function,.retu
2e120 72 6e 20 6e 69 6c 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 74 68 65 20 63 61 73 65 20 6f rn.nil.if.this.is.not.the.case.o
2e140 72 0a 74 68 65 20 70 61 74 68 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 66 69 6c 65 20 74 68 61 74 r.the.path.points.to.a.file.that
2e160 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 .does.not.exist."...(when-let.((
2e180 73 72 63 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 src-dir.(projectile-src-director
2e1a0 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))))..
2e1c0 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 72 63 2d 64 69 72 29 0a 20 20 20 ...(when.(functionp.src-dir)....
2e1e0 20 20 20 28 6c 65 74 20 28 28 69 6d 70 6c 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d ...(let.((impl-file.(projectile-
2e200 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 20 20 20 20 20 20 20 -complementary-file.............
2e220 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 ............test-file...........
2e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72 63 2d 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 ..............src-dir...........
2e260 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 6d 70 6c ..............#'projectile--impl
2e280 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 20 20 20 20 28 -name-for-test-name))).........(
2e2a0 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 when.(file-exists-p.impl-file)..
2e2c0 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 69 6d 70 .........(file-relative-name.imp
2e2e0 6c 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 6f 6f 74 29 l-file.(projectile-project-root)
2e300 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 2d 74 65 73 74 2d ))))))..(defun.projectile--test-
2e320 66 69 6c 65 2d 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 66 6e 20 28 69 6d 70 6c 2d 66 69 6c 65 file-from-test-dir-fn.(impl-file
2e340 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
2e360 65 20 74 65 73 74 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 49 4d 50 e.test.file.corresponding.to.IMP
2e380 4c 2d 46 49 4c 45 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 73 74 20 66 69 6c 65 20 70 61 74 L-FILE..Return.the.test.file.pat
2e3a0 68 20 66 6f 72 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 20 49 4d 50 4c 2d 46 49 4c h.for.the.absolute.path.IMPL-FIL
2e3c0 45 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 0a 70 72 6f 6a 65 63 74 20 72 6f 6f 74 2c 20 E.relative.to.the.project.root,.
2e3e0 69 6e 20 74 68 65 20 63 61 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 20 in.the.case.the.current.project.
2e400 74 79 70 65 27 73 20 74 65 73 74 2d 64 69 72 20 68 61 73 20 62 65 65 6e 20 73 65 74 0a 74 6f 20 type's.test-dir.has.been.set.to.
2e420 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 2c 20 65 6c 73 65 20 72 65 74 75 72 6e 20 6e a.custom.function,.else.return.n
2e440 69 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 74 65 73 74 2d 64 69 72 20 28 70 72 6f il."...(when-let.((test-dir.(pro
2e460 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 64 69 72 65 63 74 6f 72 79 20 28 70 72 6f 6a 65 63 74 69 jectile-test-directory.(projecti
2e480 6c 65 2d 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 le-project-type)))).....(when.(f
2e4a0 75 6e 63 74 69 6f 6e 70 20 74 65 73 74 2d 64 69 72 29 0a 20 20 20 20 20 20 28 66 69 6c 65 2d 72 unctionp.test-dir).......(file-r
2e4c0 65 6c 61 74 69 76 65 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d elative-name........(projectile-
2e4e0 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 20 20 20 69 6d 70 6c -complementary-file.........impl
2e500 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 74 65 73 74 2d 64 69 72 0a 20 20 20 20 20 20 20 20 23 -file.........test-dir.........#
2e520 27 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 6e 61 6d 65 2d 66 6f 72 2d 69 6d 70 6c 2d 'projectile--test-name-for-impl-
2e540 6e 61 6d 65 29 0a 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 name)........(projectile-project
2e560 2d 72 6f 6f 74 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 70 72 6f 6a 65 63 74 69 6c 65 -root)))))..(defmacro.projectile
2e580 2d 2d 61 63 6f 6e 64 20 28 26 72 65 73 74 20 63 6c 61 75 73 65 73 29 0a 20 20 22 4c 69 6b 65 20 --acond.(&rest.clauses)..."Like.
2e5a0 60 63 6f 6e 64 27 2c 20 62 75 74 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 65 61 63 68 20 63 `cond',.but.the.result.of.each.c
2e5c0 6f 6e 64 69 74 69 6f 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 2e 0a 0a 54 68 65 20 ondition.is.bound.to.`it'...The.
2e5e0 76 61 72 69 61 62 6c 65 20 60 69 74 27 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 77 69 74 68 69 variable.`it'.is.available.withi
2e600 6e 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 20 6f 66 20 65 61 63 68 20 6f 66 20 43 4c 41 55 53 n.the.remainder.of.each.of.CLAUS
2e620 45 53 2e 0a 0a 43 4c 41 55 53 45 53 20 61 72 65 20 6f 74 68 65 72 77 69 73 65 20 61 73 20 64 6f ES...CLAUSES.are.otherwise.as.do
2e640 63 75 6d 65 6e 74 65 64 20 66 6f 72 20 60 63 6f 6e 64 27 2e 20 20 54 68 69 73 20 69 73 20 63 6f cumented.for.`cond'...This.is.co
2e660 70 69 65 64 20 66 72 6f 6d 0a 61 6e 61 70 68 6f 72 61 2e 65 6c 2e 22 0a 20 20 28 64 65 63 6c 61 pied.from.anaphora.el."...(decla
2e680 72 65 20 28 64 65 62 75 67 20 63 6f 6e 64 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 63 6c 61 re.(debug.cond))...(if.(null.cla
2e6a0 75 73 65 73 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 6c 65 74 20 28 28 63 6c 31 20 28 uses).......nil.....(let.((cl1.(
2e6c0 63 61 72 20 63 6c 61 75 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 20 28 63 6c car.clauses))...........(sym.(cl
2e6e0 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 60 28 6c 65 74 20 28 28 2c 73 79 6d 20 2c 28 -gensym))).......`(let.((,sym.,(
2e700 63 61 72 20 63 6c 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 2c 73 79 6d 0a 20 20 20 car.cl1)))..........(if.,sym....
2e720 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 27 2c 28 63 64 72 20 63 6c 31 29 29 ..........(if.(null.',(cdr.cl1))
2e740 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 73 79 6d 0a 20 20 20 20 20 20 20 20 20 ..................,sym..........
2e760 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 2c 73 79 6d 29 29 20 2c 40 28 63 64 72 20 63 6c ......(let.((it.,sym)).,@(cdr.cl
2e780 31 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 65 2d 2d 61 63 6f 1)))............(projectile--aco
2e7a0 6e 64 20 2c 40 28 63 64 72 20 63 6c 61 75 73 65 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e nd.,@(cdr.clauses)))))))..(defun
2e7c0 20 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 74 65 73 74 20 .projectile--find-matching-test.
2e7e0 28 69 6d 70 6c 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 (impl-file)..."Return.a.list.of.
2e800 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 0a 0a 54 68 65 20 70 test.files.for.IMPL-FILE...The.p
2e820 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 74 65 73 74 20 66 recedence.for.determining.test.f
2e840 69 6c 65 73 20 74 6f 20 72 65 74 75 72 6e 20 69 73 3a 0a 0a 31 2e 20 55 73 65 20 74 68 65 20 70 iles.to.return.is:..1..Use.the.p
2e860 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 72 74 79 20 roject.type's.test-dir.property.
2e880 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 0a 32 2e 20 55 73 65 if.it's.set.to.a.function.2..Use
2e8a0 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 72 65 6c 61 74 65 64 2d 66 69 6c 65 .the.project.type's.related-file
2e8c0 73 2d 66 6e 20 70 72 6f 70 65 72 74 79 20 69 66 20 73 65 74 0a 33 2e 20 55 73 65 20 74 68 65 20 s-fn.property.if.set.3..Use.the.
2e8e0 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 72 74 79 project.type's.test-dir.property
2e900 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 73 74 72 69 6e 67 0a 34 2e 20 41 74 74 65 .if.it's.set.to.a.string.4..Atte
2e920 6d 70 74 20 74 6f 20 66 69 6e 64 20 61 20 66 69 6c 65 20 62 79 20 6d 61 74 63 68 69 6e 67 20 61 mpt.to.find.a.file.by.matching.a
2e940 6c 6c 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 61 67 61 69 6e 73 74 0a 20 20 20 60 70 72 6f ll.project.files.against....`pro
2e960 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 69 63 61 74 65 27 jectile--impl-to-test-predicate'
2e980 0a 35 2e 20 46 61 6c 6c 62 61 63 6b 20 74 6f 20 73 77 61 70 70 69 6e 67 20 5c 22 73 72 63 5c 22 .5..Fallback.to.swapping.\"src\"
2e9a0 20 66 6f 72 20 5c 22 74 65 73 74 5c 22 20 69 6e 20 49 4d 50 4c 2d 46 49 4c 45 20 69 66 20 5c 22 .for.\"test\".in.IMPL-FILE.if.\"
2e9c0 73 72 63 5c 22 0a 20 20 20 69 73 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 20 49 4d 50 4c 2d src\"....is.a.substring.of.IMPL-
2e9e0 46 49 4c 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 61 63 6f 6e 64 0a 20 20 20 28 FILE."...(projectile--acond....(
2ea00 28 70 72 6f 6a 65 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 (projectile--test-file-from-test
2ea20 2d 64 69 72 2d 66 6e 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 -dir-fn.impl-file).(list.it))...
2ea40 20 28 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 .((projectile--related-files-pli
2ea60 73 74 2d 62 79 2d 6b 69 6e 64 20 69 6d 70 6c 2d 66 69 6c 65 20 3a 74 65 73 74 29 0a 20 20 20 20 st-by-kind.impl-file.:test).....
2ea80 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 72 6f 6d 2d (projectile--related-files-from-
2eaa0 70 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 74 65 73 74 plist.it))....((projectile--test
2eac0 2d 66 69 6c 65 2d 66 72 6f 6d 2d 74 65 73 74 2d 64 69 72 2d 73 74 72 20 69 6d 70 6c 2d 66 69 6c -file-from-test-dir-str.impl-fil
2eae0 65 29 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 62 e).(list.it))....((projectile--b
2eb00 65 73 74 2d 6f 72 2d 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 est-or-all-candidates-based-on-p
2eb20 61 72 65 6e 74 73 2d 64 69 72 73 0a 20 20 20 20 20 69 6d 70 6c 2d 66 69 6c 65 20 28 63 6c 2d 72 arents-dirs......impl-file.(cl-r
2eb40 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 28 70 72 emove-if-not.................(pr
2eb60 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 69 63 61 74 65 ojectile--impl-to-test-predicate
2eb80 20 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f .impl-file).................(pro
2eba0 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)))
2ebc0 20 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 69 6d 70 6c 2d 74 6f 2d 74 65 .it)....((projectile--impl-to-te
2ebe0 73 74 2d 64 69 72 2d 66 61 6c 6c 62 61 63 6b 20 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 20 20 28 st-dir-fallback.impl-file).....(
2ec00 6c 69 73 74 20 69 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 list.it))))..(defun.projectile--
2ec20 74 65 73 74 2d 74 6f 2d 69 6d 70 6c 2d 70 72 65 64 69 63 61 74 65 20 28 74 65 73 74 2d 66 69 6c test-to-impl-predicate.(test-fil
2ec40 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 65 64 69 63 61 74 65 2c 20 77 68 69 63 68 20 e)..."Return.a.predicate,.which.
2ec60 72 65 74 75 72 6e 73 20 74 20 66 6f 72 20 61 6e 79 20 69 6d 70 6c 20 66 69 6c 65 73 20 66 6f 72 returns.t.for.any.impl.files.for
2ec80 20 54 45 53 54 2d 46 49 4c 45 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 61 73 65 6e 61 6d 65 20 .TEST-FILE."...(let*.((basename.
2eca0 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 65 2d (file-name-sans-extension.(file-
2ecc0 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 74 65 73 74 2d 66 69 6c 65 29 29 29 0a 20 name-nondirectory.test-file)))..
2ece0 20 20 20 20 20 20 20 20 28 74 65 73 74 2d 70 72 65 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 70 72 ........(test-prefix.(funcall.pr
2ed00 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
2ed20 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 0a 20 20 20 20 20 20 rojectile-project-type))).......
2ed40 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 70 72 6f 6a 65 63 74 ...(test-suffix.(funcall.project
2ed60 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 28 70 72 6f 6a 65 63 ile-test-suffix-function.(projec
2ed80 74 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 28 6c 61 6d 62 64 tile-project-type)))).....(lambd
2eda0 61 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 a.(current-file).......(let.((na
2edc0 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 28 66 69 6c 65 me.(file-name-nondirectory.(file
2ede0 2d 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 20 63 75 72 72 65 6e 74 2d 66 69 6c -name-sans-extension.current-fil
2ee00 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 77 68 65 6e 20 74 65 73 74 2d 70 72 65 e)))).........(or.(when.test-pre
2ee20 66 69 78 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 63 6f 6e 63 61 74 20 74 65 73 74 2d 70 fix.(string-equal.(concat.test-p
2ee40 72 65 66 69 78 20 6e 61 6d 65 29 20 62 61 73 65 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 refix.name).basename))..........
2ee60 20 20 20 28 77 68 65 6e 20 74 65 73 74 2d 73 75 66 66 69 78 20 28 73 74 72 69 6e 67 2d 65 71 75 ...(when.test-suffix.(string-equ
2ee80 61 6c 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 20 74 65 73 74 2d 73 75 66 66 69 78 29 20 62 61 73 al.(concat.name.test-suffix).bas
2eea0 65 6e 61 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 ename)))))))..(defun.projectile-
2eec0 2d 66 69 6e 64 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 -find-matching-file.(test-file).
2eee0 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 69 6d 70 6c 20 66 69 6c 65 73 20 74 .."Return.a.list.of.impl.files.t
2ef00 65 73 74 65 64 20 62 79 20 54 45 53 54 2d 46 49 4c 45 2e 0a 0a 54 68 65 20 70 72 65 63 65 64 65 ested.by.TEST-FILE...The.precede
2ef20 6e 63 65 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 nce.for.determining.implementati
2ef40 6f 6e 20 66 69 6c 65 73 20 74 6f 20 72 65 74 75 72 6e 20 69 73 3a 0a 0a 31 2e 20 55 73 65 20 74 on.files.to.return.is:..1..Use.t
2ef60 68 65 20 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 he.project.type's.src-dir.proper
2ef80 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 0a 32 2e 20 ty.if.it's.set.to.a.function.2..
2efa0 55 73 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 74 79 70 65 27 73 20 72 65 6c 61 74 65 64 2d 66 Use.the.project.type's.related-f
2efc0 69 6c 65 73 2d 66 6e 20 70 72 6f 70 65 72 74 79 20 69 66 20 73 65 74 0a 33 2e 20 55 73 65 20 74 iles-fn.property.if.set.3..Use.t
2efe0 68 65 20 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 he.project.type's.src-dir.proper
2f000 74 79 20 69 66 20 69 74 27 73 20 73 65 74 20 74 6f 20 61 20 73 74 72 69 6e 67 0a 34 2e 20 44 65 ty.if.it's.set.to.a.string.4..De
2f020 66 61 75 6c 74 20 74 6f 20 61 20 66 61 6c 6c 62 61 63 6b 20 77 68 69 63 68 20 6d 61 74 63 68 65 fault.to.a.fallback.which.matche
2f040 73 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 61 67 61 69 6e 73 74 0a 20 20 20 60 s.all.project.files.against....`
2f060 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 70 72 65 64 69 63 61 projectile--test-to-impl-predica
2f080 74 65 27 0a 35 2e 20 46 61 6c 6c 62 61 63 6b 20 74 6f 20 73 77 61 70 70 69 6e 67 20 5c 22 74 65 te'.5..Fallback.to.swapping.\"te
2f0a0 73 74 5c 22 20 66 6f 72 20 5c 22 73 72 63 5c 22 20 69 6e 20 54 45 53 54 2d 46 49 4c 45 20 69 66 st\".for.\"src\".in.TEST-FILE.if
2f0c0 20 5c 22 74 65 73 74 5c 22 0a 20 20 20 69 73 20 61 20 73 75 62 73 74 72 69 6e 67 20 6f 66 20 54 .\"test\"....is.a.substring.of.T
2f0e0 45 53 54 2d 46 49 4c 45 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 61 63 6f 6e 64 0a EST-FILE."...(projectile--acond.
2f100 20 20 20 28 28 70 72 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 ...((projectile--impl-file-from-
2f120 73 72 63 2d 64 69 72 2d 66 6e 20 74 65 73 74 2d 66 69 6c 65 29 20 28 6c 69 73 74 20 69 74 29 29 src-dir-fn.test-file).(list.it))
2f140 0a 20 20 20 28 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 ....((projectile--related-files-
2f160 70 6c 69 73 74 2d 62 79 2d 6b 69 6e 64 20 74 65 73 74 2d 66 69 6c 65 20 3a 69 6d 70 6c 29 0a 20 plist-by-kind.test-file.:impl)..
2f180 20 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 72 ...(projectile--related-files-fr
2f1a0 6f 6d 2d 70 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 69 om-plist.it))....((projectile--i
2f1c0 6d 70 6c 2d 66 69 6c 65 2d 66 72 6f 6d 2d 73 72 63 2d 64 69 72 2d 73 74 72 20 74 65 73 74 2d 66 mpl-file-from-src-dir-str.test-f
2f1e0 69 6c 65 29 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 ile).(list.it))....((projectile-
2f200 2d 62 65 73 74 2d 6f 72 2d 61 6c 6c 2d 63 61 6e 64 69 64 61 74 65 73 2d 62 61 73 65 64 2d 6f 6e -best-or-all-candidates-based-on
2f220 2d 70 61 72 65 6e 74 73 2d 64 69 72 73 0a 20 20 20 20 20 74 65 73 74 2d 66 69 6c 65 20 28 63 6c -parents-dirs......test-file.(cl
2f240 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 20 28 -remove-if-not.................(
2f260 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 70 72 65 64 69 63 61 projectile--test-to-impl-predica
2f280 74 65 20 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 te.test-file).................(p
2f2a0 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 66 69 6c 65 73 29 rojectile-current-project-files)
2f2c0 29 29 20 69 74 29 0a 20 20 20 28 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 74 65 73 74 2d 74 6f 2d )).it)....((projectile--test-to-
2f2e0 69 6d 70 6c 2d 64 69 72 2d 66 61 6c 6c 62 61 63 6b 20 74 65 73 74 2d 66 69 6c 65 29 20 28 6c 69 impl-dir-fallback.test-file).(li
2f300 73 74 20 69 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 68 st.it))))..(defun.projectile--ch
2f320 6f 6f 73 65 2d 66 72 6f 6d 2d 63 61 6e 64 69 64 61 74 65 73 20 28 63 61 6e 64 69 64 61 74 65 73 oose-from-candidates.(candidates
2f340 29 0a 20 20 22 43 68 6f 6f 73 65 20 6f 6e 65 20 69 74 65 6d 20 66 72 6f 6d 20 43 41 4e 44 49 44 )..."Choose.one.item.from.CANDID
2f360 41 54 45 53 2e 22 0a 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 69 64 61 74 ATES."...(if.(=.(length.candidat
2f380 65 73 29 20 31 29 0a 20 20 20 20 20 20 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 es).1).......(car.candidates)...
2f3a0 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 64 20 22 53 ..(projectile-completing-read."S
2f3c0 77 69 74 63 68 20 74 6f 3a 20 22 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 witch.to:.".candidates)))..(defu
2f3e0 6e 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 20 n.projectile-find-matching-test.
2f400 28 69 6d 70 6c 2d 66 69 6c 65 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 6e 61 6d 65 20 (impl-file)..."Compute.the.name.
2f420 6f 66 20 74 68 65 20 74 65 73 74 20 6d 61 74 63 68 69 6e 67 20 49 4d 50 4c 2d 46 49 4c 45 2e 22 of.the.test.matching.IMPL-FILE."
2f440 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 73 20 28 70 72 6f 6a 65 ...(when-let.((candidates.(proje
2f460 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 20 69 6d 70 6c 2d 66 ctile--find-matching-test.impl-f
2f480 69 6c 65 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d 66 ile))).....(projectile--choose-f
2f4a0 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 29 0a 0a 28 64 rom-candidates.candidates)))..(d
2f4c0 65 66 75 6e 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 66 69 efun.projectile-find-matching-fi
2f4e0 6c 65 20 28 74 65 73 74 2d 66 69 6c 65 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 6e 61 le.(test-file)..."Compute.the.na
2f500 6d 65 20 6f 66 20 61 20 66 69 6c 65 20 6d 61 74 63 68 69 6e 67 20 54 45 53 54 2d 46 49 4c 45 2e me.of.a.file.matching.TEST-FILE.
2f520 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 73 20 28 70 72 6f 6a "...(when-let.((candidates.(proj
2f540 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 74 65 73 74 2d ectile--find-matching-file.test-
2f560 66 69 6c 65 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 68 6f 6f 73 65 2d file))).....(projectile--choose-
2f580 66 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 29 0a 0a 28 from-candidates.candidates)))..(
2f5a0 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 66 69 defun.projectile-grep-default-fi
2f5c0 6c 65 73 20 28 29 0a 20 20 22 54 72 79 20 74 6f 20 66 69 6e 64 20 61 20 64 65 66 61 75 6c 74 20 les.()..."Try.to.find.a.default.
2f5e0 70 61 74 74 65 72 6e 20 66 6f 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 27 2e 0a 54 pattern.for.`projectile-grep'..T
2f600 68 69 73 20 69 73 20 61 20 73 75 62 73 65 74 20 6f 66 20 60 67 72 65 70 2d 72 65 61 64 2d 66 69 his.is.a.subset.of.`grep-read-fi
2f620 6c 65 73 27 2c 20 77 68 65 72 65 20 65 69 74 68 65 72 20 61 20 6d 61 74 63 68 69 6e 67 20 65 6e les',.where.either.a.matching.en
2f640 74 72 79 20 66 72 6f 6d 0a 60 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 27 20 6f 72 try.from.`grep-files-aliases'.or
2f660 20 66 69 6c 65 20 6e 61 6d 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 61 74 74 65 72 6e 20 69 73 20 .file.name.extension.pattern.is.
2f680 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e returned."...(when.buffer-file-n
2f6a0 61 6d 65 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 66 6e 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f ame.....(let*.((fn.(file-name-no
2f6c0 6e 64 69 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 29 0a 20 20 ndirectory.buffer-file-name))...
2f6e0 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 61 6c 69 61 73 0a 20 20 20 20 20 20 20 20 .........(default-alias.........
2f700 20 20 20 20 20 28 6c 65 74 20 28 28 61 6c 69 61 73 65 73 20 28 72 65 6d 6f 76 65 20 28 61 73 73 .....(let.((aliases.(remove.(ass
2f720 6f 63 20 22 61 6c 6c 22 20 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 29 0a 20 20 20 oc."all".grep-files-aliases)....
2f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f760 20 67 72 65 70 2d 66 69 6c 65 73 2d 61 6c 69 61 73 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 .grep-files-aliases))...........
2f780 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .........alias)................(
2f7a0 77 68 69 6c 65 20 61 6c 69 61 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 while.aliases..................(
2f7c0 73 65 74 71 20 61 6c 69 61 73 20 28 63 61 72 20 61 6c 69 61 73 65 73 29 0a 20 20 20 20 20 20 20 setq.alias.(car.aliases)........
2f7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 69 61 73 65 73 20 28 63 64 72 20 61 6c 69 ................aliases.(cdr.ali
2f800 61 73 65 73 29 29 0a 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 ases))..................(if.(str
2f820 69 6e 67 2d 6d 61 74 63 68 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 ing-match.(mapconcat............
2f840 20 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 77 69 6c 64 63 .........................#'wildc
2f860 61 72 64 2d 74 6f 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ard-to-regexp...................
2f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 ..................(split-string.
2f8a0 28 63 64 72 20 61 6c 69 61 73 29 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (cdr.alias).nil.t)..............
2f8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 7c 22 29 0a 20 20 ......................."\\|")...
2f8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2f900 20 66 6e 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 74 71 20 .fn)......................(setq.
2f920 61 6c 69 61 73 65 73 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 aliases.nil)....................
2f940 28 73 65 74 71 20 61 6c 69 61 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (setq.alias.nil)))..............
2f960 20 20 28 63 64 72 20 61 6c 69 61 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 ..(cdr.alias)))............(defa
2f980 75 6c 74 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 ult-extension..............(let.
2f9a0 28 28 65 78 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 65 78 74 65 6e 73 69 6f 6e 20 66 6e 29 29 29 ((ext.(file-name-extension.fn)))
2f9c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 65 78 74 20 28 63 6f 6e 63 61 74 ................(and.ext.(concat
2f9e0 20 22 2a 2e 22 20 65 78 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 6f 72 20 64 65 66 61 75 6c 74 ."*.".ext))))).......(or.default
2fa00 2d 61 6c 69 61 73 20 64 65 66 61 75 6c 74 2d 65 78 74 65 6e 73 69 6f 6e 29 29 29 29 0a 0a 28 64 -alias.default-extension))))..(d
2fa20 65 66 75 6e 20 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 efun.projectile--globally-ignore
2fa40 64 2d 66 69 6c 65 2d 73 75 66 66 69 78 65 73 2d 67 6c 6f 62 20 28 29 0a 20 20 22 52 65 74 75 72 d-file-suffixes-glob.()..."Retur
2fa60 6e 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 20 73 75 66 66 69 78 65 73 20 61 73 20 61 20 6c 69 73 n.ignored.file.suffixes.as.a.lis
2fa80 74 20 6f 66 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 t.of.glob.patterns."...(mapcar.(
2faa0 6c 61 6d 62 64 61 20 28 70 61 74 29 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 70 61 74 29 29 20 70 lambda.(pat).(concat."*".pat)).p
2fac0 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 2d rojectile-globally-ignored-file-
2fae0 73 75 66 66 69 78 65 73 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 suffixes))..(defun.projectile--r
2fb00 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 75 6c 74 20 28 ead-search-string-with-default.(
2fb20 70 72 65 66 69 78 2d 6c 61 62 65 6c 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 65 66 69 78 2d 6c prefix-label)...(let*.((prefix-l
2fb40 61 62 65 6c 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 abel.(projectile-prepend-project
2fb60 2d 6e 61 6d 65 20 70 72 65 66 69 78 2d 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 -name.prefix-label))..........(d
2fb80 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d efault-value.(projectile-symbol-
2fba0 6f 72 2d 73 65 6c 65 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 or-selection-at-point)).........
2fbc0 20 28 64 65 66 61 75 6c 74 2d 6c 61 62 65 6c 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 64 65 66 .(default-label.(if.(or.(not.def
2fbe0 61 75 6c 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ault-value).....................
2fc00 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 64 65 66 61 75 6c 74 2d 76 61 6c ............(string=.default-val
2fc20 75 65 20 22 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 20 20 ue."")).........................
2fc40 20 20 20 20 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 20 20 ....""..........................
2fc60 20 28 66 6f 72 6d 61 74 20 22 20 28 64 65 66 61 75 6c 74 20 25 73 29 22 20 64 65 66 61 75 6c 74 .(format.".(default.%s)".default
2fc80 2d 76 61 6c 75 65 29 29 29 29 0a 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 28 66 6f 72 -value)))).....(read-string.(for
2fca0 6d 61 74 20 22 25 73 25 73 3a 20 22 20 70 72 65 66 69 78 2d 6c 61 62 65 6c 20 64 65 66 61 75 6c mat."%s%s:.".prefix-label.defaul
2fcc0 74 2d 6c 61 62 65 6c 29 20 6e 69 6c 20 6e 69 6c 20 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 29 29 t-label).nil.nil.default-value))
2fce0 29 0a 0a 28 64 65 66 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 )..(defvar.projectile-grep-find-
2fd00 69 67 6e 6f 72 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 ignored-paths).(defvar.projectil
2fd20 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 29 0a 28 64 65 e-grep-find-unignored-paths).(de
2fd40 66 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 69 67 6e 6f 72 65 fvar.projectile-grep-find-ignore
2fd60 64 2d 70 61 74 74 65 72 6e 73 29 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 d-patterns).(defvar.projectile-g
2fd80 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 29 0a 0a 28 64 rep-find-unignored-patterns)..(d
2fda0 65 66 75 6e 20 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 6f efun.projectile-rgrep-default-co
2fdc0 6d 6d 61 6e 64 20 28 72 65 67 65 78 70 20 66 69 6c 65 73 20 64 69 72 29 0a 20 20 22 43 6f 6d 70 mmand.(regexp.files.dir)..."Comp
2fde0 75 74 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 5c 5c 5b 72 67 72 65 70 5d 20 74 6f ute.the.command.for.\\[rgrep].to
2fe00 20 75 73 65 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 78 74 65 6e 73 69 6f 6e 20 6f 66 20 74 .use.by.default...Extension.of.t
2fe20 68 65 20 45 6d 61 63 73 20 32 35 2e 31 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 he.Emacs.25.1.implementation.of.
2fe40 60 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 61 6e 64 27 2c 20 77 69 74 68 0a 77 68 `rgrep-default-command',.with.wh
2fe60 69 63 68 20 69 74 20 73 68 61 72 65 73 20 69 74 73 20 61 72 67 6c 69 73 74 2e 22 0a 20 20 28 72 ich.it.shares.its.arglist."...(r
2fe80 65 71 75 69 72 65 20 27 66 69 6e 64 2d 64 69 72 65 64 29 20 20 20 20 20 20 3b 20 66 6f 72 20 60 equire.'find-dired)......;.for.`
2fea0 66 69 6e 64 2d 6e 61 6d 65 2d 61 72 67 27 0a 20 20 28 67 72 65 70 2d 65 78 70 61 6e 64 2d 74 65 find-name-arg'...(grep-expand-te
2fec0 6d 70 6c 61 74 65 0a 20 20 20 67 72 65 70 2d 66 69 6e 64 2d 74 65 6d 70 6c 61 74 65 0a 20 20 20 mplate....grep-find-template....
2fee0 72 65 67 65 78 70 0a 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 regexp....(concat.(shell-quote-a
2ff00 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 66 69 6e 64 rgument."(")............".".find
2ff20 2d 6e 61 6d 65 2d 61 72 67 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e -name-arg."."............(mapcon
2ff40 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 cat.............#'shell-quote-ar
2ff60 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 gument.............(split-string
2ff80 20 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 2d 6f .files).............(concat.".-o
2ffa0 20 22 20 66 69 6e 64 2d 6e 61 6d 65 2d 61 72 67 20 22 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 .".find-name-arg."."))..........
2ffc0 20 20 22 20 22 0a 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 .."."............(shell-quote-ar
2ffe0 67 75 6d 65 6e 74 20 22 29 22 29 29 0a 20 20 20 64 69 72 0a 20 20 20 28 63 6f 6e 63 61 74 0a 20 gument.")"))....dir....(concat..
30000 20 20 20 28 61 6e 64 20 67 72 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 64 69 72 65 63 74 ...(and.grep-find-ignored-direct
30020 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2d 74 79 70 65 20 64 20 ories..........(concat."-type.d.
30040 22 0a 20 20 20 20 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 "..................(shell-quote-
30060 61 72 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b argument."(")..................;
30080 3b 20 77 65 20 73 68 6f 75 6c 64 20 75 73 65 20 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 ;.we.should.use.shell-quote-argu
300a0 6d 65 6e 74 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 61 ment.here..................".-pa
300c0 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 th."..................(mapconcat
300e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 69 64 65 6e 74 69 74 79 0a 20 20 ...................#'identity...
30100 20 20 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 6d 61 70 63 61 ................(delq.nil.(mapca
30120 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 23 r..............................#
30140 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 20 20 20 20 20 20 '(lambda.(ignore)...............
30160 20 20 20 20 20 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 ...................(cond.((strin
30180 67 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 20 20 gp.ignore)......................
301a0 20 20 20 20 20 20 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 ...................(shell-quote-
301c0 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 20 20 20 argument........................
301e0 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 2a 2f 22 20 69 ..................(concat."*/".i
30200 67 6e 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 20 20 20 20 20 gnore)))........................
30220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 69 67 6e 6f 72 65 29 0a ................((consp.ignore).
30240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30260 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 6e 6f 72 ........(and.(funcall.(car.ignor
30280 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 20 20 20 e).dir).........................
302a0 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 6c 2d 71 75 6f 74 .....................(shell-quot
302c0 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 20 e-argument......................
302e0 20 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 74 .........................(concat
30300 20 22 2a 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 ."*/"...........................
30320 20 20 20 20 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 64 72 ............................(cdr
30340 20 69 67 6e 6f 72 65 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ignore)))))))..................
30360 20 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 ............grep-find-ignored-di
30380 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 20 20 20 20 20 22 20 rectories))...................".
303a0 2d 6f 20 2d 70 61 74 68 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 -o.-path.").................."."
303c0 0a 20 20 20 20 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 ..................(shell-quote-a
303e0 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 rgument.")")..................".
30400 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 0a 20 20 20 20 28 61 6e 64 20 67 72 65 70 2d 66 69 6e 64 -prune.-o.")).....(and.grep-find
30420 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 -ignored-files..........(concat.
30440 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 20 22 20 2d 74 79 (shell-quote-argument."!").".-ty
30460 70 65 20 64 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 pe.d."..................(shell-q
30480 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 20 20 20 uote-argument."(")..............
304a0 20 20 20 20 3b 3b 20 77 65 20 73 68 6f 75 6c 64 20 75 73 65 20 73 68 65 6c 6c 2d 71 75 6f 74 65 ....;;.we.should.use.shell-quote
304c0 2d 61 72 67 75 6d 65 6e 74 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -argument.here..................
304e0 22 20 2d 6e 61 6d 65 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 ".-name."..................(mapc
30500 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 oncat...................#'(lambd
30520 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 20 20 20 a.(ignore)......................
30540 20 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 .(cond.((stringp.ignore)........
30560 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 6c 2d 71 75 6f ......................(shell-quo
30580 74 65 2d 61 72 67 75 6d 65 6e 74 20 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 te-argument.ignore))............
305a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 69 67 6e 6f 72 65 29 .................((consp.ignore)
305c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 ..............................(a
305e0 6e 64 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 69 67 6e 6f 72 65 29 20 64 69 72 29 0a 20 20 nd.(funcall.(car.ignore).dir)...
30600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30620 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...........
30640 20 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 64 72 20 69 67 .........................(cdr.ig
30660 6e 6f 72 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 67 72 65 nore))))))...................gre
30680 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 20 20 20 20 20 20 20 p-find-ignored-files............
306a0 20 20 20 20 20 20 20 22 20 2d 6f 20 2d 6e 61 6d 65 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 .......".-o.-name.")............
306c0 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 73 68 65 6c ......"."..................(shel
306e0 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 20 20 20 20 l-quote-argument.")")...........
30700 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 61 6e 64 20 .......".-prune.-o.")).....(and.
30720 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 2d 70 61 74 projectile-grep-find-ignored-pat
30740 68 73 0a 20 20 20 20 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 hs..........(concat.(shell-quote
30760 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 20 20 20 20 20 20 20 -argument."(")..................
30780 22 20 2d 70 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 ".-path."..................(mapc
307a0 6f 6e 63 61 74 0a 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 oncat...................(lambda.
307c0 28 69 67 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 (ignore).(shell-quote-argument..
307e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30800 20 20 20 28 63 6f 6e 63 61 74 20 22 2e 2f 22 20 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 ...(concat."./".ignore))).......
30820 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 70 2d 66 69 6e 64 ............projectile-grep-find
30840 2d 69 67 6e 6f 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -ignored-paths..................
30860 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .".-o.-path.")..................
30880 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 "."..................(shell-quot
308a0 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-argument.")").................
308c0 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 0a 20 20 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 .".-prune.-o.")).....(and.projec
308e0 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.
30900 20 20 20 20 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 .........(concat.(shell-quote-ar
30920 67 75 6d 65 6e 74 20 22 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e gument."(")..................(an
30940 64 20 28 6f 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 d.(or.projectile-grep-find-unign
30960 6f 72 65 64 2d 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 ored-paths......................
30980 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 69 67 6e 6f .....projectile-grep-find-unigno
309a0 72 65 64 2d 70 61 74 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 red-patterns)...................
309c0 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(concat.".".................
309e0 20 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 ..............(shell-quote-argum
30a00 65 6e 74 20 22 28 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 70 ent."(")))..................".-p
30a20 61 74 68 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 ath."..................(mapconca
30a40 74 0a 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 6e t...................(lambda.(ign
30a60 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 28 73 68 65 6c 6c 2d ore).....................(shell-
30a80 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 20 20 20 quote-argument..................
30aa0 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 69 67 6e ....(if.(string-prefix-p."*".ign
30ac0 6f 72 65 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 ore).ignore.....................
30ae0 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 2f 22 20 69 67 6e 6f 72 65 29 29 29 29 0a 20 20 20 20 20 ...(concat."*/".ignore))))......
30b00 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 70 2d 66 69 6e .............projectile-grep-fin
30b20 64 2d 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 d-ignored-patterns..............
30b40 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 20 20 20 20 20 20 .....".-o.-path.")..............
30b60 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 65 70 2d 66 69 6e ....(and.(or.projectile-grep-fin
30b80 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 20 20 20 20 20 20 d-unignored-paths...............
30ba0 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 70 2d 66 69 6e 64 ............projectile-grep-find
30bc0 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 20 20 20 20 20 20 -unignored-patterns)............
30be0 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 20 20 20 20 20 20 ...........(concat."."..........
30c00 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 6c 2d 71 75 6f 74 .....................(shell-quot
30c20 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-argument.")").................
30c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 61 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 ..............".-a."............
30c60 20 20 20 20 20 20 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 ...................(shell-quote-
30c80 61 72 67 75 6d 65 6e 74 20 22 21 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 argument."!")...................
30ca0 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 20 ............".".................
30cc0 20 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 ..............(shell-quote-argum
30ce0 65 6e 74 20 22 28 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 ent."(")........................
30d00 20 20 20 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 64 .......(and.projectile-grep-find
30d20 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 20 20 20 20 20 20 20 -unignored-paths................
30d40 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 20 2d 70 ....................(concat.".-p
30d60 61 74 68 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 ath."...........................
30d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 .................(mapconcat.....
30da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30dc0 20 20 20 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 ........(lambda.(ignore).(shell-
30de0 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 20 20 20 quote-argument..................
30e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
30e20 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 6f 72 65 .............(concat."./".ignore
30e40 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 20 20 20 ))).............................
30e60 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 70 2d ................projectile-grep-
30e80 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 20 20 20 find-unignored-paths............
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 20 ................................
30ec0 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .".-o.-path.")))................
30ee0 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 69 6c 65 2d 67 ...............(and.projectile-g
30f00 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 20 20 20 20 20 rep-find-unignored-paths........
30f20 20 20 20 20 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 ............................proj
30f40 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 74 65 ectile-grep-find-unignored-patte
30f60 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 20 20 rns.............................
30f80 20 20 20 20 20 20 20 22 20 2d 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......".-o")...................
30fa0 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 ............(and.projectile-grep
30fc0 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 0a 20 20 20 20 20 20 20 -find-unignored-patterns........
30fe0 20 20 20 20 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
31000 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 20 20 20 20 20 cat.".-path."...................
31020 20 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 70 63 6f 6e .........................(mapcon
31040 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cat.............................
31060 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 6e 6f 72 65 29 ................(lambda.(ignore)
31080 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 ................................
310a0 20 20 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 ...............(shell-quote-argu
310c0 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 20 20 20 20 20 20 20 ment............................
310e0 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 2d ....................(if.(string-
31100 70 72 65 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 prefix-p."*".ignore).ignore.....
31120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31140 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 6f 72 65 .............(concat."*/".ignore
31160 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 20 20 ))))............................
31180 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 70 .................projectile-grep
311a0 2d 66 69 6e 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 0a 20 20 20 20 20 20 20 -find-unignored-patterns........
311c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
311e0 20 20 20 20 20 22 20 2d 6f 20 2d 70 61 74 68 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .....".-o.-path.")))............
31200 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 20 20 20 20 20 20 ..................."."..........
31220 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 6c 2d 71 75 6f 74 .....................(shell-quot
31240 65 2d 61 72 67 75 6d 65 6e 74 20 22 29 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-argument.")")))...............
31260 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 73 68 65 6c 6c 2d 71 ..."."..................(shell-q
31280 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 20 20 20 20 20 20 20 uote-argument.")")..............
312a0 20 20 20 20 22 20 2d 70 72 75 6e 65 20 2d 6f 20 22 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 ....".-prune.-o.")))))..;;;###au
312c0 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 67 72 65 70 20 28 26 toload.(defun.projectile-grep.(&
312e0 6f 70 74 69 6f 6e 61 6c 20 72 65 67 65 78 70 20 61 72 67 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 optional.regexp.arg)..."Perform.
31300 72 67 72 65 70 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 0a 57 69 74 68 20 61 20 70 72 rgrep.in.the.project...With.a.pr
31320 65 66 69 78 20 41 52 47 20 61 73 6b 73 20 66 6f 72 20 66 69 6c 65 73 20 28 67 6c 6f 62 62 69 6e efix.ARG.asks.for.files.(globbin
31340 67 2d 61 77 61 72 65 29 20 77 68 69 63 68 20 74 6f 20 67 72 65 70 20 69 6e 2e 0a 57 69 74 68 20 g-aware).which.to.grep.in..With.
31360 70 72 65 66 69 78 20 41 52 47 20 6f 66 20 60 2d 27 20 28 73 75 63 68 20 61 73 20 60 4d 2d 2d 27 prefix.ARG.of.`-'.(such.as.`M--'
31380 29 2c 20 64 65 66 61 75 6c 74 20 74 68 65 20 66 69 6c 65 73 20 28 77 69 74 68 6f 75 74 20 70 72 ),.default.the.files.(without.pr
313a0 6f 6d 70 74 29 2c 0a 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 ompt),.to.`projectile-grep-defau
313c0 6c 74 2d 66 69 6c 65 73 27 2e 0a 0a 57 69 74 68 20 52 45 47 45 58 50 20 67 69 76 65 6e 2c 20 64 lt-files'...With.REGEXP.given,.d
313e0 6f 6e 27 74 20 71 75 65 72 79 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 61 20 72 65 67 65 78 70 on't.query.the.user.for.a.regexp
31400 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 69 5c 6e 50 22 29 0a 20 20 28 72 65 71 ."...(interactive."i\nP")...(req
31420 75 69 72 65 20 27 67 72 65 70 29 20 3b 3b 20 66 6f 72 20 60 72 67 72 65 70 27 0a 20 20 28 6c 65 uire.'grep).;;.for.`rgrep'...(le
31440 74 2a 20 28 28 72 6f 6f 74 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 74 2d 70 72 6f 6a 65 t*.((roots.(projectile-get-proje
31460 63 74 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 61 63 71 75 69 ct-directories.(projectile-acqui
31480 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 72 65 67 65 re-root)))..........(search-rege
314a0 78 70 20 28 6f 72 20 72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xp.(or.regexp...................
314c0 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 61 64 2d 73 65 61 72 ..........(projectile--read-sear
314e0 63 68 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 47 72 65 70 20 66 6f 72 ch-string-with-default."Grep.for
31500 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 73 20 28 61 6e 64 20 61 72 67 20 28 6f ")))..........(files.(and.arg.(o
31520 72 20 28 61 6e 64 20 28 65 71 75 61 6c 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 r.(and.(equal.current-prefix-arg
31540 20 27 2d 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 .'-)............................
31560 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 6c 74 2d .......(projectile-grep-default-
31580 66 69 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 20 20 20 files)).........................
315a0 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 .....(read-string.(projectile-pr
315c0 65 70 65 6e 64 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 20 22 47 72 65 70 20 69 6e 3a 20 22 29 0a epend-project-name."Grep.in:.").
315e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
31600 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 64 65 66 61 75 ..........(projectile-grep-defau
31620 6c 74 2d 66 69 6c 65 73 29 29 29 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 72 6f 6f 74 lt-files)))))).....(dolist.(root
31640 2d 64 69 72 20 72 6f 6f 74 73 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 76 63 2d 67 -dir.roots).......(require.'vc-g
31660 69 74 29 20 3b 3b 20 66 6f 72 20 60 76 63 2d 67 69 74 2d 67 72 65 70 27 0a 20 20 20 20 20 20 3b it).;;.for.`vc-git-grep'.......;
31680 3b 20 69 6e 20 67 69 74 20 70 72 6f 6a 65 63 74 73 20 75 73 65 72 73 20 68 61 76 65 20 74 68 65 ;.in.git.projects.users.have.the
316a0 20 6f 70 74 69 6f 6e 20 74 6f 20 75 73 65 20 60 76 63 2d 67 69 74 2d 67 72 65 70 27 20 69 6e 73 .option.to.use.`vc-git-grep'.ins
316c0 74 65 61 64 20 6f 66 20 60 72 67 72 65 70 27 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 tead.of.`rgrep'.......(if.(and.(
316e0 65 71 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 29 20 27 67 69 74 eq.(projectile-project-vcs).'git
31700 29 0a 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 75 73 65 2d )................projectile-use-
31720 67 69 74 2d 67 72 65 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 git-grep................(fboundp
31740 20 27 76 63 2d 67 69 74 2d 67 72 65 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 76 63 2d 67 69 .'vc-git-grep))...........(vc-gi
31760 74 2d 67 72 65 70 20 73 65 61 72 63 68 2d 72 65 67 65 78 70 20 28 6f 72 20 66 69 6c 65 73 20 22 t-grep.search-regexp.(or.files."
31780 22 29 20 72 6f 6f 74 2d 64 69 72 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 70 61 74 68 73 20 66 6f ").root-dir).........;;.paths.fo
317a0 72 20 66 69 6e 64 2d 67 72 65 70 20 73 68 6f 75 6c 64 20 72 65 6c 61 74 69 76 65 20 61 6e 64 20 r.find-grep.should.relative.and.
317c0 77 69 74 68 6f 75 74 20 74 72 61 69 6c 69 6e 67 20 2f 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 without.trailing./.........(let.
317e0 28 28 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 20 20 ((grep-find-ignored-files.......
31800 20 20 20 20 20 20 20 20 20 28 63 6c 2d 75 6e 69 6f 6e 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d .........(cl-union.(projectile--
31820 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 69 78 65 73 2d 67 globally-ignored-file-suffixes-g
31840 6c 6f 62 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 67 72 lob)..........................gr
31860 65 70 2d 66 69 6e 64 2d 69 67 6e 6f 72 65 64 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 ep-find-ignored-files)).........
31880 20 20 20 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 ......(projectile-grep-find-igno
318a0 72 65 64 2d 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 red-paths................(append
318c0 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 64 69 72 65 63 74 6f 72 79 2d .(mapcar.(lambda.(f).(directory-
318e0 66 69 6c 65 2d 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 66 20 file-name.(file-relative-name.f.
31900 72 6f 6f 74 2d 64 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 root-dir))).....................
31920 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 64 ...........(projectile-ignored-d
31940 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 20 20 20 20 20 20 irectories))....................
31960 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 0a 20 20 20 20 20 ....(mapcar.(lambda.(file)......
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 20 20 20 28 66 69 6c ............................(fil
319a0 65 2d 72 65 6c 61 74 69 76 65 2d 6e 61 6d 65 20 66 69 6c 65 20 72 6f 6f 74 2d 64 69 72 29 29 0a e-relative-name.file.root-dir)).
319c0 20 20 20 20 20 20 20 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 ...............................(
319e0 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 29 0a 20 20 20 projectile-ignored-files))))....
31a00 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 64 ...........(projectile-grep-find
31a20 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 20 20 20 20 20 20 20 -unignored-paths................
31a40 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 29 20 28 64 69 72 (append.(mapcar.(lambda.(f).(dir
31a60 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 61 74 69 76 65 2d ectory-file-name.(file-relative-
31a80 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 20 20 20 20 20 20 name.f.root-dir)))..............
31aa0 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 75 6e ..................(projectile-un
31ac0 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 20 20 20 ignored-directories))...........
31ae0 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 20 28 66 69 .............(mapcar.(lambda.(fi
31b00 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 20 20 20 20 le).............................
31b20 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 65 20 72 6f .....(file-relative-name.file.ro
31b40 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 20 20 20 20 ot-dir))........................
31b60 20 20 20 20 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 66 69 ........(projectile-unignored-fi
31b80 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 69 6c les))))...............(projectil
31ba0 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 20 28 70 72 e-grep-find-ignored-patterns.(pr
31bc0 6f 6a 65 63 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 6e 6f 72 65 29 29 0a 20 20 ojectile-patterns-to-ignore))...
31be0 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 72 65 70 2d 66 69 6e ............(projectile-grep-fin
31c00 64 2d 75 6e 69 67 6e 6f 72 65 64 2d 70 61 74 74 65 72 6e 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 d-unignored-patterns.(projectile
31c20 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 65 6e 73 75 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 -patterns-to-ensure)))..........
31c40 20 28 67 72 65 70 2d 63 6f 6d 70 75 74 65 2d 64 65 66 61 75 6c 74 73 29 0a 20 20 20 20 20 20 20 .(grep-compute-defaults)........
31c60 20 20 20 28 63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 27 ...(cl-letf.(((symbol-function.'
31c80 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 61 6e 64 29 20 23 27 70 72 6f 6a 65 63 74 rgrep-default-command).#'project
31ca0 69 6c 65 2d 72 67 72 65 70 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 ile-rgrep-default-command)).....
31cc0 20 20 20 20 20 20 20 20 28 72 67 72 65 70 20 73 65 61 72 63 68 2d 72 65 67 65 78 70 20 28 6f 72 ........(rgrep.search-regexp.(or
31ce0 20 66 69 6c 65 73 20 22 2a 20 2e 2a 22 29 20 72 6f 6f 74 2d 64 69 72 29 0a 20 20 20 20 20 20 20 .files."*..*").root-dir)........
31d00 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 62 75 66 66 65 72 20 22 2a 67 72 65 70 2a 22 29 .....(when.(get-buffer."*grep*")
31d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 65 6e 20 67 72 65 70 20 69 73 20 75 ...............;;.When.grep.is.u
31d40 73 69 6e 67 20 61 20 67 6c 6f 62 61 6c 20 2a 67 72 65 70 2a 20 62 75 66 66 65 72 20 72 65 6e 61 sing.a.global.*grep*.buffer.rena
31d60 6d 65 20 69 74 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 63 6f me.it.to.be...............;;.sco
31d80 70 65 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 6f 6f 74 20 74 6f 20 61 6c 6c 6f 77 ped.to.the.current.root.to.allow
31da0 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6e 63 75 72 72 65 6e 74 20 67 72 65 70 0a 20 20 20 20 20 20 .multiple.concurrent.grep.......
31dc0 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 6f 6e 65 20 70 65 72 20 72 ........;;.operations,.one.per.r
31de0 6f 6f 74 0a 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 oot...............(with-current-
31e00 62 75 66 66 65 72 20 22 2a 67 72 65 70 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 buffer."*grep*".................
31e20 28 72 65 6e 61 6d 65 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 74 20 22 2a 67 72 65 70 20 3c 22 (rename-buffer.(concat."*grep.<"
31e40 20 72 6f 6f 74 2d 64 69 72 20 22 3e 2a 22 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 72 75 6e 2d .root-dir.">*")))))))).....(run-
31e60 68 6f 6f 6b 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 2d 66 69 6e 69 73 68 65 64 2d hooks.'projectile-grep-finished-
31e80 68 6f 6f 6b 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 hook)))..;;;###autoload.(defun.p
31ea0 72 6f 6a 65 63 74 69 6c 65 2d 61 67 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f rojectile-ag.(search-term.&optio
31ec0 6e 61 6c 20 61 72 67 29 0a 20 20 22 52 75 6e 20 61 6e 20 61 67 20 73 65 61 72 63 68 20 77 69 74 nal.arg)..."Run.an.ag.search.wit
31ee0 68 20 53 45 41 52 43 48 2d 54 45 52 4d 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 0a 0a 57 h.SEARCH-TERM.in.the.project...W
31f00 69 74 68 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 ith.an.optional.prefix.argument.
31f20 41 52 47 20 53 45 41 52 43 48 2d 54 45 52 4d 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 ARG.SEARCH-TERM.is.interpreted.a
31f40 73 20 61 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 s.a.regular.expression."...(inte
31f60 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 ractive....(list.(projectile--re
31f80 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 75 6c 74 0a 20 20 ad-search-string-with-default...
31fa0 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 41 67 20 25 73 73 65 61 72 63 68 20 66 6f 72 ........(format."Ag.%ssearch.for
31fc0 22 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 22 72 65 67 65 78 70 ".(if.current-prefix-arg."regexp
31fe0 20 22 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 ."."")))..........current-prefix
32000 2d 61 72 67 29 29 0a 20 20 28 69 66 20 28 72 65 71 75 69 72 65 20 27 61 67 20 6e 69 6c 20 27 6e -arg))...(if.(require.'ag.nil.'n
32020 6f 65 72 72 6f 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 67 2d 63 6f 6d 6d 61 6e 64 20 oerror).......(let.((ag-command.
32040 28 69 66 20 61 72 67 20 27 61 67 2d 72 65 67 65 78 70 20 27 61 67 29 29 0a 20 20 20 20 20 20 20 (if.arg.'ag-regexp.'ag))........
32060 20 20 20 20 20 28 61 67 2d 69 67 6e 6f 72 65 2d 6c 69 73 74 20 28 64 65 6c 71 20 6e 69 6c 0a 20 .....(ag-ignore-list.(delq.nil..
32080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
320a0 20 28 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 .(delete-dups...................
320c0 20 20 20 20 20 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 .................(append........
320e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 67 2d .............................ag-
32100 69 67 6e 6f 72 65 2d 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 ignore-list.....................
32120 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 6f ................(projectile-igno
32140 72 65 64 2d 66 69 6c 65 73 2d 72 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 red-files-rel)..................
32160 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 69 ...................(projectile-i
32180 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).........
321a0 20 20 20 20 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
321c0 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 6c 65 2d 73 jectile--globally-ignored-file-s
321e0 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 20 20 20 20 uffixes-glob)...................
32200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 67 20 73 75 70 70 6f 72 74 73 ..................;;.ag.supports
32220 20 67 69 74 20 69 67 6e 6f 72 65 20 66 69 6c 65 73 20 64 69 72 65 63 74 6c 79 0a 20 20 20 20 20 .git.ignore.files.directly......
32240 20 20 20 20 20 20 20 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 ...............................(
32260 75 6e 6c 65 73 73 20 28 65 71 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 unless.(eq.(projectile-project-v
32280 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 20 20 20 20 20 20 20 cs).'git).......................
322a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 67 72 65 70 2d 66 69 6e ................(append.grep-fin
322c0 64 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 20 20 20 20 20 20 d-ignored-files.................
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 20 20 20 67 72 ..............................gr
32300 65 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 0a 20 20 20 20 ep-find-ignored-directories.....
32320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32340 20 20 20 20 20 20 20 20 20 20 27 28 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........'())))))).............
32360 3b 3b 20 72 65 73 65 74 20 74 68 65 20 70 72 65 66 69 78 20 61 72 67 2c 20 6f 74 68 65 72 77 69 ;;.reset.the.prefix.arg,.otherwi
32380 73 65 20 69 74 20 77 69 6c 6c 20 61 66 66 65 63 74 20 74 68 65 20 61 67 2d 63 6f 6d 6d 61 6e 64 se.it.will.affect.the.ag-command
323a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 .............(current-prefix-arg
323c0 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 67 2d 63 6f 6d 6d 61 .nil)).........(funcall.ag-comma
323e0 6e 64 20 73 65 61 72 63 68 2d 74 65 72 6d 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 nd.search-term.(projectile-acqui
32400 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 63 6b 61 67 65 20 27 re-root))).....(error."Package.'
32420 61 67 27 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 22 29 29 29 0a 0a 3b 3b 3b 23 23 23 ag'.is.not.available")))..;;;###
32440 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 69 70 67 72 autoload.(defun.projectile-ripgr
32460 65 70 20 28 73 65 61 72 63 68 2d 74 65 72 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 ep.(search-term.&optional.arg)..
32480 20 22 52 75 6e 20 61 20 72 69 70 67 72 65 70 20 28 72 67 29 20 73 65 61 72 63 68 20 77 69 74 68 ."Run.a.ripgrep.(rg).search.with
324a0 20 60 53 45 41 52 43 48 2d 54 45 52 4d 27 20 61 74 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 .`SEARCH-TERM'.at.current.projec
324c0 74 20 72 6f 6f 74 2e 0a 0a 57 69 74 68 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 70 72 65 66 69 78 t.root...With.an.optional.prefix
324e0 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 69 6e 74 .argument.ARG.SEARCH-TERM.is.int
32500 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 69 6f 6e erpreted.as.a.regular.expression
32520 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 64 65 70 65 6e 64 73 20 6f 6e 20 6f 66 20 74 68 ...This.command.depends.on.of.th
32540 65 20 45 6d 61 63 73 20 70 61 63 6b 61 67 65 73 20 72 69 70 67 72 65 70 20 6f 72 20 72 67 20 62 e.Emacs.packages.ripgrep.or.rg.b
32560 65 69 6e 67 0a 69 6e 73 74 61 6c 6c 65 64 20 74 6f 20 77 6f 72 6b 2e 22 0a 20 20 28 69 6e 74 65 eing.installed.to.work."...(inte
32580 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 65 ractive....(list.(projectile--re
325a0 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 75 6c 74 0a 20 20 ad-search-string-with-default...
325c0 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 69 70 67 72 65 70 20 25 73 73 65 61 72 63 ........(format."Ripgrep.%ssearc
325e0 68 20 66 6f 72 22 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 20 22 72 h.for".(if.current-prefix-arg."r
32600 65 67 65 78 70 20 22 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d 70 egexp."."")))..........current-p
32620 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 6c 65 74 20 28 28 61 72 67 73 20 28 6d 61 70 63 61 refix-arg))...(let.((args.(mapca
32640 72 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 20 28 63 6f 6e 63 61 74 20 22 2d 2d 67 6c 6f 62 20 r.(lambda.(val).(concat."--glob.
32660 21 22 20 76 61 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 28 !".val)).......................(
32680 61 70 70 65 6e 64 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 append.projectile-globally-ignor
326a0 65 64 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 20 20 20 ed-files........................
326c0 20 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 6f 72 .......projectile-globally-ignor
326e0 65 64 2d 64 69 72 65 63 74 6f 72 69 65 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20 72 65 6c ed-directories)))).....;;.we.rel
32700 79 20 6f 6e 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 70 61 63 6b 61 67 65 73 20 72 69 70 67 72 y.on.the.external.packages.ripgr
32720 65 70 20 61 6e 64 20 72 67 20 66 6f 72 20 74 68 65 20 61 63 74 75 61 6c 20 73 65 61 72 63 68 0a ep.and.rg.for.the.actual.search.
32740 20 20 20 20 3b 3b 0a 20 20 20 20 3b 3b 20 66 69 72 73 74 20 77 65 20 63 68 65 63 6b 20 69 66 20 ....;;.....;;.first.we.check.if.
32760 77 65 20 63 61 6e 20 6c 6f 61 64 20 72 69 70 67 72 65 70 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 we.can.load.ripgrep.....(cond.((
32780 72 65 71 75 69 72 65 20 27 72 69 70 67 72 65 70 20 6e 69 6c 20 27 6e 6f 65 72 72 6f 72 29 0a 20 require.'ripgrep.nil.'noerror)..
327a0 20 20 20 20 20 20 20 20 20 20 28 72 69 70 67 72 65 70 2d 72 65 67 65 78 70 20 73 65 61 72 63 68 ..........(ripgrep-regexp.search
327c0 2d 74 65 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -term...........................
327e0 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 20 20 .(projectile-acquire-root)......
32800 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 61 72 67 0a 20 20 ......................(if.arg...
32820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 .............................arg
32840 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 28 s..............................(
32860 63 6f 6e 73 20 22 2d 2d 66 69 78 65 64 2d 73 74 72 69 6e 67 73 20 2d 2d 68 69 64 64 65 6e 22 20 cons."--fixed-strings.--hidden".
32880 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 74 68 65 6e 20 77 args))))...........;;.and.then.w
328a0 65 20 74 72 79 20 72 67 0a 20 20 20 20 20 20 20 20 20 20 28 28 72 65 71 75 69 72 65 20 27 72 67 e.try.rg...........((require.'rg
328c0 20 6e 69 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 67 2d 72 75 .nil.'noerror)............(rg-ru
328e0 6e 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 20 20 20 20 20 n.search-term...................
32900 20 22 2a 22 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 61 6c ."*".......................;;.al
32920 6c 20 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 28 70 72 6f 6a l.files....................(proj
32940 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 20 20 20 20 20 20 20 ectile-acquire-root)............
32960 20 20 20 20 20 20 20 20 28 6e 6f 74 20 61 72 67 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(not.arg)...............
32980 20 20 3b 3b 20 6c 69 74 65 72 61 6c 20 73 65 61 72 63 68 3f 0a 20 20 20 20 20 20 20 20 20 20 20 ..;;.literal.search?............
329a0 20 20 20 20 20 20 20 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........nil.....................
329c0 20 20 3b 3b 20 6e 6f 20 6e 65 65 64 20 74 6f 20 63 6f 6e 66 69 72 6d 0a 20 20 20 20 20 20 20 20 ..;;.no.need.to.confirm.........
329e0 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 ...........args))...........(t.(
32a00 65 72 72 6f 72 20 22 50 61 63 6b 61 67 65 73 20 60 72 69 70 67 72 65 70 27 20 61 6e 64 20 60 72 error."Packages.`ripgrep'.and.`r
32a20 67 27 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 22 29 29 29 29 29 0a 0a 28 64 65 66 g'.are.not.available")))))..(def
32a40 75 6e 20 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 20 28 26 un.projectile-find-references.(&
32a60 6f 70 74 69 6f 6e 61 6c 20 73 79 6d 62 6f 6c 29 0a 20 20 22 46 69 6e 64 20 61 6c 6c 20 72 65 66 optional.symbol)..."Find.all.ref
32a80 65 72 65 6e 63 65 73 20 74 6f 20 53 59 4d 42 4f 4c 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 erences.to.SYMBOL.in.the.current
32aa0 20 70 72 6f 6a 65 63 74 2e 0a 0a 41 20 74 68 69 6e 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e 64 .project...A.thin.wrapper.around
32ac0 20 60 78 72 65 66 2d 72 65 66 65 72 65 6e 63 65 73 2d 69 6e 2d 64 69 72 65 63 74 6f 72 79 27 2e .`xref-references-in-directory'.
32ae0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 "...(interactive)...(when.(and.(
32b00 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d 72 65 66 65 72 65 6e 63 65 73 2d 69 6e 2d 64 69 72 65 fboundp.'xref-references-in-dire
32b20 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 62 6f 75 6e 64 70 20 27 78 72 ctory)..............(fboundp.'xr
32b40 65 66 2d 2d 73 68 6f 77 2d 78 72 65 66 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a ef--show-xrefs)).....(let.((proj
32b60 65 63 74 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 ect-root.(projectile-acquire-roo
32b80 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 6f 72 20 73 79 6d 62 6f 6c t))...........(symbol.(or.symbol
32ba0 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 4c 6f 6f 6b 75 70 20 69 .(read-from-minibuffer."Lookup.i
32bc0 6e 20 70 72 6f 6a 65 63 74 3a 20 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 73 79 6d 62 6f 6c 2d n.project:.".(projectile-symbol-
32be0 61 74 2d 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 78 72 65 66 2d 2d 73 68 6f 77 2d at-point))))).......(xref--show-
32c00 78 72 65 66 73 20 28 78 72 65 66 2d 72 65 66 65 72 65 6e 63 65 73 2d 69 6e 2d 64 69 72 65 63 74 xrefs.(xref-references-in-direct
32c20 6f 72 79 20 73 79 6d 62 6f 6c 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 20 6e 69 6c 29 29 29 29 ory.symbol.project-root).nil))))
32c40 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 65 78 63 6c 75 64 65 ..(defun.projectile-tags-exclude
32c60 2d 70 61 74 74 65 72 6e 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 -patterns.()..."Return.a.string.
32c80 77 69 74 68 20 65 78 63 6c 75 64 65 20 70 61 74 74 65 72 6e 73 20 66 6f 72 20 63 74 61 67 73 2e with.exclude.patterns.for.ctags.
32ca0 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 70 61 74 74 65 72 6e 29 "...(mapconcat.(lambda.(pattern)
32cc0 20 28 66 6f 72 6d 61 74 20 22 2d 2d 65 78 63 6c 75 64 65 3d 5c 22 25 73 5c 22 22 0a 20 20 20 20 .(format."--exclude=\"%s\"".....
32ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
32d00 20 20 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 65 72 6e 29 ...(directory-file-name.pattern)
32d20 29 29 0a 20 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 ))..............(append.........
32d40 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 64 69 72 65 63 74 ......(projectile-ignored-direct
32d60 6f 72 69 65 73 2d 72 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 ories-rel)...............(projec
32d80 74 69 6c 65 2d 70 61 74 74 65 72 6e 73 2d 74 6f 2d 69 67 6e 6f 72 65 29 29 20 22 20 22 29 29 0a tile-patterns-to-ignore)).".")).
32da0 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 6c .;;;###autoload.(defun.projectil
32dc0 65 2d 72 65 67 65 6e 65 72 61 74 65 2d 74 61 67 73 20 28 29 0a 20 20 22 52 65 67 65 6e 65 72 61 e-regenerate-tags.()..."Regenera
32de0 74 65 20 74 68 65 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 28 te.the.project's.[e|g]tags."...(
32e00 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 interactive)...(if.(and.(boundp.
32e20 27 67 67 74 61 67 73 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 70 'ggtags-mode)............(memq.p
32e40 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e 64 20 27 28 61 75 74 6f 20 67 67 rojectile-tags-backend.'(auto.gg
32e60 74 61 67 73 29 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 tags))).......(progn.........(le
32e80 74 2a 20 28 28 67 67 74 61 67 73 2d 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 70 72 6f 6a 65 63 t*.((ggtags-project-root.(projec
32ea0 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 20 20 20 tile-acquire-root)).............
32ec0 20 20 20 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 67 67 74 61 67 73 2d 70 72 6f ...(default-directory.ggtags-pro
32ee0 6a 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 67 74 61 67 73 2d 65 6e ject-root))...........(ggtags-en
32f00 73 75 72 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 67 74 61 67 73 2d sure-project)...........(ggtags-
32f20 75 70 64 61 74 65 2d 74 61 67 73 20 74 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f update-tags.t))).....(let*.((pro
32f40 6a 65 63 74 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 ject-root.(projectile-acquire-ro
32f60 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 61 67 73 2d 65 78 63 6c 75 64 65 20 28 70 ot))............(tags-exclude.(p
32f80 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 65 78 63 6c 75 64 65 2d 70 61 74 74 65 72 6e 73 29 rojectile-tags-exclude-patterns)
32fa0 29 0a 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 72 79 20 )............(default-directory.
32fc0 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 28 74 61 67 73 2d 66 project-root)............(tags-f
32fe0 69 6c 65 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 ile.(expand-file-name.projectile
33000 2d 74 61 67 73 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f -tags-file-name))............(co
33020 6d 6d 61 6e 64 20 28 66 6f 72 6d 61 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 61 67 73 2d 63 6f mmand.(format.projectile-tags-co
33040 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 20 20 20 20 20 20 mmand...........................
33060 20 20 28 6f 72 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 74 61 67 73 2d 66 69 6c 65 20 27 ..(or.(file-remote-p.tags-file.'
33080 6c 6f 63 61 6c 6e 61 6d 65 29 20 74 61 67 73 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 localname).tags-file)...........
330a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 67 73 2d 65 78 63 6c 75 64 65 0a 20 ..................tags-exclude..
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 22 2e 22 29 29 ..........................."."))
330e0 0a 20 20 20 20 20 20 20 20 20 20 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 20 65 78 69 74 2d 63 6f ............shell-output.exit-co
33100 64 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 20 20 20 20 de).......(with-temp-buffer.....
33120 20 20 20 20 28 73 65 74 71 20 65 78 69 74 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(setq.exit-code.............
33140 20 20 28 70 72 6f 63 65 73 73 2d 66 69 6c 65 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 63 6f ..(process-file-shell-command.co
33160 6d 6d 61 6e 64 20 6e 69 6c 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 mmand.nil.(current-buffer)).....
33180 20 20 20 20 20 20 20 20 20 20 73 68 65 6c 6c 2d 6f 75 74 70 75 74 20 28 73 74 72 69 6e 67 2d 74 ..........shell-output.(string-t
331a0 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rim.............................
331c0 28 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 (buffer-substring.(point-min).(p
331e0 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 oint-max))))).......(unless.(zer
33200 6f 70 20 65 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 73 68 65 op.exit-code).........(error.she
33220 6c 6c 2d 6f 75 74 70 75 74 29 29 0a 20 20 20 20 20 20 28 76 69 73 69 74 2d 74 61 67 73 2d 74 61 ll-output)).......(visit-tags-ta
33240 62 6c 65 20 74 61 67 73 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 ble.tags-file).......(message."R
33260 65 67 65 6e 65 72 61 74 65 64 20 25 73 22 20 74 61 67 73 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 egenerated.%s".tags-file))))..(d
33280 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 69 73 69 74 2d 70 72 6f 6a 65 63 74 2d 74 61 efun.projectile-visit-project-ta
332a0 67 73 2d 74 61 62 6c 65 20 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 gs-table.()..."Visit.the.current
332c0 20 70 72 6f 6a 65 63 74 27 73 20 74 61 67 73 20 74 61 62 6c 65 2e 22 0a 20 20 28 77 68 65 6e 20 .project's.tags.table."...(when.
332e0 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 28 6c 65 74 20 (projectile-project-p).....(let.
33300 28 28 74 61 67 73 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 ((tags-file.(projectile-expand-r
33320 6f 6f 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 29 29 oot.projectile-tags-file-name)))
33340 0a 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 74 61 67 73 .......(when.(file-exists-p.tags
33360 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 -file).........(with-demoted-err
33380 6f 72 73 20 22 45 72 72 6f 72 20 6c 6f 61 64 69 6e 67 20 74 61 67 73 2d 66 69 6c 65 3a 20 25 73 ors."Error.loading.tags-file:.%s
333a0 22 0a 20 20 20 20 20 20 20 20 20 20 28 76 69 73 69 74 2d 74 61 67 73 2d 74 61 62 6c 65 20 74 61 "...........(visit-tags-table.ta
333c0 67 73 2d 66 69 6c 65 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 gs-file.t))))))..(defun.projecti
333e0 6c 65 2d 64 65 74 65 72 6d 69 6e 65 2d 66 69 6e 64 2d 74 61 67 2d 66 6e 20 28 29 0a 20 20 22 44 le-determine-find-tag-fn.()..."D
33400 65 74 65 72 6d 69 6e 65 20 77 68 69 63 68 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 75 73 65 20 66 etermine.which.function.to.use.f
33420 6f 72 20 61 20 63 61 6c 6c 20 74 6f 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 or.a.call.to.`projectile-find-ta
33440 67 27 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 28 28 65 71 20 70 72 6f g'."...(or....(cond.....((eq.pro
33460 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 6f 29 0a 20 20 20 20 jectile-tags-backend.'auto).....
33480 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 66 62 6f 75 6e 64 70 20 27 67 67 74 61 67 73 2d 66 .(cond.......((fboundp.'ggtags-f
334a0 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 2d 66 69 6e ind-tag-dwim)........'ggtags-fin
334c0 64 2d 74 61 67 2d 64 77 69 6d 29 0a 20 20 20 20 20 20 28 28 66 62 6f 75 6e 64 70 20 27 78 72 65 d-tag-dwim).......((fboundp.'xre
334e0 66 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 27 78 72 65 66 f-find-definitions)........'xref
33500 2d 66 69 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28 28 66 62 6f 75 6e -find-definitions).......((fboun
33520 64 70 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 6e 64 2d 74 61 67 29 0a 20 20 20 20 20 dp.'etags-select-find-tag)......
33540 20 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 6e 64 2d 74 61 67 29 29 29 0a 20 20 20 20 ..'etags-select-find-tag))).....
33560 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 78 72 ((eq.projectile-tags-backend.'xr
33580 65 66 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d 66 69 ef)......(when.(fboundp.'xref-fi
335a0 6e 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 27 78 72 65 66 2d 66 69 6e nd-definitions)........'xref-fin
335c0 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 29 29 0a 20 20 20 20 28 28 65 71 20 70 72 6f 6a 65 63 74 d-definitions)).....((eq.project
335e0 69 6c 65 2d 74 61 67 73 2d 62 61 63 6b 65 6e 64 20 27 67 67 74 61 67 73 29 0a 20 20 20 20 20 28 ile-tags-backend.'ggtags)......(
33600 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 27 67 67 74 61 67 73 2d 66 69 6e 64 2d 74 61 67 2d 64 when.(fboundp.'ggtags-find-tag-d
33620 77 69 6d 29 0a 20 20 20 20 20 20 20 27 67 67 74 61 67 73 2d 66 69 6e 64 2d 74 61 67 2d 64 77 69 wim)........'ggtags-find-tag-dwi
33640 6d 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 73 2d 62 61 63 m)).....((eq.projectile-tags-bac
33660 6b 65 6e 64 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 kend.'etags-select)......(when.(
33680 66 62 6f 75 6e 64 70 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 6e 64 2d 74 61 67 29 0a fboundp.'etags-select-find-tag).
336a0 20 20 20 20 20 20 20 27 65 74 61 67 73 2d 73 65 6c 65 63 74 2d 66 69 6e 64 2d 74 61 67 29 29 29 .......'etags-select-find-tag)))
336c0 0a 20 20 20 27 66 69 6e 64 2d 74 61 67 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a ....'find-tag))..;;;###autoload.
336e0 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 20 28 29 0a 20 20 (defun.projectile-find-tag.()...
33700 22 46 69 6e 64 20 74 61 67 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 "Find.tag.in.project."...(intera
33720 63 74 69 76 65 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 69 73 69 74 2d 70 72 6f 6a 65 ctive)...(projectile-visit-proje
33740 63 74 2d 74 61 67 73 2d 74 61 62 6c 65 29 0a 20 20 3b 3b 20 41 75 74 6f 2d 64 69 73 63 6f 76 65 ct-tags-table)...;;.Auto-discove
33760 72 20 74 68 65 20 75 73 65 72 27 73 20 70 72 65 66 65 72 65 6e 63 65 20 66 6f 72 20 74 61 67 73 r.the.user's.preference.for.tags
33780 0a 20 20 28 6c 65 74 20 28 28 66 69 6e 64 2d 74 61 67 2d 66 6e 20 28 70 72 6f 6a 65 63 74 69 6c ...(let.((find-tag-fn.(projectil
337a0 65 2d 64 65 74 65 72 6d 69 6e 65 2d 66 69 6e 64 2d 74 61 67 2d 66 6e 29 29 29 0a 20 20 20 20 28 e-determine-find-tag-fn))).....(
337c0 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 66 69 6e 64 2d 74 61 67 2d 66 6e 29 29 call-interactively.find-tag-fn))
337e0 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 70 72 6f 6a 65 63 74 69 6c 65 2d 77 69 74 68 2d 64 65 66 )..(defmacro.projectile-with-def
33800 61 75 6c 74 2d 64 69 72 20 28 64 69 72 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 6e 76 ault-dir.(dir.&rest.body)..."Inv
33820 6f 6b 65 20 69 6e 20 44 49 52 20 74 68 65 20 42 4f 44 59 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 oke.in.DIR.the.BODY."...(declare
33840 20 28 64 65 62 75 67 20 74 29 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 6c 65 74 20 28 .(debug.t).(indent.1))...`(let.(
33860 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 2c 64 69 72 29 29 0a 20 20 20 20 20 2c (default-directory.,dir))......,
33880 40 62 6f 64 79 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 @body))..;;;###autoload.(defun.p
338a0 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 20 28 29 rojectile-run-command-in-root.()
338c0 0a 20 20 22 49 6e 76 6f 6b 65 20 60 65 78 65 63 75 74 65 2d 65 78 74 65 6e 64 65 64 2d 63 6f 6d ..."Invoke.`execute-extended-com
338e0 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 20 20 mand'.in.the.project's.root."...
33900 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 65 2d 77 69 74 68 (interactive)...(projectile-with
33920 2d 64 65 66 61 75 6c 74 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 72 65 -default-dir.(projectile-acquire
33940 2d 72 6f 6f 74 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 23 -root).....(call-interactively.#
33960 27 65 78 65 63 75 74 65 2d 65 78 74 65 6e 64 65 64 2d 63 6f 6d 6d 61 6e 64 29 29 29 0a 0a 3b 3b 'execute-extended-command)))..;;
33980 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
339a0 75 6e 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 un-shell-command-in-root.(comman
339c0 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-
339e0 62 75 66 66 65 72 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 buffer)..."Invoke.`shell-command
33a00 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 20 20 28 69 6e 74 '.in.the.project's.root."...(int
33a20 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 2d 63 6f 6d 6d 61 eractive.(list.(read-shell-comma
33a40 6e 64 20 22 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 3a 20 22 29 29 29 0a 20 20 28 70 72 6f 6a 65 nd."Shell.command:.")))...(proje
33a60 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 63 74 69 ctile-with-default-dir.(projecti
33a80 6c 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d le-acquire-root).....(shell-comm
33aa0 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 20 65 72 72 6f 72 2d and.command.output-buffer.error-
33ac0 62 75 66 66 65 72 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 buffer)))..;;;###autoload.(defun
33ae0 20 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 6d 6d .projectile-run-async-shell-comm
33b00 61 6e 64 2d 69 6e 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 and-in-root.(command.&optional.o
33b20 75 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 0a 20 20 22 49 6e utput-buffer.error-buffer)..."In
33b40 76 6f 6b 65 20 60 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 27 20 69 6e 20 74 68 voke.`async-shell-command'.in.th
33b60 65 20 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 e.project's.root."...(interactiv
33b80 65 20 28 6c 69 73 74 20 28 72 65 61 64 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 22 41 73 79 e.(list.(read-shell-command."Asy
33ba0 6e 63 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 3a 20 22 29 29 29 0a 20 20 28 70 72 6f 6a 65 63 nc.shell.command:.")))...(projec
33bc0 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 63 74 69 6c tile-with-default-dir.(projectil
33be0 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 0a 20 20 20 20 28 61 73 79 6e 63 2d 73 68 65 6c 6c e-acquire-root).....(async-shell
33c00 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 20 65 -command.command.output-buffer.e
33c20 72 72 6f 72 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 rror-buffer)))..;;;###autoload.(
33c40 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 67 64 62 20 28 29 0a 20 20 22 49 defun.projectile-run-gdb.()..."I
33c60 6e 76 6f 6b 65 20 60 67 64 62 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f 6f nvoke.`gdb'.in.the.project's.roo
33c80 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
33ca0 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 63 74 69 6c 65 2d 61 e-with-default-dir.(projectile-a
33cc0 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 74 65 72 61 63 74 69 cquire-root).....(call-interacti
33ce0 76 65 6c 79 20 27 67 64 62 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 vely.'gdb)))..;;;###autoload.(de
33d00 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 20 28 26 6f 70 74 69 6f fun.projectile-run-shell.(&optio
33d20 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 73 68 65 6c 6c 27 20 69 6e 20 74 68 nal.arg)..."Invoke.`shell'.in.th
33d40 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 20 74 6f 20 74 68 65 e.project's.root...Switch.to.the
33d60 20 70 72 6f 6a 65 63 74 20 73 70 65 63 69 66 69 63 20 73 68 65 6c 6c 20 62 75 66 66 65 72 20 69 .project.specific.shell.buffer.i
33d80 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 61 20 70 72 65 66 f.it.already.exists...Use.a.pref
33da0 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 65 20 63 72 65 61 ix.argument.ARG.to.indicate.crea
33dc0 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 65 61 64 2e 22 0a tion.of.a.new.process.instead.".
33de0 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
33e00 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 29 ject.(projectile-acquire-root)))
33e20 0a 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 6c 74 2d 64 69 .....(projectile-with-default-di
33e40 72 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 28 73 68 65 6c 6c 20 28 70 72 6f 6a 65 63 74 69 r.project.......(shell.(projecti
33e60 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 73 68 65 6c 6c 22 le-generate-process-name."shell"
33e80 20 61 72 67 20 70 72 6f 6a 65 63 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 .arg.project)))))..;;;###autoloa
33ea0 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 65 73 68 65 6c 6c 20 28 d.(defun.projectile-run-eshell.(
33ec0 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 65 73 68 65 6c 6c &optional.arg)..."Invoke.`eshell
33ee0 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
33f00 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 65 73 68 65 6c 6c 20 .to.the.project.specific.eshell.
33f20 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 55 73 buffer.if.it.already.exists...Us
33f40 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 69 63 e.a.prefix.argument.ARG.to.indic
33f60 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 69 6e ate.creation.of.a.new.process.in
33f80 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 28 6c stead."...(interactive."P")...(l
33fa0 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 71 75 69 72 65 et.((project.(projectile-acquire
33fc0 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 74 68 2d 64 65 -root))).....(projectile-with-de
33fe0 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 6c 65 74 20 28 28 65 fault-dir.project.......(let.((e
34000 73 68 65 6c 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 shell-buffer-name.(projectile-ge
34020 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 65 73 68 65 6c 6c 22 20 61 72 67 nerate-process-name."eshell".arg
34040 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 73 68 65 6c 6c 29 29 29 29 29 .project))).........(eshell)))))
34060 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
34080 6c 65 2d 72 75 6e 2d 69 65 6c 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 49 le-run-ielm.(&optional.arg)..."I
340a0 6e 76 6f 6b 65 20 60 69 65 6c 6d 27 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 27 73 20 72 6f nvoke.`ielm'.in.the.project's.ro
340c0 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 63 69 ot...Switch.to.the.project.speci
340e0 66 69 63 20 69 65 6c 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 fic.ielm.buffer.if.it.already.ex
34100 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 20 41 52 47 ists...Use.a.prefix.argument.ARG
34120 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 65 77 20 70 .to.indicate.creation.of.a.new.p
34140 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 69 76 65 20 rocess.instead."...(interactive.
34160 22 50 22 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 63 74 69 "P")...(let*.((project.(projecti
34180 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 69 65 6c 6d le-acquire-root))..........(ielm
341a0 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 67 65 6e 65 72 61 74 -buffer-name.(projectile-generat
341c0 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 69 65 6c 6d 22 20 61 72 67 20 70 72 6f 6a 65 63 e-process-name."ielm".arg.projec
341e0 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 69 65 6c 6d 2d 62 75 t))).....(if.(get-buffer.ielm-bu
34200 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 ffer-name).........(switch-to-bu
34220 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 28 70 72 ffer.ielm-buffer-name).......(pr
34240 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 72 6f 6a 65 63 ojectile-with-default-dir.projec
34260 74 0a 20 20 20 20 20 20 20 20 28 69 65 6c 6d 29 29 0a 20 20 20 20 20 20 3b 3b 20 69 65 6c 6d 27 t.........(ielm)).......;;.ielm'
34280 73 20 62 75 66 66 65 72 20 6e 61 6d 65 20 69 73 20 68 61 72 64 63 6f 64 65 64 2c 20 73 6f 20 77 s.buffer.name.is.hardcoded,.so.w
342a0 65 20 68 61 76 65 20 74 6f 20 72 65 6e 61 6d 65 20 69 74 20 61 66 74 65 72 20 63 72 65 61 74 69 e.have.to.rename.it.after.creati
342c0 6f 6e 0a 20 20 20 20 20 20 28 72 65 6e 61 6d 65 2d 62 75 66 66 65 72 20 69 65 6c 6d 2d 62 75 66 on.......(rename-buffer.ielm-buf
342e0 66 65 72 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 fer-name))))..;;;###autoload.(de
34300 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 74 65 72 6d 20 28 26 6f 70 74 69 6f 6e fun.projectile-run-term.(&option
34320 61 6c 20 61 72 67 29 0a 20 20 22 49 6e 76 6f 6b 65 20 60 74 65 72 6d 27 20 69 6e 20 74 68 65 20 al.arg)..."Invoke.`term'.in.the.
34340 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 70 project's.root...Switch.to.the.p
34360 72 6f 6a 65 63 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 roject.specific.term.buffer.if.i
34380 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 20 t.already.exists...Use.a.prefix.
343a0 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 6f argument.ARG.to.indicate.creatio
343c0 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 28 n.of.a.new.process.instead."...(
343e0 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 65 interactive."P")...(let*.((proje
34400 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 20 ct.(projectile-acquire-root))...
34420 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d .......(buffer-name.(projectile-
34440 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 74 65 72 6d 22 20 61 72 67 generate-process-name."term".arg
34460 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 70 72 6f .project))..........(default-pro
34480 67 72 61 6d 20 28 6f 72 20 65 78 70 6c 69 63 69 74 2d 73 68 65 6c 6c 2d 66 69 6c 65 2d 6e 61 6d gram.(or.explicit-shell-file-nam
344a0 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...............................
344c0 28 67 65 74 65 6e 76 20 22 45 53 48 45 4c 4c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (getenv."ESHELL")...............
344e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 65 6e 76 20 22 53 48 45 4c 4c 22 29 ................(getenv."SHELL")
34500 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 22 ..............................."
34520 2f 62 69 6e 2f 73 68 22 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d 62 75 66 /bin/sh"))).....(unless.(get-buf
34540 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 fer.buffer-name).......(require.
34560 27 74 65 72 6d 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 61 6d 20 28 72 65 61 'term).......(let.((program.(rea
34580 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 52 75 6e 20 70 72 6f 67 72 61 6d 3a 20 d-from-minibuffer."Run.program:.
345a0 22 20 64 65 66 61 75 6c 74 2d 70 72 6f 67 72 61 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 ".default-program))).........(pr
345c0 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 72 6f 6a 65 63 ojectile-with-default-dir.projec
345e0 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 20 28 74 65 72 6d 2d 61 6e t...........(set-buffer.(term-an
34600 73 69 2d 6d 61 6b 65 2d 74 65 72 6d 20 62 75 66 66 65 72 2d 6e 61 6d 65 20 70 72 6f 67 72 61 6d si-make-term.buffer-name.program
34620 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 65 72 6d 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 ))...........(term-mode)........
34640 20 20 20 28 74 65 72 6d 2d 63 68 61 72 2d 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 28 73 77 69 74 ...(term-char-mode)))).....(swit
34660 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 ch-to-buffer.buffer-name)))..(de
34680 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 76 74 65 72 6d 20 28 26 6f 70 74 69 6f 6e 61 6c fun.projectile--vterm.(&optional
346a0 20 6e 65 77 2d 70 72 6f 63 65 73 73 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 22 49 6e .new-process.other-window)..."In
346c0 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 63 74 27 73 20 72 6f voke.`vterm'.in.the.project's.ro
346e0 6f 74 2e 0a 0a 55 73 65 20 61 72 67 75 6d 65 6e 74 20 4e 45 57 2d 50 52 4f 43 45 53 53 20 74 6f ot...Use.argument.NEW-PROCESS.to
34700 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 65 77 20 70 72 6f 63 .indicate.creation.of.a.new.proc
34720 65 73 73 20 69 6e 73 74 65 61 64 2e 0a 55 73 65 20 61 72 67 75 6d 65 6e 74 20 4f 54 48 45 52 2d ess.instead..Use.argument.OTHER-
34740 57 49 4e 44 4f 57 20 74 6f 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 77 68 65 74 68 65 72 20 74 68 WINDOW.to.indentation.whether.th
34760 65 20 62 75 66 66 65 72 20 73 68 6f 75 6c 64 0a 62 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 e.buffer.should.be.displayed.in.
34780 61 20 64 69 66 66 65 72 65 6e 74 20 77 69 6e 64 6f 77 2e 0a 0a 53 77 69 74 63 68 20 74 6f 20 74 a.different.window...Switch.to.t
347a0 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 66 66 65 72 20 he.project.specific.term.buffer.
347c0 69 66 20 69 74 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 if.it.already.exists."...(let*.(
347e0 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 69 72 65 2d 72 6f 6f (project.(projectile-acquire-roo
34800 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 t))..........(buffer.(projectile
34820 2d 67 65 6e 65 72 61 74 65 2d 70 72 6f 63 65 73 73 2d 6e 61 6d 65 20 22 76 74 65 72 6d 22 20 6e -generate-process-name."vterm".n
34840 65 77 2d 70 72 6f 63 65 73 73 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 ew-process.project))).....(unles
34860 73 20 28 72 65 71 75 69 72 65 20 27 76 74 65 72 6d 20 6e 69 6c 20 27 6e 6f 65 72 72 6f 72 29 0a s.(require.'vterm.nil.'noerror).
34880 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 63 6b 61 67 65 20 27 76 74 65 72 6d 27 20 69 73 ......(error."Package.'vterm'.is
348a0 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 22 29 29 0a 20 20 20 20 28 69 66 20 28 62 75 66 66 65 .not.available")).....(if.(buffe
348c0 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 r-live-p.(get-buffer.buffer))...
348e0 20 20 20 20 20 20 28 69 66 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 ......(if.other-window..........
34900 20 20 20 28 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 6f ...(switch-to-buffer-other-windo
34920 77 20 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 w.buffer)...........(switch-to-b
34940 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 uffer.buffer)).......(projectile
34960 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 20 20 20 20 20 -with-default-dir.project.......
34980 20 20 28 69 66 20 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 ..(if.other-window.............(
349a0 76 74 65 72 6d 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 vterm-other-window.buffer)......
349c0 20 20 20 20 20 28 76 74 65 72 6d 20 62 75 66 66 65 72 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 .....(vterm.buffer))))))..;;;###
349e0 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 76 autoload.(defun.projectile-run-v
34a00 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.`
34a20 76 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 vterm'.in.the.project's.root...S
34a40 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 74 65 witch.to.the.project.specific.te
34a60 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 73 2e 0a rm.buffer.if.it.already.exists..
34a80 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 69 6e .Use.a.prefix.argument.ARG.to.in
34aa0 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 73 73 dicate.creation.of.a.new.process
34ac0 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 0a 20 .instead."...(interactive."P")..
34ae0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 76 74 65 72 6d 20 61 72 67 29 29 0a 0a 3b 3b 3b 23 23 .(projectile--vterm.arg))..;;;##
34b00 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-
34b20 76 74 65 72 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 61 72 vterm-other-window.(&optional.ar
34b40 67 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 g)..."Invoke.`vterm'.in.the.proj
34b60 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 70 72 6f 6a 65 ect's.root...Switch.to.the.proje
34b80 63 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 ct.specific.term.buffer.if.it.al
34ba0 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 20 61 72 67 75 ready.exists...Use.a.prefix.argu
34bc0 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 6f 6e 20 6f 66 ment.ARG.to.indicate.creation.of
34be0 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 28 69 6e 74 65 .a.new.process.instead."...(inte
34c00 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 2d 2d 76 74 65 72 ractive."P")...(projectile--vter
34c20 6d 20 61 72 67 20 27 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 m.arg.'other-window))..(defun.pr
34c40 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 69 6e 2d 70 72 6f 6a 65 63 74 2d 64 69 72 65 63 74 ojectile-files-in-project-direct
34c60 6f 72 79 20 28 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 ory.(directory)..."Return.a.list
34c80 20 6f 66 20 66 69 6c 65 73 20 69 6e 20 44 49 52 45 43 54 4f 52 59 2e 22 0a 20 20 28 6c 65 74 2a .of.files.in.DIRECTORY."...(let*
34ca0 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 69 72 65 2d 72 .((project.(projectile-acquire-r
34cc0 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 69 72 20 28 66 69 6c 65 2d 72 65 6c 61 74 69 oot))..........(dir.(file-relati
34ce0 76 65 2d 6e 61 6d 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 64 69 72 65 63 74 ve-name.(expand-file-name.direct
34d00 6f 72 79 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 ory)............................
34d20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 .......project))).....(cl-remove
34d40 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 29 20 28 73 74 72 69 6e 67 -if-not......(lambda.(f).(string
34d60 2d 70 72 65 66 69 78 2d 70 20 64 69 72 20 66 29 29 0a 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 -prefix-p.dir.f))......(projecti
34d80 6c 65 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 29 29 29 29 0a 0a 28 64 le-project-files.project))))..(d
34da0 65 66 75 6e 20 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 28 efun.projectile-files-from-cmd.(
34dc0 63 6d 64 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 55 73 65 20 61 20 67 72 65 70 2d 6c 69 6b cmd.directory)..."Use.a.grep-lik
34de0 65 20 43 4d 44 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 20 66 69 6c 65 73 20 77 69 74 68 69 6e e.CMD.to.search.for.files.within
34e00 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 43 4d 44 20 73 68 6f 75 6c 64 20 69 6e 63 6c 75 64 65 20 .DIRECTORY...CMD.should.include.
34e20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 73 65 61 72 63 68 20 70 61 72 61 6d 73 20 61 6e 64 20 the.necessary.search.params.and.
34e40 73 68 6f 75 6c 64 20 6f 75 74 70 75 74 0a 65 71 75 69 76 61 6c 65 6e 74 6c 79 20 74 6f 20 67 72 should.output.equivalently.to.gr
34e60 65 70 20 2d 48 6c 49 20 28 6f 6e 6c 79 20 75 6e 69 71 75 65 20 6d 61 74 63 68 69 6e 67 20 66 69 ep.-HlI.(only.unique.matching.fi
34e80 6c 65 6e 61 6d 65 73 29 2e 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 65 78 70 61 lenames)..Returns.a.list.of.expa
34ea0 6e 64 65 64 20 66 69 6c 65 6e 61 6d 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c nded.filenames."...(let.((defaul
34ec0 74 2d 64 69 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 6d 61 70 t-directory.directory)).....(map
34ee0 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 car.(lambda.(str)...............
34f00 28 63 6f 6e 63 61 74 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 (concat.directory...............
34f20 20 20 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 2e 2f ........(if.(string-prefix-p."./
34f40 22 20 73 74 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 20 ".str)..........................
34f60 20 28 73 75 62 73 74 72 69 6e 67 20 73 74 72 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(substring.str.2)..............
34f80 20 20 20 20 20 20 20 20 20 20 20 73 74 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ...........str))).............(s
34fa0 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 plit-string..............(string
34fc0 2d 74 72 69 6d 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 -trim.(shell-command-to-string.c
34fe0 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 2b 22 0a 20 20 20 20 20 20 20 20 md)).............."\n+".........
35000 20 20 20 20 20 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 .....t))))..(defvar.projectile-f
35020 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 0a 20 20 27 28 28 72 iles-with-string-commands...'((r
35040 67 20 2e 20 22 72 67 20 2d 6c 46 20 2d 2d 6e 6f 2d 68 65 61 64 69 6e 67 20 2d 2d 63 6f 6c 6f 72 g..."rg.-lF.--no-heading.--color
35060 20 6e 65 76 65 72 20 22 29 0a 20 20 20 20 28 61 67 20 2e 20 22 61 67 20 2d 2d 6c 69 74 65 72 61 .never.").....(ag..."ag.--litera
35080 6c 20 2d 2d 6e 6f 63 6f 6c 6f 72 20 2d 2d 6e 6f 68 65 61 64 69 6e 67 20 2d 6c 20 22 29 0a 20 20 l.--nocolor.--noheading.-l.")...
350a0 20 20 28 61 63 6b 20 2e 20 22 61 63 6b 20 2d 2d 6c 69 74 65 72 61 6c 20 2d 2d 6e 6f 63 6f 6c 6f ..(ack..."ack.--literal.--nocolo
350c0 72 20 2d 6c 20 22 29 0a 20 20 20 20 28 67 69 74 20 2e 20 22 67 69 74 20 67 72 65 70 20 2d 48 6c r.-l.").....(git..."git.grep.-Hl
350e0 49 20 22 29 0a 20 20 20 20 3b 3b 20 2d 72 3a 20 72 65 63 75 72 73 69 76 65 0a 20 20 20 20 3b 3b I.").....;;.-r:.recursive.....;;
35100 20 2d 48 3a 20 73 68 6f 77 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72 20 65 61 63 68 20 6d 61 74 63 .-H:.show.filename.for.each.matc
35120 68 0a 20 20 20 20 3b 3b 20 2d 6c 3a 20 73 68 6f 77 20 6f 6e 6c 79 20 66 69 6c 65 20 6e 61 6d 65 h.....;;.-l:.show.only.file.name
35140 73 20 77 69 74 68 20 6d 61 74 63 68 65 73 0a 20 20 20 20 3b 3b 20 2d 49 3a 20 6e 6f 20 62 69 6e s.with.matches.....;;.-I:.no.bin
35160 61 72 79 20 66 69 6c 65 73 0a 20 20 20 20 28 67 72 65 70 20 2e 20 22 67 72 65 70 20 2d 72 48 6c ary.files.....(grep..."grep.-rHl
35180 49 20 25 73 20 2e 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 72 I.%s..")))..(defun.projectile--r
351a0 67 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 72 6d g-construct-command.(search-term
351c0 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 75 63 .&optional.file-ext)..."Construc
351e0 74 20 52 67 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 79 20 74 t.Rg.option.to.search.files.by.t
35200 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 20 28 73 he.extension.FILE-EXT."...(if.(s
35220 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 74 20 28 tringp.file-ext).......(concat.(
35240 63 64 72 20 28 61 73 73 6f 63 20 27 72 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d cdr.(assoc.'rg.projectile-files-
35260 77 69 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 with-string-commands))..........
35280 20 20 20 20 20 22 2d 67 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 2d 65 ....."-g.'"...............file-e
352a0 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 27 20 22 0a 20 20 20 20 20 20 20 20 20 20 xt..............."'."...........
352c0 20 20 20 20 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 ....search-term).....(concat.(cd
352e0 72 20 28 61 73 73 6f 63 20 27 72 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 r.(assoc.'rg.projectile-files-wi
35300 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))............
35320 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
35340 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 28 73 65 61 72 63 68 le--ag-construct-command.(search
35360 2d 74 65 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 -term.&optional.file-ext)..."Con
35380 73 74 72 75 63 74 20 41 67 20 6f 70 74 69 6f 6e 20 74 6f 20 73 65 61 72 63 68 20 66 69 6c 65 73 struct.Ag.option.to.search.files
353a0 20 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 .by.the.extension.FILE-EXT."...(
353c0 69 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 if.(stringp.file-ext).......(con
353e0 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 61 67 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 cat.(cdr.(assoc.'ag.projectile-f
35400 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 20 20 20 20 iles-with-string-commands)).....
35420 20 20 20 20 20 20 20 20 20 20 22 2d 47 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 .........."-G."...............(r
35440 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 eplace-regexp-in-string.........
35460 20 20 20 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 ......."\\*".""................(
35480 72 65 70 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 replace-regexp-in-string."\\."."
354a0 5c 5c 5c 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 \\\\.".file-ext))...............
354c0 22 24 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 "$."...............search-term).
354e0 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 20 70 72 6f 6a ....(concat.(cdr.(assoc.'ag.proj
35500 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
35520 73 29 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 s)).............search-term)))..
35540 28 64 65 66 75 6e 20 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 (defun.projectile--ack-construct
35560 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 20 -command.(search-term.&optional.
35580 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 41 63 6b 20 6f 70 74 69 6f file-ext)..."Construct.Ack.optio
355a0 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 73 69 n.to.search.files.by.the.extensi
355c0 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 69 6c on.FILE-EXT."...(if.(stringp.fil
355e0 65 2d 65 78 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 61 63 6b 20 2d 67 20 27 22 0a e-ext).......(concat."ack.-g.'".
35600 20 20 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 ..............(replace-regexp-in
35620 2d 73 74 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 -string................"\\*"."".
35640 20 20 20 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 ...............(replace-regexp-i
35660 6e 2d 73 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 n-string."\\."."\\\\.".file-ext)
35680 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 24 27 20 7c 20 22 0a 20 20 20 20 20 20 20 20 )..............."$'.|.".........
356a0 20 20 20 20 20 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 6c ......(cdr.(assoc.'ack.projectil
356c0 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 20 e-files-with-string-commands))..
356e0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 78 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............."-x."..............
35700 20 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 .search-term).....(concat.(cdr.(
35720 61 73 73 6f 63 20 27 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 assoc.'ack.projectile-files-with
35740 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 20 73 -string-commands)).............s
35760 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 6c 65 earch-term)))..(defun.projectile
35780 2d 2d 67 69 74 2d 67 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 --git-grep-construct-command.(se
357a0 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 29 0a 20 20 arch-term.&optional.file-ext)...
357c0 22 43 6f 6e 73 74 72 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 "Construct.Grep.option.to.search
357e0 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 58 54 .files.by.the.extension.FILE-EXT
35800 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 20 20 ."...(if.(stringp.file-ext).....
35820 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 67 69 74 20 70 72 6f 6a 65 ..(concat.(cdr.(assoc.'git.proje
35840 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 73 ctile-files-with-string-commands
35860 29 29 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 0a 20 20 20 ))...............search-term....
35880 20 20 20 20 20 20 20 20 20 20 20 22 20 20 2d 2d 20 27 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........."..--.'".............
358a0 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 22 29 0a 20 20 ..file-ext..............."'")...
358c0 20 20 28 63 6f 6e 63 61 74 20 28 63 64 72 20 28 61 73 73 6f 63 20 27 67 69 74 20 70 72 6f 6a 65 ..(concat.(cdr.(assoc.'git.proje
358e0 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 73 ctile-files-with-string-commands
35900 29 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 )).............search-term)))..(
35920 64 65 66 75 6e 20 70 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 defun.projectile--grep-construct
35940 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 20 -command.(search-term.&optional.
35960 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 69 file-ext)..."Construct.Grep.opti
35980 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 73 on.to.search.files.by.the.extens
359a0 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 69 ion.FILE-EXT."...(if.(stringp.fi
359c0 6c 65 2d 65 78 74 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 6f 72 6d 61 74 20 28 63 le-ext).......(concat.(format.(c
359e0 64 72 20 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 dr.(assoc.'grep.projectile-files
35a00 2d 77 69 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 -with-string-commands)).........
35a20 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 20 ..............search-term)......
35a40 20 20 20 20 20 20 20 20 20 22 20 2d 2d 69 6e 63 6c 75 64 65 20 27 22 0a 20 20 20 20 20 20 20 20 .........".--include.'".........
35a60 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 22 ......file-ext..............."'"
35a80 29 0a 20 20 20 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 ).....(format.(cdr.(assoc.'grep.
35aa0 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 6d projectile-files-with-string-com
35ac0 6d 61 6e 64 73 29 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 mands)).............search-term)
35ae0 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 77 69 74 68 ))..(defun.projectile-files-with
35b00 2d 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 26 6f 70 74 69 6f -string.(string.directory.&optio
35b20 6e 61 6c 20 66 69 6c 65 2d 65 78 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f nal.file-ext)..."Return.a.list.o
35b40 66 20 61 6c 6c 20 66 69 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 53 54 52 49 4e 47 20 69 6e f.all.files.containing.STRING.in
35b60 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 54 72 69 65 73 20 74 6f 20 75 73 65 20 72 67 2c 20 61 67 .DIRECTORY...Tries.to.use.rg,.ag
35b80 2c 20 61 63 6b 2c 20 67 69 74 2d 67 72 65 70 2c 20 61 6e 64 20 67 72 65 70 20 69 6e 20 74 68 61 ,.ack,.git-grep,.and.grep.in.tha
35ba0 74 20 6f 72 64 65 72 2e 20 20 49 66 20 74 68 6f 73 65 0a 61 72 65 20 69 6d 70 6f 73 73 69 62 6c t.order...If.those.are.impossibl
35bc0 65 20 28 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 6f 6e 20 57 69 6e 64 6f 77 73 29 2c 20 72 65 74 e.(for.instance.on.Windows),.ret
35be0 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 urns.a.list.of.all.files.in.the.
35c00 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 69 78 project."...(if.(projectile-unix
35c20 79 2d 73 79 73 74 65 6d 2d 70 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 65 61 72 63 68 y-system-p).......(let*.((search
35c40 2d 74 65 72 6d 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 73 74 72 69 -term.(shell-quote-argument.stri
35c60 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6d 64 20 28 63 6f 6e 64 20 28 28 65 ng))..............(cmd.(cond.((e
35c80 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 72 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 xecutable-find."rg")............
35ca0 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 72 67 2d 63 6f ..............(projectile--rg-co
35cc0 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 69 6c 65 nstruct-command.search-term.file
35ce0 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 20 20 28 -ext)).........................(
35d00 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 61 67 22 29 0a 20 20 20 20 20 20 20 20 20 (executable-find."ag")..........
35d20 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 61 67 2d ................(projectile--ag-
35d40 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 69 construct-command.search-term.fi
35d60 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 20 le-ext))........................
35d80 20 28 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 61 63 6b 22 29 0a 20 20 20 20 20 20 .((executable-find."ack").......
35da0 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 2d ...................(projectile--
35dc0 61 63 6b 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 ack-construct-command.search-ter
35de0 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 20 20 20 20 20 20 20 m.file-ext))....................
35e00 20 20 20 20 20 28 28 61 6e 64 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 67 69 74 .....((and.(executable-find."git
35e20 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 ")..............................
35e40 20 28 65 71 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 29 20 27 67 .(eq.(projectile-project-vcs).'g
35e60 69 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 20 20 28 70 it))..........................(p
35e80 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 74 2d 63 6f rojectile--git-grep-construct-co
35ea0 6d 6d 61 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 mmand.search-term.file-ext))....
35ec0 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 20 20 20 .....................(t.........
35ee0 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 67 72 .................(projectile--gr
35f00 65 70 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 ep-construct-command.search-term
35f20 20 66 69 6c 65 2d 65 78 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 .file-ext))))).........(projecti
35f40 6c 65 2d 66 69 6c 65 73 2d 66 72 6f 6d 2d 63 6d 64 20 63 6d 64 20 64 69 72 65 63 74 6f 72 79 29 le-files-from-cmd.cmd.directory)
35f60 29 0a 20 20 20 20 3b 3b 20 77 65 20 68 61 76 65 20 74 6f 20 72 65 6a 65 63 74 20 64 69 72 65 63 ).....;;.we.have.to.reject.direc
35f80 74 6f 72 69 65 73 20 61 73 20 61 20 77 6f 72 6b 61 72 6f 75 6e 64 20 74 6f 20 77 6f 72 6b 20 77 tories.as.a.workaround.to.work.w
35fa0 69 74 68 20 67 69 74 20 73 75 62 6d 6f 64 75 6c 65 73 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 ith.git.submodules.....(cl-remov
35fc0 65 2d 69 66 0a 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 e-if......#'file-directory-p....
35fe0 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 78 70 61 ..(mapcar.#'(lambda.(file).(expa
36000 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 0a 20 20 nd-file-name.file.directory))...
36020 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 65 73 ...........(projectile-dir-files
36040 20 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a .directory)))))..;;;###autoload.
36060 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 20 28 26 6f 70 74 69 (defun.projectile-replace.(&opti
36080 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 52 65 70 6c 61 63 65 20 6c 69 74 65 72 61 6c 20 73 74 72 onal.arg)..."Replace.literal.str
360a0 69 6e 67 20 69 6e 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 6e 6f 6e 2d 72 65 67 65 78 70 20 ing.in.project.using.non-regexp.
360c0 60 74 61 67 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 27 2e 0a 0a 57 69 74 68 20 61 20 70 72 `tags-query-replace'...With.a.pr
360e0 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 70 72 6f 6d 70 74 73 20 79 6f 75 20 66 6f efix.argument.ARG.prompts.you.fo
36100 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 66 69 6c 65 20 6e 61 6d 65 20 70 61 74 74 r.a.directory.and.file.name.patt
36120 65 72 6e 73 0a 6f 6e 20 77 68 69 63 68 20 74 6f 20 72 75 6e 20 74 68 65 20 72 65 70 6c 61 63 65 erns.on.which.to.run.the.replace
36140 6d 65 6e 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 6c 65 ment."...(interactive."P")...(le
36160 74 2a 20 28 28 64 69 72 65 63 74 6f 72 79 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 t*.((directory.(if.arg..........
36180 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
361a0 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 20 20 20 ectory..........................
361c0 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 52 65 70 6c 61 63 65 20 69 6e (read-directory-name."Replace.in
361e0 20 64 69 72 65 63 74 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 .directory:.")).................
36200 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 29 29 ......(projectile-acquire-root))
36220 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 74 20 28 69 66 20 61 72 67 0a 20 20 20 )..........(file-ext.(if.arg....
36240 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 62 6f 75 6e 64 70 ....................(if.(fboundp
36260 20 23 27 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 .#'helm-grep-get-file-extensions
36280 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 28 63 61 )............................(ca
362a0 72 20 28 68 65 6c 6d 2d 67 72 65 70 2d 67 65 74 2d 66 69 6c 65 2d 65 78 74 65 6e 73 69 6f 6e 73 r.(helm-grep-get-file-extensions
362c0 20 28 6c 69 73 74 20 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(list.directory))).............
362e0 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 0a 20 20 20 20 20 20 .............(read-string.......
36300 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-
36320 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 20 20 20 20 prepend-project-name............
36340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 57 69 74 68 20 66 69 6c 65 20 65 78 74 65 6e ................"With.file.exten
36360 73 69 6f 6e 20 28 65 6d 70 74 79 20 73 74 72 69 6e 67 20 6d 65 61 6e 73 20 61 6c 6c 20 66 69 6c sion.(empty.string.means.all.fil
36380 65 73 29 3a 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e es):.")))......................n
363a0 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 6c 64 2d 74 65 78 74 20 28 72 65 61 64 2d 73 74 il))..........(old-text.(read-st
363c0 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 28 70 72 6f 6a 65 63 ring.....................(projec
363e0 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 22 52 65 70 6c 61 tile-prepend-project-name."Repla
36400 63 65 3a 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 ce:.").....................(proj
36420 65 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 ectile-symbol-or-selection-at-po
36440 69 6e 74 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 int)))..........(new-text.(read-
36460 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 28 70 72 6f 6a string.....................(proj
36480 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 0a 20 20 20 20 ectile-prepend-project-name.....
364a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6c 61 63 .................(format."Replac
364c0 65 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 20 20 20 20 e.%s.with:.".old-text)))).......
364e0 20 20 20 28 66 69 6c 65 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 ...(files.(projectile-files-with
36500 2d 73 74 72 69 6e 67 20 6f 6c 64 2d 74 65 78 74 20 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 2d -string.old-text.directory.file-
36520 65 78 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 23 27 66 69 6c 65 6c 6f ext))).....(if.(fboundp.#'filelo
36540 6f 70 2d 63 6f 6e 74 69 6e 75 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 32 37 op-continue).........;;.Emacs.27
36560 2b 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 66 69 6c 65 6c 6f 6f 70 2d 69 6e 69 74 69 +.........(progn.(fileloop-initi
36580 61 6c 69 7a 65 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 alize-replace.old-text.new-text.
365a0 66 69 6c 65 73 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 files.'default)................(
365c0 66 69 6c 65 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 45 6d 61 fileloop-continue)).......;;.Ema
365e0 63 73 20 32 35 20 61 6e 64 20 32 36 0a 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 3b 3b 20 41 cs.25.and.26.......;;.......;;.A
36600 64 61 70 74 65 64 20 66 72 6f 6d 20 60 74 61 67 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 27 dapted.from.`tags-query-replace'
36620 20 66 6f 72 20 6c 69 74 65 72 61 6c 20 73 74 72 69 6e 67 73 20 28 6e 6f 74 20 72 65 67 65 78 70 .for.literal.strings.(not.regexp
36640 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 ).......(with-no-warnings.......
36660 20 20 28 73 65 74 71 20 74 61 67 73 2d 6c 6f 6f 70 2d 73 63 61 6e 0a 20 20 20 20 20 20 20 20 20 ..(setq.tags-loop-scan..........
36680 20 20 20 20 20 60 28 6c 65 74 20 2c 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 6f 6c 64 2d 74 .....`(let.,(unless.(equal.old-t
366a0 65 78 74 20 28 64 6f 77 6e 63 61 73 65 20 6f 6c 64 2d 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 ext.(downcase.old-text))........
366c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 ................'((case-fold-sea
366e0 72 63 68 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 rch.nil)))..................(if.
36700 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 27 2c 6f 6c 64 2d 74 65 78 74 20 6e 69 6c 20 74 (search-forward.',old-text.nil.t
36720 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 65 6e 20 77 )......................;;.When.w
36740 65 20 66 69 6e 64 20 61 20 6d 61 74 63 68 2c 20 6d 6f 76 65 20 62 61 63 6b 20 74 6f 0a 20 20 20 e.find.a.match,.move.back.to....
36760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 62 65 67 69 6e 6e 69 ..................;;.the.beginni
36780 6e 67 20 6f 66 20 69 74 20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.of.it.so.....................
367a0 20 3b 3b 20 70 65 72 66 6f 72 6d 2d 72 65 70 6c 61 63 65 20 77 69 6c 6c 20 73 65 65 20 69 74 2e .;;.perform-replace.will.see.it.
367c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ......................(goto-char
367e0 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 20 .(match-beginning.0)))))........
36800 20 28 73 65 74 71 20 74 61 67 73 2d 6c 6f 6f 70 2d 6f 70 65 72 61 74 65 0a 20 20 20 20 20 20 20 .(setq.tags-loop-operate........
36820 20 20 20 20 20 20 20 60 28 70 65 72 66 6f 72 6d 2d 72 65 70 6c 61 63 65 20 27 2c 6f 6c 64 2d 74 .......`(perform-replace.',old-t
36840 65 78 74 20 27 2c 6e 65 77 2d 74 65 78 74 20 74 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 ext.',new-text.t.nil.nil........
36860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6d 75 6c .........................nil.mul
36880 74 69 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 28 ti-query-replace-map)).........(
368a0 74 61 67 73 2d 6c 6f 6f 70 2d 63 6f 6e 74 69 6e 75 65 20 28 6f 72 20 28 63 6f 6e 73 20 27 6c 69 tags-loop-continue.(or.(cons.'li
368c0 73 74 20 66 69 6c 65 73 29 20 74 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 st.files).t))))))..;;;###autoloa
368e0 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 2d 72 65 67 65 d.(defun.projectile-replace-rege
36900 78 70 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 65 20 61 20 xp.(&optional.arg)..."Replace.a.
36920 72 65 67 65 78 70 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 60 74 61 67 regexp.in.the.project.using.`tag
36940 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 27 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 s-query-replace'...With.a.prefix
36960 20 61 72 67 75 6d 65 6e 74 20 41 52 47 20 70 72 6f 6d 70 74 73 20 79 6f 75 20 66 6f 72 20 61 20 .argument.ARG.prompts.you.for.a.
36980 64 69 72 65 63 74 6f 72 79 20 6f 6e 20 77 68 69 63 68 0a 74 6f 20 72 75 6e 20 74 68 65 20 72 65 directory.on.which.to.run.the.re
369a0 70 6c 61 63 65 6d 65 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a placement."...(interactive."P").
369c0 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 6f 72 79 20 28 69 66 20 61 72 67 0a 20 20 20 20 ..(let*.((directory.(if.arg.....
369e0 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 6e 61 6d 65 2d 61 ....................(file-name-a
36a00 73 2d 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s-directory.....................
36a20 20 20 20 20 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 52 65 70 6c 61 .....(read-directory-name."Repla
36a40 63 65 20 72 65 67 65 78 70 20 69 6e 20 64 69 72 65 63 74 6f 72 79 3a 20 22 29 29 0a 20 20 20 20 ce.regexp.in.directory:.")).....
36a60 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 63 ..................(projectile-ac
36a80 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 6c 64 2d 74 65 78 74 quire-root)))..........(old-text
36aa0 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 20 20 20 20 .(read-string...................
36ac0 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 74 2d 6e 61 ..(projectile-prepend-project-na
36ae0 6d 65 20 22 52 65 70 6c 61 63 65 20 72 65 67 65 78 70 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 me."Replace.regexp:.")..........
36b00 20 20 20 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 ...........(projectile-symbol-or
36b20 2d 73 65 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 -selection-at-point)))..........
36b40 28 6e 65 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 (new-text.(read-string..........
36b60 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 6e 64 2d 70 ...........(projectile-prepend-p
36b80 72 6f 6a 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 roject-name.....................
36ba0 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6c 61 63 65 20 72 65 67 65 78 70 20 25 73 20 77 69 74 68 .(format."Replace.regexp.%s.with
36bc0 3a 20 22 20 6f 6c 64 2d 74 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 73 :.".old-text))))..........(files
36be0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 76 65 20 74 6f 20 72 65 6a 65 63 74 20 ...........;;.We.have.to.reject.
36c00 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 61 20 77 6f 72 6b 61 72 6f 75 6e 64 20 74 6f 20 77 directories.as.a.workaround.to.w
36c20 6f 72 6b 20 77 69 74 68 20 67 69 74 20 73 75 62 6d 6f 64 75 6c 65 73 2e 0a 20 20 20 20 20 20 20 ork.with.git.submodules.........
36c40 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 63 61 6e 27 74 20 6e 61 72 72 ...;;...........;;.We.can't.narr
36c60 6f 77 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 ow.the.list.of.files.with.......
36c80 20 20 20 20 3b 3b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 2d 77 69 74 68 2d 73 74 ....;;.`projectile-files-with-st
36ca0 72 69 6e 67 27 20 62 65 63 61 75 73 65 20 74 68 6f 73 65 20 72 65 67 65 78 70 20 74 6f 6f 6c 73 ring'.because.those.regexp.tools
36cc0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 45 6d 61 63 ...........;;.don't.support.Emac
36ce0 73 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 s.regular.expressions...........
36d00 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 23 27 66 69 6c 65 .(cl-remove-if............#'file
36d20 2d 64 69 72 65 63 74 6f 72 79 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 -directory-p............(mapcar.
36d40 23 27 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 #'(lambda.(file).(expand-file-na
36d60 6d 65 20 66 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 me.file.directory)).............
36d80 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 65 73 20 64 69 72 .......(projectile-dir-files.dir
36da0 65 63 74 6f 72 79 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 50 72 6f 62 61 62 ectory))))).....;;.FIXME:.Probab
36dc0 6c 79 20 77 6f 75 6c 64 20 66 61 69 6c 20 6f 6e 20 45 6d 61 63 73 20 32 37 2b 2c 20 66 6f 75 72 ly.would.fail.on.Emacs.27+,.four
36de0 74 68 20 61 72 67 75 6d 65 6e 74 20 69 73 20 67 6f 6e 65 2e 0a 20 20 20 20 28 77 69 74 68 2d 6e th.argument.is.gone......(with-n
36e00 6f 2d 77 61 72 6e 69 6e 67 73 20 28 74 61 67 73 2d 71 75 65 72 79 2d 72 65 70 6c 61 63 65 20 6f o-warnings.(tags-query-replace.o
36e20 6c 64 2d 74 65 78 74 20 6e 65 77 2d 74 65 78 74 20 6e 69 6c 20 28 63 6f 6e 73 20 27 6c 69 73 74 ld-text.new-text.nil.(cons.'list
36e40 20 66 69 6c 65 73 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 .files)))))..;;;###autoload.(def
36e60 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 un.projectile-kill-buffers.()...
36e80 22 4b 69 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 0a 0a 54 68 65 20 62 75 66 66 "Kill.project.buffers...The.buff
36ea0 65 72 20 61 72 65 20 6b 69 6c 6c 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 er.are.killed.according.to.the.v
36ec0 61 6c 75 65 20 6f 66 0a 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 alue.of.`projectile-kill-buffers
36ee0 2d 66 69 6c 74 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 6c 65 -filter'."...(interactive)...(le
36f00 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 69 72 65 t*.((project.(projectile-acquire
36f20 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 6e 61 6d 65 20 28 -root))..........(project-name.(
36f40 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 6f 6a 65 63 74 29 projectile-project-name.project)
36f60 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d )..........(buffers.(projectile-
36f80 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 0a 20 20 20 20 28 project-buffers.project))).....(
36fa0 77 68 65 6e 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f when.(yes-or-no-p............(fo
36fc0 72 6d 61 74 20 22 41 72 65 20 79 6f 75 20 73 75 72 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 6b rmat."Are.you.sure.you.want.to.k
36fe0 69 6c 6c 20 25 73 20 62 75 66 66 65 72 73 20 66 6f 72 20 27 25 73 27 3f 20 22 0a 20 20 20 20 20 ill.%s.buffers.for.'%s'?."......
37000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 62 75 66 66 65 72 73 29 20 70 ..............(length.buffers).p
37020 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 62 75 66 roject-name)).......(dolist.(buf
37040 66 65 72 20 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a fer.buffers).........(when.(and.
37060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 74 61 6b 65 20 63 61 72 65 20 6e ...............;;.we.take.care.n
37080 6f 74 20 74 6f 20 6b 69 6c 6c 20 69 6e 64 69 72 65 63 74 20 62 75 66 66 65 72 73 20 64 69 72 65 ot.to.kill.indirect.buffers.dire
370a0 63 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 73 20 77 65 20 6d 69 67 ctly................;;.as.we.mig
370c0 68 74 20 65 6e 63 6f 75 6e 74 65 72 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 65 69 72 20 62 61 ht.encounter.them.after.their.ba
370e0 73 65 20 62 75 66 66 65 72 73 20 61 72 65 20 6b 69 6c 6c 65 64 0a 20 20 20 20 20 20 20 20 20 20 se.buffers.are.killed...........
37100 20 20 20 20 20 28 6e 6f 74 20 28 62 75 66 66 65 72 2d 62 61 73 65 2d 62 75 66 66 65 72 20 62 75 .....(not.(buffer-base-buffer.bu
37120 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 ffer))................(if.(funct
37140 69 6f 6e 70 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 ionp.projectile-kill-buffers-fil
37160 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c ter)....................(funcall
37180 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 20 .projectile-kill-buffers-filter.
371a0 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 28 70 63 61 73 65 20 buffer)..................(pcase.
371c0 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 0a 20 projectile-kill-buffers-filter..
371e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6b 69 6c 6c 2d 61 6c 6c 20 74 29 0a ..................('kill-all.t).
37200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6b 69 6c 6c 2d 6f 6e 6c 79 2d 66 ...................('kill-only-f
37220 69 6c 65 73 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 66 65 72 29 29 0a iles.(buffer-file-name.buffer)).
37240 20 20 20 20 20 20 20 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 ...................(_.(user-erro
37260 72 20 22 49 6e 76 61 6c 69 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 r."Invalid.projectile-kill-buffe
37280 72 73 2d 66 69 6c 74 65 72 20 76 61 6c 75 65 3a 20 25 53 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d rs-filter.value:.%S".projectile-
372a0 6b 69 6c 6c 2d 62 75 66 66 65 72 73 2d 66 69 6c 74 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 kill-buffers-filter)))))........
372c0 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 29 29 29 29 0a 0a 3b 3b ...(kill-buffer.buffer))))))..;;
372e0 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
37300 61 76 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 20 28 29 0a 20 20 22 53 61 76 65 20 61 ave-project-buffers.()..."Save.a
37320 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 ll.project.buffers."...(interact
37340 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 63 74 69 ive)...(let*.((project.(projecti
37360 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 72 6f 6a le-acquire-root))..........(proj
37380 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 6e 61 6d ect-name.(projectile-project-nam
373a0 65 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 64 69 66 69 65 64 2d 62 e.project))..........(modified-b
373c0 75 66 66 65 72 73 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 uffers.(cl-remove-if-not.(lambda
373e0 20 28 62 75 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 20 20 20 .(buf)..........................
37400 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 62 75 66 66 ......................(and.(buff
37420 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er-file-name.buf)...............
37440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37460 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 62 75 66 29 29 29 0a ......(buffer-modified-p.buf))).
37480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
374a0 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 65 63 74 .............(projectile-project
374c0 2d 62 75 66 66 65 72 73 20 70 72 6f 6a 65 63 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 -buffers.project)))).....(if.(nu
374e0 6c 6c 20 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 ll.modified-buffers).........(me
37500 73 73 61 67 65 20 22 5b 25 73 5d 20 4e 6f 20 62 75 66 66 65 72 73 20 6e 65 65 64 20 73 61 76 69 ssage."[%s].No.buffers.need.savi
37520 6e 67 22 20 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 ng".project-name).......(dolist.
37540 28 62 75 66 20 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 72 73 29 0a 20 20 20 20 20 20 20 20 28 (buf.modified-buffers).........(
37560 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 with-current-buffer.buf.........
37580 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 ..(save-buffer))).......(message
375a0 20 22 5b 25 73 5d 20 53 61 76 65 64 20 25 64 20 62 75 66 66 65 72 73 22 20 70 72 6f 6a 65 63 74 ."[%s].Saved.%d.buffers".project
375c0 2d 6e 61 6d 65 20 28 6c 65 6e 67 74 68 20 6d 6f 64 69 66 69 65 64 2d 62 75 66 66 65 72 73 29 29 -name.(length.modified-buffers))
375e0 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
37600 63 74 69 6c 65 2d 64 69 72 65 64 20 28 29 0a 20 20 22 4f 70 65 6e 20 60 64 69 72 65 64 27 20 61 ctile-dired.()..."Open.`dired'.a
37620 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 2e 22 0a 20 20 28 69 t.the.root.of.the.project."...(i
37640 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 69 72 65 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 nteractive)...(dired.(projectile
37660 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 75 74 6f 6c 6f 61 64 -acquire-root)))..;;;###autoload
37680 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 6f 74 68 65 72 2d 77 .(defun.projectile-dired-other-w
376a0 69 6e 64 6f 77 20 28 29 0a 20 20 22 4f 70 65 6e 20 60 64 69 72 65 64 27 20 20 61 74 20 74 68 65 indow.()..."Open.`dired'..at.the
376c0 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 74 68 65 72 20 .root.of.the.project.in.another.
376e0 77 69 6e 64 6f 77 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 window."...(interactive)...(dire
37700 64 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 63 71 75 69 d-other-window.(projectile-acqui
37720 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 65 66 75 re-root)))..;;;###autoload.(defu
37740 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 72 61 6d 65 20 28 n.projectile-dired-other-frame.(
37760 29 0a 20 20 22 4f 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 )..."Open.`dired'.at.the.root.of
37780 20 74 68 65 20 70 72 6f 6a 65 63 74 20 69 6e 20 61 6e 6f 74 68 65 72 20 66 72 61 6d 65 2e 22 0a .the.project.in.another.frame.".
377a0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 64 69 72 65 64 2d 6f 74 68 65 72 2d 66 ..(interactive)...(dired-other-f
377c0 72 61 6d 65 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 rame.(projectile-acquire-root)))
377e0 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
37800 6c 65 2d 76 63 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 le-vc.(&optional.project-root)..
37820 20 22 4f 70 65 6e 20 60 76 63 2d 64 69 72 27 20 61 74 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 ."Open.`vc-dir'.at.the.root.of.t
37840 68 65 20 70 72 6f 6a 65 63 74 2e 0a 0a 46 6f 72 20 67 69 74 20 70 72 6f 6a 65 63 74 73 20 60 6d he.project...For.git.projects.`m
37860 61 67 69 74 2d 73 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 6c 27 20 69 73 20 75 73 65 64 20 69 66 agit-status-internal'.is.used.if
37880 20 61 76 61 69 6c 61 62 6c 65 2e 0a 46 6f 72 20 68 67 20 70 72 6f 6a 65 63 74 73 20 60 6d 6f 6e .available..For.hg.projects.`mon
378a0 6b 79 2d 73 74 61 74 75 73 27 20 69 73 20 75 73 65 64 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e ky-status'.is.used.if.available.
378c0 0a 0a 49 66 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 69 73 20 67 69 76 65 6e 2c 20 69 74 20 69 ..If.PROJECT-ROOT.is.given,.it.i
378e0 73 20 6f 70 65 6e 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 70 72 6f 6a 65 63 74 0a s.opened.instead.of.the.project.
37900 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 root.directory.of.the.current.bu
37920 66 66 65 72 20 66 69 6c 65 2e 20 20 49 66 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 63 61 6c ffer.file...If.interactively.cal
37940 6c 65 64 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 led.with.a.prefix.argument,.the.
37960 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 0a 64 user.is.prompted.for.a.project.d
37980 69 72 65 63 74 6f 72 79 20 74 6f 20 6f 70 65 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 irectory.to.open."...(interactiv
379a0 65 20 28 61 6e 64 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 e.(and.current-prefix-arg.......
379c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..............(list.............
379e0 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 74 69 6e 67 2d .........(projectile-completing-
37a00 72 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 4f 70 65 6e read......................."Open
37a20 20 70 72 6f 6a 65 63 74 20 56 43 20 69 6e 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .project.VC.in:."...............
37a40 20 20 20 20 20 20 20 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 ........projectile-known-project
37a60 73 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 s))))...(unless.project-root....
37a80 20 28 73 65 74 71 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 .(setq.project-root.(projectile-
37aa0 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 76 63 73 20 28 70 72 acquire-root)))...(let.((vcs.(pr
37ac0 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 76 63 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f ojectile-project-vcs.project-roo
37ae0 74 29 29 29 0a 20 20 20 20 28 63 6c 2d 63 61 73 65 20 76 63 73 0a 20 20 20 20 20 20 28 67 69 74 t))).....(cl-case.vcs.......(git
37b00 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 66 62 6f 75 6e 64 70 20 27 6d 61 67 69 74 2d 73 ........(cond.((fboundp.'magit-s
37b20 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d tatus-internal)...............(m
37b40 61 67 69 74 2d 73 74 61 74 75 73 2d 69 6e 74 65 72 6e 61 6c 20 70 72 6f 6a 65 63 74 2d 72 6f 6f agit-status-internal.project-roo
37b60 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 62 6f 75 6e 64 70 20 27 6d 61 67 69 t))..............((fboundp.'magi
37b80 74 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f t-status)...............(with-no
37ba0 2d 77 61 72 6e 69 6e 67 73 20 28 6d 61 67 69 74 2d 73 74 61 74 75 73 20 70 72 6f 6a 65 63 74 2d -warnings.(magit-status.project-
37bc0 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 root)))..............(t.........
37be0 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 29 0a 20 ......(vc-dir.project-root))))..
37c00 20 20 20 20 20 28 68 67 0a 20 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6d 6f .....(hg........(if.(fboundp.'mo
37c20 6e 6b 79 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 6b 79 2d 73 74 nky-status)............(monky-st
37c40 61 74 75 73 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 28 76 63 2d atus.project-root)..........(vc-
37c60 64 69 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 28 74 20 28 76 63 dir.project-root))).......(t.(vc
37c80 2d 64 69 72 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 -dir.project-root)))))..;;;###au
37ca0 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 63 65 6e 74 66 toload.(defun.projectile-recentf
37cc0 20 28 29 0a 20 20 22 53 68 6f 77 20 61 20 6c 69 73 74 20 6f 66 20 72 65 63 65 6e 74 6c 79 20 76 .()..."Show.a.list.of.recently.v
37ce0 69 73 69 74 65 64 20 66 69 6c 65 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 69 isited.files.in.a.project."...(i
37d00 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 62 6f 75 6e 64 70 20 27 72 65 63 65 6e nteractive)...(if.(boundp.'recen
37d20 74 66 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 70 72 6f 6a 65 tf-list).......(find-file.(proje
37d40 63 74 69 6c 65 2d 65 78 70 61 6e 64 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctile-expand-root...............
37d60 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 61 64 0a ....(projectile-completing-read.
37d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 63 65 6e 74 6c 79 20 76 69 73 ..................."Recently.vis
37da0 69 74 65 64 20 66 69 6c 65 73 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ited.files:."...................
37dc0 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 29 29 29 0a 20 .(projectile-recentf-files))))..
37de0 20 20 20 28 6d 65 73 73 61 67 65 20 22 72 65 63 65 6e 74 66 20 69 73 20 6e 6f 74 20 65 6e 61 62 ...(message."recentf.is.not.enab
37e00 6c 65 64 22 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 63 65 6e led")))..(defun.projectile-recen
37e20 74 66 2d 66 69 6c 65 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 tf-files.()..."Return.a.list.of.
37e40 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 72 6f 6a recently.visited.files.in.a.proj
37e60 65 63 74 2e 22 0a 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 27 72 65 63 65 6e 74 66 2d 6c 69 ect."...(and.(boundp.'recentf-li
37e80 73 74 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 st)........(let.((project-root.(
37ea0 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)))......
37ec0 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
37ee0 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-
37f00 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
37f20 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
37f40 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-
37f60 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
37f80 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 73 f-list)))))..(defun.projectile-s
37fa0 65 72 69 61 6c 69 7a 65 2d 63 61 63 68 65 20 28 29 0a 20 20 22 53 65 72 69 61 6c 69 7a 65 73 20 erialize-cache.()..."Serializes.
37fc0 74 68 65 20 6d 65 6d 6f 72 79 20 63 61 63 68 65 20 74 6f 20 74 68 65 20 68 61 72 64 20 64 72 69 the.memory.cache.to.the.hard.dri
37fe0 76 65 2e 22 0a 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 ve."...(projectile-serialize.pro
38000 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 61 63 68 65 20 70 72 6f 6a 65 63 74 69 6c jectile-projects-cache.projectil
38020 65 2d 63 61 63 68 65 2d 66 69 6c 65 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 e-cache-file))..(defvar.projecti
38040 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 6d 61 6b 65 2d 68 61 73 le-configure-cmd-map...(make-has
38060 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 70 69 h-table.:test.'equal)..."A.mappi
38080 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 73 74 ng.between.projects.and.the.last
380a0 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 6d 2e .configure.command.used.on.them.
380c0 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 ")..(defvar.projectile-compilati
380e0 6f 6e 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 20 3a 74 on-cmd-map...(make-hash-table.:t
38100 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 65 65 6e est.'equal)..."A.mapping.between
38120 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 63 6f 6d 70 69 6c 61 74 69 .projects.and.the.last.compilati
38140 6f 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 28 64 65 66 on.command.used.on.them.")..(def
38160 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 2d 6d 61 70 0a 20 var.projectile-install-cmd-map..
38180 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).
381a0 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 61 6e .."A.mapping.between.projects.an
381c0 64 20 74 68 65 20 6c 61 73 74 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 d.the.last.install.command.used.
381e0 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 2d 70 on.them.")..(defvar.projectile-p
38200 61 63 6b 61 67 65 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 ackage-cmd-map...(make-hash-tabl
38220 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 65 74 e.:test.'equal)..."A.mapping.bet
38240 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 70 61 63 6b 61 ween.projects.and.the.last.packa
38260 67 65 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 65 66 ge.command.used.on.them.")..(def
38280 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 70 0a 20 20 28 6d var.projectile-test-cmd-map...(m
382a0 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 22 ake-hash-table.:test.'equal)..."
382c0 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 74 A.mapping.between.projects.and.t
382e0 68 65 20 6c 61 73 74 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 6f 6e 20 74 68 65 he.last.test.command.used.on.the
38300 6d 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6d 64 m.")..(defvar.projectile-run-cmd
38320 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 27 65 -map...(make-hash-table.:test.'e
38340 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 6a 65 qual)..."A.mapping.between.proje
38360 63 74 73 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 75 73 65 cts.and.the.last.run.command.use
38380 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
383a0 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 20 74 0a 20 20 -project-enable-cmd-caching.t...
383c0 22 45 6e 61 62 6c 65 73 20 63 6f 6d 6d 61 6e 64 20 63 61 63 68 69 6e 67 20 66 6f 72 20 74 68 65 "Enables.command.caching.for.the
383e0 20 70 72 6f 6a 65 63 74 2e 20 20 53 65 74 20 74 6f 20 6e 69 6c 20 74 6f 20 64 69 73 61 62 6c 65 .project...Set.to.nil.to.disable
38400 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 6c 73 2e ..Should.be.set.via..dir-locals.
38420 65 6c 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 61 63 68 65 2d el.")..(defun.projectile--cache-
38440 70 72 6f 6a 65 63 74 2d 63 6f 6d 6d 61 6e 64 73 2d 70 20 28 29 0a 20 20 22 57 68 65 74 68 65 72 project-commands-p.()..."Whether
38460 20 74 6f 20 63 61 63 68 65 20 70 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 28 .to.cache.project.commands."...(
38480 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 68 61 63 6b 2d 64 69 72 2d 6c with-temp-buffer.....(hack-dir-l
384a0 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 0a ocal-variables-non-file-buffer).
384c0 20 20 20 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 65 2d 63 6d ....projectile-project-enable-cm
384e0 64 2d 63 61 63 68 69 6e 67 29 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d d-caching))..(defvar.projectile-
38500 70 72 6f 6a 65 63 74 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 project-configure-cmd.nil..."The
38520 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 6c 65 .command.to.use.with.`projectile
38540 2d 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 -configure-project'..It.takes.pr
38560 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 20 63 6f 6d 6d 61 6e ecedence.over.the.default.comman
38580 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 65 6e 20 73 65 74 2e d.for.the.project.type.when.set.
385a0 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 6c 73 2e 65 .Should.be.set.via..dir-locals.e
385c0 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 65 63 74 l.")..(defvar.projectile-project
385e0 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6d 6d -compilation-cmd.nil..."The.comm
38600 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 6c 65 2d 63 6f 6d 70 and.to.use.with.`projectile-comp
38620 69 6c 65 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 64 65 6e 63 ile-project'..It.takes.precedenc
38640 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 6f 72 20 74 e.over.the.default.command.for.t
38660 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 75 6c 64 he.project.type.when.set..Should
38680 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 0a 0a 28 .be.set.via..dir-locals.el.")..(
386a0 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 6d 70 69 6c defvar.projectile-project-compil
386c0 61 74 69 6f 6e 2d 64 69 72 20 6e 69 6c 0a 20 20 22 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 ation-dir.nil..."The.directory.t
386e0 6f 20 75 73 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 o.use.with.`projectile-compile-p
38700 72 6f 6a 65 63 74 27 2e 0a 54 68 65 20 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 20 69 73 20 72 roject'..The.directory.path.is.r
38720 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 53 68 6f elative.to.the.project.root..Sho
38740 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.")
38760 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
38780 74 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 65 20 t-cmd.nil..."The.command.to.use.
387a0 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 27 2e 0a with.`projectile-test-project'..
387c0 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
387e0 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
38800 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
38820 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
38840 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 20 6e 69 6c 0a 20 20 22 54 ile-project-install-cmd.nil..."T
38860 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
38880 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 70 72 le-install-project'..It.takes.pr
388a0 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 20 63 6f 6d 6d 61 6e ecedence.over.the.default.comman
388c0 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 65 6e 20 73 65 74 2e d.for.the.project.type.when.set.
388e0 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 6c 73 2e 65 .Should.be.set.via..dir-locals.e
38900 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 65 63 74 l.")..(defvar.projectile-project
38920 2d 70 61 63 6b 61 67 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 -package-cmd.nil..."The.command.
38940 74 6f 20 75 73 65 20 77 69 74 68 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d to.use.with.`projectile-package-
38960 70 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 project'..It.takes.precedence.ov
38980 65 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 er.the.default.command.for.the.p
389a0 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 62 65 20 roject.type.when.set..Should.be.
389c0 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 28 64 65 66 76 set.via..dir-locals.el.")..(defv
389e0 61 72 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 20 6e 69 ar.projectile-project-run-cmd.ni
38a00 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 72 l..."The.command.to.use.with.`pr
38a20 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 27 2e 0a 49 74 20 74 61 6b 65 73 20 ojectile-run-project'..It.takes.
38a40 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 20 63 6f 6d 6d precedence.over.the.default.comm
38a60 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 65 6e 20 73 65 and.for.the.project.type.when.se
38a80 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 6c 73 t..Should.be.set.via..dir-locals
38aa0 2e 65 6c 2e 22 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 .el.")..(defun.projectile-defaul
38ac0 74 2d 67 65 6e 65 72 69 63 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 t-generic-command.(project-type.
38ae0 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 0a 20 20 22 47 65 6e 65 72 69 63 20 72 65 74 72 69 65 76 command-type)..."Generic.retriev
38b00 61 6c 20 6f 66 20 43 4f 4d 4d 41 4e 44 2d 54 59 50 45 73 20 64 65 66 61 75 6c 74 20 63 6d 64 2d al.of.COMMAND-TYPEs.default.cmd-
38b20 76 61 6c 75 65 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 0a 0a 49 66 20 66 6f 75 6e value.for.PROJECT-TYPE...If.foun
38b40 64 2c 20 63 68 65 63 6b 73 20 69 66 20 76 61 6c 75 65 20 69 73 20 73 79 6d 62 6f 6c 20 6f 72 20 d,.checks.if.value.is.symbol.or.
38b60 73 74 72 69 6e 67 2e 20 20 49 6e 20 63 61 73 65 20 6f 66 20 73 79 6d 62 6f 6c 0a 72 65 73 6f 6c string...In.case.of.symbol.resol
38b80 76 65 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 20 60 66 75 6e 63 61 6c 6c 27 73 2e 20 20 52 65 74 ves.to.function.`funcall's...Ret
38ba0 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 4d 55 53 54 0a 62 65 20 73 74 urn.value.of.function.MUST.be.st
38bc0 72 69 6e 67 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 20 61 73 20 63 6f 6d 6d 61 6e 64 2e 22 ring.to.be.executed.as.command."
38be0 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 28 61 6c ...(let.((command.(plist-get.(al
38c00 69 73 74 2d 67 65 74 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 ist-get.project-type.projectile-
38c20 70 72 6f 6a 65 63 74 2d 74 79 70 65 73 29 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 29 29 29 0a 20 project-types).command-type)))..
38c40 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6e 6f 74 20 63 6f 6d 6d 61 6e 64 29 20 6e 69 6c ...(cond......((not.command).nil
38c60 29 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 63 6f 6d 6d 61 6e 64 29 20 63 6f 6d 6d 61 6e )......((stringp.command).comman
38c80 64 29 0a 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 d)......((functionp.command)....
38ca0 20 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 ...(if.(fboundp.command)........
38cc0 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 73 79 6d 62 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 63 6f 6d ...(funcall.(symbol-function.com
38ce0 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 mand))))......(t.......(error."T
38d00 68 65 20 76 61 6c 75 65 20 66 6f 72 3a 20 25 73 20 69 6e 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 he.value.for:.%s.in.project-type
38d20 3a 20 25 73 20 77 61 73 20 6e 65 69 74 68 65 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 20 :.%s.was.neither.a.function.nor.
38d40 61 20 73 74 72 69 6e 67 22 20 63 6f 6d 6d 61 6e 64 2d 74 79 70 65 20 70 72 6f 6a 65 63 74 2d 74 a.string".command-type.project-t
38d60 79 70 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 64 65 66 61 ype)))))..(defun.projectile-defa
38d80 75 6c 74 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 ult-configure-command.(project-t
38da0 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 63 6f 6e 66 69 67 75 ype)..."Retrieve.default.configu
38dc0 72 65 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 20 re.command.for.PROJECT-TYPE."...
38de0 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 6d (projectile-default-generic-comm
38e00 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 6f 6e 66 69 67 75 72 65 2d 63 6f 6d 6d and.project-type.'configure-comm
38e20 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 64 65 66 61 75 6c 74 and))..(defun.projectile-default
38e40 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 2d 74 79 -compilation-command.(project-ty
38e60 70 65 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 70 69 6c 61 74 pe)..."Retrieve.default.compilat
38e80 69 6f 6e 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 ion.command.for.PROJECT-TYPE."..
38ea0 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
38ec0 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 6f 6d 70 69 6c 65 2d 63 6f 6d 6d 61 mand.project-type.'compile-comma
38ee0 6e 64 29 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 nd))..(defun.projectile-default-
38f00 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 28 70 72 6f 6a 65 63 74 2d 74 79 70 65 29 0a 20 compilation-dir.(project-type)..
38f20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 ."Retrieve.default.compilation.d
38f40 69 72 65 63 74 6f 72 79 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d 54 59 50 45 2e 22 0a 20 20 28 70 irectory.for.PROJECT-TYPE."...(p
38f60 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 61 6e rojectile-default-generic-comman
38f80 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 29 d.project-type.'compilation-dir)
38fa0 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 74 65 73 )..(defun.projectile-default-tes
38fc0 74 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 65 74 72 t-command.(project-type)..."Retr
38fe0 69 65 76 65 20 64 65 66 61 75 6c 74 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 50 52 ieve.default.test.command.for.PR
39000 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 75 OJECT-TYPE."...(projectile-defau
39020 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 20 lt-generic-command.project-type.
39040 27 74 65 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 'test-command))..(defun.projecti
39060 6c 65 2d 64 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 le-default-install-command.(proj
39080 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 69 6e ect-type)..."Retrieve.default.in
390a0 73 74 61 6c 6c 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 stall.command.for.PROJECT-TYPE."
390c0 0a 20 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 ...(projectile-default-generic-c
390e0 6f 6d 6d 61 6e 64 20 70 72 6f 6a 65 63 74 2d 74 79 70 65 20 27 69 6e 73 74 61 6c 6c 2d 63 6f 6d ommand.project-type.'install-com
39100 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 64 65 66 61 75 6c mand))..(defun.projectile-defaul
39120 74 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 2d 74 79 70 65 29 t-package-command.(project-type)
39140 0a 20 20 22 52 65 74 72 69 65 76 65 20 64 65 66 61 75 6c 74 20 70 61 63 6b 61 67 65 20 63 6f 6d ..."Retrieve.default.package.com
39160 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 65 mand.for.PROJECT-TYPE."...(proje
39180 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 72 ctile-default-generic-command.pr
391a0 6f 6a 65 63 74 2d 74 79 70 65 20 27 70 61 63 6b 61 67 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a 0a 28 oject-type.'package-command))..(
391c0 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 72 75 6e 2d 63 6f 6d defun.projectile-default-run-com
391e0 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 65 20 mand.(project-type)..."Retrieve.
39200 64 65 66 61 75 6c 74 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 50 52 4f 4a 45 43 54 2d default.run.command.for.PROJECT-
39220 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 67 65 6e TYPE."...(projectile-default-gen
39240 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 72 75 6e 2d 63 eric-command.project-type.'run-c
39260 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 63 6f 6e 66 ommand))..(defun.projectile-conf
39280 69 67 75 72 65 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 igure-command.(compile-dir)..."R
392a0 65 74 72 69 65 76 65 20 74 68 65 20 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d 6d 61 6e 64 20 66 6f etrieve.the.configure.command.fo
392c0 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 6e 64 20 69 73 20 64 r.COMPILE-DIR...The.command.is.d
392e0 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 69 72 73 74 20 77 65 etermined.like.this:..-.first.we
39300 20 63 68 65 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6e 66 69 67 75 72 65 2d 63 6d 64 .check.`projectile-configure-cmd
39320 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 63 6f 6e 66 69 67 75 72 65 20 63 6f 6d -map'.for.the.last.configure.com
39340 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
39360 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
39380 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 27 20 73 75 70 ctile-project-configure-cmd'.sup
393a0 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 61 plied.via..dir-locals.el..-.fina
393c0 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 6e lly.we.check.for.the.default.con
393e0 66 69 67 75 72 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 figure.command.for.a.project.of.
39400 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
39420 65 2d 64 69 72 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 e-dir.projectile-configure-cmd-m
39440 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 2d 63 6f 6e ap).......projectile-project-con
39460 66 69 67 75 72 65 2d 63 6d 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6d 64 2d 66 6f 72 6d figure-cmd.......(let.((cmd-form
39480 61 74 2d 73 74 72 69 6e 67 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f at-string.(projectile-default-co
394a0 6e 66 69 67 75 72 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 6a nfigure-command.(projectile-proj
394c0 65 63 74 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6d 64 2d 66 ect-type)))).........(when.cmd-f
394e0 6f 72 6d 61 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 63 ormat-string...........(format.c
39500 6d 64 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f md-format-string.(projectile-pro
39520 6a 65 63 74 2d 72 6f 6f 74 29 20 63 6f 6d 70 69 6c 65 2d 64 69 72 29 29 29 29 29 0a 0a 28 64 65 ject-root).compile-dir)))))..(de
39540 66 75 6e 20 70 72 6f 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 fun.projectile-compilation-buffe
39560 72 2d 6e 61 6d 65 20 28 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 6d 6f 64 65 29 0a 20 20 22 4d 65 61 r-name.(compilation-mode)..."Mea
39580 6e 74 20 74 6f 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 62 nt.to.be.used.for.`compilation-b
395a0 75 66 66 65 72 2d 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 60 2e 0a 41 72 67 75 6d 65 6e 74 20 43 uffer-name-function`..Argument.C
395c0 4f 4d 50 49 4c 41 54 49 4f 4e 2d 4d 4f 44 45 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 OMPILATION-MODE.is.the.name.of.t
395e0 68 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 0a 63 6f 6d 70 69 he.major.mode.used.for.the.compi
39600 6c 61 74 69 6f 6e 20 62 75 66 66 65 72 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 64 lation.buffer."...(concat."*".(d
39620 6f 77 6e 63 61 73 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 6d 6f 64 65 29 20 22 2a 22 0a 20 20 owncase.compilation-mode)."*"...
39640 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 6f 6a 65 63 74 2d ........(if.(projectile-project-
39660 70 29 20 28 63 6f 6e 63 61 74 20 22 3c 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 p).(concat."<".(projectile-proje
39680 63 74 2d 6e 61 6d 65 29 20 22 3e 22 29 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a ct-name).">")."")))..(defun.proj
396a0 65 63 74 69 6c 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 ectile-current-project-buffer-p.
396c0 28 29 0a 20 20 22 4d 65 61 6e 74 20 74 6f 20 62 65 20 75 73 65 64 20 66 6f 72 20 60 63 6f 6d 70 ()..."Meant.to.be.used.for.`comp
396e0 69 6c 61 74 69 6f 6e 2d 73 61 76 65 2d 62 75 66 66 65 72 73 2d 70 72 65 64 69 63 61 74 65 60 2e ilation-save-buffers-predicate`.
39700 0a 54 68 69 73 20 69 6e 64 69 63 61 74 65 73 20 77 68 65 74 68 65 72 20 74 68 65 20 63 75 72 72 .This.indicates.whether.the.curr
39720 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 70 72 6f 6a 65 63 ent.buffer.is.in.the.same.projec
39740 74 20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 0a 77 69 6e 64 6f 77 20 28 69 6e 63 6c 75 64 69 t.as.the.current.window.(includi
39760 6e 67 20 72 65 74 75 72 6e 69 6e 67 20 74 72 75 65 20 69 66 20 6e 65 69 74 68 65 72 20 69 73 20 ng.returning.true.if.neither.is.
39780 69 6e 20 61 20 70 72 6f 6a 65 63 74 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 77 in.a.project)."...(let.((root.(w
397a0 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 77 69 6e 64 6f 77 2d 62 75 66 66 65 ith-current-buffer.(window-buffe
397c0 72 29 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 r).(projectile-project-root)))).
397e0 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a ....(or.(not.root).........(proj
39800 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 28 63 75 72 72 65 6e 74 ectile-project-buffer-p.(current
39820 2d 62 75 66 66 65 72 29 20 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 -buffer).root))))..(defun.projec
39840 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 70 69 6c tile-compilation-command.(compil
39860 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 6d 70 69 6c 61 74 69 e-dir)..."Retrieve.the.compilati
39880 6f 6e 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 65 on.command.for.COMPILE-DIR...The
398a0 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 73 .command.is.determined.like.this
398c0 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 2d :..-.first.we.check.`projectile-
398e0 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 compilation-cmd-map'.for.the.las
39900 74 0a 63 6f 6d 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f 6b t.compile.command.that.was.invok
39920 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
39940 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 63 6f 6d 70 69 ck.for.`projectile-project-compi
39960 6c 61 74 69 6f 6e 2d 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 lation-cmd'.supplied.via..dir-lo
39980 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 6f 72 20 cals.el..-.finally.we.check.for.
399a0 74 68 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 the.default.compilation.command.
399c0 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 6f for.a.project.of.that.type"...(o
399e0 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 6c r.(gethash.compile-dir.projectil
39a00 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 63 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f e-compilation-cmd-map).......pro
39a20 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 6d 64 0a jectile-project-compilation-cmd.
39a40 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 63 6f 6d 70 69 6c ......(projectile-default-compil
39a60 61 74 69 6f 6e 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 ation-command.(projectile-projec
39a80 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 2d 74 65 t-type))))..(defun.projectile-te
39aa0 73 74 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 st-command.(compile-dir)..."Retr
39ac0 69 65 76 65 20 74 68 65 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c ieve.the.test.command.for.COMPIL
39ae0 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 65 E-DIR...The.command.is.determine
39b00 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 60 d.like.this:..-.first.we.check.`
39b20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 projectile-test-cmd-map'.for.the
39b40 20 6c 61 73 74 0a 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 69 6e 76 6f .last.test.command.that.was.invo
39b60 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 65 20 63 68 ked.on.the.project..-.then.we.ch
39b80 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 74 65 73 74 eck.for.`projectile-project-test
39ba0 2d 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 -cmd'.supplied.via..dir-locals.e
39bc0 6c 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 l..-.finally.we.check.for.the.de
39be0 66 61 75 6c 74 20 74 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 61 0a 70 72 6f 6a 65 63 74 fault.test.command.for.a.project
39c00 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 63 6f .of.that.type"...(or.(gethash.co
39c20 6d 70 69 6c 65 2d 64 69 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 63 6d 64 2d 6d 61 mpile-dir.projectile-test-cmd-ma
39c40 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 2d 74 65 73 74 p).......projectile-project-test
39c60 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 2d 74 -cmd.......(projectile-default-t
39c80 65 73 74 2d 63 6f 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 est-command.(projectile-project-
39ca0 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 2d 69 6e 73 74 type))))..(defun.projectile-inst
39cc0 61 6c 6c 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 all-command.(compile-dir)..."Ret
39ce0 72 69 65 76 65 20 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f rieve.the.install.command.for.CO
39d00 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 74 65 72 MPILE-DIR...The.command.is.deter
39d20 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 63 68 65 mined.like.this:..-.first.we.che
39d40 63 6b 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 2d 6d 61 70 27 20 ck.`projectile-install-cmd-map'.
39d60 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 74 68 61 for.the.last.install.command.tha
39d80 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 65 63 74 0a 0a 2d 20 t.was.invoked.on.the.project..-.
39da0 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 74 69 6c 65 2d 70 72 then.we.check.for.`projectile-pr
39dc0 6f 6a 65 63 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 oject-install-cmd'.supplied.via.
39de0 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 65 20 63 68 65 .dir-locals.el..-.finally.we.che
39e00 63 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 ck.for.the.default.install.comma
39e20 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 0a 20 nd.for.a.project.of.that.type"..
39e40 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 65 63 .(or.(gethash.compile-dir.projec
39e60 74 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 70 72 6f 6a tile-install-cmd-map).......proj
39e80 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 0a 20 20 20 20 20 ectile-project-install-cmd......
39ea0 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 65 66 61 75 6c 74 2d 69 6e 73 74 61 6c 6c 2d 63 6f 6d .(projectile-default-install-com
39ec0 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 29 mand.(projectile-project-type)))
39ee0 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b 61 67 65 2d 63 6f 6d )..(defun.projectile-package-com
39f00 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 69 65 76 65 20 74 mand.(compile-dir)..."Retrieve.t
39f20 68 65 20 70 61 63 6b 61 67 65 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 43 4f 4d 50 49 4c 45 2d 44 he.package.command.for.COMPILE-D
39f40 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 65 64 20 6c IR...The.command.is.determined.l
39f60 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 60 70 72 6f ike.this:..-.first.we.check.`pro
39f80 6a 65 63 74 69 6c 65 2d 70 61 63 6b 67 61 67 65 2d 63 6d 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 jectile-packgage-cmd-map'.for.th
39fa0 65 20 6c 61 73 74 0a 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 77 61 73 20 e.last.install.command.that.was.
39fc0 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
39fe0 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-
3a000 70 61 63 6b 61 67 65 2d 63 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 2e 64 69 72 2d 6c package-cmd'.supplied.via..dir-l
3a020 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 6f 72 ocals.el..-.finally.we.check.for
3a040 20 74 68 65 20 64 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 .the.default.package.command.for
3a060 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 6f 72 20 28 .a.project.of.that.type"...(or.(
3a080 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 6c 65 2d 70 gethash.compile-dir.projectile-p
3a0a0 61 63 6b 61 67 65 2d 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 ackage-cmd-map).......projectile
3a0c0 2d 70 72 6f 6a 65 63 74 2d 70 61 63 6b 61 67 65 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a -project-package-cmd.......(proj
3a0e0 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 61 6e 64 20 28 ectile-default-package-command.(
3a100 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 65 projectile-project-type))))..(de
3a120 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 70 fun.projectile-run-command.(comp
3a140 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 72 75 6e 20 63 6f 6d ile-dir)..."Retrieve.the.run.com
3a160 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
3a180 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
3a1a0 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 72 75 6e 2d 63 6d irst.we.check.`projectile-run-cm
3a1c0 64 2d 6d 61 70 27 20 66 6f 72 20 74 68 65 20 6c 61 73 74 0a 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 d-map'.for.the.last.run.command.
3a1e0 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 65 63 74 0a that.was.invoked.on.the.project.
3a200 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 74 69 6c 65 .-.then.we.check.for.`projectile
3a220 2d 70 72 6f 6a 65 63 74 2d 72 75 6e 2d 63 6d 64 27 20 73 75 70 70 6c 69 65 64 0a 76 69 61 20 2e -project-run-cmd'.supplied.via..
3a240 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 65 20 63 68 65 63 dir-locals.el..-.finally.we.chec
3a260 6b 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 72 75 6e 20 63 6f 6d 6d 61 6e 64 20 66 6f k.for.the.default.run.command.fo
3a280 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 6f 72 20 r.a.project.of.that.type"...(or.
3a2a0 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 6c 65 2d (gethash.compile-dir.projectile-
3a2c0 72 75 6e 2d 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 run-cmd-map).......projectile-pr
3a2e0 6f 6a 65 63 74 2d 72 75 6e 2d 63 6d 64 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d oject-run-cmd.......(projectile-
3a300 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 69 6c 65 2d default-run-command.(projectile-
3a320 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 65 63 74 project-type))))..(defun.project
3a340 69 6c 65 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 28 70 72 6f 6d 70 74 20 63 6f 6d 6d 61 6e 64 ile-read-command.(prompt.command
3a360 29 0a 20 20 22 41 64 61 70 74 65 64 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 )..."Adapted.from.the.function.`
3a380 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 22 0a 20 20 28 6c compilation-read-command'."...(l
3a3a0 65 74 20 28 28 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 3b 3b et.((compile-history..........;;
3a3c0 20 66 65 74 63 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 68 69 73 74 6f 72 79 20 66 6f 72 20 74 .fetch.the.command.history.for.t
3a3e0 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 72 69 6e he.current.project..........(rin
3a400 67 2d 65 6c 65 6d 65 6e 74 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 67 65 74 2d 63 6f 6d 6d g-elements.(projectile--get-comm
3a420 61 6e 64 2d 68 69 73 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 and-history.(projectile-acquire-
3a440 72 6f 6f 74 29 29 29 29 29 0a 20 20 20 20 28 72 65 61 64 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e root))))).....(read-shell-comman
3a460 64 20 70 72 6f 6d 70 74 20 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.prompt.command................
3a480 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 63 61 72 20 63 6f 6d 70 69 6c 65 .........(if.(equal.(car.compile
3a4a0 2d 68 69 73 74 6f 72 79 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -history).command)..............
3a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f 72 79 ...............'(compile-history
3a4e0 20 2e 20 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 20 20 20 20 ...1)...........................
3a500 27 63 6f 6d 70 69 6c 65 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 'compile-history))))..(defun.pro
3a520 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 28 29 0a 20 20 22 52 65 jectile-compilation-dir.()..."Re
3a540 74 72 69 65 76 65 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 trieve.the.compilation.directory
3a560 20 66 6f 72 20 74 68 69 73 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 79 .for.this.project."...(let*.((ty
3a580 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 29 29 0a 20 20 pe.(projectile-project-type))...
3a5a0 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 20 28 6f 72 20 70 72 6f 6a 65 63 74 69 6c 65 .......(directory.(or.projectile
3a5c0 2d 70 72 6f 6a 65 63 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 0a 20 20 20 20 20 20 20 -project-compilation-dir........
3a5e0 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 64 65 66 .................(projectile-def
3a600 61 75 6c 74 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 64 69 72 20 74 79 70 65 29 29 29 29 0a 20 20 ault-compilation-dir.type))))...
3a620 20 20 28 69 66 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 74 72 ..(if.directory.........(file-tr
3a640 75 65 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 69 6c 65 2d 6e 61 uename..........(concat.(file-na
3a660 6d 65 2d 61 73 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 me-as-directory.(projectile-proj
3a680 65 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c ect-root))..................(fil
3a6a0 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 29 29 29 e-name-as-directory.directory)))
3a6c0 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 72 6f 6f 74 29 .......(projectile-project-root)
3a6e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 72 65 61 )))..(defun.projectile-maybe-rea
3a700 64 2d 63 6f 6d 6d 61 6e 64 20 28 61 72 67 20 64 65 66 61 75 6c 74 2d 63 6d 64 20 70 72 6f 6d 70 d-command.(arg.default-cmd.promp
3a720 74 29 0a 20 20 22 50 72 6f 6d 70 74 20 75 73 65 72 20 66 6f 72 20 63 6f 6d 6d 61 6e 64 20 75 6e t)..."Prompt.user.for.command.un
3a740 6c 65 73 73 20 44 45 46 41 55 4c 54 2d 43 4d 44 20 69 73 20 61 6e 20 45 6c 69 73 70 20 66 75 6e less.DEFAULT-CMD.is.an.Elisp.fun
3a760 63 74 69 6f 6e 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 28 73 74 72 69 6e 67 70 20 ction."...(if.(and.(or.(stringp.
3a780 64 65 66 61 75 6c 74 2d 63 6d 64 29 20 28 6e 75 6c 6c 20 64 65 66 61 75 6c 74 2d 63 6d 64 29 29 default-cmd).(null.default-cmd))
3a7a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 72 65 61 64 ............(or.compilation-read
3a7c0 2d 63 6f 6d 6d 61 6e 64 20 61 72 67 29 29 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 -command.arg)).......(projectile
3a7e0 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 70 72 6f 6d 70 74 20 64 65 66 61 75 6c 74 2d 63 6d 64 -read-command.prompt.default-cmd
3a800 29 0a 20 20 20 20 64 65 66 61 75 6c 74 2d 63 6d 64 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a ).....default-cmd))..(defun.proj
3a820 65 63 74 69 6c 65 2d 72 75 6e 2d 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 28 63 6d 64 20 26 6f 70 74 ectile-run-compilation.(cmd.&opt
3a840 69 6f 6e 61 6c 20 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 0a 20 20 22 52 75 6e 20 65 78 ional.use-comint-mode)..."Run.ex
3a860 74 65 72 6e 61 6c 20 6f 72 20 45 6c 69 73 70 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 63 6f 6d 6d ternal.or.Elisp.compilation.comm
3a880 61 6e 64 20 43 4d 44 2e 22 0a 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 6d 64 29 0a and.CMD."...(if.(functionp.cmd).
3a8a0 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 6d 64 29 0a 20 20 20 20 28 63 6f 6d 70 69 6c 65 ......(funcall.cmd).....(compile
3a8c0 20 63 6d 64 20 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 29 29 0a 0a 28 64 65 66 76 61 72 .cmd.use-comint-mode)))..(defvar
3a8e0 20 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 74 .projectile-project-command-hist
3a900 6f 72 79 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 ory.(make-hash-table.:test.'equa
3a920 6c 29 0a 20 20 22 54 68 65 20 68 69 73 74 6f 72 79 20 6f 66 20 6c 61 73 74 20 65 78 65 63 75 74 l)..."The.history.of.last.execut
3a940 65 64 20 70 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 73 2c 20 70 65 72 20 70 72 6f 6a 65 63 74 ed.project.commands,.per.project
3a960 2e 0a 0a 50 72 6f 6a 65 63 74 73 20 61 72 65 20 69 6e 64 65 78 65 64 20 62 79 20 74 68 65 69 72 ...Projects.are.indexed.by.their
3a980 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 76 61 6c 75 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 .project-root.value.")..(defun.p
3a9a0 72 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 rojectile--get-command-history.(
3a9c0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 70 72 6f project-root)...(or.(gethash.pro
3a9e0 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 74 2d 63 6f 6d ject-root.projectile-project-com
3aa00 6d 61 6e 64 2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 70 72 6f mand-history).......(puthash.pro
3aa20 6a 65 63 74 2d 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 72 ject-root................(make-r
3aa40 69 6e 67 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c ing.16)................projectil
3aa60 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 29 29 29 0a 0a 28 63 e-project-command-history)))..(c
3aa80 6c 2d 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 2d l-defun.projectile--run-project-
3aaa0 63 6d 64 0a 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 20 26 6b 65 cmd.....(command.command-map.&ke
3aac0 79 20 73 68 6f 77 2d 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 20 73 61 76 65 y.show-prompt.prompt-prefix.save
3aae0 2d 62 75 66 66 65 72 73 20 75 73 65 2d 63 6f 6d 69 6e 74 2d 6d 6f 64 65 29 0a 20 20 22 52 75 6e -buffers.use-comint-mode)..."Run
3ab00 20 61 20 70 72 6f 6a 65 63 74 20 43 4f 4d 4d 41 4e 44 2c 20 74 79 70 69 63 61 6c 6c 79 20 61 20 .a.project.COMMAND,.typically.a.
3ab20 74 65 73 74 2d 20 6f 72 20 63 6f 6d 70 69 6c 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 43 61 63 68 65 test-.or.compile.command...Cache
3ab40 20 74 68 65 20 43 4f 4d 4d 41 4e 44 20 66 6f 72 20 6c 61 74 65 72 20 75 73 65 20 69 6e 73 69 64 .the.COMMAND.for.later.use.insid
3ab60 65 20 74 68 65 20 68 61 73 68 2d 74 61 62 6c 65 20 43 4f 4d 4d 41 4e 44 2d 4d 41 50 2e 0a 0a 4e e.the.hash-table.COMMAND-MAP...N
3ab80 6f 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 ormally.you'll.be.prompted.for.a
3aba0 20 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 .compilation.command,.unless.var
3abc0 69 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 iable.`compilation-read-command'
3abe0 2e 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 62 79 20 73 ...You.can.force.the.prompt.by.s
3ac00 65 74 74 69 6e 67 20 53 48 4f 57 2d 50 52 4f 4d 50 54 2e 20 20 54 68 65 20 70 72 6f 6d 70 74 20 etting.SHOW-PROMPT...The.prompt.
3ac20 77 69 6c 6c 20 62 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 50 52 4f 4d 50 54 2d 50 52 45 will.be.prefixed.with.PROMPT-PRE
3ac40 46 49 58 2e 0a 0a 49 66 20 53 41 56 45 2d 42 55 46 46 45 52 53 20 69 73 20 6e 6f 6e 2d 6e 69 6c FIX...If.SAVE-BUFFERS.is.non-nil
3ac60 20 73 61 76 65 20 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 20 62 75 66 66 65 72 73 20 62 65 66 .save.all.projectile.buffers.bef
3ac80 6f 72 65 0a 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 54 68 65 20 63 6f ore.running.the.command...The.co
3aca0 6d 6d 61 6e 64 20 61 63 74 75 61 6c 6c 79 20 72 75 6e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 22 mmand.actually.run.is.returned."
3acc0 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 6f 6a 65 63 74 ...(let*.((project-root.(project
3ace0 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 28 64 65 66 ile-project-root))..........(def
3ad00 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 2d 63 6f 6d 70 69 ault-directory.(projectile-compi
3ad20 6c 61 74 69 6f 6e 2d 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 lation-dir))..........(command.(
3ad40 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 73 68 projectile-maybe-read-command.sh
3ad60 6f 77 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ow-prompt.......................
3ad80 20 20 20 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 6d 6d 61 ...........................comma
3ada0 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..............................
3adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 2d 70 72 65 66 69 ....................prompt-prefi
3ade0 78 29 29 0a 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 62 75 66 66 65 72 2d x))..........compilation-buffer-
3ae00 6e 61 6d 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 name-function..........compilati
3ae20 6f 6e 2d 73 61 76 65 2d 62 75 66 66 65 72 73 2d 70 72 65 64 69 63 61 74 65 29 0a 20 20 20 20 28 on-save-buffers-predicate).....(
3ae40 77 68 65 6e 20 63 6f 6d 6d 61 6e 64 2d 6d 61 70 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 when.command-map.......(puthash.
3ae60 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e default-directory.command.comman
3ae80 64 2d 6d 61 70 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 69 73 74 20 28 70 72 6f 6a 65 63 d-map).......(let.((hist.(projec
3aea0 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 70 72 6f 6a 65 63 tile--get-command-history.projec
3aec0 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e t-root))).........(unless.(strin
3aee0 67 3d 20 28 63 61 72 2d 73 61 66 65 20 28 72 69 6e 67 2d 65 6c 65 6d 65 6e 74 73 20 68 69 73 74 g=.(car-safe.(ring-elements.hist
3af00 29 29 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 69 6e 67 2d 69 6e 73 65 )).command)...........(ring-inse
3af20 72 74 20 68 69 73 74 20 63 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 61 rt.hist.command)))).....(when.sa
3af40 76 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 ve-buffers.......(save-some-buff
3af60 65 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 ers.(not.compilation-ask-about-s
3af80 61 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 ave)..........................(l
3afa0 61 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 ambda.()........................
3afc0 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 2d 70 ....(projectile-project-buffer-p
3afe0 20 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 .(current-buffer)...............
3b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b020 20 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 ..........project-root)))).....(
3b040 77 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 when.projectile-per-project-comp
3b060 69 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 ilation-buffer.......(setq.compi
3b080 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 6e 20 23 27 70 72 lation-buffer-name-function.#'pr
3b0a0 6f 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 ojectile-compilation-buffer-name
3b0c0 29 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 ).......(setq.compilation-save-b
3b0e0 75 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 uffers-predicate.#'projectile-cu
3b100 72 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 rrent-project-buffer-p)).....(un
3b120 6c 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 less.(file-directory-p.default-d
3b140 69 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 irectory).......(mkdir.default-d
3b160 69 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 irectory)).....(projectile-run-c
3b180 6f 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 ompilation.command.use-comint-mo
3b1a0 64 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 de).....command))..(defcustom.pr
3b1c0 6f 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 ojectile-configure-use-comint-mo
3b1e0 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 65 72 de.nil..."Make.the.output.buffer
3b200 20 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 .of.`projectile-configure-projec
3b220 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
3b240 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
3b260 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"
3b280 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 69 6c ))..(defcustom.projectile-compil
3b2a0 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
3b2c0 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 63 e.output.buffer.of.`projectile-c
3b2e0 6f 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 ompile-project'.interactive."...
3b300 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
3b320 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
3b340 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
3b360 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 65 20 6e 69 6c 0a ectile-test-use-comint-mode.nil.
3b380 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 6f 66 20 60 70 72 .."Make.the.output.buffer.of.`pr
3b3a0 6f 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 ojectile-test-project'.interacti
3b3c0 76 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 ve."...:group.'projectile...:typ
3b3e0 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 20 27 28 e.'boolean...:package-version.'(
3b400 70 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 projectile..."2.5.0"))..(defcust
3b420 6f 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 om.projectile-install-use-comint
3b440 2d 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 -mode.nil..."Make.the.output.buf
3b460 66 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 fer.of.`projectile-install-proje
3b480 63 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 ct'.interactive."...:group.'proj
3b4a0 65 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 ectile...:type.'boolean...:packa
3b4c0 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 35 2e 30 ge-version.'(projectile..."2.5.0
3b4e0 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 70 61 63 6b 61 "))..(defcustom.projectile-packa
3b500 67 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 ge-use-comint-mode.nil..."Make.t
3b520 68 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 he.output.buffer.of.`projectile-
3b540 70 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 package-project'.interactive."..
3b560 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
3b580 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
3b5a0 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 6d 20 70 72 6f tile..."2.5.0"))..(defcustom.pro
3b5c0 6a 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 jectile-run-use-comint-mode.nil.
3b5e0 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 6f 66 20 60 70 72 .."Make.the.output.buffer.of.`pr
3b600 6f 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 ojectile-run-project'.interactiv
3b620 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
3b640 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
3b660 72 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 rojectile..."2.5.0"))..;;;###aut
3b680 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 6e 66 69 67 75 72 oload.(defun.projectile-configur
3b6a0 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 65 63 74 20 63 e-project.(arg)..."Run.project.c
3b6c0 6f 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 onfigure.command...Normally.you'
3b6e0 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
3b700 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
3b720 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
3b740 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 65 66 69 78 20 41 52 orce.the.prompt.with.a.prefix.AR
3b760 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 20 28 6c 65 74 20 28 G."...(interactive."P")...(let.(
3b780 28 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 (command.(projectile-configure-c
3b7a0 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 69 6f 6e 2d 64 ommand.(projectile-compilation-d
3b7c0 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 28 69 66 20 28 ir))).........(command-map.(if.(
3b7e0 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
3b800 64 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 ds-p).projectile-configure-cmd-m
3b820 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 65 ap))).....(projectile--run-proje
3b840 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 20 ct-cmd.command.command-map......
3b860 20 20 20 20 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 ............................:sho
3b880 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 20 w-prompt.arg....................
3b8a0 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 6f ..............:prompt-prefix."Co
3b8c0 6e 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 nfigure.command:."..............
3b8e0 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 72 ....................:save-buffer
3b900 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 20 s.t.............................
3b920 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 65 .....:use-comint-mode.projectile
3b940 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 65 29 29 29 0a 0a 3b -configure-use-comint-mode)))..;
3b960 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-
3b980 63 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 compile-project.(arg)..."Run.pro
3b9a0 6a 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 ject.compilation.command...Norma
3b9c0 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 63 6f 6d lly.you'll.be.prompted.for.a.com
3b9e0 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 61 62 6c pilation.command,.unless.variabl
3ba00 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 20 20 59 e.`compilation-read-command'...Y
3ba20 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 61 20 70 ou.can.force.the.prompt.with.a.p
3ba40 72 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 refix.ARG...Per.project.default.
3ba60 63 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 command.can.be.set.through.`proj
3ba80 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 6d 64 27 2e ectile-project-compilation-cmd'.
3baa0 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 63 "...(interactive."P")...(let.((c
3bac0 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 69 6f 6e 2d 63 ommand.(projectile-compilation-c
3bae0 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 69 6f 6e 2d 64 ommand.(projectile-compilation-d
3bb00 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 28 69 66 20 28 ir))).........(command-map.(if.(
3bb20 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
3bb40 64 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 ds-p).projectile-compilation-cmd
3bb60 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 6f -map))).....(projectile--run-pro
3bb80 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 20 ject-cmd.command.command-map....
3bba0 20 20 20 20 20 20 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 ..............................:s
3bbc0 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 20 how-prompt.arg..................
3bbe0 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 22 ................:prompt-prefix."
3bc00 43 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 Compile.command:."..............
3bc20 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 72 ....................:save-buffer
3bc40 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 20 s.t.............................
3bc60 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 65 .....:use-comint-mode.projectile
3bc80 2d 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 -compile-use-comint-mode)))..;;;
3bca0 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 65 ###autoload.(defun.projectile-te
3bcc0 73 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 st-project.(arg)..."Run.project.
3bce0 74 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 test.command...Normally.you'll.b
3bd00 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 63 6f 6d e.prompted.for.a.compilation.com
3bd20 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 61 74 69 mand,.unless.variable.`compilati
3bd40 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 72 63 65 on-read-command'...You.can.force
3bd60 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 2e 22 0a .the.prompt.with.a.prefix.ARG.".
3bd80 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 6d ..(interactive."P")...(let.((com
3bda0 6d 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 mand.(projectile-test-command.(p
3bdc0 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 29 0a 20 20 20 rojectile-compilation-dir)))....
3bde0 20 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 .....(command-map.(if.(projectil
3be00 65 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 e--cache-project-commands-p).pro
3be20 6a 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 jectile-test-cmd-map))).....(pro
3be40 6a 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 jectile--run-project-cmd.command
3be60 20 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 .command-map....................
3be80 20 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 ..............:show-prompt.arg..
3bea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3bec0 3a 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 :prompt-prefix."Test.command:.".
3bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3bf00 20 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 .:save-buffers.t................
3bf20 20 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 ..................:use-comint-mo
3bf40 64 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 de.projectile-test-use-comint-mo
3bf60 64 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 de)))..;;;###autoload.(defun.pro
3bf80 6a 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 jectile-install-project.(arg)...
3bfa0 22 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 "Run.project.install.command...N
3bfc0 6f 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 ormally.you'll.be.prompted.for.a
3bfe0 20 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 .compilation.command,.unless.var
3c000 69 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 iable.`compilation-read-command'
3c020 2e 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 ...You.can.force.the.prompt.with
3c040 20 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 .a.prefix.ARG."...(interactive."
3c060 50 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 P")...(let.((command.(projectile
3c080 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 6c 65 2d 63 6f 6d -install-command.(projectile-com
3c0a0 70 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 pilation-dir))).........(command
3c0c0 2d 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 -map.(if.(projectile--cache-proj
3c0e0 65 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 ect-commands-p).projectile-insta
3c100 6c 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 ll-cmd-map))).....(projectile--r
3c120 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 6d 6d 61 6e 64 2d 6d un-project-cmd.command.command-m
3c140 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 20 20 20 20 20 20 20 ap..............................
3c160 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 20 20 20 20 20 20 20 ....:show-prompt.arg............
3c180 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 72 ......................:prompt-pr
3c1a0 65 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 efix."Install.command:."........
3c1c0 20 20 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 ..........................:save-
3c1e0 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 20 20 20 20 20 20 buffers.t.......................
3c200 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 65 20 70 72 6f 6a ...........:use-comint-mode.proj
3c220 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 6d 6f 64 65 29 29 ectile-install-use-comint-mode))
3c240 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
3c260 69 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 ile-package-project.(arg)..."Run
3c280 20 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 .project.package.command...Norma
3c2a0 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 63 6f 6d lly.you'll.be.prompted.for.a.com
3c2c0 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 61 62 6c pilation.command,.unless.variabl
3c2e0 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 20 20 59 e.`compilation-read-command'...Y
3c300 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 61 20 70 ou.can.force.the.prompt.with.a.p
3c320 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 22 29 0a refix.ARG."...(interactive."P").
3c340 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 70 61 63 ..(let.((command.(projectile-pac
3c360 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 63 6f 6d 70 69 6c 61 kage-command.(projectile-compila
3c380 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 6d 61 70 tion-dir))).........(command-map
3c3a0 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 63 74 2d .(if.(projectile--cache-project-
3c3c0 63 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 commands-p).projectile-package-c
3c3e0 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 6e 2d 70 md-map))).....(projectile--run-p
3c400 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 70 0a 20 roject-cmd.command.command-map..
3c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3c440 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 20 20 20 :show-prompt.arg................
3c460 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 66 69 78 ..................:prompt-prefix
3c480 20 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 ."Package.command:."............
3c4a0 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 75 66 66 ......................:save-buff
3c4c0 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 20 20 20 ers.t...........................
3c4e0 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 63 74 69 .......:use-comint-mode.projecti
3c500 6c 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 le-package-use-comint-mode)))..;
3c520 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-
3c540 72 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 run-project.(arg)..."Run.project
3c560 20 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 .run.command...Normally.you'll.b
3c580 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 63 6f 6d e.prompted.for.a.compilation.com
3c5a0 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 61 74 69 mand,.unless.variable.`compilati
3c5c0 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 72 63 65 on-read-command'...You.can.force
3c5e0 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 2e 22 0a .the.prompt.with.a.prefix.ARG.".
3c600 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 6d ..(interactive."P")...(let.((com
3c620 6d 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 mand.(projectile-run-command.(pr
3c640 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))).....
3c660 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
3c680 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
3c6a0 65 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 ectile-run-cmd-map))).....(proje
3c6c0 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 63 ctile--run-project-cmd.command.c
3c6e0 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 20 ommand-map......................
3c700 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 20 ............:show-prompt.arg....
3c720 20 20 20 20 20 20 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
3c740 72 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 rompt-prefix."Run.command:."....
3c760 20 20 20 20 20 20 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 ..............................:u
3c780 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 72 75 6e 2d 75 73 se-comint-mode.projectile-run-us
3c7a0 65 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 e-comint-mode)))..;;;###autoload
3c7c0 0a 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 .(defun.projectile-repeat-last-c
3c7e0 6f 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 ommand.(show-prompt)..."Run.last
3c800 20 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 .projectile.external.command...E
3c820 78 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 xternal.commands.are:.`projectil
3c840 65 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 e-configure-project',.`projectil
3c860 65 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 e-compile-project',.`projectile-
3c880 74 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 test-project',.`projectile-insta
3c8a0 6c 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 ll-project',.`projectile-package
3c8c0 2d 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 -project',.and.`projectile-run-p
3c8e0 72 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 roject'...If.the.prefix.argument
3c900 20 53 48 4f 57 5f 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 .SHOW_PROMPT.is.non.nil,.the.com
3c920 6d 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 mand.can.be.edited."...(interact
3c940 69 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 ive."P")...(let*.((project-root.
3c960 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 20 20 (projectile-acquire-root))......
3c980 20 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 ....(command-history.(projectile
3c9a0 2d 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 --get-command-history.project-ro
3c9c0 6f 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 ot))..........(command.(car-safe
3c9e0 20 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 .(ring-elements.command-history)
3ca00 29 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 ))..........(compilation-read-co
3ca20 6d 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 mmand.show-prompt)..........exec
3ca40 75 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 uted-command).....(unless.comman
3ca60 64 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 d.......(user-error."No.command.
3ca80 68 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 has.been.run.yet.for.this.projec
3caa0 74 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 t")).....(setq.executed-command.
3cac0 20 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 ..........(projectile--run-proje
3cae0 63 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 ct-cmd.command..................
3cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 ......................nil.......
3cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3cb40 20 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 .:save-buffers.t................
3cb60 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 6d 70 74 2d ........................:prompt-
3cb80 70 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 prefix."Execute.command:."))....
3cba0 20 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 .(unless.(string=.command.execut
3cbc0 65 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 ed-command).......(ring-insert.c
3cbe0 6f 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 ommand-history.executed-command)
3cc00 29 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 )))..(defun.compilation-find-fil
3cc20 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 6f 6e 2d 62 75 e-projectile-find-compilation-bu
3cc40 66 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 ffer.(orig-fun.marker.filename.d
3cc60 69 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 irectory.&rest.formats)..."Advic
3cc80 65 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 e.around.compilation-find-file..
3cca0 57 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 We.enhance.its.functionality.by.
3ccc0 61 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 appending.the.current.project's.
3cce0 64 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 directories.to.its.search.path..
3cd00 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
3cd20 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
3cd40 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
3cd60 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
3cd80 65 63 74 6f 72 69 65 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 20 28 70 72 6f 6a 65 ectories."...(let*.((root.(proje
3cda0 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 20 20 20 28 63 ctile-project-root))..........(c
3cdc0 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 ompilation-search-path..........
3cde0 20 28 69 66 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 .(if.(projectile-project-p).....
3ce00 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 ..........(append.compilation-se
3ce20 61 72 63 68 2d 70 61 74 68 20 28 6c 69 73 74 20 72 6f 6f 74 29 0a 20 20 20 20 20 20 20 20 20 20 arch-path.(list.root)...........
3ce40 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 20 28 66 29 20 ............(mapcar.(lambda.(f).
3ce60 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 20 72 6f 6f 74 29 29 0a 20 20 20 20 20 (expand-file-name.f.root))......
3ce80 20 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
3cea0 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 29 29 29 0a 20 20 20 tile-current-project-dirs)))....
3cec0 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2d 73 65 61 72 63 68 2d 70 61 74 68 .........compilation-search-path
3cee0 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 6f 72 69 67 2d 66 75 6e 20 60 28 2c 6d 61 72 6b 65 ))).....(apply.orig-fun.`(,marke
3cf00 72 20 2c 66 69 6c 65 6e 61 6d 65 20 2c 64 69 72 65 63 74 6f 72 79 20 2c 40 66 6f 72 6d 61 74 73 r.,filename.,directory.,@formats
3cf20 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 70 65 6e 2d 70 72 6f ))))..(defun.projectile-open-pro
3cf40 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 61 6c 6c jects.()..."Return.a.list.of.all
3cf60 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 73 2e 0a 41 6e 20 6f 70 65 6e 20 70 72 6f 6a 65 63 74 20 .open.projects..An.open.project.
3cf80 69 73 20 61 20 70 72 6f 6a 65 63 74 20 77 69 74 68 20 61 6e 79 20 6f 70 65 6e 20 62 75 66 66 65 is.a.project.with.any.open.buffe
3cfa0 72 73 2e 22 0a 20 20 28 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 28 64 65 6c 71 20 6e 69 6c rs."...(delete-dups....(delq.nil
3cfc0 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 65 ..........(mapcar.(lambda.(buffe
3cfe0 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 r)....................(with-curr
3d000 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent-buffer.buffer...............
3d020 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 .......(when-let.((project-root.
3d040 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 0a 20 20 20 20 (projectile-project-root))).....
3d060 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 70 72 6f 6a 65 63 ...................(when.(projec
3d080 74 69 6c 65 2d 70 72 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 tile-project-buffer-p.buffer.pro
3d0a0 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 20 20 20 20 ject-root)......................
3d0c0 20 20 20 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 ....(abbreviate-file-name.projec
3d0e0 74 2d 72 6f 6f 74 29 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 t-root)))))..................(bu
3d100 66 66 65 72 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 ffer-list)))))..(defun.projectil
3d120 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 28 70 72 6f 6a 65 e--remove-current-project.(proje
3d140 63 74 73 29 0a 20 20 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 cts)..."Remove.the.current.proje
3d160 63 74 20 28 69 66 20 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 ct.(if.any).from.the.list.of.PRO
3d180 4a 45 43 54 53 2e 22 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 20 28 70 72 6f JECTS."...(if-let.((project.(pro
3d1a0 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 20 20 28 70 jectile-project-root))).......(p
3d1c0 72 6f 6a 65 63 74 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 rojectile-difference.projects...
3d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 ...........................(list
3d200 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 29 29 .(abbreviate-file-name.project))
3d220 29 0a 20 20 20 20 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 ).....projects))..(defun.project
3d240 69 6c 65 2d 2d 6d 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 ile--move-current-project-to-end
3d260 20 28 70 72 6f 6a 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 .(projects)..."Move.current.proj
3d280 65 63 74 20 28 69 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 ect.(if.any).to.the.end.of.list.
3d2a0 69 6e 20 74 68 65 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 in.the.list.of.PROJECTS."...(if-
3d2c0 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 70 72 6f 6a 65 63 let.((project.(projectile-projec
3d2e0 74 2d 72 6f 6f 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 t-root))).......(append........(
3d300 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 72 6f 6a 65 projectile--remove-current-proje
3d320 63 74 20 70 72 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 ct.projects)........(list.(abbre
3d340 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 70 viate-file-name.project))).....p
3d360 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 72 65 6c rojects))..(defun.projectile-rel
3d380 65 76 61 6e 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 52 65 74 75 72 evant-known-projects.()..."Retur
3d3a0 6e 20 61 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 0a 20 20 28 n.a.list.of.known.projects."...(
3d3c0 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 63 74 pcase.projectile-current-project
3d3e0 2d 6f 6e 2d 73 77 69 74 63 68 0a 20 20 20 20 28 27 72 65 6d 6f 76 65 20 28 70 72 6f 6a 65 63 74 -on-switch.....('remove.(project
3d400 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 6f 6a ile--remove-current-project.proj
3d420 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 28 27 6d 6f ectile-known-projects)).....('mo
3d440 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 72 ve-to-end.(projectile--move-curr
3d460 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 74 6f 2d 65 6e 64 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e ent-project-to-end.projectile-kn
3d480 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 28 27 6b 65 65 70 20 70 72 6f 6a 65 63 own-projects)).....('keep.projec
3d4a0 74 69 6c 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 tile-known-projects)))..(defun.p
3d4c0 72 6f 6a 65 63 74 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 rojectile-relevant-open-projects
3d4e0 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 6f 70 65 6e 20 70 72 6f .()..."Return.a.list.of.open.pro
3d500 6a 65 63 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 20 28 jects."...(let.((open-projects.(
3d520 70 72 6f 6a 65 63 74 69 6c 65 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 projectile-open-projects))).....
3d540 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 63 (pcase.projectile-current-projec
3d560 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 6a t-on-switch.......('remove.(proj
3d580 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 6f ectile--remove-current-project.o
3d5a0 70 65 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 2d 65 pen-projects)).......('move-to-e
3d5c0 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 72 6f nd.(projectile--move-current-pro
3d5e0 6a 65 63 74 2d 74 6f 2d 65 6e 64 20 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 ject-to-end.open-projects)).....
3d600 20 20 28 27 6b 65 65 70 20 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 29 0a 0a 3b 3b 3b 23 ..('keep.open-projects))))..;;;#
3d620 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 77 69 ##autoload.(defun.projectile-swi
3d640 74 63 68 2d 70 72 6f 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 tch-project.(&optional.arg)..."S
3d660 77 69 74 63 68 20 74 6f 20 61 20 70 72 6f 6a 65 63 74 20 77 65 20 68 61 76 65 20 76 69 73 69 74 witch.to.a.project.we.have.visit
3d680 65 64 20 62 65 66 6f 72 65 2e 0a 49 6e 76 6f 6b 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 72 ed.before..Invokes.the.command.r
3d6a0 65 66 65 72 65 6e 63 65 64 20 62 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d eferenced.by.`projectile-switch-
3d6c0 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 27 20 6f 6e 20 73 77 69 74 63 68 2e 0a 57 69 74 68 20 project-action'.on.switch..With.
3d6e0 61 20 70 72 65 66 69 78 20 41 52 47 20 69 6e 76 6f 6b 65 73 20 60 70 72 6f 6a 65 63 74 69 6c 65 a.prefix.ARG.invokes.`projectile
3d700 2d 63 6f 6d 6d 61 6e 64 65 72 27 20 69 6e 73 74 65 61 64 20 6f 66 0a 60 70 72 6f 6a 65 63 74 69 -commander'.instead.of.`projecti
3d720 6c 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 2e 27 22 0a 20 20 28 69 le-switch-project-action.'"...(i
3d740 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 63 74 nteractive."P")...(let.((project
3d760 73 20 28 70 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 s.(projectile-relevant-known-pro
3d780 6a 65 63 74 73 29 29 29 0a 20 20 20 20 28 69 66 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 jects))).....(if.projects.......
3d7a0 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 64 0a 20 20 ..(projectile-completing-read...
3d7c0 20 20 20 20 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 ......."Switch.to.project:.".pro
3d7e0 6a 65 63 74 73 0a 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 jects..........:action.(lambda.(
3d800 70 72 6f 6a 65 63 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 project)....................(pro
3d820 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 6e 61 6d 65 20 70 jectile-switch-project-by-name.p
3d840 72 6f 6a 65 63 74 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 roject.arg))).......(user-error.
3d860 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 22 29 29 29 "There.are.no.known.projects")))
3d880 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
3d8a0 69 6c 65 2d 73 77 69 74 63 68 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e ile-switch-open-project.(&option
3d8c0 61 6c 20 61 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 al.arg)..."Switch.to.a.project.w
3d8e0 65 20 68 61 76 65 20 63 75 72 72 65 6e 74 6c 79 20 6f 70 65 6e 65 64 2e 0a 49 6e 76 6f 6b 65 73 e.have.currently.opened..Invokes
3d900 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 20 60 70 72 6f 6a .the.command.referenced.by.`proj
3d920 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 27 20 6f 6e ectile-switch-project-action'.on
3d940 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 20 69 6e 76 6f 6b .switch..With.a.prefix.ARG.invok
3d960 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 69 6e 73 74 65 61 es.`projectile-commander'.instea
3d980 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 6f 6a 65 63 74 2d d.of.`projectile-switch-project-
3d9a0 61 63 74 69 6f 6e 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 action.'"...(interactive."P")...
3d9c0 28 6c 65 74 20 28 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 (let.((projects.(projectile-rele
3d9e0 76 61 6e 74 2d 6f 70 65 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 28 69 66 20 70 72 vant-open-projects))).....(if.pr
3da00 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 63 6f 6d 70 6c ojects.........(projectile-compl
3da20 65 74 69 6e 67 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 6f eting-read.........."Switch.to.o
3da40 70 65 6e 20 70 72 6f 6a 65 63 74 3a 20 22 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 pen.project:.".projects.........
3da60 20 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 .:action.(lambda.(project)......
3da80 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 73 77 69 74 63 68 ..............(projectile-switch
3daa0 2d 70 72 6f 6a 65 63 74 2d 62 79 2d 6e 61 6d 65 20 70 72 6f 6a 65 63 74 20 61 72 67 29 29 29 0a -project-by-name.project.arg))).
3dac0 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 ......(user-error."There.are.no.
3dae0 6f 70 65 6e 20 70 72 6f 6a 65 63 74 73 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 open.projects"))))..(defun.proje
3db00 63 74 69 6c 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 28 70 72 ctile-switch-project-by-name.(pr
3db20 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 20 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 oject-to-switch.&optional.arg)..
3db40 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 20 62 79 20 70 72 6f 6a 65 63 74 20 6e ."Switch.to.project.by.project.n
3db60 61 6d 65 20 50 52 4f 4a 45 43 54 2d 54 4f 2d 53 57 49 54 43 48 2e 0a 49 6e 76 6f 6b 65 73 20 74 ame.PROJECT-TO-SWITCH..Invokes.t
3db80 68 65 20 63 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 he.command.referenced.by.`projec
3dba0 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 27 20 6f 6e 20 73 tile-switch-project-action'.on.s
3dbc0 77 69 74 63 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 witch..With.a.prefix.ARG.invokes
3dbe0 20 60 70 72 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 .`projectile-commander'.instead.
3dc00 6f 66 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 of.`projectile-switch-project-ac
3dc20 74 69 6f 6e 2e 27 22 0a 20 20 3b 3b 20 6c 65 74 27 73 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 tion.'"...;;.let's.make.sure.tha
3dc40 74 20 74 68 65 20 74 61 72 67 65 74 20 64 69 72 65 63 74 6f 72 79 20 65 78 69 73 74 73 20 61 6e t.the.target.directory.exists.an
3dc60 64 20 69 73 20 61 63 74 75 61 6c 6c 79 20 61 20 70 72 6f 6a 65 63 74 0a 20 20 3b 3b 20 77 65 20 d.is.actually.a.project...;;.we.
3dc80 69 67 6e 6f 72 65 20 72 65 6d 6f 74 65 20 66 6f 6c 64 65 72 73 2c 20 61 73 20 74 68 65 20 63 68 ignore.remote.folders,.as.the.ch
3dca0 65 63 6b 20 62 72 65 61 6b 73 20 66 6f 72 20 54 52 41 4d 50 20 75 6e 6c 65 73 73 20 61 6c 72 65 eck.breaks.for.TRAMP.unless.alre
3dcc0 61 64 79 20 63 6f 6e 6e 65 63 74 65 64 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 66 69 6c ady.connected...(unless.(or.(fil
3dce0 65 2d 72 65 6d 6f 74 65 2d 70 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 20 28 70 e-remote-p.project-to-switch).(p
3dd00 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 rojectile-project-p.project-to-s
3dd20 77 69 74 63 68 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b witch)).....(projectile-remove-k
3dd40 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 0a nown-project.project-to-switch).
3dd60 20 20 20 20 28 65 72 72 6f 72 20 22 44 69 72 65 63 74 6f 72 79 20 25 73 20 69 73 20 6e 6f 74 20 ....(error."Directory.%s.is.not.
3dd80 61 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 29 0a 20 a.project".project-to-switch))..
3dda0 20 28 6c 65 74 20 28 28 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f 6e 20 28 69 .(let.((switch-project-action.(i
3ddc0 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 20 20 20 f.arg...........................
3dde0 20 20 20 20 20 20 20 20 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 0a 20 .........'projectile-commander..
3de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3de20 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
3de40 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 62 ))).....(run-hooks.'projectile-b
3de60 65 66 6f 72 65 2d 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 28 efore-switch-project-hook).....(
3de80 6c 65 74 2a 20 28 28 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 70 72 6f 6a 65 63 74 let*.((default-directory.project
3dea0 2d 74 6f 2d 73 77 69 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 65 64 -to-switch)............(switched
3dec0 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 20 61 20 74 65 6d -buffer.............;;.use.a.tem
3dee0 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 74 6f 20 6c 6f 61 64 20 50 52 4f 4a 45 43 54 2d 54 4f porary.buffer.to.load.PROJECT-TO
3df00 2d 53 57 49 54 43 48 27 73 20 64 69 72 2d 6c 6f 63 61 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 -SWITCH's.dir-locals............
3df20 20 3b 3b 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 53 57 49 54 43 48 2d 50 52 4f 4a 45 43 .;;.before.calling.SWITCH-PROJEC
3df40 54 2d 41 43 54 49 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d T-ACTION.............(with-temp-
3df60 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61 63 6b 2d 64 69 72 2d 6c buffer...............(hack-dir-l
3df80 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 0a ocal-variables-non-file-buffer).
3dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 72 6d 61 6c 6c 79 20 74 68 65 20 70 72 ..............;;.Normally.the.pr
3dfc0 6f 6a 65 63 74 20 6e 61 6d 65 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 66 72 6f 6d 20 74 68 oject.name.is.determined.from.th
3dfe0 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 e.current...............;;.buffe
3e000 72 2e 20 48 6f 77 65 76 65 72 2c 20 77 68 65 6e 20 77 65 27 72 65 20 73 77 69 74 63 68 69 6e 67 r..However,.when.we're.switching
3e020 20 70 72 6f 6a 65 63 74 73 2c 20 77 65 20 77 61 6e 74 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 .projects,.we.want.to...........
3e040 20 20 20 20 3b 3b 20 73 68 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 6a ....;;.show.the.name.of.the.proj
3e060 65 63 74 20 62 65 69 6e 67 20 73 77 69 74 63 68 65 64 20 74 6f 2c 20 72 61 74 68 65 72 20 74 68 ect.being.switched.to,.rather.th
3e080 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 63 75 72 72 65 6e 74 20 an...............;;.the.current.
3e0a0 70 72 6f 6a 65 63 74 2c 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 20 54 68 69 73 project,.in.the.minibuffer..This
3e0c0 20 69 73 20 61 20 73 69 6d 70 6c 65 20 68 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .is.a.simple.hack...............
3e0e0 3b 3b 20 74 6f 20 74 65 6c 6c 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 ;;.to.tell.the.`projectile-proje
3e100 63 74 2d 6e 61 6d 65 27 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 69 67 6e 6f 72 65 20 74 68 65 0a ct-name'.function.to.ignore.the.
3e120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 ..............;;.current.buffer.
3e140 61 6e 64 20 74 68 65 20 63 61 63 68 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 2c 20 61 6e 64 20 6a and.the.caching.mechanism,.and.j
3e160 75 73 74 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ust.return.the...............;;.
3e180 76 61 6c 75 65 20 6f 66 20 74 68 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 value.of.the.`projectile-project
3e1a0 2d 6e 61 6d 65 27 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -name'.variable................(
3e1c0 6c 65 74 20 28 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 28 66 let.((projectile-project-name.(f
3e1e0 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 2d 66 uncall.projectile-project-name-f
3e200 75 6e 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 20 20 20 20 20 unction.........................
3e220 20 20 20 20 20 20 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
3e240 6f 6a 65 63 74 2d 74 6f 2d 73 77 69 74 63 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 oject-to-switch)))..............
3e260 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 77 69 74 63 68 2d 70 72 6f 6a 65 63 74 2d 61 63 74 69 6f ...(funcall.switch-project-actio
3e280 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 n).................(current-buff
3e2a0 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 73 77 69 74 63 68 2d 70 72 6f 6a 65 er))))).......;;.If.switch-proje
3e2c0 63 74 2d 61 63 74 69 6f 6e 20 73 77 69 74 63 68 65 64 20 62 75 66 66 65 72 73 20 74 68 65 6e 20 ct-action.switched.buffers.then.
3e2e0 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 77 69 6c 6c 0a 20 20 20 20 20 20 3b 3b 20 68 with-temp-buffer.will.......;;.h
3e300 61 76 65 20 6c 6f 73 74 20 74 68 61 74 20 63 68 61 6e 67 65 2c 20 73 6f 20 73 77 69 74 63 68 20 ave.lost.that.change,.so.switch.
3e320 62 61 63 6b 20 74 6f 20 74 68 65 20 63 6f 72 72 65 63 74 20 62 75 66 66 65 72 2e 0a 20 20 20 20 back.to.the.correct.buffer......
3e340 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 73 77 69 74 63 68 65 64 2d ..(when.(buffer-live-p.switched-
3e360 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 buffer).........(switch-to-buffe
3e380 72 20 73 77 69 74 63 68 65 64 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 72 75 6e 2d 68 6f r.switched-buffer))).....(run-ho
3e3a0 6f 6b 73 20 27 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 6f oks.'projectile-after-switch-pro
3e3c0 6a 65 63 74 2d 68 6f 6f 6b 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 ject-hook)))..;;;###autoload.(de
3e3e0 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 69 6e 2d 64 69 72 65 fun.projectile-find-file-in-dire
3e400 63 74 6f 72 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 4a ctory.(&optional.directory)..."J
3e420 75 6d 70 20 74 6f 20 61 20 66 69 6c 65 20 69 6e 20 61 20 28 6d 61 79 62 65 20 72 65 67 75 6c 61 ump.to.a.file.in.a.(maybe.regula
3e440 72 29 20 44 49 52 45 43 54 4f 52 59 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c r).DIRECTORY...This.command.will
3e460 20 66 69 72 73 74 20 70 72 6f 6d 70 74 20 66 6f 72 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 .first.prompt.for.the.directory.
3e480 74 68 65 20 66 69 6c 65 20 69 73 20 69 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 the.file.is.in."...(interactive.
3e4a0 22 44 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 64 69 72 65 63 74 6f 72 79 3a 20 22 29 0a 20 20 28 "DFind.file.in.directory:.")...(
3e4c0 75 6e 6c 65 73 73 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 unless.(projectile--directory-p.
3e4e0 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 44 69 72 65 directory).....(user-error."Dire
3e500 63 74 6f 72 79 20 25 53 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 65 63 74 6f ctory.%S.does.not.exist".directo
3e520 72 79 29 29 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 ry))...(let.((default-directory.
3e540 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 28 69 66 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d directory)).....(if.(projectile-
3e560 70 72 6f 6a 65 63 74 2d 70 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 61 72 67 65 74 20 64 69 72 project-p).........;;.target.dir
3e580 65 63 74 6f 72 79 20 69 73 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 28 ectory.is.in.a.project.........(
3e5a0 6c 65 74 20 28 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 6e let.((file.(projectile-completin
3e5c0 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 20 g-read."Find.file:."............
3e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e600 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 2d 66 69 6c 65 73 20 64 69 72 65 63 .....(projectile-dir-files.direc
3e620 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 65 tory))))...........(find-file.(e
3e640 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))
3e660 0a 20 20 20 20 20 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 ...........(run-hooks.'projectil
3e680 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 3b 3b 20 74 61 72 67 e-find-file-hook)).......;;.targ
3e6a0 65 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 69 6e 20 61 20 70 72 6f 6a 65 63 74 et.directory.is.not.in.a.project
3e6c0 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 29 29 29 29 .......(projectile-find-file))))
3e6e0 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 6c 6c 2d 70 72 6f 6a 65 63 74 2d ..(defun.projectile-all-project-
3e700 66 69 6c 65 73 20 28 29 0a 20 20 22 47 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 66 69 files.()..."Get.a.list.of.all.fi
3e720 6c 65 73 20 69 6e 20 61 6c 6c 20 70 72 6f 6a 65 63 74 73 2e 22 0a 20 20 28 63 6c 2d 6d 61 70 63 les.in.all.projects."...(cl-mapc
3e740 61 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 28 77 68 an....(lambda.(project)......(wh
3e760 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 20 en.(file-exists-p.project)......
3e780 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 ..(mapcar.(lambda.(file)........
3e7a0 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 ..........(expand-file-name.file
3e7c0 20 70 72 6f 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 .project))................(proje
3e7e0 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 63 74 29 29 29 29 0a ctile-project-files.project)))).
3e800 20 20 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 0a 0a ...projectile-known-projects))..
3e820 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
3e840 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 20 28 29 0a -find-file-in-known-projects.().
3e860 20 20 22 4a 75 6d 70 20 74 6f 20 61 20 66 69 6c 65 20 69 6e 20 61 6e 79 20 6f 66 20 74 68 65 20 .."Jump.to.a.file.in.any.of.the.
3e880 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 65 29 known.projects."...(interactive)
3e8a0 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 ...(find-file.(projectile-comple
3e8c0 74 69 6e 67 2d 72 65 61 64 20 22 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 70 72 6f 6a 65 63 74 73 ting-read."Find.file.in.projects
3e8e0 3a 20 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 61 6c 6c 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 :.".(projectile-all-project-file
3e900 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 6b 65 65 70 2d 70 72 s))))..(defun.projectile-keep-pr
3e920 6f 6a 65 63 74 2d 70 20 28 70 72 6f 6a 65 63 74 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 77 oject-p.(project)..."Determine.w
3e940 68 65 74 68 65 72 20 77 65 20 73 68 6f 75 6c 64 20 63 6c 65 61 6e 75 70 20 28 72 65 6d 6f 76 65 hether.we.should.cleanup.(remove
3e960 29 20 50 52 4f 4a 45 43 54 20 6f 72 20 6e 6f 74 2e 0a 0a 49 74 20 68 61 6e 64 6c 65 73 20 74 68 ).PROJECT.or.not...It.handles.th
3e980 65 20 63 61 73 65 20 6f 66 20 72 65 6d 6f 74 65 20 70 72 6f 6a 65 63 74 73 20 61 73 20 77 65 6c e.case.of.remote.projects.as.wel
3e9a0 6c 2e 0a 53 65 65 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 2d 63 6c 65 61 6e 75 70 2d 6b 6e 6f 77 l..See.`projectile--cleanup-know
3e9c0 6e 2d 70 72 6f 6a 65 63 74 73 27 2e 22 0a 20 20 3b 3b 20 54 61 6b 65 6e 20 66 72 6f 6d 20 66 72 n-projects'."...;;.Taken.from.fr
3e9e0 6f 6d 20 60 72 65 63 65 6e 74 66 2d 6b 65 65 70 2d 64 65 66 61 75 6c 74 2d 70 72 65 64 69 63 61 om.`recentf-keep-default-predica
3ea00 74 65 27 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 70 te'...(cond....((file-remote-p.p
3ea20 72 6f 6a 65 63 74 20 6e 69 6c 20 74 29 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 70 roject.nil.t).(file-readable-p.p
3ea40 72 6f 6a 65 63 74 29 29 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 70 72 6f 6a roject))....((file-remote-p.proj
3ea60 65 63 74 29 29 0a 20 20 20 28 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 70 72 6f 6a 65 ect))....((file-readable-p.proje
3ea80 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 2d 63 6c 65 61 6e ct))))..(defun.projectile--clean
3eaa0 75 70 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 6b up-known-projects.()..."Remove.k
3eac0 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 74 68 61 74 20 64 6f 6e 27 74 20 65 78 69 73 74 20 61 nown.projects.that.don't.exist.a
3eae0 6e 79 6d 6f 72 65 2e 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 nymore..Return.a.list.of.project
3eb00 73 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 65 72 67 65 2d s.removed."...(projectile-merge-
3eb20 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 known-projects)...(let.((project
3eb40 73 2d 6b 65 70 74 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 23 27 70 72 6f 6a 65 s-kept.(cl-remove-if-not.#'proje
3eb60 63 74 69 6c 65 2d 6b 65 65 70 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d ctile-keep-project-p.projectile-
3eb80 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 known-projects)).........(projec
3eba0 74 73 2d 72 65 6d 6f 76 65 64 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 23 27 70 72 6f 6a 65 ts-removed.(cl-remove-if.#'proje
3ebc0 63 74 69 6c 65 2d 6b 65 65 70 2d 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d ctile-keep-project-p.projectile-
3ebe0 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a known-projects))).....(setq.proj
3ec00 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 70 72 6f 6a 65 63 74 73 2d 6b ectile-known-projects.projects-k
3ec20 65 70 74 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 65 72 67 65 2d 6b 6e 6f 77 6e ept).....(projectile-merge-known
3ec40 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 70 72 6f 6a 65 63 74 73 2d 72 65 6d 6f 76 65 64 29 -projects).....projects-removed)
3ec60 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
3ec80 69 6c 65 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 ile-cleanup-known-projects.()...
3eca0 22 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 "Remove.known.projects.that.don'
3ecc0 74 20 65 78 69 73 74 20 61 6e 79 6d 6f 72 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 t.exist.anymore."...(interactive
3ece0 29 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 73 2d 72 65 6d 6f 76 65 64 20 28 )...(if-let.((projects-removed.(
3ed00 70 72 6f 6a 65 63 74 69 6c 65 2d 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
3ed20 74 73 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 50 72 6f 6a 65 63 74 73 20 72 ts))).......(message."Projects.r
3ed40 65 6d 6f 76 65 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 emoved:.%s"................(mapc
3ed60 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 70 72 6f 6a 65 63 74 73 2d 72 65 6d 6f 76 65 oncat.#'identity.projects-remove
3ed80 64 20 22 2c 20 22 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 70 72 6f 6a 65 63 d.",.")).....(message."No.projec
3eda0 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 29 29 29 0a 0a 3b 3b ts.needed.to.be.removed.")))..;;
3edc0 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
3ede0 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 43 6c 65 61 72 20 lear-known-projects.()..."Clear.
3ee00 62 6f 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 65 63 74 73 27 both.`projectile-known-projects'
3ee20 20 61 6e 64 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 74 73 2d .and.`projectile-known-projects-
3ee40 66 69 6c 65 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 file'."...(interactive)...(setq.
3ee60 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 29 0a 20 projectile-known-projects.nil)..
3ee80 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 65 63 74 73 .(projectile-save-known-projects
3eea0 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
3eec0 74 69 6c 65 2d 72 65 73 65 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 tile-reset-known-projects.()..."
3eee0 43 6c 65 61 72 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 72 65 64 69 73 63 6f Clear.known.projects.and.redisco
3ef00 76 65 72 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 ver."...(interactive)...(project
3ef20 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 28 70 72 6f ile-clear-known-projects)...(pro
3ef40 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 73 65 61 jectile-discover-projects-in-sea
3ef60 72 63 68 2d 70 61 74 68 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 rch-path))..;;;###autoload.(defu
3ef80 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 n.projectile-remove-known-projec
3efa0 74 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 6d 6f 76 65 20 t.(&optional.project)..."Remove.
3efc0 50 52 4f 4a 45 43 54 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 PROJECT.from.the.list.of.known.p
3efe0 72 6f 6a 65 63 74 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 rojects."...(interactive.(list.(
3f000 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......
3f020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 66 72 6f 6d 20 6b 6e ................."Remove.from.kn
3f040 6f 77 6e 20 70 72 6f 6a 65 63 74 73 3a 20 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e own.projects:.".projectile-known
3f060 2d 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -projects.......................
3f080 3a 61 63 74 69 6f 6e 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e :action.'projectile-remove-known
3f0a0 2d 70 72 6f 6a 65 63 74 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 63 61 6c 6c 65 64 2d 69 6e -project)))...(unless.(called-in
3f0c0 74 65 72 61 63 74 69 76 65 6c 79 2d 70 20 27 61 6e 79 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 teractively-p.'any).....(setq.pr
3f0e0 6f 6a 65 63 74 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 ojectile-known-projects.........
3f100 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 ..(cl-remove-if............(lamb
3f120 64 61 20 28 70 72 6f 6a 29 20 28 73 74 72 69 6e 67 3d 20 70 72 6f 6a 65 63 74 20 70 72 6f 6a 29 da.(proj).(string=.project.proj)
3f140 29 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 )............projectile-known-pr
3f160 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 65 72 67 65 2d 6b ojects)).....(projectile-merge-k
3f180 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 nown-projects).....(when.project
3f1a0 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 50 72 6f 6a ile-verbose.......(message."Proj
3f1c0 65 63 74 20 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 ect.%s.removed.from.the.list.of.
3f1e0 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 2e 22 20 70 72 6f 6a 65 63 74 29 29 29 29 0a 0a 3b 3b known.projects.".project))))..;;
3f200 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
3f220 65 6d 6f 76 65 2d 63 75 72 72 65 6e 74 2d 70 72 6f 6a 65 63 74 2d 66 72 6f 6d 2d 6b 6e 6f 77 6e emove-current-project-from-known
3f240 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 63 75 72 72 65 -projects.()..."Remove.the.curre
3f260 6e 74 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 nt.project.from.the.list.of.know
3f280 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 65 29 0a 20 20 28 n.projects."...(interactive)...(
3f2a0 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 6d 6f 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 20 projectile-remove-known-project.
3f2c0 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 74 69 6c (abbreviate-file-name.(projectil
3f2e0 65 2d 61 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 e-acquire-root))))..(defun.proje
3f300 63 74 69 6c 65 2d 69 67 6e 6f 72 65 64 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 41 20 6c ctile-ignored-projects.()..."A.l
3f320 69 73 74 20 6f 66 20 70 72 6f 6a 65 63 74 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 6e 6f 74 20 ist.of.projects.that.should.not.
3f340 62 65 20 73 61 76 65 20 69 6e 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f be.save.in.`projectile-known-pro
3f360 6a 65 63 74 73 27 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 23 27 66 69 6c 65 2d 74 72 75 65 6e 61 jects'."...(mapcar.#'file-truena
3f380 6d 65 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 29 29 me.projectile-ignored-projects))
3f3a0 0a 0a 28 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 70 72 6f 6a ..(defun.projectile-ignored-proj
3f3c0 65 63 74 2d 70 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 ect-p.(project-root)..."Return.t
3f3e0 20 69 66 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 .if.PROJECT-ROOT.should.not.be.a
3f400 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 6a 65 63 dded.to.`projectile-known-projec
3f420 74 73 27 2e 22 0a 20 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 ts'."...(or.(member.project-root
3f440 20 28 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 29 29 0a .(projectile-ignored-projects)).
3f460 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 70 72 6f 6a 65 63 74 69 6c 65 ......(and.(functionp.projectile
3f480 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 29 0a 20 20 20 20 20 -ignored-project-function)......
3f4a0 20 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 69 67 6e 6f 72 65 ......(funcall.projectile-ignore
3f4c0 64 2d 70 72 6f 6a 65 63 74 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 d-project-function.project-root)
3f4e0 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
3f500 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
3f520 2d 72 6f 6f 74 29 0a 20 20 22 41 64 64 20 50 52 4f 4a 45 43 54 2d 52 4f 4f 54 20 74 6f 20 74 68 -root)..."Add.PROJECT-ROOT.to.th
3f540 65 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 0a 20 20 28 69 6e e.list.of.known.projects."...(in
3f560 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d teractive.(list.(read-directory-
3f580 6e 61 6d 65 20 22 41 64 64 20 74 6f 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 3a 20 22 29 29 name."Add.to.known.projects:."))
3f5a0 29 0a 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 65 64 2d )...(unless.(projectile-ignored-
3f5c0 70 72 6f 6a 65 63 74 2d 70 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 0a 20 20 20 20 28 70 75 73 project-p.project-root).....(pus
3f5e0 68 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 28 61 62 62 72 65 h.(file-name-as-directory.(abbre
3f600 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 29 20 70 viate-file-name.project-root)).p
3f620 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 28 64 rojectile-known-projects).....(d
3f640 65 6c 65 74 65 2d 64 75 70 73 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a elete-dups.projectile-known-proj
3f660 65 63 74 73 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 65 72 67 65 2d 6b 6e 6f 77 ects).....(projectile-merge-know
3f680 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 n-projects)))..(defun.projectile
3f6a0 2d 6c 6f 61 64 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 4c 6f 61 64 20 -load-known-projects.()..."Load.
3f6c0 73 61 76 65 64 20 70 72 6f 6a 65 63 74 73 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d saved.projects.from.`projectile-
3f6e0 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 27 2e 0a 41 6c 73 6f 20 73 65 74 20 60 known-projects-file'..Also.set.`
3f700 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 22 0a 20 20 28 projectile-known-projects'."...(
3f720 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 0a 20 setq.projectile-known-projects..
3f740 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e 73 65 72 69 61 6c 69 7a 65 20 70 .......(projectile-unserialize.p
3f760 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 66 69 6c 65 29 29 0a rojectile-known-projects-file)).
3f780 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 74 ..(setq.projectile-known-project
3f7a0 73 2d 6f 6e 2d 66 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 s-on-file.........(and.(sequence
3f7c0 70 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 0a 20 20 20 p.projectile-known-projects)....
3f7e0 20 20 20 20 20 20 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 ..........(copy-sequence.project
3f800 69 6c 65 2d 6b 6e 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 ile-known-projects))))..(defun.p
3f820 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 65 63 74 73 20 28 29 rojectile-save-known-projects.()
3f840 0a 20 20 22 53 61 76 65 20 50 52 4f 4a 45 43 54 49 4c 45 2d 4b 4e 4f 57 4e 2d 50 52 4f 4a 45 43 ..."Save.PROJECTILE-KNOWN-PROJEC
3f860 54 53 20 74 6f 20 50 52 4f 4a 45 43 54 49 4c 45 2d 4b 4e 4f 57 4e 2d 50 52 4f 4a 45 43 54 53 2d TS.to.PROJECTILE-KNOWN-PROJECTS-
3f880 46 49 4c 45 2e 22 0a 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 FILE."...(projectile-serialize.p
3f8a0 72 6f 6a 65 63 74 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 rojectile-known-projects........
3f8c0 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 6b 6e 6f 77 .................projectile-know
3f8e0 6e 2d 70 72 6f 6a 65 63 74 73 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 n-projects-file)...(setq.project
3f900 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 2d 6f 6e 2d 66 69 6c 65 0a 20 20 20 20 20 ile-known-projects-on-file......
3f920 20 20 20 28 61 6e 64 20 28 73 65 71 75 65 6e 63 65 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e ...(and.(sequencep.projectile-kn
3f940 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 own-projects)..............(copy
3f960 2d 73 65 71 75 65 6e 63 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 -sequence.projectile-known-proje
3f980 63 74 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 6d 65 72 67 65 cts))))..(defun.projectile-merge
3f9a0 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 28 29 0a 20 20 22 4d 65 72 67 65 20 61 6e 79 20 -known-projects.()..."Merge.any.
3f9c0 63 68 61 6e 67 65 20 66 72 6f 6d 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 change.from.`projectile-known-pr
3f9e0 6f 6a 65 63 74 73 2d 66 69 6c 65 27 20 61 6e 64 20 73 61 76 65 20 74 6f 20 64 69 73 6b 2e 0a 0a ojects-file'.and.save.to.disk...
3fa00 54 68 69 73 20 65 6e 61 62 6c 65 73 20 6d 75 6c 74 69 70 6c 65 20 45 6d 61 63 73 20 70 72 6f 63 This.enables.multiple.Emacs.proc
3fa20 65 73 73 65 73 20 74 6f 20 6d 61 6b 65 20 63 68 61 6e 67 65 73 20 77 69 74 68 6f 75 74 0a 6f 76 esses.to.make.changes.without.ov
3fa40 65 72 77 72 69 74 69 6e 67 20 65 61 63 68 20 6f 74 68 65 72 27 73 20 63 68 61 6e 67 65 73 2e 22 erwriting.each.other's.changes."
3fa60 0a 20 20 28 6c 65 74 2a 20 28 28 6b 6e 6f 77 6e 2d 6e 6f 77 20 70 72 6f 6a 65 63 74 69 6c 65 2d ...(let*.((known-now.projectile-
3fa80 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 28 6b 6e 6f 77 6e 2d known-projects)..........(known-
3faa0 6f 6e 2d 6c 61 73 74 2d 73 79 6e 63 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 6e 6f 77 6e 2d 70 72 on-last-sync.projectile-known-pr
3fac0 6f 6a 65 63 74 73 2d 6f 6e 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 28 6b 6e 6f 77 6e 2d ojects-on-file)..........(known-
3fae0 6f 6e 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 75 6e on-file...........(projectile-un
3fb00 73 65 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 serialize.projectile-known-proje
3fb20 63 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 64 2d 61 66 74 cts-file))..........(removed-aft
3fb40 65 72 2d 73 79 6e 63 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 66 66 65 72 65 6e 63 65 20 6b er-sync.(projectile-difference.k
3fb60 6e 6f 77 6e 2d 6f 6e 2d 6c 61 73 74 2d 73 79 6e 63 20 6b 6e 6f 77 6e 2d 6e 6f 77 29 29 0a 20 20 nown-on-last-sync.known-now))...
3fb80 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 64 2d 69 6e 2d 6f 74 68 65 72 2d 70 72 6f 63 65 73 73 .......(removed-in-other-process
3fba0 0a 20 20 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 ...........(projectile-differenc
3fbc0 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 2d 6f 6e 2d 66 69 e.known-on-last-sync.known-on-fi
3fbe0 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 28 64 65 6c 65 74 65 2d 64 75 le))..........(result.(delete-du
3fc00 70 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 63 74 69 6c 65 ps...................(projectile
3fc20 2d 64 69 66 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -difference....................(
3fc40 61 70 70 65 6e 64 20 6b 6e 6f 77 6e 2d 6e 6f 77 20 6b 6e 6f 77 6e 2d 6f 6e 2d 66 69 6c 65 29 0a append.known-now.known-on-file).
3fc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 72 65 6d 6f 76 ...................(append.remov
3fc80 65 64 2d 61 66 74 65 72 2d 73 79 6e 63 20 72 65 6d 6f 76 65 64 2d 69 6e 2d 6f 74 68 65 72 2d 70 ed-after-sync.removed-in-other-p
3fca0 72 6f 63 65 73 73 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 rocess))))).....(setq.projectile
3fcc0 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 20 72 65 73 75 6c 74 29 0a 20 20 20 20 28 70 72 6f -known-projects.result).....(pro
3fce0 6a 65 63 74 69 6c 65 2d 73 61 76 65 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 29 0a 0a jectile-save-known-projects)))..
3fd00 0c 0a 3b 3b 3b 20 49 42 75 66 66 65 72 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 28 64 65 66 69 6e ..;;;.IBuffer.integration.(defin
3fd20 65 2d 69 62 75 66 66 65 72 2d 66 69 6c 74 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 e-ibuffer-filter.projectile-file
3fd40 73 0a 20 20 20 20 22 53 68 6f 77 20 49 62 75 66 66 65 72 20 77 69 74 68 20 61 6c 6c 20 62 75 66 s....."Show.Ibuffer.with.all.buf
3fd60 66 65 72 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 22 0a 20 20 fers.in.the.current.project."...
3fd80 28 3a 72 65 61 64 65 72 20 28 72 65 61 64 2d 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 20 22 50 (:reader.(read-directory-name."P
3fda0 72 6f 6a 65 63 74 20 72 6f 6f 74 3a 20 22 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 roject.root:.".(projectile-proje
3fdc0 63 74 2d 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f ct-root))............:descriptio
3fde0 6e 20 6e 69 6c 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 n.nil)...(with-current-buffer.bu
3fe00 66 0a 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d f.....(let.((directory.(file-nam
3fe20 65 2d 61 73 2d 64 69 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 e-as-directory.(expand-file-name
3fe40 20 71 75 61 6c 69 66 69 65 72 29 29 29 29 0a 20 20 20 20 20 20 28 61 6e 64 20 28 70 72 6f 6a 65 .qualifier)))).......(and.(proje
3fe60 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 70 20 62 75 66 20 64 69 72 65 63 ctile-project-buffer-p.buf.direc
3fe80 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 64 69 72 65 63 74 6f 72 tory)............(equal.director
3fea0 79 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 63 74 69 6c 65 2d y...................(projectile-
3fec0 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 project-root))))))..(defun.proje
3fee0 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 28 70 72 6f 6a 65 63 ctile-ibuffer-by-project.(projec
3ff00 74 2d 72 6f 6f 74 29 0a 20 20 22 4f 70 65 6e 20 61 6e 20 49 42 75 66 66 65 72 20 77 69 6e 64 6f t-root)..."Open.an.IBuffer.windo
3ff20 77 20 73 68 6f 77 69 6e 67 20 61 6c 6c 20 62 75 66 66 65 72 73 20 69 6e 20 50 52 4f 4a 45 43 54 w.showing.all.buffers.in.PROJECT
3ff40 2d 52 4f 4f 54 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 28 66 -ROOT."...(let.((project-name.(f
3ff60 75 6e 63 61 6c 6c 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 2d 66 uncall.projectile-project-name-f
3ff80 75 6e 63 74 69 6f 6e 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 29 29 0a 20 20 20 20 28 69 62 75 unction.project-root))).....(ibu
3ffa0 66 66 65 72 20 6e 69 6c 20 28 66 6f 72 6d 61 74 20 22 2a 25 73 20 42 75 66 66 65 72 73 2a 22 20 ffer.nil.(format."*%s.Buffers*".
3ffc0 70 72 6f 6a 65 63 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 project-name)..............(list
3ffe0 20 28 63 6f 6e 73 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6c 65 73 20 70 72 6f 6a 65 63 74 .(cons.'projectile-files.project
40000 2d 72 6f 6f 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 -root)))))..;;;###autoload.(defu
40020 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 62 75 66 66 65 72 20 28 70 72 6f 6d 70 74 2d 66 6f 72 n.projectile-ibuffer.(prompt-for
40040 2d 70 72 6f 6a 65 63 74 29 0a 20 20 22 4f 70 65 6e 20 61 6e 20 49 42 75 66 66 65 72 20 77 69 6e -project)..."Open.an.IBuffer.win
40060 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 6e 20 74 68 65 20 63 dow.showing.all.buffers.in.the.c
40080 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 4c 65 74 20 75 73 65 72 20 63 68 6f 6f 73 65 urrent.project...Let.user.choose
400a0 20 61 6e 6f 74 68 65 72 20 70 72 6f 6a 65 63 74 20 77 68 65 6e 20 50 52 4f 4d 50 54 2d 46 4f 52 .another.project.when.PROMPT-FOR
400c0 2d 50 52 4f 4a 45 43 54 20 69 73 20 73 75 70 70 6c 69 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 -PROJECT.is.supplied."...(intera
400e0 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 63 74 2d 72 6f 6f 74 ctive."P")...(let.((project-root
40100 20 28 69 66 20 70 72 6f 6d 70 74 2d 66 6f 72 2d 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20 20 20 .(if.prompt-for-project.........
40120 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 63 6f ..................(projectile-co
40140 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 20 mpleting-read...................
40160 20 20 20 20 20 20 20 20 20 22 50 72 6f 6a 65 63 74 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 ........."Project.name:.".......
40180 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
401a0 2d 72 65 6c 65 76 61 6e 74 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 29 0a 20 20 20 20 20 -relevant-known-projects))......
401c0 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
401e0 63 71 75 69 72 65 2d 72 6f 6f 74 29 29 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d cquire-root)))).....(projectile-
40200 69 62 75 66 66 65 72 2d 62 79 2d 70 72 6f 6a 65 63 74 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 29 ibuffer-by-project.project-root)
40220 29 29 0a 0a 0c 0a 3b 3b 3b 3b 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 0a ))....;;;;.projectile-commander.
40240 0a 28 64 65 66 63 6f 6e 73 74 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d .(defconst.projectile-commander-
40260 68 65 6c 70 2d 62 75 66 66 65 72 20 22 2a 50 72 6f 6a 65 63 74 69 6c 65 20 43 6f 6d 6d 61 6e 64 help-buffer."*Projectile.Command
40280 65 72 20 48 65 6c 70 2a 22 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 er.Help*")..(defvar.projectile-c
402a0 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 ommander-methods.nil..."List.of.
402c0 66 69 6c 65 2d 73 65 6c 65 63 74 69 6f 6e 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 74 68 65 20 60 file-selection.methods.for.the.`
402e0 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 27 20 63 6f 6d 6d 61 6e 64 2e 0a 45 projectile-commander'.command..E
40300 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 20 6c 69 73 74 20 28 4b 45 59 20 44 45 53 43 52 ach.element.is.a.list.(KEY.DESCR
40320 49 50 54 49 4f 4e 20 46 55 4e 43 54 49 4f 4e 29 2e 0a 44 45 53 43 52 49 50 54 49 4f 4e 20 69 73 IPTION.FUNCTION)..DESCRIPTION.is
40340 20 61 20 6f 6e 65 2d 6c 69 6e 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 .a.one-line.description.of.what.
40360 74 68 65 20 6b 65 79 20 73 65 6c 65 63 74 73 2e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f the.key.selects.")..;;;###autolo
40380 61 64 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 20 28 ad.(defun.projectile-commander.(
403a0 29 0a 20 20 22 45 78 65 63 75 74 65 20 61 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 6f 6d 6d 61 6e )..."Execute.a.Projectile.comman
403c0 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 6c 65 74 74 65 72 2e 0a 54 68 65 20 75 73 65 72 d.with.a.single.letter..The.user
403e0 20 69 73 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 .is.prompted.for.a.single.charac
40400 74 65 72 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20 61 63 74 69 6f 6e 20 74 6f 20 69 6e 76 ter.indicating.the.action.to.inv
40420 6f 6b 65 2e 0a 54 68 65 20 60 3f 27 20 63 68 61 72 61 63 74 65 72 20 64 65 73 63 72 69 62 65 73 oke..The.`?'.character.describes
40440 20 74 68 65 6e 0a 61 76 61 69 6c 61 62 6c 65 20 61 63 74 69 6f 6e 73 2e 0a 0a 53 65 65 20 60 64 .then.available.actions...See.`d
40460 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 27 20 ef-projectile-commander-method'.
40480 66 6f 72 20 64 65 66 69 6e 69 6e 67 20 6e 65 77 20 6d 65 74 68 6f 64 73 2e 22 0a 20 20 28 69 6e for.defining.new.methods."...(in
404a0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 28 6d 61 teractive)...(let*.((choices.(ma
404c0 70 63 61 72 20 23 27 63 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d pcar.#'car.projectile-commander-
404e0 6d 65 74 68 6f 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 63 6f 6e 63 methods))..........(prompt.(conc
40500 61 74 20 22 53 65 6c 65 63 74 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 6f 6d 6d 61 6e 64 20 5b 22 at."Select.Projectile.command.["
40520 20 63 68 6f 69 63 65 73 20 22 5d 3a 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 20 28 72 .choices."]:."))..........(ch.(r
40540 65 61 64 2d 63 68 61 72 2d 63 68 6f 69 63 65 20 70 72 6f 6d 70 74 20 63 68 6f 69 63 65 73 29 29 ead-char-choice.prompt.choices))
40560 0a 20 20 20 20 20 20 20 20 20 28 66 6e 20 28 6e 74 68 20 32 20 28 61 73 73 71 20 63 68 20 70 72 ..........(fn.(nth.2.(assq.ch.pr
40580 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 73 29 29 29 29 0a 20 ojectile-commander-methods))))..
405a0 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 64 65 66 ...(funcall.fn)))..(defmacro.def
405c0 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 28 6b 65 -projectile-commander-method.(ke
405e0 79 20 64 65 73 63 72 69 70 74 69 6f 6e 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 44 65 66 y.description.&rest.body)..."Def
40600 69 6e 65 20 61 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 27 ine.a.new.`projectile-commander'
40620 20 6d 65 74 68 6f 64 2e 0a 0a 4b 45 59 20 69 73 20 74 68 65 20 6b 65 79 20 74 68 65 20 75 73 65 .method...KEY.is.the.key.the.use
40640 72 20 77 69 6c 6c 20 65 6e 74 65 72 20 74 6f 20 63 68 6f 6f 73 65 20 74 68 69 73 20 6d 65 74 68 r.will.enter.to.choose.this.meth
40660 6f 64 2e 0a 0a 44 45 53 43 52 49 50 54 49 4f 4e 20 69 73 20 61 20 6f 6e 65 2d 6c 69 6e 65 20 73 od...DESCRIPTION.is.a.one-line.s
40680 65 6e 74 65 6e 63 65 20 64 65 73 63 72 69 62 69 6e 67 20 68 6f 77 20 74 68 65 20 6d 65 74 68 6f entence.describing.how.the.metho
406a0 64 2e 0a 0a 42 4f 44 59 20 69 73 20 61 20 73 65 72 69 65 73 20 6f 66 20 66 6f 72 6d 73 20 77 68 d...BODY.is.a.series.of.forms.wh
406c0 69 63 68 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 77 68 65 6e 20 74 68 65 20 66 69 6e 64 0a ich.are.evaluated.when.the.find.
406e0 69 73 20 63 68 6f 73 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 65 74 68 6f 64 20 60 28 6c 61 is.chosen."...(let.((method.`(la
40700 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 2c 40 62 6f 64 mbda.()....................,@bod
40720 79 29 29 29 0a 20 20 20 20 60 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 y))).....`(setq.projectile-comma
40740 6e 64 65 72 2d 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 72 74 nder-methods............(cl-sort
40760 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 20 20 20 20 20 20 .(copy-sequence.................
40780 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 2c 6b 65 79 20 2c 64 65 73 63 72 69 70 74 69 .....(cons.(list.,key.,descripti
407a0 6f 6e 20 2c 6d 65 74 68 6f 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on.,method).....................
407c0 20 20 20 20 20 20 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 20 2c 6b 65 79 20 70 72 6f .......(assq-delete-all.,key.pro
407e0 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 29 29 29 0a 20 20 20 jectile-commander-methods)))....
40800 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 61 20 62 29 20 28 .................(lambda.(a.b).(
40820 3c 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 29 29 29 0a 0a 28 64 65 66 2d 70 72 <.(car.a).(car.b)))))))..(def-pr
40840 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 3f 20 22 43 6f ojectile-commander-method.??."Co
40860 6d 6d 61 6e 64 65 72 20 68 65 6c 70 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 67 6e 6f 72 65 2d mmander.help.buffer."...(ignore-
40880 65 72 72 6f 72 73 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 errors.(kill-buffer.projectile-c
408a0 6f 6d 6d 61 6e 64 65 72 2d 68 65 6c 70 2d 62 75 66 66 65 72 29 29 0a 20 20 28 77 69 74 68 2d 63 ommander-help-buffer))...(with-c
408c0 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 urrent-buffer.(get-buffer-create
408e0 20 70 72 6f 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 .projectile-commander-help-buffe
40900 72 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 50 72 6f 6a 65 63 74 69 6c 65 20 43 6f 6d 6d 61 r).....(insert."Projectile.Comma
40920 6e 64 65 72 20 4d 65 74 68 6f 64 73 3a 5c 6e 5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 nder.Methods:\n\n").....(dolist.
40940 28 6d 65 74 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 64 (met.projectile-commander-method
40960 73 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 25 63 3a 5c 74 25 s).......(insert.(format."%c:\t%
40980 73 5c 6e 22 20 28 63 61 72 20 6d 65 74 29 20 28 63 61 64 72 20 6d 65 74 29 29 29 29 0a 20 20 20 s\n".(car.met).(cadr.met))))....
409a0 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 68 65 .(goto-char.(point-min)).....(he
409c0 6c 70 2d 6d 6f 64 65 29 0a 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 lp-mode).....(display-buffer.(cu
409e0 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 74 29 29 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d rrent-buffer).t))...(projectile-
40a00 63 6f 6d 6d 61 6e 64 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 commander))..(defun.projectile-c
40a20 6f 6d 6d 61 6e 64 65 72 2d 62 69 6e 64 69 6e 67 73 20 28 29 0a 20 20 22 53 65 74 75 70 20 74 68 ommander-bindings.()..."Setup.th
40a40 65 20 6b 65 79 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 74 68 65 20 50 72 6f 6a 65 63 74 69 6c 65 e.keybindings.for.the.Projectile
40a60 20 43 6f 6d 6d 61 6e 64 65 72 2e 22 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 6c 65 2d 63 .Commander."...(def-projectile-c
40a80 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 66 0a 20 20 20 20 22 46 69 6e 64 20 66 69 6c ommander-method.?f....."Find.fil
40aa0 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 69 6c 65 2d 66 e.in.project.".....(projectile-f
40ac0 69 6e 64 2d 66 69 6c 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 ind-file))....(def-projectile-co
40ae0 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 54 0a 20 20 20 20 22 46 69 6e 64 20 74 65 73 74 mmander-method.?T....."Find.test
40b00 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 69 .file.in.project.".....(projecti
40b20 6c 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a le-find-test-file))....(def-proj
40b40 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 62 0a 20 20 20 20 22 ectile-commander-method.?b....."
40b60 53 77 69 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 2e 22 0a 20 20 20 20 28 Switch.to.project.buffer.".....(
40b80 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 29 29 0a 0a 20 projectile-switch-to-buffer))...
40ba0 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
40bc0 64 20 3f 64 0a 20 20 20 20 22 46 69 6e 64 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 70 72 6f 6a d.?d....."Find.directory.in.proj
40be0 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 64 69 72 29 29 ect.".....(projectile-find-dir))
40c00 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 65 72 2d 6d 65 ....(def-projectile-commander-me
40c20 74 68 6f 64 20 3f 44 0a 20 20 20 20 22 4f 70 65 6e 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 69 thod.?D....."Open.project.root.i
40c40 6e 20 64 69 72 65 64 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 29 n.dired.".....(projectile-dired)
40c60 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 65 72 2d 6d )....(def-projectile-commander-m
40c80 65 74 68 6f 64 20 3f 76 0a 20 20 20 20 22 4f 70 65 6e 20 70 72 6f 6a 65 63 74 20 72 6f 6f 74 20 ethod.?v....."Open.project.root.
40ca0 69 6e 20 76 63 2d 64 69 72 20 6f 72 20 6d 61 67 69 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 in.vc-dir.or.magit.".....(projec
40cc0 74 69 6c 65 2d 76 63 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 tile-vc))....(def-projectile-com
40ce0 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 56 0a 20 20 20 20 22 42 72 6f 77 73 65 20 64 69 72 mander-method.?V....."Browse.dir
40d00 74 79 20 70 72 6f 6a 65 63 74 73 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 62 72 6f ty.projects".....(projectile-bro
40d20 77 73 65 2d 64 69 72 74 79 2d 70 72 6f 6a 65 63 74 73 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f wse-dirty-projects))....(def-pro
40d40 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 72 0a 20 20 20 20 jectile-commander-method.?r.....
40d60 22 52 65 70 6c 61 63 65 20 61 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 "Replace.a.string.in.the.project
40d80 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 63 65 29 29 0a 0a 20 20 .".....(projectile-replace))....
40da0 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
40dc0 20 3f 52 0a 20 20 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 .?R....."Regenerate.the.project'
40de0 73 20 5b 65 7c 67 5d 74 61 67 73 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 s.[e|g]tags.".....(projectile-re
40e00 67 65 6e 65 72 61 74 65 2d 74 61 67 73 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 69 generate-tags))....(def-projecti
40e20 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 67 0a 20 20 20 20 22 52 75 6e 20 le-commander-method.?g....."Run.
40e40 67 72 65 70 20 6f 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 grep.on.project.".....(projectil
40e60 65 2d 67 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 e-grep))....(def-projectile-comm
40e80 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 70 0a 20 20 20 20 22 52 75 6e 20 72 69 70 67 72 65 70 ander-method.?p....."Run.ripgrep
40ea0 20 6f 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 .on.project.".....(call-interact
40ec0 69 76 65 6c 79 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 29 29 0a 0a 20 20 ively.#'projectile-ripgrep))....
40ee0 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
40f00 20 3f 61 0a 20 20 20 20 22 52 75 6e 20 61 67 20 6f 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 .?a....."Run.ag.on.project."....
40f20 20 28 63 61 6c 6c 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 .(call-interactively.#'projectil
40f40 65 2d 61 67 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 e-ag))....(def-projectile-comman
40f60 64 65 72 2d 6d 65 74 68 6f 64 20 3f 73 0a 20 20 20 20 22 53 77 69 74 63 68 20 70 72 6f 6a 65 63 der-method.?s....."Switch.projec
40f80 74 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 70 72 6f 6a 65 t.".....(projectile-switch-proje
40fa0 63 74 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 65 ct))....(def-projectile-commande
40fc0 72 2d 6d 65 74 68 6f 64 20 3f 6f 0a 20 20 20 20 22 52 75 6e 20 6d 75 6c 74 69 2d 6f 63 63 75 72 r-method.?o....."Run.multi-occur
40fe0 20 6f 6e 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 .on.project.buffers.".....(proje
41000 63 74 69 6c 65 2d 6d 75 6c 74 69 2d 6f 63 63 75 72 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a ctile-multi-occur))....(def-proj
41020 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 6a 0a 20 20 20 20 22 ectile-commander-method.?j....."
41040 46 69 6e 64 20 74 61 67 20 69 6e 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 28 70 72 6f 6a 65 Find.tag.in.project.".....(proje
41060 63 74 69 6c 65 2d 66 69 6e 64 2d 74 61 67 29 29 0a 0a 20 20 28 64 65 66 2d 70 72 6f 6a 65 63 74 ctile-find-tag))....(def-project
41080 69 6c 65 2d 63 6f 6d 6d 61 6e 64 65 72 2d 6d 65 74 68 6f 64 20 3f 6b 0a 20 20 20 20 22 4b 69 6c ile-commander-method.?k....."Kil
410a0 6c 20 61 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 20 20 28 70 72 6f l.all.project.buffers.".....(pro
410c0 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 29 29 0a 0a 20 20 28 64 65 66 2d 70 jectile-kill-buffers))....(def-p
410e0 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 65 0a 20 20 rojectile-commander-method.?e...
41100 20 20 22 46 69 6e 64 20 72 65 63 65 6e 74 6c 79 20 76 69 73 69 74 65 64 20 66 69 6c 65 20 69 6e .."Find.recently.visited.file.in
41120 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 63 65 6e .project.".....(projectile-recen
41140 74 66 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 44 69 72 74 79 20 28 6d 6f 64 69 66 69 65 64 29 20 70 72 tf)))....;;;.Dirty.(modified).pr
41160 6f 6a 65 63 74 20 63 68 65 63 6b 20 72 65 6c 61 74 65 64 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 oject.check.related.functionalit
41180 79 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 68 65 63 6b 2d 76 63 73 2d 73 74 y.(defun.projectile-check-vcs-st
411a0 61 74 75 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6a 65 63 74 2d 70 61 74 68 29 0a 20 20 atus.(&optional.project-path)...
411c0 22 43 68 65 63 6b 20 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 "Check.the.status.of.the.current
411e0 20 70 72 6f 6a 65 63 74 2e 0a 49 66 20 50 52 4f 4a 45 43 54 2d 50 41 54 48 20 69 73 20 61 20 70 .project..If.PROJECT-PATH.is.a.p
41200 72 6f 6a 65 63 74 2c 20 63 68 65 63 6b 20 74 68 69 73 20 6f 6e 65 20 69 6e 73 74 65 61 64 2e 22 roject,.check.this.one.instead."
41220 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6a 65 63 74 2d 70 61 74 68 20 28 6f 72 20 70 72 6f 6a 65 ...(let.((project-path.(or.proje
41240 63 74 2d 70 61 74 68 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 ct-path.(projectile-acquire-root
41260 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 2d 73 74 61 74 75 73 20 6e 69 6c 29 ))).........(project-status.nil)
41280 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 76 63 2d ).....(save-excursion.......(vc-
412a0 64 69 72 20 70 72 6f 6a 65 63 74 2d 70 61 74 68 29 0a 20 20 20 20 20 20 3b 3b 20 77 61 69 74 20 dir.project-path).......;;.wait.
412c0 75 6e 74 69 6c 20 76 63 2d 64 69 72 20 69 73 20 64 6f 6e 65 0a 20 20 20 20 20 20 28 77 68 69 6c until.vc-dir.is.done.......(whil
412e0 65 20 28 76 63 2d 64 69 72 2d 62 75 73 79 29 20 28 73 6c 65 65 70 2d 66 6f 72 20 30 20 31 30 30 e.(vc-dir-busy).(sleep-for.0.100
41300 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 74 75 73 0a 20 20 20 )).......;;.check.for.status....
41320 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 20 20 28 73 61 76 65 ...(save-excursion.........(save
41340 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 6c 69 73 74 20 28 63 -match-data...........(dolist.(c
41360 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 2d 73 74 61 74 65 29 heck.projectile-vcs-dirty-state)
41380 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 70 6f 69 6e 74 2d 6d .............(goto-char.(point-m
413a0 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 65 61 72 63 68 2d 66 in)).............(when.(search-f
413c0 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 20 20 20 20 20 20 20 orward.check.nil.t).............
413e0 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 6f 6e 73 20 63 68 65 ..(setq.project-status.(cons.che
41400 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 20 20 20 20 20 28 6b ck.project-status)))))).......(k
41420 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 2d 73 74 61 74 75 73 ill-buffer).......project-status
41440 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 61 63 68 65 64 2d 64 )))..(defvar.projectile-cached-d
41460 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 20 20 22 43 61 63 68 irty-projects-status.nil..."Cach
41480 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 63 74 73 20 63 68 65 e.of.the.last.dirty.projects.che
414a0 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 63 68 65 63 6b 2d 76 ck.")..(defun.projectile-check-v
414c0 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 74 73 20 28 29 0a 20 cs-status-of-known-projects.()..
414e0 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 79 20 70 72 6f 6a 65 ."Return.the.list.of.dirty.proje
41500 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 20 6f 66 20 73 75 62 cts..The.list.is.composed.of.sub
41520 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 6f 6a 65 63 74 2d 73 lists~:.(project-path,.project-s
41540 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 20 74 68 65 69 72 20 tatus)..Raise.an.error.if.their.
41560 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 73 61 76 65 2d 77 69 is.no.dirty.project."...(save-wi
41580 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 67 65 20 22 43 68 65 ndow-excursion.....(message."Che
415a0 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 6e 20 6b 6e 6f 77 6e cking.for.modifications.in.known
415c0 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 28 70 72 6f 6a 65 63 .projects...").....(let.((projec
415e0 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 63 74 73 29 0a 20 20 ts.projectile-known-projects)...
41600 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 20 20 28 64 6f 6c 69 ........(status.())).......(doli
41620 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 20 20 20 20 20 28 77 st.(project.projects).........(w
41640 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 2d 70 72 6f 6a 65 63 hen.(and.(projectile-keep-projec
41660 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 3d 20 27 6e 6f 6e 65 t-p.project).(not.(string=.'none
41680 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 70 72 6f 6a 65 63 74 .(projectile-project-vcs.project
416a0 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 2d 73 74 61 74 75 73 ))))...........(let.((tmp-status
416c0 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 61 74 75 73 20 70 72 .(projectile-check-vcs-status.pr
416e0 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 6e 20 74 6d 70 2d 73 oject))).............(when.tmp-s
41700 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 20 73 74 61 74 75 73 tatus...............(setq.status
41720 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 73 74 61 74 75 73 29 .(cons.(list.project.tmp-status)
41740 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 20 28 3d 20 28 6c 65 .status)))))).......(when.(=.(le
41760 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 6d 65 73 73 61 67 65 ngth.status).0).........(message
41780 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 62 65 65 6e 20 66 6f ."No.dirty.projects.have.been.fo
417a0 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 74 69 6c 65 2d 63 61 und")).......(setq.projectile-ca
417c0 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 73 74 61 74 75 ched-dirty-projects-status.statu
417e0 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 23 61 75 74 6f 6c 6f s).......status)))..;;;###autolo
41800 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 73 65 2d 64 69 72 74 ad.(defun.projectile-browse-dirt
41820 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 68 65 64 29 0a 20 20 y-projects.(&optional.cached)...
41840 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 74 72 6f 6c 6c 65 64 "Browse.dirty.version.controlled
41860 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 20 61 72 67 75 6d 65 .projects...With.a.prefix.argume
41880 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 69 6c 2c 20 74 72 79 nt,.or.if.CACHED.is.non-nil,.try
418a0 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 70 72 6f 6a 65 63 74 .to.use.the.cached.dirty.project
418c0 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 22 29 0a 20 20 28 6c .list."...(interactive."P")...(l
418e0 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 65 64 20 70 72 6f 6a et.((status.(if.(and.cached.proj
41900 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 2d 73 74 61 ectile-cached-dirty-projects-sta
41920 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 70 72 6f 6a 65 63 74 tus).....................project
41940 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 73 ile-cached-dirty-projects-status
41960 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 63 74 69 6c 65 2d 63 ...................(projectile-c
41980 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 74 heck-vcs-status-of-known-project
419a0 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 6c 29 29 0a 20 20 20 s))).........(mod-proj.nil))....
419c0 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 74 61 74 75 73 29 20 .(while.(not.(=.(length.status).
419e0 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 28 63 6f 6e 73 20 28 0)).......(setq.mod-proj.(cons.(
41a00 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 6a 29 29 29 0a 20 20 car.(pop.status)).mod-proj)))...
41a20 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 64 20 22 53 ..(projectile-completing-read."S
41a40 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 0a 20 20 20 20 20 20 elect.project:.".mod-proj.......
41a60 20 20 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 61 63 74 69 6f ..........................:actio
41a80 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 3b 20 46 69 6e 64 20 n.'projectile-vc)))....;;;.Find.
41aa0 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 66 65 72 0a 28 64 65 next/previous.project.buffer.(de
41ac0 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 74 69 6c 2d 70 72 6f fun.projectile--repeat-until-pro
41ae0 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 73 74 20 61 72 67 73 ject-buffer.(orig-fun.&rest.args
41b00 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 20 41 52 47 53 20 75 )..."Repeat.ORIG-FUN.with.ARGS.u
41b20 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 73 20 61 20 70 72 6f ntil.the.current.buffer.is.a.pro
41b40 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 65 63 74 69 6c 65 2d ject.buffer."...(if.(projectile-
41b60 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 20 28 28 6f 74 68 65 project-root).......(let*.((othe
41b80 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 61 73 68 2d 74 61 62 r-project-buffers.(make-hash-tab
41ba0 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 20 20 20 28 70 72 6f le.:test.'eq))..............(pro
41bc0 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 70 72 6f 6a 65 63 74 jectile-project-buffers.(project
41be0 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 20 20 20 20 20 20 20 ile-project-buffers))...........
41c00 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 68 20 28 62 75 66 66 ...(max-iterations.(length.(buff
41c20 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 63 6f 75 6e 74 65 72 er-list)))..............(counter
41c40 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 66 65 72 20 70 72 6f .0)).........(dolist.(buffer.pro
41c60 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 20 jectile-project-buffers)........
41c80 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 72 72 65 6e 74 2d 62 ...(unless.(eq.buffer.(current-b
41ca0 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 61 73 68 20 62 75 66 uffer)).............(puthash.buf
41cc0 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 72 73 29 29 29 0a 20 fer.t.other-project-buffers)))..
41ce0 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 6f 6a 65 63 74 69 6c .......(when.(cdr-safe.projectil
41d00 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 20 20 20 20 28 77 68 e-project-buffers)...........(wh
41d20 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 74 65 72 61 74 69 6f ile.(and.(<.counter.max-iteratio
41d40 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 20 28 6e 6f 74 20 28 ns).......................(not.(
41d60 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 6f 74 68 65 72 2d 70 gethash.(current-buffer).other-p
41d80 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 20 20 20 20 20 28 61 roject-buffers))).............(a
41da0 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 20 20 20 20 20 20 20 pply.orig-fun.args).............
41dc0 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 28 61 70 70 6c 79 20 (cl-incf.counter)))).....(apply.
41de0 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 70 72 6f 6a 65 63 74 orig-fun.args)))..(defun.project
41e00 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 29 0a 20 20 22 49 6e ile-next-project-buffer.()..."In
41e20 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 65 20 6e .selected.window.switch.to.the.n
41e40 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 68 65 20 63 75 72 72 ext.project.buffer...If.the.curr
41e60 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 67 20 74 6f 20 61 20 ent.buffer.does.not.belong.to.a.
41e80 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 72 27 2e 22 0a 20 20 project,.call.`next-buffer'."...
41ea0 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 65 2d 2d 72 65 70 (interactive)...(projectile--rep
41ec0 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 23 27 6e 65 78 74 2d eat-until-project-buffer.#'next-
41ee0 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 6c 65 2d 70 72 65 76 buffer))..(defun.projectile-prev
41f00 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 22 49 6e 20 73 65 6c ious-project-buffer.()..."In.sel
41f20 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 65 20 70 72 65 76 69 ected.window.switch.to.the.previ
41f40 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 68 65 20 63 75 72 72 ous.project.buffer...If.the.curr
41f60 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 67 20 74 6f 20 61 20 ent.buffer.does.not.belong.to.a.
41f80 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 75 66 66 65 72 27 2e project,.call.`previous-buffer'.
41fa0 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 65 2d "...(interactive)...(projectile-
41fc0 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 23 27 70 -repeat-until-project-buffer.#'p
41fe0 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 64 69 74 69 6e 67 20 revious-buffer))....;;;.Editing.
42000 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 64 65 66 75 6e 20 70 a.project's..dir-locals.(defun.p
42020 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 29 0a 20 20 22 50 72 rojectile-read-variable.()..."Pr
42040 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 65 74 75 72 6e 20 69 ompt.for.a.variable.and.return.i
42060 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 65 61 64 20 22 56 61 ts.name."...(completing-read."Va
42080 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 20 20 20 20 6f 62 61 riable:."....................oba
420a0 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 6c 61 6d 62 64 61 20 rray....................(lambda.
420c0 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 28 61 6e 64 20 28 62 (v)......................(and.(b
420e0 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 29 29 29 29 0a 20 20 oundp.v).(not.(keywordp.v))))...
42100 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 66 69 6e 65 2d 73 6b .................t))..(define-sk
42120 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 72 69 61 62 6c 65 2d eleton.projectile-skel-variable-
42140 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 2d 6e 61 6d 65 20 61 cons..."Insert.a.variable-name.a
42160 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 2e 22 0a 20 20 22 56 nd.a.value.in.a.cons-cell."..."V
42180 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 6c 65 2d 72 65 61 64 alue:."..."("...(projectile-read
421a0 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 20 20 22 29 22 29 0a -variable)..."..."...str...")").
421c0 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 69 6c 65 2d 73 6b 65 .(define-skeleton.projectile-ske
421e0 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 2e 64 69 72 2d 6c 6f l-dir-locals..."Insert.a..dir-lo
42200 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 20 20 22 28 28 6e 69 cals.el.template."...nil..."((ni
42220 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 2d 73 6b 65 6c 2d 76 l...("...("".'(projectile-skel-v
42240 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 65 3a 0a 20 20 22 29 ariable-cons).\n)...resume:...")
42260 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 75 6e 20 70 72 6f 6a ))")..;;;###autoload.(defun.proj
42280 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 0a 20 20 22 45 64 69 ectile-edit-dir-locals.()..."Edi
422a0 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 2e 65 6c 20 66 69 6c t.or.create.a..dir-locals.el.fil
422c0 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 65 72 61 63 74 69 76 e.of.the.project."...(interactiv
422e0 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 66 69 6c 65 2d 6e 61 e)...(let.((file.(expand-file-na
42300 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 65 63 74 69 6c 65 2d me.".dir-locals.el".(projectile-
42320 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 64 2d 66 69 6c 65 20 acquire-root)))).....(find-file.
42340 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 65 2d 65 78 69 73 74 file).....(when.(not.(file-exist
42360 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 70 72 6f 74 65 63 74 s-p.file)).......(unwind-protect
42380 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 65 6c 2d 64 69 72 2d ...........(projectile-skel-dir-
423a0 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 66 65 72 29 29 29 29 locals).........(save-buffer))))
423c0 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 20 6d 6f 64 65 0a 28 )....;;;.Projectile.Minor.mode.(
423e0 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 define-obsolete-variable-alias.'
42400 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 6c 69 67 68 74 65 72 20 27 70 72 projectile-mode-line-lighter.'pr
42420 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 65 66 69 78 20 22 30 2e 31 32 2e ojectile-mode-line-prefix."0.12.
42440 30 22 29 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 65 2d 6c 0").(defcustom.projectile-mode-l
42460 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 22 4d 6f ine-prefix...".Projectile"..."Mo
42480 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 6f 6a 65 de.line.lighter.prefix.for.Proje
424a0 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 6c 65 2d ctile..It's.used.by.`projectile-
424c0 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 20 64 79 default-mode-line'.when.using.dy
424e0 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 73 20 74 namic.mode.line.lighter.and.is.t
42500 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 64 65 20 he.only.thing.shown.in.the.mode.
42520 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 6f 6a 65 line.otherwise."...:group.'proje
42540 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 61 67 65 ctile...:type.'string...:package
42560 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 2e 30 22 -version.'(projectile..."0.12.0"
42580 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 77 2d 6d ))..(defcustom.projectile-show-m
425a0 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 64 69 73 enu.t..."Controls.whether.to.dis
425c0 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 72 6f 75 play.Projectile's.menu."...:grou
425e0 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 20 p.'projectile...:type.'boolean..
42600 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..
42620 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 6a 65 63 ."2.6.0"))..(defvar-local.projec
42640 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 64 65 2d tile--mode-line.projectile-mode-
42660 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 6c 65 2d line-prefix)..(defun.projectile-
42680 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 74 20 70 default-mode-line.()..."Report.p
426a0 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 6f 64 65 roject.name.and.type.in.the.mode
426c0 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 28 70 72 line."...(let.((project-name.(pr
426e0 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 20 20 20 ojectile-project-name)).........
42700 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 6a 65 63 (project-type.(projectile-projec
42720 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 73 5d 22 t-type))).....(format."%s[%s%s]"
42740 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 6c 69 6e .............projectile-mode-lin
42760 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 65 63 74 e-prefix.............(or.project
42780 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 6f 6a 65 -name."-").............(if.proje
427a0 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 61 74 20 ct-type.................(format.
427c0 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 20 20 20 ":%s".project-type).............
427e0 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 70 64 61 ..""))))..(defun.projectile-upda
42800 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 20 50 72 te-mode-line.()..."Update.the.Pr
42820 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 28 6d 6f ojectile.mode-line."...(let.((mo
42840 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 6f 64 65 de-line.(funcall.projectile-mode
42860 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 72 6f 6a -line-function))).....(setq.proj
42880 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 0a 20 20 ectile--mode-line.mode-line))...
428a0 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 65 66 76 (force-mode-line-update))..(defv
428c0 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 6c 65 74 ar.projectile-command-map...(let
428e0 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 0a 20 20 .((map.(make-sparse-keymap)))...
42900 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 20 23 27 ..(define-key.map.(kbd."4.a").#'
42920 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 68 65 72 projectile-find-other-file-other
42940 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 6b 62 -window).....(define-key.map.(kb
42960 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 74 6f 2d d."4.b").#'projectile-switch-to-
42980 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 69 6e 65 buffer-other-window).....(define
429a0 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 65 63 74 -key.map.(kbd."4.C-o").#'project
429c0 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 6e 65 2d ile-display-buffer).....(define-
429e0 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 69 6c 65 key.map.(kbd."4.d").#'projectile
42a00 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 64 65 66 -find-dir-other-window).....(def
42a20 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 6a 65 63 ine-key.map.(kbd."4.D").#'projec
42a40 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 28 64 65 tile-dired-other-window).....(de
42a60 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 6f 6a 65 fine-key.map.(kbd."4.f").#'proje
42a80 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 0a 20 20 ctile-find-file-other-window)...
42aa0 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 20 23 27 ..(define-key.map.(kbd."4.g").#'
42ac0 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-
42ae0 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 6b 62 64 window).....(define-key.map.(kbd
42b00 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 6c 65 6d ."4.t").#'projectile-find-implem
42b20 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 29 0a 20 entation-or-test-other-window)..
42b40 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 29 20 23 ...(define-key.map.(kbd."5.a").#
42b60 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 68 65 'projectile-find-other-file-othe
42b80 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 28 6b 62 r-frame).....(define-key.map.(kb
42ba0 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 74 6f 2d d."5.b").#'projectile-switch-to-
42bc0 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 6e 65 2d buffer-other-frame).....(define-
42be0 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 69 6c 65 key.map.(kbd."5.d").#'projectile
42c00 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 65 66 69 -find-dir-other-frame).....(defi
42c20 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 65 63 74 ne-key.map.(kbd."5.D").#'project
42c40 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 65 66 69 ile-dired-other-frame).....(defi
42c60 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 65 63 74 ne-key.map.(kbd."5.f").#'project
42c80 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 20 20 28 ile-find-file-other-frame).....(
42ca0 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 70 72 6f define-key.map.(kbd."5.g").#'pro
42cc0 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 61 jectile-find-file-dwim-other-fra
42ce0 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 22 35 20 me).....(define-key.map.(kbd."5.
42d00 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 6e 74 61 t").#'projectile-find-implementa
42d20 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 20 28 64 tion-or-test-other-frame).....(d
42d40 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 6a 65 63 efine-key.map.(kbd."!").#'projec
42d60 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 74 29 0a tile-run-shell-command-in-root).
42d80 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 20 23 27 ....(define-key.map.(kbd."&").#'
42da0 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 6d 6d 61 projectile-run-async-shell-comma
42dc0 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 61 70 20 nd-in-root).....(define-key.map.
42de0 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 65 66 65 (kbd."?").#'projectile-find-refe
42e00 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 6b 62 64 rences).....(define-key.map.(kbd
42e20 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 2d 66 69 ."a").#'projectile-find-other-fi
42e40 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 22 62 22 le).....(define-key.map.(kbd."b"
42e60 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 65 72 29 ).#'projectile-switch-to-buffer)
42e80 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 29 20 23 .....(define-key.map.(kbd."d").#
42ea0 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 66 69 6e 'projectile-find-dir).....(defin
42ec0 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 69 6c 65 e-key.map.(kbd."D").#'projectile
42ee0 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 6b 62 64 -dired).....(define-key.map.(kbd
42f00 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 20 20 20 ."e").#'projectile-recentf).....
42f20 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 72 6f 6a (define-key.map.(kbd."E").#'proj
42f40 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 64 65 66 ectile-edit-dir-locals).....(def
42f60 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 63 74 69 ine-key.map.(kbd."f").#'projecti
42f80 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 20 6d 61 le-find-file).....(define-key.ma
42fa0 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 2d 66 69 p.(kbd."g").#'projectile-find-fi
42fc0 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 28 6b 62 le-dwim).....(define-key.map.(kb
42fe0 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 2d 69 6e d."F").#'projectile-find-file-in
43000 2d 6b 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 -known-projects).....(define-key
43020 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 76 61 .map.(kbd."i").#'projectile-inva
43040 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 6d 61 lidate-cache).....(define-key.ma
43060 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 65 72 p.(kbd."I").#'projectile-ibuffer
43080 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 29 20 ).....(define-key.map.(kbd."j").
430a0 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 66 69 #'projectile-find-tag).....(defi
430c0 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 69 6c ne-key.map.(kbd."k").#'projectil
430e0 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 79 20 e-kill-buffers).....(define-key.
43100 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 64 2d map.(kbd."l").#'projectile-find-
43120 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 2d 6b file-in-directory).....(define-k
43140 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 63 6f ey.map.(kbd."m").#'projectile-co
43160 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 6b 62 mmander).....(define-key.map.(kb
43180 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 72 29 d."o").#'projectile-multi-occur)
431a0 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 20 23 .....(define-key.map.(kbd."p").#
431c0 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 20 20 'projectile-switch-project).....
431e0 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 6f 6a (define-key.map.(kbd."q").#'proj
43200 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 20 20 ectile-switch-open-project).....
43220 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 6f 6a (define-key.map.(kbd."r").#'proj
43240 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 79 20 ectile-replace).....(define-key.
43260 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 65 6e map.(kbd."R").#'projectile-regen
43280 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 70 20 erate-tags).....(define-key.map.
432a0 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 0a 20 (kbd."s.g").#'projectile-grep)..
432c0 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 20 23 ...(define-key.map.(kbd."s.r").#
432e0 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 6e 65 'projectile-ripgrep).....(define
43300 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 69 6c -key.map.(kbd."s.s").#'projectil
43320 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 20 22 e-ag).....(define-key.map.(kbd."
43340 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 6e 63 s.x").#'projectile-find-referenc
43360 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 53 22 es).....(define-key.map.(kbd."S"
43380 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 66 66 ).#'projectile-save-project-buff
433a0 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 22 74 ers).....(define-key.map.(kbd."t
433c0 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 2d 69 ").#'projectile-toggle-between-i
433e0 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 65 66 mplementation-and-test).....(def
43400 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 74 69 ine-key.map.(kbd."T").#'projecti
43420 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 2d 6b le-find-test-file).....(define-k
43440 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 76 63 ey.map.(kbd."v").#'projectile-vc
43460 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 29 20 ).....(define-key.map.(kbd."V").
43480 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 65 63 #'projectile-browse-dirty-projec
434a0 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 78 74 ts).....;;.project.lifecycle.ext
434c0 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 42 75 6e 64 ernal.commands.....;;.TODO:.Bund
434e0 6c 65 20 74 68 6f 73 65 20 75 6e 64 65 72 20 73 6f 6d 65 20 70 72 65 66 69 78 20 6b 65 79 0a 20 le.those.under.some.prefix.key..
43500 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 22 29 20 23 27 70 ...(define-key.map.(kbd."C").#'p
43520 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 29 0a 20 20 20 rojectile-configure-project)....
43540 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 63 22 29 20 23 27 70 72 6f .(define-key.map.(kbd."c").#'pro
43560 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 jectile-compile-project).....(de
43580 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4b 22 29 20 23 27 70 72 6f 6a 65 63 74 fine-key.map.(kbd."K").#'project
435a0 69 6c 65 2d 70 61 63 6b 61 67 65 2d 70 72 6f 6a 65 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ile-package-project).....(define
435c0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4c 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d -key.map.(kbd."L").#'projectile-
435e0 69 6e 73 74 61 6c 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 install-project).....(define-key
43600 20 6d 61 70 20 28 6b 62 64 20 22 50 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 .map.(kbd."P").#'projectile-test
43620 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 6b -project).....(define-key.map.(k
43640 62 64 20 22 75 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 bd."u").#'projectile-run-project
43660 29 0a 20 20 20 20 3b 3b 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 77 69 74 68 20 75 74 69 6c 69 74 ).....;;.integration.with.utilit
43680 69 65 73 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 ies.....(define-key.map.(kbd."x.
436a0 65 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 65 73 68 65 6c 6c 29 0a 20 20 20 e").#'projectile-run-eshell)....
436c0 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 69 22 29 20 23 27 70 .(define-key.map.(kbd."x.i").#'p
436e0 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 69 65 6c 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d rojectile-run-ielm).....(define-
43700 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 74 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 key.map.(kbd."x.t").#'projectile
43720 2d 72 75 6e 2d 74 65 72 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 -run-term).....(define-key.map.(
43740 6b 62 64 20 22 78 20 73 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c kbd."x.s").#'projectile-run-shel
43760 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 22 78 20 67 l).....(define-key.map.(kbd."x.g
43780 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 67 64 62 29 0a 20 20 20 20 28 64 65 ").#'projectile-run-gdb).....(de
437a0 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 20 76 22 29 20 23 27 70 72 6f 6a 65 fine-key.map.(kbd."x.v").#'proje
437c0 63 74 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 ctile-run-vterm).....(define-key
437e0 20 6d 61 70 20 28 6b 62 64 20 22 78 20 34 20 76 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d .map.(kbd."x.4.v").#'projectile-
43800 72 75 6e 2d 76 74 65 72 6d 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 3b 3b 20 6d run-vterm-other-window).....;;.m
43820 69 73 63 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 7a 22 isc.....(define-key.map.(kbd."z"
43840 29 20 23 27 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 ).#'projectile-cache-current-fil
43860 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 22 3c 6c 65 e).....(define-key.map.(kbd."<le
43880 66 74 3e 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 76 69 6f 75 73 2d 70 72 6f 6a ft>").#'projectile-previous-proj
438a0 65 63 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ect-buffer).....(define-key.map.
438c0 28 6b 62 64 20 22 3c 72 69 67 68 74 3e 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 6e 65 78 (kbd."<right>").#'projectile-nex
438e0 74 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 65 2d 6b 65 t-project-buffer).....(define-ke
43900 79 20 6d 61 70 20 28 6b 62 64 20 22 45 53 43 22 29 20 23 27 70 72 6f 6a 65 63 74 69 6c 65 2d 70 y.map.(kbd."ESC").#'projectile-p
43920 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 29 0a 20 20 20 roject-buffers-other-buffer)....
43940 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 50 72 6f 6a 65 63 74 69 6c 65 20 63 .map)..."Keymap.for.Projectile.c
43960 6f 6d 6d 61 6e 64 73 20 61 66 74 65 72 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 ommands.after.`projectile-keymap
43980 2d 70 72 65 66 69 78 27 2e 22 29 0a 28 66 73 65 74 20 27 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f -prefix'.").(fset.'projectile-co
439a0 6d 6d 61 6e 64 2d 6d 61 70 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 mmand-map.projectile-command-map
439c0 29 0a 0a 28 64 65 66 76 61 72 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 )..(defvar.projectile-mode-map..
439e0 20 28 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 .(let.((map.(make-sparse-keymap)
43a00 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 )).....(when.projectile-keymap-p
43a20 72 65 66 69 78 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 70 72 6f 6a refix.......(define-key.map.proj
43a40 65 63 74 69 6c 65 2d 6b 65 79 6d 61 70 2d 70 72 65 66 69 78 20 27 70 72 6f 6a 65 63 74 69 6c 65 ectile-keymap-prefix.'projectile
43a60 2d 63 6f 6d 6d 61 6e 64 2d 6d 61 70 29 29 0a 20 20 20 20 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 -command-map)).....(easy-menu-de
43a80 66 69 6e 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6d 61 70 0a 20 20 fine.projectile-mode-menu.map...
43aa0 20 20 20 20 22 4d 65 6e 75 20 66 6f 72 20 50 72 6f 6a 65 63 74 69 6c 65 22 0a 20 20 20 20 20 20 ...."Menu.for.Projectile".......
43ac0 27 28 22 50 72 6f 6a 65 63 74 69 6c 65 22 20 3a 76 69 73 69 62 6c 65 20 70 72 6f 6a 65 63 74 69 '("Projectile".:visible.projecti
43ae0 6c 65 2d 73 68 6f 77 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 28 22 46 69 6e 64 2e 2e 2e 22 0a le-show-menu.........("Find...".
43b00 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 66 69 6c 65 22 20 70 72 6f 6a 65 63 74 69 6c 65 .........["Find.file".projectile
43b20 2d 66 69 6e 64 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 66 69 6c 65 -find-file]..........["Find.file
43b40 20 69 6e 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 65 2d 66 .in.known.projects".projectile-f
43b60 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 5d 0a 20 20 20 20 ind-file-in-known-projects].....
43b80 20 20 20 20 20 5b 22 46 69 6e 64 20 74 65 73 74 20 66 69 6c 65 22 20 70 72 6f 6a 65 63 74 69 6c .....["Find.test.file".projectil
43ba0 65 2d 66 69 6e 64 2d 74 65 73 74 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e e-find-test-file]..........["Fin
43bc0 64 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 64 69 72 d.directory".projectile-find-dir
43be0 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 66 69 6c 65 20 69 6e 20 64 69 72 65 63 74 ]..........["Find.file.in.direct
43c00 6f 72 79 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 69 6e 2d 64 69 72 ory".projectile-find-file-in-dir
43c20 65 63 74 6f 72 79 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 6f 74 68 65 72 20 66 69 ectory]..........["Find.other.fi
43c40 6c 65 22 20 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 5d 0a le".projectile-find-other-file].
43c60 20 20 20 20 20 20 20 20 20 5b 22 4a 75 6d 70 20 62 65 74 77 65 65 6e 20 69 6d 70 6c 65 6d 65 6e .........["Jump.between.implemen
43c80 74 61 74 69 6f 6e 20 66 69 6c 65 20 61 6e 64 20 74 65 73 74 20 66 69 6c 65 22 20 70 72 6f 6a 65 tation.file.and.test.file".proje
43ca0 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 74 ctile-toggle-between-implementat
43cc0 69 6f 6e 2d 61 6e 64 2d 74 65 73 74 5d 29 0a 20 20 20 20 20 20 20 20 28 22 42 75 66 66 65 72 73 ion-and-test]).........("Buffers
43ce0 22 0a 20 20 20 20 20 20 20 20 20 5b 22 53 77 69 74 63 68 20 74 6f 20 62 75 66 66 65 72 22 20 70 "..........["Switch.to.buffer".p
43d00 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 5d 0a 20 20 20 20 rojectile-switch-to-buffer].....
43d20 20 20 20 20 20 5b 22 4b 69 6c 6c 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 22 20 70 72 6f .....["Kill.project.buffers".pro
43d40 6a 65 63 74 69 6c 65 2d 6b 69 6c 6c 2d 62 75 66 66 65 72 73 5d 0a 20 20 20 20 20 20 20 20 20 5b jectile-kill-buffers]..........[
43d60 22 53 61 76 65 20 70 72 6f 6a 65 63 74 20 62 75 66 66 65 72 73 22 20 70 72 6f 6a 65 63 74 69 6c "Save.project.buffers".projectil
43d80 65 2d 73 61 76 65 2d 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 5d 0a 20 20 20 20 20 20 20 20 e-save-project-buffers].........
43da0 20 5b 22 52 65 63 65 6e 74 20 66 69 6c 65 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 63 65 .["Recent.files".projectile-rece
43dc0 6e 74 66 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 50 72 65 76 69 6f 75 73 20 62 75 66 66 65 72 22 ntf]..........["Previous.buffer"
43de0 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 65 76 69 6f 75 73 2d 70 72 6f 6a 65 63 74 2d 62 75 66 .projectile-previous-project-buf
43e00 66 65 72 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4e 65 78 74 20 62 75 66 66 65 72 22 20 70 72 6f fer]..........["Next.buffer".pro
43e20 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 5d 29 0a 20 20 jectile-next-project-buffer])...
43e40 20 20 20 20 20 20 28 22 50 72 6f 6a 65 63 74 73 22 0a 20 20 20 20 20 20 20 20 20 5b 22 53 77 69 ......("Projects"..........["Swi
43e60 74 63 68 20 74 6f 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 tch.to.project".projectile-switc
43e80 68 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 53 77 69 74 63 68 20 74 6f 20 h-project]..........["Switch.to.
43ea0 6f 70 65 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 73 77 69 74 63 68 2d open.project".projectile-switch-
43ec0 6f 70 65 6e 2d 70 72 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 open-project].........."--".....
43ee0 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 64 69 72 65 .....["Discover.projects.in.dire
43f00 63 74 6f 72 79 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 6a 65 ctory".projectile-discover-proje
43f20 63 74 73 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 44 69 73 cts-in-directory]..........["Dis
43f40 63 6f 76 65 72 20 70 72 6f 6a 65 63 74 73 20 69 6e 20 73 65 61 72 63 68 20 70 61 74 68 22 20 70 cover.projects.in.search.path".p
43f60 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 6e 2d 73 rojectile-discover-projects-in-s
43f80 65 61 72 63 68 2d 70 61 74 68 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 43 6c 65 61 72 20 6b 6e 6f earch-path]..........["Clear.kno
43fa0 77 6e 20 70 72 6f 6a 65 63 74 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6c 65 61 72 2d 6b 6e wn.projects".projectile-clear-kn
43fc0 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 65 73 65 74 20 6b own-projects]..........["Reset.k
43fe0 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 73 65 74 2d nown.projects".projectile-reset-
44000 6b 6e 6f 77 6e 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 known-projects].........."--"...
44020 20 20 20 20 20 20 20 5b 22 4f 70 65 6e 20 70 72 6f 6a 65 63 74 20 69 6e 20 64 69 72 65 64 22 20 .......["Open.project.in.dired".
44040 70 72 6f 6a 65 63 74 69 6c 65 2d 64 69 72 65 64 5d 0a 20 20 20 20 20 20 20 20 20 22 2d 2d 22 0a projectile-dired].........."--".
44060 20 20 20 20 20 20 20 20 20 5b 22 42 72 6f 77 73 65 20 64 69 72 74 79 20 70 72 6f 6a 65 63 74 73 .........["Browse.dirty.projects
44080 22 20 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 65 63 ".projectile-browse-dirty-projec
440a0 74 73 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 43 61 63 ts].........."--"..........["Cac
440c0 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 he.current.file".projectile-cach
440e0 65 2d 63 75 72 72 65 6e 74 2d 66 69 6c 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 49 6e 76 61 6c e-current-file]..........["Inval
44100 69 64 61 74 65 20 63 61 63 68 65 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 69 6e 76 61 6c 69 64 61 idate.cache".projectile-invalida
44120 74 65 2d 63 61 63 68 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 65 67 65 6e 65 72 61 74 65 20 te-cache]..........["Regenerate.
44140 5b 65 7c 67 5d 74 61 67 73 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 67 65 6e 65 72 61 74 65 [e|g]tags".projectile-regenerate
44160 2d 74 61 67 73 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 -tags].........."--"..........["
44180 54 6f 67 67 6c 65 20 70 72 6f 6a 65 63 74 20 77 69 64 65 20 72 65 61 64 2d 6f 6e 6c 79 22 20 70 Toggle.project.wide.read-only".p
441a0 72 6f 6a 65 63 74 69 6c 65 2d 74 6f 67 67 6c 65 2d 70 72 6f 6a 65 63 74 2d 72 65 61 64 2d 6f 6e rojectile-toggle-project-read-on
441c0 6c 79 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 45 64 69 74 20 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e ly]..........["Edit..dir-locals.
441e0 65 6c 22 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 5d 0a el".projectile-edit-dir-locals].
44200 20 20 20 20 20 20 20 20 20 5b 22 50 72 6f 6a 65 63 74 20 69 6e 66 6f 22 20 70 72 6f 6a 65 63 74 .........["Project.info".project
44220 69 6c 65 2d 70 72 6f 6a 65 63 74 2d 69 6e 66 6f 5d 29 0a 20 20 20 20 20 20 20 20 28 22 53 65 61 ile-project-info]).........("Sea
44240 72 63 68 22 0a 20 20 20 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 20 77 69 74 68 20 67 72 65 70 rch"..........["Search.with.grep
44260 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 67 72 65 70 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 53 65 ".projectile-grep]..........["Se
44280 61 72 63 68 20 77 69 74 68 20 61 67 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 61 67 5d 0a 20 20 20 arch.with.ag".projectile-ag]....
442a0 20 20 20 20 20 20 5b 22 53 65 61 72 63 68 20 77 69 74 68 20 72 69 70 67 72 65 70 22 20 70 72 6f ......["Search.with.ripgrep".pro
442c0 6a 65 63 74 69 6c 65 2d 72 69 70 67 72 65 70 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 65 70 6c jectile-ripgrep]..........["Repl
442e0 61 63 65 20 69 6e 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 6c 61 ace.in.project".projectile-repla
44300 63 65 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 4d 75 6c 74 69 2d 6f 63 63 75 72 20 69 6e 20 70 72 ce]..........["Multi-occur.in.pr
44320 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 75 6c 74 69 2d 6f 63 63 75 72 5d 0a 20 oject".projectile-multi-occur]..
44340 20 20 20 20 20 20 20 20 5b 22 46 69 6e 64 20 72 65 66 65 72 65 6e 63 65 73 20 69 6e 20 70 72 6f ........["Find.references.in.pro
44360 6a 65 63 74 22 20 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 ject".projectile-find-references
44380 5d 29 0a 20 20 20 20 20 20 20 20 28 22 52 75 6e 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 5b 22 ]).........("Run..."..........["
443a0 52 75 6e 20 73 68 65 6c 6c 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 73 68 65 6c 6c 5d Run.shell".projectile-run-shell]
443c0 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 65 73 68 65 6c 6c 22 20 70 72 6f 6a 65 63 74 69 ..........["Run.eshell".projecti
443e0 6c 65 2d 72 75 6e 2d 65 73 68 65 6c 6c 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 69 65 le-run-eshell]..........["Run.ie
44400 6c 6d 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 69 65 6c 6d 5d 0a 20 20 20 20 20 20 20 lm".projectile-run-ielm]........
44420 20 20 5b 22 52 75 6e 20 74 65 72 6d 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 74 65 72 ..["Run.term".projectile-run-ter
44440 6d 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 76 74 65 72 6d 22 20 70 72 6f 6a 65 63 74 m]..........["Run.vterm".project
44460 69 6c 65 2d 72 75 6e 2d 76 74 65 72 6d 5d 0a 20 20 20 20 20 20 20 20 20 22 2d 2d 22 0a 20 20 20 ile-run-vterm].........."--"....
44480 20 20 20 20 20 20 5b 22 52 75 6e 20 47 44 42 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d ......["Run.GDB".projectile-run-
444a0 67 64 62 5d 29 0a 20 20 20 20 20 20 20 20 28 22 42 75 69 6c 64 22 0a 20 20 20 20 20 20 20 20 20 gdb]).........("Build"..........
444c0 5b 22 43 6f 6e 66 69 67 75 72 65 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d ["Configure.project".projectile-
444e0 63 6f 6e 66 69 67 75 72 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 43 6f configure-project]..........["Co
44500 6d 70 69 6c 65 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 69 6c mpile.project".projectile-compil
44520 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 54 65 73 74 20 70 72 6f 6a 65 e-project]..........["Test.proje
44540 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 74 65 73 74 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 ct".projectile-test-project]....
44560 20 20 20 20 20 20 5b 22 49 6e 73 74 61 6c 6c 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 ......["Install.project".project
44580 69 6c 65 2d 69 6e 73 74 61 6c 6c 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 ile-install-project]..........["
445a0 50 61 63 6b 61 67 65 20 70 72 6f 6a 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 61 63 6b Package.project".projectile-pack
445c0 61 67 65 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 20 20 20 20 20 20 5b 22 52 75 6e 20 70 72 6f 6a age-project]..........["Run.proj
445e0 65 63 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 75 6e 2d 70 72 6f 6a 65 63 74 5d 0a 20 20 20 ect".projectile-run-project]....
44600 20 20 20 20 20 20 22 2d 2d 22 0a 20 20 20 20 20 20 20 20 20 5b 22 52 65 70 65 61 74 20 6c 61 73 ......"--"..........["Repeat.las
44620 74 20 62 75 69 6c 64 20 63 6f 6d 6d 61 6e 64 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 72 65 70 65 t.build.command".projectile-repe
44640 61 74 2d 6c 61 73 74 2d 63 6f 6d 6d 61 6e 64 5d 29 0a 20 20 20 20 20 20 20 20 22 2d 2d 22 0a 20 at-last-command])........."--"..
44660 20 20 20 20 20 20 20 5b 22 41 62 6f 75 74 22 20 70 72 6f 6a 65 63 74 69 6c 65 2d 76 65 72 73 69 .......["About".projectile-versi
44680 6f 6e 5d 29 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 6f on])).....map)..."Keymap.for.Pro
446a0 6a 65 63 74 69 6c 65 20 6d 6f 64 65 2e 22 29 0a 0a 28 64 65 66 75 6e 20 70 72 6f 6a 65 63 74 69 jectile.mode.")..(defun.projecti
446c0 6c 65 2d 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 le-find-file-hook-function.()...
446e0 22 43 61 6c 6c 65 64 20 62 79 20 60 66 69 6e 64 2d 66 69 6c 65 2d 68 6f 6f 6b 27 20 77 68 65 6e "Called.by.`find-file-hook'.when
44700 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 2e 0a 0a 54 68 65 20 66 .`projectile-mode'.is.on...The.f
44720 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 70 72 65 74 74 79 20 6d 75 63 68 20 6e 6f 74 68 69 6e 67 unction.does.pretty.much.nothing
44740 20 77 68 65 6e 20 74 72 69 67 67 65 72 65 64 20 6f 6e 20 72 65 6d 6f 74 65 20 66 69 6c 65 73 0a .when.triggered.on.remote.files.
44760 61 73 20 61 6c 6c 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 69 74 20 6e 6f 72 6d 61 6c 6c as.all.the.operations.it.normall
44780 79 20 70 65 72 66 6f 72 6d 73 20 61 72 65 20 65 78 74 72 65 6d 65 6c 79 20 73 6c 6f 77 20 6f 76 y.performs.are.extremely.slow.ov
447a0 65 72 0a 74 72 61 6d 70 2e 22 0a 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 61 79 62 65 2d 6c er.tramp."...(projectile-maybe-l
447c0 69 6d 69 74 2d 70 72 6f 6a 65 63 74 2d 66 69 6c 65 2d 62 75 66 66 65 72 73 29 0a 20 20 28 75 6e imit-project-file-buffers)...(un
447e0 6c 65 73 73 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 64 65 66 61 75 6c 74 2d 64 69 72 65 less.(file-remote-p.default-dire
44800 63 74 6f 72 79 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 2d 64 79 6e 61 ctory).....(when.projectile-dyna
44820 6d 69 63 2d 6d 6f 64 65 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d mic-mode-line.......(projectile-
44840 75 70 64 61 74 65 2d 6d 6f 64 65 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f update-mode-line)).....(when.pro
44860 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 0a 20 20 20 20 20 20 jectile-auto-update-cache.......
44880 28 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 6c 65 73 2d 66 69 6e 64 2d 66 69 6c (projectile-cache-files-find-fil
448a0 65 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 74 72 61 63 6b 2d 6b e-hook)).....(projectile-track-k
448c0 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 29 0a 20 20 nown-projects-find-file-hook)...
448e0 20 20 28 70 72 6f 6a 65 63 74 69 6c 65 2d 76 69 73 69 74 2d 70 72 6f 6a 65 63 74 2d 74 61 67 73 ..(projectile-visit-project-tags
44900 2d 74 61 62 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 6d 61 79 -table)))..(defun.projectile-may
44920 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 65 72 73 20 28 29 be-limit-project-file-buffers.()
44940 0a 20 20 22 4c 69 6d 69 74 20 74 68 65 20 6f 70 65 6e 65 64 20 66 69 6c 65 20 62 75 66 66 65 72 ..."Limit.the.opened.file.buffer
44960 73 20 66 6f 72 20 61 20 70 72 6f 6a 65 63 74 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 s.for.a.project...The.function.s
44980 69 6d 70 6c 79 20 6b 69 6c 6c 73 20 74 68 65 20 6c 61 73 74 20 62 75 66 66 65 72 2c 20 61 73 20 imply.kills.the.last.buffer,.as.
449a0 69 74 27 73 20 6e 6f 72 6d 61 6c 6c 79 20 63 61 6c 6c 65 64 0a 77 68 65 6e 20 6f 70 65 6e 69 6e it's.normally.called.when.openin
449c0 67 20 6e 65 77 20 66 69 6c 65 73 2e 22 0a 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 69 6c 65 g.new.files."...(when.projectile
449e0 2d 6d 61 78 2d 66 69 6c 65 2d 62 75 66 66 65 72 2d 63 6f 75 6e 74 0a 20 20 20 20 28 6c 65 74 20 -max-file-buffer-count.....(let.
44a00 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 65 2d 70 72 ((project-buffers.(projectile-pr
44a20 6f 6a 65 63 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 oject-buffer-files))).......(whe
44a40 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 20 70 72 n.(>.(length.project-buffers).pr
44a60 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 29 0a ojectile-max-file-buffer-count).
44a80 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 61 72 20 28 6c 61 73 74 20 ........(kill-buffer.(car.(last.
44aa0 70 72 6f 6a 65 63 74 2d 62 75 66 66 65 72 73 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 70 72 6f project-buffers)))))))..;;;;.pro
44ac0 6a 65 63 74 2e 65 6c 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 3b 3b 0a 3b 3b 20 50 72 6f 6a 65 63 ject.el.integration.;;.;;.Projec
44ae0 74 69 6c 65 20 77 69 6c 6c 20 62 65 63 6f 6d 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 72 6f tile.will.become.the.default.pro
44b00 76 69 64 65 72 20 66 6f 72 0a 3b 3b 20 70 72 6f 6a 65 63 74 2e 65 6c 20 70 72 6f 6a 65 63 74 20 vider.for.;;.project.el.project.
44b20 61 6e 64 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 6c 6f 6f 6b 75 70 20 77 68 65 6e 0a 3b 3b and.project.files.lookup.when.;;
44b40 20 70 72 6f 6a 65 63 74 69 6c 65 2d 6d 6f 64 65 20 69 73 20 65 6e 61 62 6c 65 64 2e 0a 3b 3b 0a .projectile-mode.is.enabled..;;.
44b60 3b 3b 20 54 68 65 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 6d ;;.The.integration.can.also.be.m
44b80 61 6e 75 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 6c 69 6b 65 20 74 68 69 73 3a 0a 3b 3b 0a 3b 3b anually.enabled.like.this:.;;.;;
44ba0 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 72 6f 6a 65 63 74 2d 66 69 6e 64 2d 66 75 6e 63 74 69 6f .(add-hook.'project-find-functio
44bc0 6e 73 20 23 27 70 72 6f 6a 65 63 74 2d 70 72 6f 6a 65 63 74 69 6c 65 29 0a 3b 3b 0a 3b 3b 20 53 ns.#'project-projectile).;;.;;.S
44be0 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 2f 70 72 ee.https://github.com/bbatsov/pr
44c00 6f 6a 65 63 74 69 6c 65 2f 69 73 73 75 65 73 2f 31 35 39 31 20 66 6f 72 0a 3b 3b 20 6d 6f 72 65 ojectile/issues/1591.for.;;.more
44c20 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 69 74 27 73 20 73 61 66 65 20 74 6f 20 72 65 71 75 69 .details...;;.it's.safe.to.requi
44c40 72 65 20 74 68 69 73 20 64 69 72 65 63 74 6c 79 2c 20 61 73 20 69 74 20 77 61 73 20 61 64 64 65 re.this.directly,.as.it.was.adde
44c60 64 20 69 6e 20 45 6d 61 63 73 20 32 35 2e 31 0a 28 72 65 71 75 69 72 65 20 27 70 72 6f 6a 65 63 d.in.Emacs.25.1.(require.'projec
44c80 74 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 28 t)..(cl-defmethod.project-root.(
44ca0 28 70 72 6f 6a 65 63 74 20 28 68 65 61 64 20 70 72 6f 6a 65 63 74 69 6c 65 29 29 29 0a 20 20 28 (project.(head.projectile)))...(
44cc0 63 64 72 20 70 72 6f 6a 65 63 74 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 70 72 6f cdr.project))..(cl-defmethod.pro
44ce0 6a 65 63 74 2d 66 69 6c 65 73 20 28 28 70 72 6f 6a 65 63 74 20 28 68 65 61 64 20 70 72 6f 6a 65 ject-files.((project.(head.proje
44d00 63 74 69 6c 65 29 29 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 64 69 72 73 29 0a 20 20 28 6c 65 74 20 ctile)).&optional._dirs)...(let.
44d20 28 28 72 6f 6f 74 20 28 70 72 6f 6a 65 63 74 2d 72 6f 6f 74 20 70 72 6f 6a 65 63 74 29 29 29 0a ((root.(project-root.project))).
44d40 20 20 20 20 3b 3b 20 4d 61 6b 65 20 70 61 74 68 73 20 61 62 73 6f 6c 75 74 65 20 61 6e 64 20 69 ....;;.Make.paths.absolute.and.i
44d60 67 6e 6f 72 65 20 74 68 65 20 6f 70 74 69 6f 6e 61 6c 20 64 69 72 73 20 61 72 67 75 6d 65 6e 74 gnore.the.optional.dirs.argument
44d80 2c 0a 20 20 20 20 3b 3b 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ,.....;;.see.https://github.com/
44da0 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 23 69 bbatsov/projectile/issues/1591#i
44dc0 73 73 75 65 63 6f 6d 6d 65 6e 74 2d 38 39 36 34 32 33 39 36 35 0a 20 20 20 20 3b 3b 20 54 68 61 ssuecomment-896423965.....;;.Tha
44de0 74 27 73 20 6e 65 65 64 65 64 20 62 65 63 61 75 73 65 20 50 72 6f 6a 65 63 74 69 6c 65 20 75 73 t's.needed.because.Projectile.us
44e00 65 73 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 73 20 66 6f 72 20 70 72 6f 6a 65 63 74 20 66 69 es.relative.paths.for.project.fi
44e20 6c 65 73 0a 20 20 20 20 3b 3b 20 61 6e 64 20 70 72 6f 6a 65 63 74 2e 65 6c 20 65 78 70 65 63 74 les.....;;.and.project.el.expect
44e40 73 20 74 68 65 6d 20 74 6f 20 62 65 20 61 62 73 6f 6c 75 74 65 2e 0a 20 20 20 20 3b 3b 20 46 49 s.them.to.be.absolute......;;.FI
44e60 58 4d 45 3a 20 54 68 61 74 27 73 20 70 72 6f 62 61 62 6c 79 20 67 6f 69 6e 67 20 74 6f 20 62 65 XME:.That's.probably.going.to.be
44e80 20 76 65 72 79 20 73 6c 6f 77 20 69 6e 20 6c 61 72 67 65 20 70 72 6f 6a 65 63 74 73 2e 0a 20 20 .very.slow.in.large.projects....
44ea0 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 20 20 20 20 20 ..(mapcar.(lambda.(f)...........
44ec0 20 20 20 20 28 63 6f 6e 63 61 74 20 72 6f 6f 74 20 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ....(concat.root.f))............
44ee0 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 72 6f 6f 74 29 .(projectile-project-files.root)
44f00 29 29 29 0a 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 )))..(defun.project-projectile.(
44f20 64 69 72 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 dir)..."Return.Projectile.projec
44f40 74 20 6f 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 t.of.form.('projectile...root-di
44f60 72 29 20 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 r).for.DIR."...(let.((root.(proj
44f80 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 20 20 20 20 28 ectile-project-root.dir))).....(
44fa0 77 68 65 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 when.root.......(cons.'projectil
44fc0 65 20 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 66 69 e.root))))..;;;###autoload.(defi
44fe0 6e 65 2d 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 ne-minor-mode.projectile-mode...
45000 22 4d 69 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 "Minor.mode.to.assist.project.ma
45020 6e 61 67 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 nagement.and.navigation...When.c
45040 61 6c 6c 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 alled.interactively,.toggle.`pro
45060 6a 65 63 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 jectile-mode'...With.prefix.ARG,
45080 20 65 6e 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 .enable.`projectile-mode'.if.ARG
450a0 20 69 73 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 .is.positive,.otherwise.disable.
450c0 69 74 2e 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 it...When.called.from.Lisp,.enab
450e0 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 20 6f le.`projectile-mode'.if.ARG.is.o
45100 6d 69 74 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 mitted,.nil.or.positive...If.ARG
45120 20 69 73 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 .is.`toggle',.toggle.`projectile
45140 2d 6d 6f 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 -mode'..Otherwise.behave.as.if.c
45160 61 6c 6c 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 alled.interactively...\\{project
45180 69 6c 65 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 ile-mode-map}"...:lighter.projec
451a0 74 69 6c 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 tile--mode-line...:keymap.projec
451c0 74 69 6c 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 tile-mode-map...:group.'projecti
451e0 6c 65 0a 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 le...:require.'projectile...:glo
45200 62 61 6c 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 bal.t...(cond....(projectile-mod
45220 65 0a 20 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 e.....;;.setup.the.commander.bin
45240 64 69 6e 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 dings.....(projectile-commander-
45260 62 69 6e 64 69 6e 67 73 29 0a 20 20 20 20 3b 3b 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 bindings).....;;.initialize.the.
45280 70 72 6f 6a 65 63 74 73 20 63 61 63 68 65 20 69 66 20 6e 65 65 64 65 64 0a 20 20 20 20 28 75 6e projects.cache.if.needed.....(un
452a0 6c 65 73 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 0a 20 less.projectile-projects-cache..
452c0 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6a 65 63 74 69 6c 65 2d 70 72 6f 6a 65 63 74 73 2d 63 .....(setq.projectile-projects-c
452e0 61 63 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 70 72 6f 6a 65 63 74 69 6c 65 ache.............(or.(projectile
45300 2d 75 6e 73 65 72 69 61 6c 69 7a 65 20 70 72 6f 6a 65 63 74 69 6c 65 2d 63 61 63 68 65 2d 66 69 -unserialize.projectile-cache-fi
45320 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 le).................(make-hash-t
45340 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 able.:test.'equal)))).....(unles
45360 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 2d 74 69 6d 65 s.projectile-projects-cache-time
45380 0a 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 6f 6a 65 63 74 73 .......(setq.projectile-projects
453a0 2d 63 61 63 68 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 68 61 -cache-time.............(make-ha
453c0 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 0a 20 20 20 20 3b 3b 20 sh-table.:test.'equal))).....;;.
453e0 6c 6f 61 64 20 74 68 65 20 6b 6e 6f 77 6e 20 70 72 6f 6a 65 63 74 73 0a 20 20 20 20 28 70 72 6f load.the.known.projects.....(pro
45400 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 29 0a 20 20 20 jectile-load-known-projects)....
45420 20 3b 3b 20 75 70 64 61 74 65 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6b 6e 6f 77 6e 20 70 72 6f .;;.update.the.list.of.known.pro
45440 6a 65 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 jects.....(projectile--cleanup-k
45460 6e 6f 77 6e 2d 70 72 6f 6a 65 63 74 73 29 0a 20 20 20 20 28 77 68 65 6e 20 70 72 6f 6a 65 63 74 nown-projects).....(when.project
45480 69 6c 65 2d 61 75 74 6f 2d 64 69 73 63 6f 76 65 72 0a 20 20 20 20 20 20 28 70 72 6f 6a 65 63 74 ile-auto-discover.......(project
454a0 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-
454c0 70 61 74 68 29 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 path)).....(add-hook.'project-fi
454e0 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
45500 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
45520 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
45540 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-
45560 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
45580 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
455a0 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
455c0 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
455e0 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).
45600 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
45620 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
45640 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
45660 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
45680 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
456a0 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))....
456c0 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
456e0 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
45700 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
45720 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
45740 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
45760 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
45780 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-
457a0 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
457c0 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-
457e0 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
45800 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
45820 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
45840 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))))..;;
45860 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
45880 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-
458a0 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..;
458c0 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
458e0 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
45900 20 64 65 74 61 69 6c 73 0a 28 69 66 20 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 73 .details.(if.(bound-and-true-p.s
45920 61 76 65 68 69 73 74 2d 6c 6f 61 64 65 64 29 0a 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 avehist-loaded).....(add-to-list
45940 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 20 .'savehist-additional-variables.
45960 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 74 'projectile-project-command-hist
45980 6f 72 79 29 0a 20 20 28 64 65 66 76 61 72 20 73 61 76 65 68 69 73 74 2d 61 64 64 69 74 69 6f 6e ory)...(defvar.savehist-addition
459a0 61 6c 2d 76 61 72 69 61 62 6c 65 73 20 6e 69 6c 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 73 al-variables.nil)...(add-hook.'s
459c0 61 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 avehist-mode-hook.............(l
459e0 61 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 ambda()...............(add-to-li
45a00 73 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 st.'savehist-additional-variable
45a20 73 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 s.'projectile-project-command-hi
45a40 73 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 story))))..;;;###autoload.(defin
45a60 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 70 72 6f 6a 65 e-obsolete-function-alias.'proje
45a80 63 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 ctile-global-mode.'projectile-mo
45aa0 64 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 de."1.0")..(provide.'projectile)
45ac0 0a 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 ..;;;.projectile.el.ends.here...
45ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 00 projectile-2.8.0/README.md......
45c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c60 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
45c80 30 30 31 36 30 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 30 32 00 20 30 00 00 00 0016033.00000000000.013602..0...
45ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45d00 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...................
45d20 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...................
45d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e00 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
45e20 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
45e40 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
45e60 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
45e80 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)
45ea0 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
45ec0 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
45ee0 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
45f00 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.
45f20 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
45f40 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
45f60 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:
45f80 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
45fa0 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
45fc0 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
45fe0 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
46000 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.
46020 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
46040 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-
46060 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
46080 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
460a0 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
460c0 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
460e0 73 2e 20 49 74 73 20 67 6f 61 6c 20 69 73 20 74 6f 0a 70 72 6f 76 69 64 65 20 61 20 6e 69 63 65 s..Its.goal.is.to.provide.a.nice
46100 20 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 6f 6e 20 61 20 .set.of.features.operating.on.a.
46120 70 72 6f 6a 65 63 74 20 6c 65 76 65 6c 20 77 69 74 68 6f 75 74 0a 69 6e 74 72 6f 64 75 63 69 6e project.level.without.introducin
46140 67 20 65 78 74 65 72 6e 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 77 68 65 6e 20 66 65 g.external.dependencies.(when.fe
46160 61 73 69 62 6c 65 29 2e 20 46 6f 72 20 69 6e 73 74 61 6e 63 65 20 2d 0a 66 69 6e 64 69 6e 67 20 asible)..For.instance.-.finding.
46180 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 68 61 73 20 61 20 70 6f 72 74 61 62 6c 65 20 69 6d 70 project.files.has.a.portable.imp
461a0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 77 72 69 74 74 65 6e 20 69 6e 20 70 75 72 65 0a 45 6d 61 63 lementation.written.in.pure.Emac
461c0 73 20 4c 69 73 70 20 77 69 74 68 6f 75 74 20 74 68 65 20 75 73 65 20 6f 66 20 47 4e 55 20 60 66 s.Lisp.without.the.use.of.GNU.`f
461e0 69 6e 64 60 20 28 62 75 74 20 66 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 73 61 6b 65 20 61 ind`.(but.for.performance.sake.a
46200 6e 0a 69 6e 64 65 78 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20 62 61 63 6b 65 64 20 62 79 20 65 n.indexing.mechanism.backed.by.e
46220 78 74 65 72 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 65 78 69 73 74 73 20 61 73 20 77 65 6c 6c 29 xternal.commands.exists.as.well)
46240 2e 0a 0a 50 72 6f 6a 65 63 74 69 6c 65 20 74 72 69 65 73 20 74 6f 20 62 65 20 70 72 61 63 74 69 ...Projectile.tries.to.be.practi
46260 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 74 2c 20 62 75 74 20 cal.-.portability.is.great,.but.
46280 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 75 6c 64 20 73 70 65 if.some.external.tools.could.spe
462a0 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 61 6c 6c 79 20 61 6e ed.up.some.task.substantially.an
462c0 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 2c 20 50 72 6f 6a 65 d.the.tools.are.available,.Proje
462e0 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 0a 0a 54 68 69 73 20 ctile.will.leverage.them...This.
46300 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 6a 65 63 74 20 6d 61 library.provides.easy.project.ma
46320 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 54 68 65 20 63 6f 6e nagement.and.navigation..The.con
46340 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 74 79 20 62 61 73 69 cept.of.a.project.is.pretty.basi
46360 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 69 6e 67 20 73 6f 6d c.-.just.a.folder.containing.som
46380 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 53 0a 6d 61 72 6b 65 e.special.file.(e.g..a.VCS.marke
463a0 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 20 66 69 6c 65 20 6c r.or.a.project.descriptor.file.l
463c0 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 60 29 2e 20 50 72 6f ike.`pom.xml`.or.`Gemfile`)..Pro
463e0 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 70 72 65 74 74 79 20 jectile.will.auto-detect.pretty.
46400 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 74 20 74 79 70 65 20 much.every.popular.project.type.
46420 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 6e 20 65 61 73 69 6c out.of.the.box.and.you.can.easil
46440 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 61 6c 20 70 72 6f 6a y.extend.it.with.additional.proj
46460 65 63 74 20 74 79 70 65 73 2e 0a 0a 48 65 72 65 20 61 72 65 20 73 6f 6d 65 20 6f 66 20 50 72 6f ect.types...Here.are.some.of.Pro
46480 6a 65 63 74 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 jectile's.features:..*.jump.to.a
464a0 20 66 69 6c 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 .file.in.project.*.jump.to.a.pro
464c0 6a 65 63 74 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 ject.buffer.*.jump.to.a.test.in.
464e0 70 72 6f 6a 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 project.*.toggle.between.files.w
46500 69 74 68 20 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 ith.same.names.but.different.ext
46520 65 6e 73 69 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 ensions.(e.g..`.h`.<->.`.c/.cpp`
46540 2c 20 60 47 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 ,.`Gemfile`.<->.`Gemfile.lock`).
46560 2a 20 74 6f 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 *.toggle.between.code.and.its.te
46580 73 74 20 28 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 st.(e.g..`main.service.js`.<->.`
465a0 6d 61 69 6e 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 main.service.spec.js`).*.jump.to
465c0 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 74 68 65 20 70 .recently.visited.files.in.the.p
465e0 72 6f 6a 65 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 roject.*.switch.between.projects
46600 20 79 6f 75 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 .you.have.worked.on.*.kill.(clos
46620 65 29 20 61 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 e).all.project.buffers.*.grep.(s
46640 65 61 72 63 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 earch).in.project.*.replace.in.p
46660 72 6f 6a 65 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 roject.*.find.references.in.proj
46680 65 63 74 20 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 ect.(using.`xref`.internally).*.
466a0 72 75 6e 20 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 run.shell.commands.in.a.project.
466c0 28 65 2e 67 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 (e.g..`make`,.`lein`).*.support.
466e0 66 6f 72 20 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 for.multiple.minibuffer.completi
46700 6f 6e 2f 73 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 on/selection.libraries.(`ido`,.`
46720 69 76 79 60 2c 20 60 68 65 6c 6d 60 20 61 6e 64 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d ivy`,.`helm`.and.the.default.com
46740 70 6c 65 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 pletion.system).*.automatic.proj
46760 65 63 74 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 ect.discovery.(see.`projectile-p
46780 72 6f 6a 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 roject-search-path`).*.integrati
467a0 6f 6e 20 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 on.with.the.built-in.`project.el
467c0 60 20 6c 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 `.library..There's.also.a.rich.e
467e0 63 6f 73 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 cosystem.of.third-party.[Project
46800 69 6c 65 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 ile.extensions](https://melpa.or
46820 67 2f 23 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 g/#/?q=projectile).that.add.even
46840 20 6d 6f 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 .more.features...---------------
46860 0a 5b 21 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 .[![Patreon](https://img.shields
46880 2e 69 6f 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 .io/badge/patreon-donate-orange.
468a0 73 76 67 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 svg)](https://www.patreon.com/bb
468c0 61 74 73 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 atsov).[![Paypal](https://www.pa
468e0 79 70 61 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 ypalobjects.com/en_US/i/btn/btn_
46900 64 6f 6e 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 donate_SM.gif)](https://www.payp
46920 61 6c 2e 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 al.com/cgi-bin/webscr?cmd=_s-xcl
46940 69 63 6b 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 ick&hosted_button_id=GRQKNBM6P8V
46960 52 51 29 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 RQ)..I've.been.developing.Projec
46980 74 69 6c 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 tile.for.over.a.decade.now.(sinc
469a0 65 20 32 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 e.2011)..While.it's.a.fun.projec
469c0 74 20 74 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 t.to.work.on,.it.still.requires.
469e0 61 20 6c 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 a.lot.of.time.and.energy.to.main
46a00 74 61 69 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 tain...You.can.support.my.work.o
46a20 6e 20 50 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 n.Projectile.via..[PayPal](https
46a40 3a 2f 2f 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 ://www.paypal.me/bbatsov),..[Pat
46a60 72 65 6f 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 reon](https://www.patreon.com/bb
46a80 61 74 73 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 atsov).and..[GitHub.Sponsors](ht
46aa0 74 70 73 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 tps://github.com/sponsors/bbatso
46ac0 76 29 2e 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 v)...##.Projectile.in.Action..He
46ae0 72 65 27 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 re's.a.glimpse.of.Projectile.in.
46b00 61 63 74 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 action.(using.`ivy`):..![Project
46b20 69 6c 65 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 ile.Demo](doc/modules/ROOT/asset
46b40 73 2f 69 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 s/images/projectile-demo.gif)..I
46b60 6e 20 74 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 n.this.short.demo.you.can.see:..
46b80 2a 20 66 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 *.finding.files.in.a.project.*.s
46ba0 77 69 74 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 witching.between.implementation.
46bc0 61 6e 64 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 and.test.*.switching.between.pro
46be0 6a 65 63 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 jects..##.Quickstart..The.instru
46c00 63 74 69 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 ctions.that.follow.are.meant.to.
46c20 67 65 74 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 get.you.from.zero.to.a.running.P
46c40 72 6f 6a 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 rojectile.setup.in.a.minute...Vi
46c60 73 69 74 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 sit.the.[online.documentation](h
46c80 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 29 20 66 6f 72 20 28 ttps://docs.projectile.mx).for.(
46ca0 77 61 79 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 way).more.details...###.Installa
46cc0 74 69 6f 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 tion..`package.el`.is.the.built-
46ce0 69 6e 20 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 in.package.manager.in.Emacs...Pr
46d00 6f 6a 65 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 ojectile.is.available.on.all.maj
46d20 6f 72 20 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 or.`package.el`.community.mainta
46d40 69 6e 65 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 ined.repos.-.[NonGNU.ELPA](https
46d60 3a 2f 2f 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 ://elpa.nongnu.org),.[MELPA.Stab
46d80 6c 65 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 29 0a 61 6e 64 le](http://stable.melpa.org).and
46da0 20 5b 4d 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 .[MELPA](http://melpa.org)...You
46dc0 20 63 61 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 .can.install.Projectile.with.the
46de0 20 66 6f 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 .following.command:..<kbd>M-x</k
46e00 62 64 3e 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 bd>.`package-install`.<kbd>[RET]
46e20 3c 2f 6b 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 </kbd>.`projectile`.<kbd>[RET]</
46e40 6b 62 64 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 kbd>..Alternatively,.users.of.De
46e60 62 69 61 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 bian.9.or.later.or.Ubuntu.16.04.
46e80 6f 72 20 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 or.later.may.simply.`apt-get.ins
46ea0 74 61 6c 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 tall.elpa-projectile`...Finally.
46ec0 61 64 64 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 add.this.to.your.Emacs.config:..
46ee0 60 60 60 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 ```elisp.(projectile-mode.+1).;;
46f00 20 52 65 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 .Recommended.keymap.prefix.on.ma
46f20 63 4f 53 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 cOS.(define-key.projectile-mode-
46f40 6d 61 70 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 map.(kbd."s-p").'projectile-comm
46f60 61 6e 64 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 and-map).;;.Recommended.keymap.p
46f80 72 65 66 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 refix.on.Windows/Linux.(define-k
46fa0 65 79 20 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 ey.projectile-mode-map.(kbd."C-c
46fc0 20 70 22 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 .p").'projectile-command-map).``
46fe0 60 0a 0a 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 `..Those.keymap.prefixes.are.jus
47000 74 20 61 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 t.a.suggestion..Feel.free.to.put
47020 20 74 68 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 .there.whatever.works.best.for.y
47040 6f 75 2e 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 ou...###.Basic.Usage..Enable.`pr
47060 6f 6a 65 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 ojectile-mode`,.open.a.file.in.o
47080 6e 65 20 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 ne.of.your.projects.and.type.a.c
470a0 6f 6d 6d 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 ommand.such.as.<kbd>C-c.p.f</kbd
470c0 3e 2e 0a 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 >...See.the.[online.documentatio
470e0 6e 5d 28 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 29 20 66 n](https://docs.projectile.mx).f
47100 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 54 6f 20 67 65 74 20 74 68 65 20 6d 6f 73 or.more.details...To.get.the.mos
47120 74 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 20 79 6f 75 20 61 6c 73 6f 20 6e 65 65 64 20 74 6f t.of.Projectile.you.also.need.to
47140 20 65 6e 61 62 6c 65 20 28 61 6e 64 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 69 6e 73 74 61 6c 6c .enable.(and.potentially.install
47160 29 20 73 6f 6d 65 20 6d 69 6e 69 62 75 66 66 65 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 72 61 ).some.minibuffer.completion.fra
47180 6d 65 77 6f 72 6b 20 28 65 2e 67 2e 20 60 69 64 6f 60 2c 20 60 69 76 79 60 20 6f 72 20 60 73 65 mework.(e.g..`ido`,.`ivy`.or.`se
471a0 6c 65 63 74 72 75 6d 60 29 2e 20 53 65 65 20 5b 74 68 69 73 20 73 65 63 74 69 6f 6e 5d 28 68 74 lectrum`)..See.[this.section](ht
471c0 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 63 74 tps://docs.projectile.mx/project
471e0 69 6c 65 2f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 68 74 6d 6c 23 63 6f 6d 70 6c 65 74 69 6f ile/configuration.html#completio
47200 6e 2d 6f 70 74 69 6f 6e 73 29 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 n-options).of.the.documentation.
47220 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 2a 2a 4e 6f 74 65 3a 2a 2a 20 48 69 73 for.more.details...**Note:**.His
47240 74 6f 72 69 63 61 6c 6c 79 20 60 70 72 6f 6a 65 63 74 69 6c 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e torically.`projectile-completion
47260 2d 73 79 73 74 65 6d 60 20 64 65 66 61 75 6c 74 65 64 20 74 6f 20 60 69 64 6f 60 2c 20 62 75 74 -system`.defaulted.to.`ido`,.but
47280 20 74 68 69 73 20 77 61 73 20 63 68 61 6e 67 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 33 .this.was.changed.in.version.2.3
472a0 2e 20 59 6f 75 20 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 ..You.may.need.to.enable.`ido-mo
472c0 64 65 60 20 69 6e 20 79 6f 75 72 20 45 6d 61 63 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 de`.in.your.Emacs.configuration.
472e0 69 66 20 75 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 if.updating.from.an.older.versio
47300 6e 20 6f 66 20 50 72 6f 6a 65 63 74 69 6c 65 2e 0a 0a 23 23 20 43 61 76 65 61 74 73 0a 0a 2a 20 n.of.Projectile...##.Caveats..*.
47320 53 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 Some.operations.like.search.(gre
47340 70 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 p).depend.(presently).on.externa
47360 6c 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 l...utilities.such.as.`find`.or.
47380 60 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 `fd`.(version.8.3.0+)....*.for.o
473a0 6c 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 lder.`fd`.version.add.`(setq.pro
473c0 6a 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 jectile-generic-command."fd...-0
473e0 20 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 .--type.f.--color=never")`.to.yo
47400 75 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 ur.init-file.*.Commands.dependin
47420 67 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 g.on.external.utilities.might.mi
47440 73 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 sbehave.on.the.`fish`.shell..*.U
47460 73 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 sing.Projectile.over.TRAMP.might
47480 20 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 .be.slow.in.certain.cases..*.Som
474a0 65 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 e.commands.might.misbehave.on.co
474c0 6d 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 mplex.project.setups.(e.g..a.git
474e0 20 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 .project.with.submodules)..*.Pro
47500 6a 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 jectile.was.mostly.tested.on.Uni
47520 78 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 x.OS-es.(e.g..GNU/Linux.and.macO
47540 53 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 S),.so.some.functionality.might.
47560 6e 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 not.work.well.on.Windows..*.In.G
47580 69 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 it.repositories,.deleted.files.a
475a0 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 2d 66 69 re.still.shown.in.`projectile-fi
475c0 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 73 20 61 nd-file`.until.their.deletions.a
475e0 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 6f re.staged,.due.to.a.limitation.o
47600 66 20 60 67 69 74 20 6c 73 2d 66 69 6c 65 73 60 2e 20 49 66 20 79 6f 75 20 69 6e 73 74 61 6c 6c f.`git.ls-files`..If.you.install
47620 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 70 .[fd](https://github.com/sharkdp
47640 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 20 75 73 /fd).then.it.is.automatically.us
47660 65 64 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 76 65 20 74 68 ed.instead,.and.does.not.have.th
47680 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 74 20 74 68 65 is.problem..(You.can.inhibit.the
476a0 20 75 73 65 20 6f 66 20 60 66 64 60 20 62 79 20 73 65 74 74 69 6e 67 20 60 70 72 6f 6a 65 63 74 .use.of.`fd`.by.setting.`project
476c0 69 6c 65 2d 67 69 74 2d 75 73 65 2d 66 64 60 20 74 6f 20 6e 69 6c 2e 29 0a 0a 23 23 20 4b 6e 6f ile-git-use-fd`.to.nil.)..##.Kno
476e0 77 6e 20 69 73 73 75 65 73 0a 0a 43 68 65 63 6b 20 6f 75 74 20 74 68 65 20 70 72 6f 6a 65 63 74 wn.issues..Check.out.the.project
47700 27 73 0a 5b 69 73 73 75 65 20 6c 69 73 74 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 's.[issue.list](https://github.c
47720 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 3f 73 6f 72 om/bbatsov/projectile/issues?sor
47740 74 3d 63 72 65 61 74 65 64 26 64 69 72 65 63 74 69 6f 6e 3d 64 65 73 63 26 73 74 61 74 65 3d 6f t=created&direction=desc&state=o
47760 70 65 6e 29 0a 61 20 6c 69 73 74 20 6f 66 20 75 6e 72 65 73 6f 6c 76 65 64 20 69 73 73 75 65 73 pen).a.list.of.unresolved.issues
47780 2e 20 42 79 20 74 68 65 20 77 61 79 20 2d 20 66 65 65 6c 20 66 72 65 65 20 74 6f 20 66 69 78 20 ..By.the.way.-.feel.free.to.fix.
477a0 61 6e 79 20 6f 66 20 74 68 65 6d 0a 61 6e 64 20 73 65 6e 64 20 6d 65 20 61 20 70 75 6c 6c 20 72 any.of.them.and.send.me.a.pull.r
477c0 65 71 75 65 73 74 2e 20 3a 2d 29 0a 0a 23 23 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 0a 0a 48 65 equest..:-)..##.Contributors..He
477e0 72 65 27 73 20 61 20 5b 6c 69 73 74 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d re's.a.[list](https://github.com
47800 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 74 6f 72 73 /bbatsov/projectile/contributors
47820 29 20 6f 66 20 61 6c 6c 20 74 68 65 20 70 65 6f 70 6c 65 20 77 68 6f 20 68 61 76 65 20 63 6f 6e ).of.all.the.people.who.have.con
47840 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 0a 64 65 76 65 6c 6f 70 6d 65 6e 74 20 6f 66 20 50 tributed.to.the.development.of.P
47860 72 6f 6a 65 63 74 69 6c 65 20 28 61 2e 6b 2e 61 2e 20 50 72 6f 6a 65 63 74 69 6c 65 27 73 20 48 rojectile.(a.k.a..Projectile's.H
47880 61 6c 6c 20 6f 66 20 46 61 6d 65 29 2e 0a 0a 4a 6f 69 6e 69 6e 67 20 74 68 69 73 20 65 73 74 65 all.of.Fame)...Joining.this.este
478a0 65 6d 65 64 20 67 72 6f 75 70 20 6f 66 20 70 65 6f 70 6c 65 20 69 73 20 6f 6e 6c 79 20 61 20 63 emed.group.of.people.is.only.a.c
478c0 6f 6d 6d 69 74 20 61 77 61 79 21 0a 0a 23 23 20 43 68 61 6e 67 65 6c 6f 67 0a 0a 41 20 66 61 69 ommit.away!..##.Changelog..A.fai
478e0 72 6c 79 20 65 78 74 65 6e 73 69 76 65 20 63 68 61 6e 67 65 6c 6f 67 20 69 73 20 61 76 61 69 6c rly.extensive.changelog.is.avail
47900 61 62 6c 65 20 5b 68 65 72 65 5d 28 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 29 2e 0a 0a 5b 62 61 64 able.[here](CHANGELOG.md)...[bad
47920 67 65 2d 6c 69 63 65 6e 73 65 5d 3a 20 68 74 74 70 73 3a 2f 2f 69 6d 67 2e 73 68 69 65 6c 64 73 ge-license]:.https://img.shields
47940 2e 69 6f 2f 62 61 64 67 65 2f 6c 69 63 65 6e 73 65 2d 47 50 4c 5f 33 2d 67 72 65 65 6e 2e 73 76 .io/badge/license-GPL_3-green.sv
47960 67 0a 0a 23 23 20 4c 69 63 65 6e 73 65 0a 0a 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 31 31 g..##.License..Copyright....2011
47980 2d 32 30 32 33 20 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 20 61 6e 64 0a 5b 63 6f 6e 74 72 -2023.Bozhidar.Batsov.and.[contr
479a0 69 62 75 74 6f 72 73 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 ibutors](https://github.com/bbat
479c0 73 6f 76 2f 70 72 6f 6a 65 63 74 69 6c 65 2f 63 6f 6e 74 72 69 62 75 74 6f 72 73 29 2e 0a 0a 44 sov/projectile/contributors)...D
479e0 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c istributed.under.the.GNU.General
47a00 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 76 65 72 73 69 6f 6e 20 33 0a 00 00 00 00 00 .Public.License,.version.3......
47a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c00 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 70 72 6f 6a 65 63 74 69 6c 65 2d 70 6b 67 2e projectile-2.8.0/projectile-pkg.
47c20 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..............................
47c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c60 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
47c80 30 30 30 30 36 35 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 36 37 00 20 30 00 00 00 0000655.00000000000.015567..0...
47ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d00 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...................
47d20 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...................
47d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e00 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
47e20 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 6e 6f 2d 62 79 74 65 .from.projectile.el..-*-.no-byte
47e40 2d 63 6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 -compile:.t.-*-.(define-package.
47e60 22 70 72 6f 6a 65 63 74 69 6c 65 22 20 22 32 2e 38 2e 30 22 20 22 4d 61 6e 61 67 65 20 61 6e 64 "projectile"."2.8.0"."Manage.and
47e80 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
47ea0 6c 79 22 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 65 ly".'((emacs."25.1")).:commit."e
47ec0 36 38 38 39 64 37 66 34 62 63 30 64 32 63 34 38 63 65 61 63 35 36 64 66 65 36 66 34 61 33 64 37 6889d7f4bc0d2c48ceac56dfe6f4a3d7
47ee0 34 32 61 33 62 36 39 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 42 6f 7a 68 69 64 61 72 20 42 42a3b69".:authors.'(("Bozhidar.B
47f00 61 74 73 6f 76 22 20 2e 20 22 62 6f 7a 68 69 64 61 72 40 62 61 74 73 6f 76 2e 64 65 76 22 29 29 atsov"..."bozhidar@batsov.dev"))
47f20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 20 27 28 22 42 6f 7a 68 69 64 61 72 20 42 61 74 73 6f 76 22 .:maintainer.'("Bozhidar.Batsov"
47f40 20 2e 20 22 62 6f 7a 68 69 64 61 72 40 62 61 74 73 6f 76 2e 64 65 76 22 29 20 3a 6b 65 79 77 6f ..."bozhidar@batsov.dev").:keywo
47f60 72 64 73 20 27 28 22 70 72 6f 6a 65 63 74 22 20 22 63 6f 6e 76 65 6e 69 65 6e 63 65 22 29 20 3a rds.'("project"."convenience").:
47f80 75 72 6c 20 22 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 url."https://github.com/bbatsov/
47fa0 70 72 6f 6a 65 63 74 69 6c 65 22 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 projectile")....................
47fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 43 48 41 4e 47 45 4c 4f 47 2e 6d 64 00 00 00 projectile-2.8.0/CHANGELOG.md...
48020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48060 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
48080 30 31 31 36 37 33 36 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 0116736.00000000000.014147..0...
480a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
480c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
480e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48100 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...................
48120 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...................
48140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
481e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48200 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
48220 65 64 29 0a 0a 23 23 20 32 2e 38 2e 30 20 28 32 30 32 33 2d 31 30 2d 31 33 29 0a 0a 23 23 23 20 ed)..##.2.8.0.(2023-10-13)..###.
48240 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 74 70 73 3a 2f 2f New.features..*.[#1862](https://
48260 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
48280 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 73 20 22 79 61 72 ll/1862):.Add.project.types."yar
482a0 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 6d 20 22 6e 70 6d n".and."pnpm".separate.from."npm
482c0 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 62 2e 63 6f 6d 2f "..*.[#1851](https://github.com/
482e0 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 35 31 29 3a 20 41 bbatsov/projectile/pull/1851):.A
48300 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 63 6f 6d 6d 61 6e dd.ripgrep.to.`projectile-comman
48320 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 5b 23 31 38 33 33 der`.with.binding.`?p`..*.[#1833
48340 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
48360 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 6c 69 61 20 70 72 jectile/pull/1833):.Add.Julia.pr
48380 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 28 68 74 74 70 73 oject.discovery..*.[#1828](https
483a0 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
483c0 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 73 65 64 20 4e 69 /pull/1828):.Add.Nimble-based.Ni
483e0 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 20 65 6c 6d 20 70 m.project.discovery..*.Add.elm.p
48400 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 70 73 3a 2f 2f 67 roject.type..*.[#1821](https://g
48420 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
48440 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 6d 6c 60 20 64 69 l/1821):.Add.`pyproject.toml`.di
48460 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 73 2e 0a 2a 20 5b scovery.for.python.projects..*.[
48480 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 62 62 61 74 73 6f #1830](https://github.com/bbatso
484a0 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 20 41 64 64 20 63 v/projectile/issues/1830):.Add.c
484c0 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 72 6d 2d 6f 74 68 ommand.`projectile-run-vterm-oth
484e0 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 60 78 20 34 20 76 er-window`.and.bind.it.to.`x.4.v
48500 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 28 68 74 74 70 73 `...###.Changes..*.[#1839](https
48520 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
48540 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 6a 65 63 74 69 6c /issues/1839):.Ensure.`projectil
48560 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 74 69 6f 6e 2d e-toggle-between-implementation-
48580 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 65 63 74 69 6c 65 and-test`.also.obeys.`projectile
485a0 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 6f 6a 65 63 74 69 -project-test-dir`.and.`projecti
485c0 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 32 38 35 5d 28 68 le-project-src-dir`..*.[#1285](h
485e0 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
48600 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 74 2c 20 75 73 65 tile/pull/1825):.By.default,.use
48620 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 70 .[fd](https://github.com/sharkdp
48640 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 6e 73 74 65 61 64 /fd).in.Git.repositories.instead
48660 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 20 69 73 20 69 6e .of.`git.ls-files`.when.it.is.in
48680 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 20 74 68 65 20 70 stalled,.in.order.to.solve.the.p
486a0 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 20 77 65 72 65 20 roblem.where.deleted.files.were.
486c0 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 64 2d still.shown.in.`projectile-find-
486e0 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 73 20 77 65 72 65 file`.until.their.deletions.were
48700 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 65 68 61 76 69 6f .staged..The.user-facing.behavio
48720 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 6f 75 67 68 20 70 r.should.be.the.same,.although.p
48740 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 70 65 72 66 6f 72 otentially.with.different.perfor
48760 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 61 72 67 65 20 47 mance.characteristics.in.large.G
48780 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 65 68 61 76 69 6f it.repositories..The.old.behavio
487a0 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 69 6e 67 20 60 70 r.can.be.reclaimed.by.setting.`p
487c0 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 69 6c 2e 0a 2a 20 rojectile-git-use-fd`.to.nil..*.
487e0 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 2f 62 62 61 74 73 [#1831](https://github.com/bbats
48800 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 3a 20 45 6e 61 62 ov/projectile/issues/1831):.Enab
48820 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 69 6f 6e 20 6f 6e le.the.project.el.integration.on
48840 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 69 73 20 61 63 74 ly.when.`projectile-mode`.is.act
48860 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 68 75 62 2e 63 6f ive..*.[#1847](https://github.co
48880 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 38 34 37 m/bbatsov/projectile/issues/1847
488a0 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 61 6d 65 20 63 61 ):.Use.literal.directory.name.ca
488c0 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 20 69 6d 70 6c 20 sing.when.toggling.between.impl.
488e0 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 0a 2a 20 46 69 78 and.test...###.Bugs.fixed..*.Fix
48900 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 72 6f 6c 20 73 65 .`fd`.inserting.color.control.se
48920 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 6d 70 2e 0a 2a 20 quences.when.used.over.tramp..*.
48940 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 2f 62 62 61 74 73 [#1835](https://github.com/bbats
48960 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 3a 20 52 65 6f 70 ov/projectile/issues/1835):.Reop
48980 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 72 20 69 6e 20 6f ening.existing.vterm.buffer.in.o
489a0 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 73 3a 2f 2f 67 69 ther.window.*.[#1865](https://gi
489c0 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
489e0 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 63 2d 63 6f 6d 6d /1865):.`projectile-generic-comm
48a00 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 65 2d 66 64 2d 65 and`.should.use.`projectile-fd-e
48a20 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 68 20 66 6f 72 20 xecutable`.to.find.the.path.for.
48a40 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 0a 0a 23 23 23 20 fd...##.2.7.0.(2022-11-22)..###.
48a60 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 74 70 73 3a 2f 2f New.features..*.[#1591](https://
48a80 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 73 github.com/bbatsov/projectile/is
48aa0 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 6c 60 20 69 6e 74 sues/1591):.Add.`project.el`.int
48ac0 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 6f 6a 65 63 74 69 egration.that.will.make.Projecti
48ae0 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 72 20 70 72 6f 6a le.the.default.provider.for.proj
48b00 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 61 6e 64 20 60 70 ect.lookup..*.Add.new.command.`p
48b20 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 20 28 62 6f 75 6e rojectile-find-references`.(boun
48b40 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 43 2d 70 20 73 20 d.to.`C-c.C-p.?`.and.`C-c.C-p.s.
48b60 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 68 75 62 2e 63 6f x`)..*.[#1737](https://github.co
48b80 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 33 37 29 3a m/bbatsov/projectile/pull/1737):
48ba0 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 6c 2d 76 61 72 69 .Add.helpers.for.`dir-local-vari
48bc0 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 46 75 6e 63 74 69 ables`.for.3rd.party.use..Functi
48be0 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 63 61 6c 2d 76 61 ons.`projectile-add-dir-local-va
48c00 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 6c 65 74 65 2d 64 riable`.and.`projectile-delete-d
48c20 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 65 69 72 20 62 75 ir-local-variable`.wrap.their.bu
48c40 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 61 6c 77 61 79 73 ilt-in.counterparts..They.always
48c60 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 20 74 68 65 20 72 .use.`.dir-locals.el`.from.the.r
48c80 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 69 6c 65 20 70 72 oot.of.the.current.Projectile.pr
48ca0 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 6f 6d 20 28 60 70 oject..*.Add.a.new.defcustom.(`p
48cc0 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 20 63 6f 6e 74 72 rojectile-dirconfig-file`).contr
48ce0 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 65 20 75 73 65 64 olling.the.name.of.the.file.used
48d00 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 72 6b 65 72 20 61 .as.Projectile...s.root.marker.a
48d20 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 23 31 38 31 33 5d nd.configuration.file..*.[#1813]
48d40 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
48d60 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 72 6f 6a 65 63 74 ectile/pull/1813):.Allow.project
48d80 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 73 20 61 6e 64 20 -files.to.contain.wildcards.and.
48da0 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 65 73 20 70 65 72 allow.multiple.project-files.per
48dc0 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 2e 20 41 64 64 20 .project.type.registration..Add.
48de0 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 54 20 73 6f 6c 75 a.new.project-type.for..NET.solu
48e00 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 38 31 32 5d 28 68 tions...###.Changes..*.[#1812](h
48e20 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
48e40 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 6f 6a 65 63 74 69 tile/pull/1812):.Add.a.`projecti
48e60 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 6f 72 20 66 69 6e le-root-marked`.function.for.fin
48e80 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 6a 65 63 74 69 6c ding.roots.marked.by.`.projectil
48ea0 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 65 60 20 61 62 6f e`..Prioritize.`.projectile`.abo
48ec0 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 6c 65 73 2e 0a 0a ve.other.bottom-up.root.files...
48ee0 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 74 74 70 73 3a 2f ###.Bug.fixed..*.[#1796](https:/
48f00 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
48f20 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 6c 65 2d 72 6f 6f ssues/1796):.Fix.`projectile-roo
48f40 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 73 20 66 69 6e 64 t-bottom-up`.doesn't.always.find
48f60 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 39 5d 28 68 74 74 .bottom-most.file..*.[#1799](htt
48f80 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
48fa0 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 74 69 6c 65 2d 6f le/pull/1799):.Fix.`projectile-o
48fc0 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 74 73 20 66 6f 72 pen-projects`.lists.projects.for
48fe0 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 73 65 64 2e 0a 2a .which.all.buffers.are.closed..*
49000 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 6d 2f 62 62 61 74 .[#1806](https://github.com/bbat
49020 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 20 46 69 78 20 60 sov/projectile/pull/1806):.Fix.`
49040 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 6f 20 72 65 74 75 projectile-project-type`.to.retu
49060 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 65 20 65 76 65 6e rn.the.correct.project.type.even
49080 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 72 67 2e 20 41 73 .when.we.pass.it.the.DIR.arg..As
490a0 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 6a 65 63 74 69 6c .a.result.of.the.fix,.`projectil
490c0 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 65 2d 64 65 74 65 e-expand-root`,.`projectile-dete
490e0 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 69 6c 65 2d 76 65 ct-project-type`,.`projectile-ve
49100 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 76 65 72 69 66 79 rify-files`.,.`projectile-verify
49120 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 66 69 6c 65 2d 77 -file`.`projectile-verify-file-w
49140 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 6c 2d 70 72 6f 6a ildcard`,.`projectile-cabal-proj
49160 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 2d 70 72 6f 6a 65 ect-p`,.`projectile-dotnet-proje
49180 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 65 63 74 2d 70 60 ct-p`,.`projectile-go-project-p`
491a0 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 74 20 60 70 72 6f .and.the.newly.factored.out.`pro
491c0 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 6f 77 20 61 6c 73 jectile-eldev-project-p`.now.als
491e0 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 72 67 20 74 6f 20 o.takes.an.&optional.DIR.arg.to.
49200 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 73 20 61 63 74 69 specify.the.directory.it.is.acti
49220 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 32 35 29 0a 0a 23 ng.on...##.2.6.0.(2022-10-25)..#
49240 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 28 68 74 74 70 73 ##.New.features..*.[#1790](https
49260 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
49280 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 20 61 6e 64 20 60 /pull/1790):.Add.`src-dir`.and.`
492a0 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 68 65 20 6d 69 6c test-dir`.properties.for.the.mil
492c0 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 68 74 74 70 73 3a l.project.type..*.[#1778](https:
492e0 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/
49300 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 69 6c 65 2d 72 65 pull/1778):.Allow.`projectile-re
49320 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 6e 73 69 6f 6e 73 place`.to.select.file.extensions
49340 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 2d 75 60 29 2e 0a .when.using.prefix.arg.(`C-u`)..
49360 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 6f 6d 2f 62 62 61 *.[#1757](https://github.com/bba
49380 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 3a 20 41 64 64 20 tsov/projectile/pull/1757):.Add.
493a0 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 0a 2a 20 5b 23 31 support.for.the.Pijul.VCS..*.[#1
493c0 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 61 74 73 6f 76 2f 745](https://github.com/bbatsov/
493e0 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 6f 77 20 60 70 72 projectile/pull/1745):.Allow.`pr
49400 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 60 20 74 6f ojectile-update-project-type`.to
49420 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 64 65 6e 63 65 20 .change.project.type.precedence.
49440 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 2e 0a 2a 20 5b 23 and.remove.project.options..*.[#
49460 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 62 61 74 73 6f 76 1699](https://github.com/bbatsov
49480 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 72 6f 6a 65 63 74 /projectile/pull/1699):.`project
494a0 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 5b 72 67 2e 65 6c ile-ripgrep`.now.supports.[rg.el
494c0 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 2f 72 67 2e 65 6c ](https://github.com/dajva/rg.el
494e0 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 62 2e 63 6f 6d 2f )..*.[#1712](https://github.com/
49500 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 37 31 32 29 3a bbatsov/projectile/issues/1712):
49520 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 50 72 6f 6a 65 63 .Make.it.possible.to.hide.Projec
49540 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 6c 65 2d 73 68 6f tile's.menu..See.`projectile-sho
49560 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 2f 67 69 74 68 75 w-menu`..*.[#1718](https://githu
49580 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/
495a0 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 64 65 66 69 6e 69 1718):.Add.a.project.type.defini
495c0 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 5b 23 31 37 34 37 tion.for.`GNUMakefile`..*.[#1747
495e0 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
49600 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 70 70 6f 72 74 20 jectile/pull/1747):.Add.support.
49620 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 6f 6d 6d 61 6e 64 for.preset-based.install-command
49640 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 31 37 36 38 5d 28 s.for.CMake.projects..*.[#1768](
49660 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
49680 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 6f 72 74 20 66 6f ctile/pull/1768):.Add.support.fo
496a0 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 67 20 6f 6e 20 61 r.disabling.command.caching.on.a
496c0 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 39 37 5d 28 68 74 .per-project.basis..*.[#1797](ht
496e0 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
49700 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 72 6f 6a 65 63 74 ile/pull/1797):.Make.all.project
49720 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 76 65 72 72 69 64 .type.attributes.locally.overrid
49740 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 74 68 75 62 2e 63 able..*.[#1803](https://github.c
49760 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 30 33 29 om/bbatsov/projectile/pull/1803)
49780 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 2e 0a 0a 0a 23 23 :.Add.support.go-task/task....##
497a0 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 74 70 73 3a 2f 2f #.Bugs.fixed..*.[#1781](https://
497c0 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
497e0 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 60 20 61 6e 64 20 ll/1781):.Fix.`rails-rspec`.and.
49800 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 69 6e 73 74 65 61 `rails-test`.to.use.`app`.instea
49820 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 20 5b 23 31 37 36 d.of.`lib`.as.`src-dir`..*.[#176
49840 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 70 72 2](https://github.com/bbatsov/pr
49860 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 70 72 6f 6a 65 63 ojectile/pull/1762):.Fix.`projec
49880 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 63 74 6f 72 69 65 tile-globally-ignored-directorie
498a0 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 31 33 5d 28 68 74 s`.unescaped.regex..*.[#1713](ht
498c0 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
498e0 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 6a 65 63 74 69 6c ile/issues/1731):.Fix.`projectil
49900 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 72 79 e-discover-projects-in-directory
49920 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 73 2e 0a 2a 20 5b `.reordering.known.projects..*.[
49940 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 62 62 61 74 73 6f #1514](https://github.com/bbatso
49960 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 20 46 69 78 20 60 v/projectile/issues/1514):.Fix.`
49980 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 72 65 73 20 6e 6f projectile-ag`.global.ignores.no
499a0 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 70 73 3a 2f 2f 67 t.in.effect..*.[#1714](https://g
499c0 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
499e0 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 2d 64 69 73 63 6f ues/1714):.Fix.`projectile-disco
49a00 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 20 6e 6f 74 20 69 ver-projects-in-directory`.not.i
49a20 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 73 3a 2f 2f 67 69 nteractive..*.[#1734](https://gi
49a40 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
49a60 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 66 69 6e 64 2d 6d /1734):.Make.`projectile--find-m
49a80 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 2f 74 65 73 74 2d atching-test`.use.`src-dir/test-
49aa0 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 28 68 74 74 70 73 dir`.properties..*.[#1750](https
49ac0 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
49ae0 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 61 6e 64 20 74 65 /issues/1750):.Fix.source.and.te
49b00 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 72 6f 6a 65 63 74 st.directories.for.Maven.project
49b20 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 62 2e 63 6f 6d 2f s..*.[#1765](https://github.com/
49b40 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 37 36 35 29 3a bbatsov/projectile/issues/1765):
49b60 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 6e 6f 74 20 64 65 .Fix.`src-dir`/`test-dir`.not.de
49b80 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 22 74 65 73 74 2f faulting.to.`"src/"`.and.`"test/
49ba0 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 2d 62 65 74 77 65 "`.with.`projectile-toggle-betwe
49bc0 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 60 2e 0a 2a 20 46 en-implementation-and-test`..*.F
49be0 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 63 2e 0a 2a 20 5b ix.version.extraction.logic..*.[
49c00 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 62 61 74 73 6f 76 1654](https://github.com/bbatsov
49c20 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 69 78 20 63 6f 6e /projectile/issues/1654).Fix.con
49c40 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 69 6e 67 20 69 6e secutive.duplicates.appearing.in
49c60 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 5d 28 68 74 74 70 .command.history..*.[#1755](http
49c80 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
49ca0 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 72 65 20 74 6f 20 e/issues/1755).Cache.failure.to.
49cc0 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 61 6e 67 65 73 0a find.project.root...###.Changes.
49ce0 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 63 6f 6d 2f 62 62 .*.[#1785](https://github.com/bb
49d00 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 29 3a 20 47 69 76 atsov/projectile/pull/1785):.Giv
49d20 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 67 68 65 72 20 70 e.the.project.type."go".higher.p
49d40 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 79 70 65 73 2c 20 recedence.than.universal.types,.
49d60 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 74 74 70 73 3a 2f namely."make"..*.[#1447](https:/
49d80 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
49da0 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 68 65 20 6d 65 6e ssues/1447):.Restructure.the.men
49dc0 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 62 2e 63 6f 6d 2f u..*.[#1692](https://github.com/
49de0 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 36 39 32 29 3a bbatsov/projectile/issues/1692):
49e00 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 69 6f 6e 73 20 77 .Enable.minibuffer.completions.w
49e20 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 2e 0a 2a 20 43 68 hen.reading.shell-commands..*.Ch
49e40 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 72 6b 65 72 20 74 ange.the.Grails.project.marker.t
49e60 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 37 38 39 5d 28 68 o.`application.yml`..*.[#1789](h
49e80 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
49ea0 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 72 65 70 6f 72 74 tile/pull/1789):.Progress.report
49ec0 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 64 69 73 63 6f 76 er.for.recursive.progress.discov
49ee0 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 68 75 62 2e 63 6f ery..*.[#1708](https://github.co
49f00 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 37 30 38 m/bbatsov/projectile/issues/1708
49f20 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 77 20 63 6f 6e 73 ):.`projectile-ripgrep`.now.cons
49f40 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 69 6c 65 73 2e 0a istently.searches.hidden.files..
49f60 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 23 20 4e 65 77 20 .##.2.5.0.(2021-08-10)..###.New.
49f80 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 2f 2f 67 69 74 68 features..*.[#1680](https://gith
49fa0 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
49fc0 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 72 73 69 76 65 20 680):.Add.support.for.recursive.
49fe0 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 31 5d 28 68 74 74 project.discovery..*.[#1671](htt
4a000 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
4a020 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 73 3a 2f 2f 67 69 le/pull/1671)/[#1679](https://gi
4a040 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
4a060 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 69 72 60 20 61 6e /1679):.Allow.the.`:test-dir`.an
4a080 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 70 72 6f 6a 65 63 d.`:src-dir`.options.of.a.projec
4a0a0 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 6f 72 20 6d 6f 72 t.to.be.set.to.functions.for.mor
4a0c0 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 0a 2a 20 5b 23 31 e.flexible.test.switching..*.[#1
4a0e0 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 61 74 73 6f 76 2f 672](https://github.com/bbatsov/
4a100 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 20 60 70 72 6f 6a projectile/pull/1672):.Add.`proj
4a120 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 64 65 60 20 76 61 ectile-<cmd>-use-comint-mode`.va
4a140 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 60 63 6f 6e 66 69 riables.(where.`<cmd>`.is.`confi
4a160 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 60 69 6e 73 74 61 gure`,.`compile`,.`test`,.`insta
4a180 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 20 54 68 65 73 65 ll`,.`package`,.or.`run`)..These
4a1a0 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 61 74 69 6f 6e 20 .enable.interactive.compilation.
4a1c0 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 2f 67 69 74 68 75 buffers..*.[#1705](https://githu
4a1e0 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 37 b.com/bbatsov/projectile/pull/17
4a200 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 20 66 6f 72 20 4e 05):.Add.project.detection.for.N
4a220 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 0a 0a 2a 20 5b 23 ix.flakes...###.Bugs.fixed..*.[#
4a240 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 62 61 74 73 6f 76 1550](https://github.com/bbatsov
4a260 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 4d 61 6b 65 20 60 /projectile/issues/1550):.Make.`
4a280 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 60 20 74 72 61 6d projectile-regenerate-tags`.tram
4a2a0 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 2f 67 69 74 68 75 p-aware..*.[#1673](https://githu
4a2c0 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/
4a2e0 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 65 73 65 74 20 66 1673):.Fix.CMake.system-preset.f
4a300 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 2f 67 69 74 68 75 ilename..*.[#1691](https://githu
4a320 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 36 b.com/bbatsov/projectile/pull/16
4a340 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 2d 66 69 6c 65 60 91):.Fix.`compilation-find-file`
4a360 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 6f 72 79 2e 0a 0a .advice.handling.of.directory...
4a380 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 2d 69 6e 66 6f 60 ###.Changes..*.Remove.`pkg-info`
4a3a0 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 32 31 2d 30 35 2d .dependency...##.2.4.0.(2021-05-
4a3c0 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 64 64 20 60 70 72 27)..###.New.features..*.Add.`pr
4a3e0 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 60 20 66 75 ojectile-update-project-type`.fu
4a400 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 6f 70 65 72 74 69 nction.for.updating.the.properti
4a420 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 65 73 2e 0a 2a 20 es.of.existing.project.types..*.
4a440 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 2f 62 62 61 74 73 [#1658](https://github.com/bbats
4a460 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 4e 65 77 20 63 6f ov/projectile/pull/1658):.New.co
4a480 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 6f 77 6e 2d 70 72 mmand.`projectile-reset-known-pr
4a4a0 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 2f 67 69 74 68 75 ojects`..*.[#1656](https://githu
4a4c0 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 36 b.com/bbatsov/projectile/pull/16
4a4e0 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 20 63 6f 6e 66 69 56):.Add.support.for.CMake.confi
4a500 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 74 73 2e 20 45 6e gure,.build.and.test.presets..En
4a520 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 6c 65 2d 63 6d 61 abled.by.setting.`projectile-cma
4a540 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 73 61 62 6c 65 64 ke-presets`.to.non-nil,.disabled
4a560 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 6c 20 70 61 72 61 .by.default..*.Add.optional.para
4a580 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 73 68 65 6c 6c 2d meters.to.`projectile-run-shell-
4a5a0 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 65 63 74 69 6c 65 command-in-root`.and.`projectile
4a5c0 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 6e 2d 72 6f 6f 74 -run-async-shell-command-in-root
4a5e0 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 6a 65 63 74 60 20 `..###.Changes..*.Add.`project`.
4a600 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 61 74 65 2d 70 72 param.to.`projectile-generate-pr
4a620 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 70 73 3a 2f 2f 67 ocess-name`..*.[#1608](https://g
4a640 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
4a660 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 73 79 73 74 65 6d l/1608):.Use.rebar3.build.system
4a680 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 6a 65 63 74 73 2e .by.default.for.Erlang.projects.
4a6a0 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 65 63 74 2d 72 6f .*.Rename.`projectile-project-ro
4a6c0 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 6f 6a 65 63 74 69 ot-files-functions`.to.`projecti
4a6e0 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 2e 0a 2a 20 5b 23 le-project-root-functions`..*.[#
4a700 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 62 61 74 73 6f 76 1647](https://github.com/bbatsov
4a720 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 55 73 65 20 22 2d /projectile/issues/1647):.Use."-
4a740 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 61 76 6f 69 64 20 B".in.the.mvn.commands.to.avoid.
4a760 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 68 65 20 63 6f 6d ANSI.coloring.clutter.in.the.com
4a780 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 73 3a 2f 2f 67 69 pile.buffer.*.[#1657](https://gi
4a7a0 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
4a7c0 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 69 6f 6e 20 66 6f /1657):.Add.project.detection.fo
4a7e0 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 72 69 65 73 2e 0a r.Debian.packaging.directories..
4a800 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 6f 6d 2f 62 62 61 *.[#1656](https://github.com/bba
4a820 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 3a 20 43 4d 61 6b tsov/projectile/pull/1656):.CMak
4a840 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 74 6f 20 61 63 63 e.compilation-dir.removed.to.acc
4a860 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 6f 6d 6d 61 6e 64 ommodate.preset.support,.command
4a880 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 6a 65 63 74 2d 72 s.adjusted.to.run.from.project-r
4a8a0 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 69 6e 67 20 74 68 oot,.with."build".still.being.th
4a8c0 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 20 54 68 65 20 6e e.default.build-directory..The.n
4a8e0 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 20 75 73 65 73 20 on-preset.test-command.now.uses.
4a900 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 74 22 20 69 6e 73 "cmake".with."--target.test".ins
4a920 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 20 66 69 78 65 64 tead.of."ctest"...###.Bugs.fixed
4a940 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 2e 63 6f 6d 2f 62 ..*.[#1639](https://github.com/b
4a960 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 39 29 3a 20 44 6f batsov/projectile/pull/1639):.Do
4a980 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 20 72 75 6e 6e 69 .not.ask.twice.for.project.runni
4a9a0 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 20 5b 23 31 32 35 ng.ielm,.term.and.vterm..*.[#125
4a9c0 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 70 72 0](https://github.com/bbatsov/pr
4a9e0 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 20 60 70 72 6f 6a ojectile/issues/1250):.Fix.`proj
4aa00 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 63 74 6f 72 ectile-globally-ignored-director
4aa20 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 76 65 20 69 6e 64 ies`.not.working.with.native.ind
4aa40 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 69 74 68 75 62 2e exing..*.[#1438](https://github.
4aa60 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 34 33 38 com/bbatsov/projectile/pull/1438
4aa80 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 69 6c 65 73 2d 76 ):.Make.sure.`projectile-files-v
4aaa0 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 6c 65 73 2c 20 6e ia-ext-command`.returns.files,.n
4aac0 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 3a 2f 2f 67 69 74 ot.errors..*.[#1450](https://git
4aae0 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/
4ab00 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 74 2d 61 63 74 69 1450):.Call.`switch-project-acti
4ab20 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 62 75 66 66 65 72 on`.within.project's.temp.buffer
4ab40 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 2e 63 6f 6d 2f 62 ..*.[#1340](https://github.com/b
4ab60 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 30 29 3a 20 46 69 batsov/projectile/pull/1340):.Fi
4ab80 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 6d 6f 76 65 64 20 x.remote.projects.being.removed.
4aba0 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 5b 23 31 36 35 35 if.TRAMP.can't.connect..*.[#1655
4abc0 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
4abe0 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 72 6f 6a 65 63 74 jectile/pull/1655):.Fix.`project
4ac00 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 69 6e 67 20 74 68 ile-replace-regexp`.searching.th
4ac20 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 77 69 74 68 20 70 e.wrong.files.when.called.with.p
4ac40 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 3a 2f 2f 67 69 74 refix.arg..*.[#1659](https://git
4ac60 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
4ac80 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 72 6f 6a 65 63 74 s/1659):.Fix.`projectile-project
4aca0 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 6f 6a 65 63 74 2e -vcs`.to.work.outside.a.project.
4acc0 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 63 6f 6d 2f 62 62 .*.[#1637](https://github.com/bb
4ace0 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 29 3a 20 49 6e 74 atsov/projectile/pull/1661):.Int
4ad00 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 0a 0a 23 23 20 32 egrate.with.savehist-mode...##.2
4ad20 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 20 66 65 61 74 75 .3.0.(2020-11-27)..###.New.featu
4ad40 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 68 75 62 2e 63 6f res..*.[#1517](https://github.co
4ad60 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 35 31 37 m/bbatsov/projectile/issues/1517
4ad80 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 6d 70 69 6c 61 74 ):.Add.project-specific.compilat
4ada0 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 6f 20 73 61 76 65 ion.buffers.and.only.ask.to.save
4adc0 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 20 63 6f 6d 70 69 .files.in.the.project.when.compi
4ade0 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 6a 65 63 74 69 6c ling..*.New.functions.`projectil
4ae00 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 63 74 69 6c 65 2d e-acquire-root`.and.`projectile-
4ae20 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 65 72 73 2d process-current-project-buffers-
4ae40 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 6d 61 6e 64 73 20 current`.*.New.project.commands.
4ae60 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 74 60 2c 20 60 70 `projectile-package-project`,.`p
4ae80 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 2e 0a 2a 20 5b 23 rojectile-install-project`..*.[#
4aea0 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 62 61 74 73 6f 76 1539](https://github.com/bbatsov
4aec0 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 77 20 64 65 66 63 /projectile/pull/1539):.New.defc
4aee0 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 63 6f 76 65 72 60 ustom.`projectile-auto-discover`
4af00 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 74 6f 6d 61 74 69 .controlling.whether.to.automati
4af20 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 20 74 68 65 20 73 cally.discover.projects.in.the.s
4af40 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 65 2d 6d 6f 64 65 earch.path.when.`projectile-mode
4af60 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 65 6c 64 65 76 5d `.activates..*.Add.[emacs-eldev]
4af80 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 70 2f 65 6c 64 65 (https://github.com/doublep/elde
4afa0 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 74 20 70 72 6f 6a v).project.type..*.Add.Dart.proj
4afc0 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 2f 2f 67 69 74 68 ect.type..*.[#1555](https://gith
4afe0 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
4b000 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 72 65 70 2e 0a 2a 555):.Add.search.with.ripgrep..*
4b020 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 20 74 79 70 65 2e .Add.Python-poetry.project.type.
4b040 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 63 6f 6d 2f 62 62 .*.[#1576](https://github.com/bb
4b060 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 29 3a 20 41 64 64 atsov/projectile/pull/1576):.Add
4b080 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 75 62 2e 63 6f 6d .OCaml.[Dune](https://github.com
4b0a0 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 0a 2a 20 41 64 64 /ocaml/dune).project.type..*.Add
4b0c0 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 2e 63 6f 6d 2f 6d .[Mill](http://www.lihaoyi.com/m
4b0e0 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 2d 64 65 74 65 63 ill/).project.type..*.Auto-detec
4b100 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 72 74 69 6e 67 20 t.completion.system,.supporting.
4b120 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 68 65 20 64 65 66 `ido`,.`ivy`,.`helm`.and.the.def
4b140 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 23 23 20 43 68 61 ault.completion.system...###.Cha
4b160 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 74 68 75 62 2e 63 nges..*.[#1540](https://github.c
4b180 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 34 30 29 om/bbatsov/projectile/pull/1540)
4b1a0 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 60 20 74 6f 20 41 :.Add.default.`test-suffix`.to.A
4b1c0 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 3a 70 72 6f 6a 65 ngular.projects..*.Add.a.`:proje
4b1e0 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 69 6c 65 2d 72 65 ct-file`.param.to.`projectile-re
4b200 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 31 35 38 38 5d 28 gister-project-type`..*.[#1588](
4b220 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
4b240 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 70 65 72 66 6f 72 ctile/pull/1588):.Improve.perfor
4b260 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 65 72 60 20 77 69 mance.of.`projectile-ibuffer`.wi
4b280 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 6a 65 63 74 2e 0a th.many.buffers.not.in.project..
4b2a0 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 6f 6d 2f 62 62 61 *.[#1601](https://github.com/bba
4b2c0 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 3a 20 49 6d 70 6c tsov/projectile/pull/1601):.Impl
4b2e0 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 20 63 6f 6d 6d 61 ement.separate.compilation.comma
4b300 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 74 2e 0a 0a 23 23 nd.history.for.each.project...##
4b320 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 74 70 73 3a 2f 2f #.Bugs.fixed..*.[#1377](https://
4b340 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 73 github.com/bbatsov/projectile/is
4b360 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 65 2d 72 65 67 65 sues/1377):.Fix.`projectile-rege
4b380 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 23 20 32 2e 32 2e nerate-tags`.directory...##.2.2.
4b3a0 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 61 74 75 72 65 73 0.(2020-06-10)..###.New.features
4b3c0 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 2e 63 6f 6d 2f 62 ..*.[#1523](https://github.com/b
4b3e0 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 32 33 29 3a 20 batsov/projectile/issues/1523):.
4b400 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 65 63 74 69 6c 65 Add.a.new.defcustom.(`projectile
4b420 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 6f 6e 74 72 6f 6c -max-file-buffer-count`).control
4b440 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 62 75 66 66 65 72 ling.how.many.opened.file.buffer
4b460 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 69 6e 20 70 65 72 s.should.Projectile.maintain.per
4b480 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 72 74 20 66 6f 72 .project..*.Optional.support.for
4b4a0 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 69 72 63 6f 6e 66 .comments.in..projectile.dirconf
4b4c0 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 2d 64 69 72 63 6f ig.files.using.`projectile-dirco
4b4e0 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 31 34 39 37 5d 28 nfig-comment-prefix`..*.[#1497](
4b500 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
4b520 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 61 6e 64 20 60 70 ctile/pull/1497):.New.command.`p
4b540 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 20 67 3c 2f 6b 62 rojectile-run-gdb`.(<kbd>x.g</kb
4b560 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`).
4b580 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 65 6c 2e 62 75 69 .*.Add.[Bazel](https://bazel.bui
4b5a0 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 73 20 66 69 78 65 ld).project.type...###.Bugs.fixe
4b5c0 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 62 2e 63 6f 6d 2f d..*.[#1503](https://github.com/
4b5e0 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 30 33 29 3a 20 4c bbatsov/projectile/pull/1503):.L
4b600 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 69 6e 67 20 66 6f eave.archive.before.searching.fo
4b620 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 68 61 6e 67 65 73 r.the.project.root...###.Changes
4b640 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 2e 63 6f 6d 2f 62 ..*.[#1528](https://github.com/b
4b660 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 38 29 3a 20 49 6d batsov/projectile/pull/1528):.Im
4b680 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 6d 61 6e 63 65 20 prove.massively.the.performance.
4b6a0 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 72 6f 75 6e 64 20 of.native.indexing.(it's.around.
4b6c0 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 20 28 32 30 32 30 10x.faster.now)...##.2.1.0.(2020
4b6e0 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 0a 2a 20 5b 23 31 -02-04)..###.New.features..*.[#1
4b700 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 61 74 73 6f 76 2f 486](https://github.com/bbatsov/
4b720 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 77 20 60 70 72 6f projectile/pull/1486).Allow.`pro
4b740 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 65 72 6d 2f 76 74 jectile-run-shell/eshell/term/vt
4b760 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 72 6f 63 65 73 73 erm/ielm`.to.start.extra.process
4b780 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 66 69 78 20 61 72 es.if.invoked.with.the.prefix.ar
4b7a0 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 6a 65 63 74 69 6c gument..*.New.command.`projectil
4b7c0 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 64 3e 20 69 6e 20 e-run-vterm`.(<kbd>x.v</kbd>.in.
4b7e0 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 0a 2a 20 41 64 64 `projectile-command-map`)..*.Add
4b800 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 20 74 6f 20 75 73 .`related-files-fn`.option.to.us
4b820 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 74 65 73 74 2f 69 e.custom.function.to.find.test/i
4b840 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 28 68 74 74 70 73 mpl/other.files..*.[#1019](https
4b860 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
4b880 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 65 73 74 20 6e 61 /issues/1019):.Jump.to.a.test.na
4b8a0 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 64 69 66 66 65 72 med.the.same.way.but.in.a.differ
4b8c0 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 74 70 73 3a 2f 2f ent.directory..*.[#982](https://
4b8e0 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 73 github.com/bbatsov/projectile/is
4b900 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 6f 72 20 70 72 6f sues/982):.Add.heuristic.for.pro
4b920 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 2e 0a 2a 20 53 75 jectile-find-matching-test..*.Su
4b940 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 66 6f 72 20 60 72 pport.a.list.of.functions.for.`r
4b960 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 6e 64 20 68 65 6c elated-files-fn`.options.and.hel
4b980 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 74 74 70 73 3a 2f per.functions..*.[#1405](https:/
4b9a0 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
4b9c0 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 20 62 75 69 6c 64 ull/1405):.Add.Bloop.Scala.build
4b9e0 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 0a 2a 20 5b 23 31 .server.project.detection..*.[#1
4ba00 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 61 74 73 6f 76 2f 418](https://github.com/bbatsov/
4ba20 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 20 70 72 65 73 65 projectile/pull/1418):.The.prese
4ba40 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 6c 69 65 73 20 61 nce.of.a.`go.mod`.file.implies.a
4ba60 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 70 73 3a 2f 2f 67 .go.project..*.[#1419](https://g
4ba80 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
4baa0 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 65 20 5b 66 64 5d l/1419):.When.possible,.use.[fd]
4bac0 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 70 2f 66 64 29 20 (https://github.com/sharkdp/fd).
4bae0 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 74 68 65 20 66 69 instead.of.`find`.to.list.the.fi
4bb00 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 54 68 69 73 20 73 les.of.a.non-VCS.project..This.s
4bb20 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 20 42 75 67 73 20 hould.be.much.faster...###.Bugs.
4bb40 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 74 68 75 62 2e 63 fixed..*.[#675](https://github.c
4bb60 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 36 37 35 om/bbatsov/projectile/issues/675
4bb80 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 20 66 6f 72 20 6e ):.Performance.improvement.for.n
4bba0 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 61 74 65 67 79 2e ative.project.indexing.strategy.
4bbc0 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 6d 2f 62 62 61 74 .*.[#97](https://github.com/bbat
4bbe0 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 20 52 65 73 70 65 sov/projectile/issues/97):.Respe
4bc00 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 68 69 63 68 20 61 ct.`.projectile`.ignores.which.a
4bc20 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 65 72 6e 73 20 77 re.paths.to.files.and.patterns.w
4bc40 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 60 2e 0a 2a 20 5b hen.using.`projectile-grep`..*.[
4bc60 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 62 62 61 74 73 6f #1391](https://github.com/bbatso
4bc80 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 20 41 20 60 2e 63 v/projectile/issues/1391):.A.`.c
4bca0 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 6c 6f 6e 67 65 72 abal`.sub-directory.is.no.longer
4bcc0 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 74 6f 72 2e 0a 2a .considered.project.indicator..*
4bce0 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 6d 2f 62 62 61 74 .[#1385](https://github.com/bbat
4bd00 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 29 3a 20 55 70 64 sov/projectile/issues/1385):.Upd
4bd20 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 6f 72 20 45 6d 61 ate.`projectile-replace`.for.Ema
4bd40 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 69 74 68 75 62 2e cs.27..*.[#1432](https://github.
4bd60 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 34 com/bbatsov/projectile/issues/14
4bd80 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 0a 2a 20 5b 23 31 32):.Support..NET.project..*.[#1
4bda0 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 61 74 73 6f 76 2f 270](https://github.com/bbatsov/
4bdc0 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 69 78 20 72 75 6e projectile/issues/1270):.Fix.run
4bde0 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 61 76 65 20 61 20 ning.commands.that.don't.have.a.
4be00 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 74 74 70 73 3a 2f default.value..*.[#1475](https:/
4be20 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
4be40 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 65 73 20 62 65 69 ssues/1475):.Fix.directories.bei
4be60 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 65 20 64 65 73 70 ng.ignored.with.hybrid.mode.desp
4be80 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 6f 72 65 64 2e 0a ite.being.explicitly.unignored..
4bea0 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 6f 6d 2f 62 62 61 *.[#1482](https://github.com/bba
4bec0 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 32 29 3a 20 52 75 tsov/projectile/issues/1482):.Ru
4bee0 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 65 72 20 70 72 6f n.a.separate.grep.buffer.per.pro
4bf00 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 3a 2f 2f 67 69 74 ject.root..*.[#1488](https://git
4bf20 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
4bf40 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 69 6e 64 2d 66 69 s/1488):.Fix.`projectile-find-fi
4bf60 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 20 73 75 62 64 69 le-in-directory`.when.in.a.subdi
4bf80 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 6f 6f 74 60 2e 0a r.of.`projectile-project-root`..
4bfa0 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 23 20 4e 65 77 20 .##.2.0.0.(2019-01-01)..###.New.
4bfc0 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 2f 67 69 74 68 75 features..*.[#972](https://githu
4bfe0 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/
4c000 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 63 74 20 72 65 61 972):.Add.toggle.for.project.rea
4c020 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 6f 67 67 6c 65 2d d.only.mode:.`projectile-toggle-
4c040 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 69 6e 74 65 72 61 project-read-only`..*.New.intera
4c060 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 72 75 6e 2d 69 65 ctive.command.`projectile-run-ie
4c080 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 3a 2f 2f 63 72 79 lm`..*.Add.[crystal](https://cry
4c0a0 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 65 2e 0a 2a 20 5b stal-lang.org).project.type..*.[
4c0c0 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 62 61 74 73 6f 76 #850](https://github.com/bbatsov
4c0e0 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 61 6b 65 20 69 74 /projectile/issues/850):.Make.it
4c100 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 70 72 6f 6a 65 63 .possible.to.prompt.for.a.projec
4c120 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 6f 6a 65 63 74 2c t,.when.you're.not.in.a.project,
4c140 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 6f 72 2e 20 28 73 .instead.of.raising.an.error..(s
4c160 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 6a 65 63 74 2d 72 ee.`projectile-require-project-r
4c180 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 69 74 68 75 62 2e oot`)..*.[#1147](https://github.
4c1a0 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 31 com/bbatsov/projectile/issues/11
4c1c0 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 69 6e 67 20 6d 65 47):.Introduce.a.new.indexing.me
4c1e0 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 20 62 65 68 61 76 thod.called.`hybrid`.which.behav
4c200 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 20 5b 23 38 39 36 es.like.the.old.`alien`..*.[#896
4c220 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
4c240 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 6d 6d 61 6e 64 73 jectile/issues/896).Add.commands
4c260 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 65 63 74 2d 62 75 .`projectile-previous-project-bu
4c280 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 74 2d 70 72 6f 6a ffer.`.and.`projectile-next-proj
4c2a0 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 74 68 65 72 20 62 ect-buffer`.to.switch.to.other.b
4c2c0 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 31 30 31 36 5d 28 uffer.in.the.project..*.[#1016](
4c2e0 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
4c300 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 6e 65 77 20 64 65 ctile/issues/1016):.Add.a.new.de
4c320 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 6e 74 2d 70 72 6f fcustom.(`projectile-current-pro
4c340 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 6e 67 20 77 68 61 ject-on-switch`).controlling.wha
4c360 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 72 6f 6a 65 63 74 t.to.do.with.the.current.project
4c380 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 73 3a 2f 2f 67 69 .on.switch..*.[#1233](https://gi
4c3a0 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
4c3c0 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 74 6f 6d 20 28 60 es/1233):.Add.a.new.defcustom.(`
4c3e0 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 60 29 projectile-kill-buffers-filter`)
4c400 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 20 61 72 65 20 6b .controlling.which.buffers.are.k
4c420 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 62 75 66 66 65 72 illed.by.`projectile-kill-buffer
4c440 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 75 62 2e 63 6f 6d s`..*.[#1279](https://github.com
4c460 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 32 37 39 29 /bbatsov/projectile/issues/1279)
4c480 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 72 65 70 65 61 74 :.Add.command.`projectile-repeat
4c4a0 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 74 65 20 74 68 65 -last-command`.to.re-execute.the
4c4c0 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 61 20 70 72 6f 6a .last.external.command.in.a.proj
4c4e0 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 65 61 6b 69 6e 67 ect...###.Changes..*.**(Breaking
4c500 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 2e 63 6f 6d 2f 62 )**.[#1147](https://github.com/b
4c520 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 31 34 37 29 3a 20 batsov/projectile/issues/1147):.
4c540 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 20 66 72 6f 6d 20 Remove.any.post-processing.from.
4c560 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 64 2e 0a 2a 20 53 the.`alien`.indexing.method..*.S
4c580 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 72 6f 6a 65 63 74 pecify.project.path.for.`project
4c5a0 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 6e 64 6c 65 20 66 ile-regenerate-tags`..*.Handle.f
4c5c0 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 72 73 20 69 6e 20 iles.with.special.characters.in.
4c5e0 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 73 60 2e 0a 2a 20 `projectile-get-other-files`..*.
4c600 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 2f 62 62 61 74 73 [#1260](https://github.com/bbats
4c620 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 69 67 6e 6f 72 65 ov/projectile/pull/1260):.ignore
4c640 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 6e 73 74 20 72 65 d-*-p:.Now.they.match.against.re
4c660 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 65 61 6b 69 6e 67 gular.expressions..*.**(Breaking
4c680 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 66 69 78 20 6b 65 )**.Remove.the.default.prefix.ke
4c6a0 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 2e 20 55 73 65 72 y.(`C-c.p`).for.Projectile..User
4c6c0 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 6d 73 65 6c 76 65 s.now.have.to.pick.one.themselve
4c6e0 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 2d 6b 65 79 6d 61 s..*.Deprecate.`projectile-keyma
4c700 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 6a 65 63 74 73 20 p-prefix`..*.Avoid."No.projects.
4c720 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 73 61 67 65 73 20 needed.to.be.removed.".messages.
4c740 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 68 74 74 70 73 3a in.global.mode..*.[#1278](https:
4c760 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/
4c780 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 60 74 65 73 74 2d issues/1278):.Add.default.`test-
4c7a0 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 2a 20 5b 23 31 32 suffix`.to.`npm`.project..*.[#12
4c7c0 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 70 85](https://github.com/bbatsov/p
4c7e0 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 64 65 66 61 75 6c rojectile/pull/1285):.Add.defaul
4c800 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 70 72 6f 6a 65 63 t.`test-suffix`.to.Python.projec
4c820 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 75 62 2e 63 6f 6d ts..*.[#1285](https://github.com
4c840 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 38 35 29 3a 20 /bbatsov/projectile/pull/1285):.
4c860 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 61 67 65 64 20 50 Add.support.for.Pipenv-managed.P
4c880 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 68 74 74 70 73 3a ython.projects..*.[#1232](https:
4c8a0 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/
4c8c0 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 69 6e 67 20 63 6f issues/1232):.Stop.evaluating.co
4c8e0 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 2d 6c 69 6e 65 20 de.dynamically.in.the.mode-line.
4c900 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 68 65 6d 65 20 77 and.switch.to.a.simpler.scheme.w
4c920 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 74 65 64 20 6a 75 here.the.mode-line.is.updated.ju
4c940 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 6f 6f 6b 60 2e 0a st.once.using.`find-file-hook`..
4c960 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 67 75 72 61 62 6c *.Make.the.mode.line.configurabl
4c980 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 6d 6f 64 65 2d 6c e.via.`projectile-dynamic-mode-l
4c9a0 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 6c 69 6e 65 2d 66 ine`.and.`projectile-mode-line-f
4c9c0 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 2f 2f 67 69 74 68 unction`..*.[#1205](https://gith
4c9e0 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
4ca00 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 20 64 69 72 65 63 /1205):.Check.that.project.direc
4ca20 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 20 70 72 6f 6a 65 tory.exists.when.switching.proje
4ca40 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 65 6e 75 20 6f 75 cts..*.Move.Projectile's.menu.ou
4ca60 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 41 50 49 5d 20 2a t.of.the."Tools".menu..*.[API].*
4ca80 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 20 65 72 72 6f 72 *(Breaking)**.Stop.raising.error
4caa0 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 2d 72 6f 6f 74 60 s.from.`projectile-project-root`
4cac0 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 72 6f 6a 65 63 74 .if.not.invoked.within.a.project
4cae0 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 6e 20 6e 69 6c 2e ..Now.it.will.simply.return.nil.
4cb00 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 6a 65 63 74 69 6c .Use.it.together.with.`projectil
4cb20 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 74 65 20 74 68 65 e-ensure-project`.to.emulate.the
4cb40 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 69 78 65 64 0a 0a .old.behavior...###.Bugs.fixed..
4cb60 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 6f 6d 2f 62 62 61 *.[#1315](https://github.com/bba
4cb80 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 35 29 3a 20 47 69 tsov/projectile/issues/1315):.Gi
4cba0 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 63 74 20 74 79 70 ve.preference.to.the.project.typ
4cbc0 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 73 74 2e 0a 2a 20 es.that.were.registered.last..*.
4cbe0 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 2f 62 62 61 74 73 [#1367](https://github.com/bbats
4cc00 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 3a 20 46 69 78 20 ov/projectile/issues/1367):.Fix.
4cc20 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 6e 20 63 6f 6d 70 the.Makefile.so.that.we.can.comp
4cc40 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 60 2e 0a 0a 23 23 ile.projectile.-.use.`make`...##
4cc60 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 65 77 20 46 65 61 .1.0.0.(2018-07-21)..###.New.Fea
4cc80 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 69 74 68 75 62 2e tures..*.[#1255](https://github.
4cca0 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 35 35 com/bbatsov/projectile/pull/1255
4ccc0 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 6e 20 73 79 6d 62 ):.Add.support.for.function.symb
4cce0 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 6d 61 6e 64 73 0a ols.as.project.default.commands.
4cd00 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 6f 6d 2f 62 62 61 *.[#1243](https://github.com/bba
4cd20 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 3a 20 41 64 64 20 tsov/projectile/pull/1243):.Add.
4cd40 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 69 6f 29 20 70 72 [angular](https://angular.io).pr
4cd60 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 74 74 70 73 3a 2f oject.support..*.[#1228](https:/
4cd80 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
4cda0 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 20 61 20 70 72 65 ull/1228):.Add.support.for.a.pre
4cdc0 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 65 2d 76 63 60 2e fix.argument.to.`projectile-vc`.
4cde0 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 63 6f 6d 2f 62 62 .*.[#1221](https://github.com/bb
4ce00 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 29 3a 20 4d 6f 64 atsov/projectile/pull/1221):.Mod
4ce20 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 74 20 73 65 74 74 ify.Ruby.and.Elixir.project.sett
4ce40 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 74 68 75 62 2e 63 ings..*.[#1175](https://github.c
4ce60 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 29 om/bbatsov/projectile/pull/1175)
4ce80 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 65 2d 63 6f 6e 66 :.Add.a.command.`projectile-conf
4cea0 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 20 61 20 63 6f 6e igure-command`.for.running.a.con
4cec0 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 6d 73 20 74 68 61 figuration.for.build.systems.tha
4cee0 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 70 73 3a 2f 2f 67 t.need.that..*.[#1168](https://g
4cf00 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
4cf20 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 6f 6e 20 70 72 6f l/1168):.Add.CMake.and.Meson.pro
4cf40 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 74 70 73 3a 2f 2f ject.support..*.[#1159](https://
4cf60 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
4cf80 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 6e 69 78 6f 73 2e ll/1159).Add.[nix](http://nixos.
4cfa0 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 31 31 36 36 5d 28 org).project.support..*.[#1166](
4cfc0 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
4cfe0 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 68 65 72 2d 66 72 ctile/pull/1166):.Add.`-other-fr
4d000 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 74 68 61 74 20 68 ame`.versions.of.commands.that.h
4d020 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 73 2e 0a 2a 20 43 ad.`-other-window`.versions..*.C
4d040 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 6f 6e 20 66 69 6c onsider.Ensime.configuration.fil
4d060 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 60 2e 0a 2a 20 5b e.as.root.marker,.`.ensime`..*.[
4d080 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 62 62 61 74 73 6f #1057](https://github.com/bbatso
4d0a0 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 20 4d 61 6b 65 20 v/projectile/issues/1057):.Make.
4d0c0 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 6f 6d 61 74 69 63 it.possible.to.disable.automatic
4d0e0 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 6a 65 63 74 69 6c .project.tracking.via.`projectil
4d100 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 6f 6d 61 74 69 63 e-track-known-projects-automatic
4d120 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 73 70 65 63 69 66 ally`..*.Added.ability.to.specif
4d140 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 65 66 69 78 20 61 y.test.files.suffix.and.prefix.a
4d160 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 2e 0a 2a 20 5b 23 t.the.project.registration..*.[#
4d180 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 62 61 74 73 6f 76 1154](https://github.com/bbatsov
4d1a0 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 20 6e 70 6d 20 69 /projectile/pull/1154).Use.npm.i
4d1c0 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 20 41 64 64 65 64 nstall.instead.of.build..*.Added
4d1e0 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 20 66 69 6c 65 73 .the.ability.to.expire.old.files
4d200 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 6c 65 2d 70 72 6f .list.caches.via.`projectile-pro
4d220 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 60 2e 0a 2a 20 5b jectile-files-cache-expire`..*.[
4d240 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 62 62 61 74 73 6f #1204](https://github.com/bbatso
4d260 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 70 72 6f 6a 65 63 v/projectile/pull/1204):.`projec
4d280 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 60 20 63 61 6e 20 tile-register-project-type`.can.
4d2a0 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 65 20 73 6f 75 72 now.be.use.to.customize.the.sour
4d2c0 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 60 3a 73 72 63 2d ce.and.test.directory.via.`:src-
4d2e0 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 72 6f 6a 65 63 74 dir`.and.`:test-dir`.for.project
4d300 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 61 76 65 6e 29 2e s.with.custom.needs.(eg..maven).
4d320 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 63 6f 6d 2f 62 62 .*.[#1240](https://github.com/bb
4d340 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 29 3a 20 41 64 64 atsov/projectile/pull/1240):.Add
4d360 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 67 72 65 70 2e 0a .some.integration.with.riggrep..
4d380 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 73 65 61 72 63 68 *.Add.`projectile-project-search
4d3a0 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 63 68 65 64 20 66 -path`,.which.is.auto-searched.f
4d3c0 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 6c 65 2d 6d 6f 64 or.projects.when.`projectile-mod
4d3e0 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 6c 65 2d 64 69 73 e`.starts..*.Add.`projectile-dis
4d400 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 60 20 63 cover-projects-in-search-path`.c
4d420 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 70 72 6f 6a 65 63 ommand.which.searches.for.projec
4d440 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 73 65 61 72 63 68 ts.in.`projectile-project-search
4d460 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 73 69 6e 67 20 6b -path`..*.Auto-cleanup.missing.k
4d480 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 6c 65 2d 6d 6f 64 nown-projects.on.`projectile-mod
4d4a0 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 5b 23 31 32 31 33 e`.start...###.Changes..*.[#1213
4d4c0 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
4d4e0 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 70 72 6f 6a 65 63 jectile/pull/1213):.Cache.projec
4d500 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 20 62 75 66 66 65 t.root.in.non-filed-backed.buffe
4d520 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 75 62 2e 63 6f 6d rs..*.[#1175](https://github.com
4d540 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 29 3a 20 /bbatsov/projectile/pull/1175):.
4d560 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 74 79 70 `projectile-register-project-typ
4d580 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 6f 6d 70 69 6c 61 e`.can.now.set.a.default.compila
4d5a0 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 79 73 74 65 6d 73 tion.directory.for.build.systems
4d5c0 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 66 2d 74 72 65 65 .that.needs.to.build.out-of-tree
4d5e0 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 74 70 73 3a 2f 2f .(eg..meson)..*.[#1175](https://
4d600 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
4d620 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 74 2c 72 75 6e 7d ll/1175):.`projectile-{test,run}
4d640 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 28 70 72 6f 6a 65 -project`.now.run.inside.`(proje
4d660 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 75 73 74 20 6c 69 ctile-compilation-dir)`,.just.li
4d680 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 6a 65 63 74 60 2e ke.`projectile-compile-project`.
4d6a0 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 63 6f 6d 2f 62 62 .*.[#1175](https://github.com/bb
4d6c0 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 29 3a 20 60 70 72 atsov/projectile/pull/1175):.`pr
4d6e0 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 74 60 20 6e 6f 77 ojectile-{test,run}-project`.now
4d700 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 64 20 70 65 72 20 .stores.the.default.command.per.
4d720 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 72 6f 6a 65 63 74 directory.instead.of.per.project
4d740 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 6d 70 69 6c 65 2d ,.just.like.`projectile-compile-
4d760 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 20 6f 66 20 74 68 project`..*.Cache.the.root.of.th
4d780 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 61 73 65 20 70 65 e.current.project.to.increase.pe
4d7a0 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 2f 2f 67 69 74 68 rformance.*.[#1129](https://gith
4d7c0 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
4d7e0 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 41 64 64 20 52 20 129):.Fix.TRAMP.issues..*.Add.R.
4d800 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 63 74 69 6c 65 2d DESCRIPTION.file.to.`projectile-
4d820 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 6f 72 65 20 62 61 project-root-files`..*.Ignore.ba
4d840 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 67 65 74 2d 6f 74 ckup.files.in.`projectile-get-ot
4d860 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 65 20 63 61 63 68 her-files`..*.Ignore.Ensime.cach
4d880 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 65 60 2e 0a 2a 20 e.directory,.`.ensime_cache`..*.
4d8a0 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 62 62 61 74 73 6f [#364](https://github.com/bbatso
4d8c0 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 60 70 72 6f 6a 65 v/projectile/issues/364):.`proje
4d8e0 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 61 6e 20 6e 6f 77 ctile-add-known-project`.can.now
4d900 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 60 70 72 6f 6a 65 .be.used.interactively..*.`proje
4d920 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 6c 20 6d 6f 64 65 ctile-mode`.is.now.a.global.mode
4d940 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 6e 6f 77 20 64 65 ..*.`projectile-find-tag`.now.de
4d960 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 2e 31 2b 2e 0a 2a faults.to.xref.on.Emacs.25.1+..*
4d980 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 20 61 6e 64 20 60 .Add.relation.between.`.h`.and.`
4d9a0 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 6f 74 68 65 72 2d .cc`.files.in.`projectile-other-
4d9c0 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 61 6d 65 20 6f 66 file-alist`..*.Cache.the.name.of
4d9e0 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 6f 64 65 2d 6c 69 .the.current.project.for.mode-li
4da00 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 6e 61 6d 65 2e 0a ne.display.of.the.project.name..
4da20 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 6f 6d 2f 62 62 61 *.[#1078](https://github.com/bba
4da40 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 38 29 3a 20 46 6f tsov/projectile/issues/1078):.Fo
4da60 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 65 66 61 75 6c 74 r.projectile-grep/ag.use.default
4da80 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 0a 2a 20 44 6f 6e .value.like.grep/rgrep/ag..*.Don
4daa0 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 20 61 20 70 72 6f 't.treat.`package.json`.as.a.pro
4dac0 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 73 3a 2f 2f 67 69 ject.marker..*.[#987](https://gi
4dae0 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
4db00 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 6f 72 65 73 20 61 es/987):.projectile-ag.ignores.a
4db20 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 69 6c 65 2d 70 72 g-ignore-list.when.projectile-pr
4db40 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 28 68 74 74 70 73 oject-vcs.is.git.*.[#1119](https
4db60 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
4db80 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 20 69 67 6e 6f 72 /issues/1119):.File.search.ignor
4dba0 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 65 64 20 77 69 74 es.non-root.dirs.if.prefixed.wit
4dbc0 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 70 72 6f 6a 65 63 h."*".*.Treat.members.of.`projec
4dbe0 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 69 tile-globally-ignored-file-suffi
4dc00 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 20 28 70 72 65 76 xes`.as.file.name.suffixes.(prev
4dc20 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 6f 6e 73 29 2e 0a ious.treat.as.file.extensions)..
4dc40 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 20 61 64 64 65 64 *.Ensure.project.roots.are.added
4dc60 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 69 64 20 6e 65 61 .as.directory.names.to.avoid.nea
4dc80 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 20 22 7e 2f 70 72 r-duplicate.projects,.e.g.."~/pr
4dca0 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 20 44 6f 6e 27 74 oject/".and."~/project"..*.Don't
4dcc0 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 28 42 72 65 61 6b .autoload.defcustoms..*.**(Break
4dce0 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 0a 2a 20 52 65 6d ing)**.Require.Emacs.25.1..*.Rem
4dd00 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 2e 0a 0a 23 23 23 ove.the.support.for.grizzl...###
4dd20 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 70 73 3a 2f 2f 67 .Bugs.fixed..*.[#1222](https://g
4dd40 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
4dd60 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 66 69 67 75 72 65 ues/1222):.`projectile-configure
4dd80 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 63 20 70 72 6f 6a -project`.fails.for.generic.proj
4dda0 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 2f 67 69 74 68 75 ect.type.*.[#1162](https://githu
4ddc0 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/
4dde0 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 73 65 73 20 22 41 1162):.`projectile-ag`.causes."A
4de00 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 20 6f 62 6a 65 63 ttempt.to.modify.read-only.objec
4de20 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 2f 2f 67 69 74 68 t".error..*.[#1169](https://gith
4de40 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
4de60 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 65 2d 70 72 6f 6a /1169):.`projectile-compile-proj
4de80 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 6f 6d 70 69 6c 61 ect`.does.not.prompt.for.compila
4dea0 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 74 70 73 3a 2f 2f tion.command..*.[#1072](https://
4dec0 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 73 github.com/bbatsov/projectile/is
4dee0 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 6c 65 73 20 6f 6e sues/1072):.Create.test.files.on
4df00 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 23 31 30 36 33 5d ly.within.the.project..*.[#1063]
4df20 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
4df40 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 72 74 20 46 6f 73 ectile/issues/1063):.Support.Fos
4df60 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 2a 20 5b 23 31 30 sil.checkouts.on.Windows..*.[#10
4df80 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 74 73 6f 76 2f 70 24](https://github.com/bbatsov/p
4dfa0 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 20 6e 6f 74 20 63 rojectile/issues/1024):.Do.not.c
4dfc0 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 2e 0a 2a 20 5b 23 ache.ignored.project.files..*.[#
4dfe0 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 62 61 74 73 6f 76 1022](https://github.com/bbatsov
4e000 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 53 63 61 6e 20 66 /projectile/issues/1022):.Scan.f
4e020 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 6f 74 20 69 74 73 or.Fossil's.checkout.DB,.not.its
4e040 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 73 3a 2f 2f 67 69 .config.DB..*.[#1007](https://gi
4e060 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
4e080 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 6a 65 63 74 69 6c es/1007):.Make.use.of.`projectil
4e0a0 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 68 74 74 70 73 3a e-go-function`..*.[#1011](https:
4e0c0 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/
4e0e0 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 20 66 69 6c 65 73 issues/1011):.Save.project.files
4e100 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 73 74 73 2e 0a 2a .before.running.project.tests..*
4e120 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 6d 2f 62 62 61 74 .[#1099](https://github.com/bbat
4e140 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 29 3a 20 46 69 78 sov/projectile/issues/1099):.Fix
4e160 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 69 6c 65 2d 70 75 .the.behaviour.of.`projectile-pu
4e180 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 30 36 37 5d 28 68 rge-dir-from-cache`..*.[#1067](h
4e1a0 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
4e1c0 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 65 73 73 20 75 70 tile/issues/1067):.Don't.mess.up
4e1e0 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 20 73 77 69 74 63 .`default-directory`.after.switc
4e200 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 74 74 70 73 3a 2f hing.projects..*.[#1246](https:/
4e220 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
4e240 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 61 79 20 72 65 61 ssues/1246):.Don't.blow.away.rea
4e260 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 73 2e 0a 0a 23 23 l.project.file.during.tests...##
4e280 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 4e 65 77 20 66 65 .0.14.0.(2016-07-08)..###.New.fe
4e2a0 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 70 3a 2f 2f 65 6c atures..*.Add.[elixir](http://el
4e2c0 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 65 2e 0a 2a 20 41 ixir-lang.org).project.type..*.A
4e2e0 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 74 68 75 62 2e 63 dd.[emacs-cask](https://github.c
4e300 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 2e 0a 2a 20 41 64 om/cask/cask).project.type..*.Ad
4e320 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 62 2e 63 6f 6d 2f d.[boot-clj](https://github.com/
4e340 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 65 2e 0a 2a 20 41 boot-clj/boot).project.type..*.A
4e360 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 6c 61 6e 67 2e 6f dd.[racket](http://racket-lang.o
4e380 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 70 70 6f 72 74 20 rg).project.type..*.Add.support.
4e3a0 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 20 73 63 72 69 70 for.projects.using.gradlew.scrip
4e3c0 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 70 72 6f 6a 65 63 t..*.Prefer.Haskell.stack.projec
4e3e0 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 41 64 64 20 61 62 ts.over.cabal.projects..*.Add.ab
4e400 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 6e 73 20 66 6f 72 ility.to.use.elisp.functions.for
4e420 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 6d 61 6e 64 73 2e .test,.compile.and.run.commands.
4e440 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 41 47 53 60 20 72 .*.Consider.`TAGS`.and.`GTAGS`.r
4e460 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 6e 20 62 65 74 77 oot.markers..*.Add.relation.betw
4e480 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 78 60 20 61 6e 64 een.the.`.h`,.`.cxx`,.`.ixx`.and
4e4a0 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 6c 65 2d 6f 74 68 .`.hxx`.files.in.`projectile-oth
4e4c0 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 74 69 6f 6e 20 62 er-file-alist`..*.Add.relation.b
4e4e0 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 60 20 66 69 6c 65 etween.the.`.hpp`.and.`.cc`.file
4e500 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 65 2d 61 6c 69 73 s.in.`projectile-other-file-alis
4e520 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 66 79 20 70 72 6f t`..*.Add.support.to.specify.pro
4e540 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 2d 6c 6f 63 61 6c ject.name.either.via.`.dir-local
4e560 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 73 74 6f 6d 69 7a s.el`.or.by.providing.a.customiz
4e580 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 65 2d 66 75 6e 63 ed.`projectile-project-name-func
4e5a0 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 73 77 69 74 63 68 tion`..*.Add.a.command.to.switch
4e5c0 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 72 6f 6a 65 63 74 .between.open.projects.(`project
4e5e0 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 0a 2a 20 41 64 64 ile-switch-open-project`)..*.Add
4e600 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 72 2d 6c 6f 63 61 .a.command.to.edit.the..dir-loca
4e620 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 28 60 70 72 6f 6a ls.el.file.of.the.project.(`proj
4e640 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 2a 20 41 64 64 20 ectile-edit-dir-locals`)..*.Add.
4e660 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 63 74 69 6c 65 2d file.local.variable.`projectile-
4e680 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 73 20 6f 76 65 72 project-root`,.which.allows.over
4e6a0 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 20 61 20 70 65 72 riding.the.project.root.on.a.per
4e6c0 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 61 76 69 67 61 74 -file.basis..This.allows.navigat
4e6e0 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 6f 6d 2c 20 73 61 ing.a.different.project.from,.sa
4e700 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 72 20 67 69 74 20 y,.an.org.file.in.a.another.git.
4e720 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 69 6c 65 2d 67 72 repository..*.Add.`projectile-gr
4e740 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 65 20 66 69 6c 65 ep-finished-hook`..*.Ignore.file
4e760 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 63 74 69 6c 65 2d .suffixes.listed.in.`projectile-
4e780 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 69 78 65 73 60 20 globally-ignored-file-suffixes`.
4e7a0 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 60 20 61 6e 64 when.using.`projectile-grep`.and
4e7c0 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 72 6f 6a 65 63 74 .`projectile-ag`..*.Add.`project
4e7e0 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 20 73 75 70 70 6f ile-replace-regexp`,.which.suppo
4e800 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 77 69 74 68 69 6e rts.replacement.by.regexp.within
4e820 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 70 6c 61 63 65 60 .a.project..`projectile-replace`
4e840 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 74 65 72 61 6c 20 .is.now.used.solely.for.literal.
4e860 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 64 20 60 70 72 6f replacements..*.New.command.`pro
4e880 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 2d 63 20 70 20 78 jectile-run-shell`.(<kbd>C-c.p.x
4e8a0 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 70 72 6f 6a 65 63 .s</kbd>)..*.New.command.`projec
4e8c0 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 20 70 20 78 20 65 tile-run-eshell`.(<kbd>C-c.p.x.e
4e8e0 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 6f 6a 65 63 74 69 </kbd>)..*.New.command.`projecti
4e900 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 20 74 3c 2f 6b 62 le-run-term`.(<kbd>C-c.p.x.t</kb
4e920 64 3e 29 2e 0a 2a 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 d>)..*.Let.user.unignore.files.i
4e940 6e 20 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 n.`.projectile`.with.the.!.prefi
4e960 78 2e 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 x..*.Add.a.command.to.add.all.pr
4e980 6f 6a 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 ojects.in.a.directory.to.the.cac
4e9a0 68 65 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 he.(`projectile-discover-project
4e9c0 73 2d 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 s-in-directory`)..*.Add.a.comman
4e9e0 64 20 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 d.to.list.dirty.version.controll
4ea00 65 64 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 ed.projects.(`projectile-browse-
4ea20 64 69 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 dirty-projects`)...###.Changes..
4ea40 2a 20 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 *.Prefer.ag's.internal..gitignor
4ea60 65 20 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 e.parsing..*.Added.variable.to.c
4ea80 6f 6e 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 ontrol.use.of.external.find-tag.
4eaa0 69 6d 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 implementations..*.Specify.`--wi
4eac0 74 68 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 th-keep.source`.argument.when.in
4eae0 73 74 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 stalling.R.projects..###.Bugs.fi
4eb00 78 65 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 xed..*.[#871](https://github.com
4eb20 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 38 37 31 29 3a /bbatsov/projectile/issues/871):
4eb40 20 53 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 .Stop.advice.for.`compilation-fi
4eb60 6e 64 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 nd-file`.to.override.other.advic
4eb80 65 73 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 es..*.[#557](https://github.com/
4eba0 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 35 35 37 29 3a 20 bbatsov/projectile/issues/557):.
4ebc0 73 74 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 stack.overflow.in.`projectile-fi
4ebe0 6e 64 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 nd-tag`..*.[#955](https://github
4ec00 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 39 .com/bbatsov/projectile/issues/9
4ec20 35 35 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 55):.Error.while.toggling.betwee
4ec40 6e 20 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 n.test.and.source.file..*.[#952]
4ec60 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
4ec80 65 63 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 ectile/issues/952):.VCS.submodul
4eca0 65 73 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 es.brought.in.even.thought.not.d
4ecc0 65 73 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 escendent.of.project.root..*.[#5
4ece0 37 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 2f 70 76](https://github.com/bbatsov/p
4ed00 72 6f 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 rojectile/issues/576):.`projecti
4ed20 6c 65 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 le-replace`.stomps.regular.expre
4ed40 73 73 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 ssions..*.[#957](https://github.
4ed60 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 35 37 29 com/bbatsov/projectile/pull/957)
4ed80 3a 20 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 :.When.opening.a.specified.file.
4eda0 66 72 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 from.the.terminal,.do.not.error.
4edc0 69 6e 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 inside.of.`projectile-cache-curr
4ede0 65 6e 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 ent-file`..*.[#984](https://gith
4ee00 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
4ee20 38 34 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 84):.Error.when.a.project.is.a.s
4ee40 79 6d 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 ymlink.that.changes.target..*.[#
4ee60 31 30 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 1013](https://github.com/bbatsov
4ee80 2f 70 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 /projectile/issues/1013):.`proje
4eea0 63 74 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 ctile-project-buffer-p`.may.retu
4eec0 72 6e 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 rn.incorrect.result.on.Windows..
4eee0 0a 23 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 .##.0.13.0.(2015-10-21)..###.New
4ef00 20 66 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 .features..*.Add.`projectile-bef
4ef20 6f 72 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 ore-switch-project-hook`..*.Add.
4ef40 74 68 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 the.ability.to.specify.the.proje
4ef60 63 74 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 ct.type.via.`.dir-locals.el`..*.
4ef80 41 64 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 Add.support.for.projects.using.M
4efa0 69 64 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 idje..*.Add.the.ability.to.creat
4efc0 65 20 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 e.missing.tests.automatically.(c
4efe0 6f 6e 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 ontrolled.via.the.`projectile-cr
4f000 65 61 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 eate-missing-test-files`.defcust
4f020 6f 6d 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 om)..*.Add.the.ability.to.dynami
4f040 63 61 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 cally.decide.if.a.project.should
4f060 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 77 6e 2d 70 .be.added.to.`projectile-known-p
4f080 72 6f 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 rojects`.(via.new.`projectile-ig
4f0a0 6e 6f 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 nored-project-function`.defcusto
4f0c0 6d 29 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 m)..*.Add.the.ability.to.registe
4f0e0 72 20 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 r.new.project.types.dynamically.
4f100 77 69 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 with.`projectile-register-projec
4f120 74 2d 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 t-type`..*.Add.the.ability.to.sp
4f140 65 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 61 6e 64 20 ecify.a.project.compilation.and.
4f160 74 65 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 test.commands.via.`.dir-locals.e
4f180 6c 60 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 l`..This.is.done.via.the.variabl
4f1a0 65 73 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 es.`projectile-project-compilati
4f1c0 6f 6e 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 on-cmd`.and.`projectile-project-
4f1e0 74 65 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 test-cmd`..*.[#489](https://gith
4f200 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
4f220 2f 34 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 /489):.New.interactive.command.`
4f240 70 72 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 projectile-run-project`..*.Optio
4f260 6e 61 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 nally.run.[monky](http://anantha
4f280 6b 75 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 kumaran.in/monky/).on.Mercurial.
4f2a0 70 72 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 projects..*.Add.the.ability.to.s
4f2c0 70 65 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 pecify.a.project.compilation.dir
4f2e0 65 63 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 ectory.relative.to.the.root.dire
4f300 63 74 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 ctory.via.`.dir-locals.el`.with.
4f320 74 68 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 the.variable.`projectile-project
4f340 2d 63 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 -compilation-dir`..*.When.there.
4f360 69 73 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 is.a.selected.region,.projectile
4f380 2d 61 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 -ag,.projectile-grep,.projectile
4f3a0 2d 72 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 -replace.and.projectile-find-tag
4f3c0 20 75 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 .uses.it's.content.as.a.search.t
4f3e0 65 72 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 erm.instead.of.symbol.at.point..
4f400 0a 23 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 .###.Changes..*.Rename.`projecti
4f420 6c 65 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 le-switch-project-hook`.to.`proj
4f440 65 63 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 ectile-after-switch-project-hook
4f460 60 2e 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 `..*.`projectile-compile-project
4f480 60 20 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 `.now.offers.appropriate.complet
4f4a0 69 6f 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 ion.targets.even.when.called.fro
4f4c0 6d 20 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 m.a.subdirectory..*.Add.an.argum
4f4e0 65 6e 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 ent.specifying.the.regexp.to.sea
4f500 72 63 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 rch.to.`projectile-grep`..*.Use.
4f520 60 68 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 `help-projectile-grep`.instead.o
4f540 66 20 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 f.`helm-find-file`.when.selectin
4f560 67 20 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 g.a.project..*.Omit.current.buff
4f580 65 72 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 er.from.`projectile-switch-to-bu
4f5a0 66 66 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 ffer`.and.`projectile-switch-to-
4f5c0 62 75 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 buffer-other-window`.choices...#
4f5e0 23 23 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 ##.Bugs.fixed..*.[#721](https://
4f600 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 73 github.com/bbatsov/projectile/is
4f620 73 75 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 sues/721#issuecomment-100830507)
4f640 3a 20 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 :.Remove.current.buffer.from.`he
4f660 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 74 60 2e 0a 2a lm-projectile-switch-project`..*
4f680 20 5b 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 .[#667](https://github.com/bbats
4f6a0 6f 76 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 ov/projectile/issues/667).Use.`f
4f6c0 69 6c 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 ile-truename`.when.caching.filen
4f6e0 61 6d 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 ames.to.prevent.duplicate/symlin
4f700 6b 65 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 ked.filepaths.from.appearing.whe
4f720 6e 20 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 n.opening.a.project.file..*.[#62
4f740 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 70 72 5](https://github.com/bbatsov/pr
4f760 6f 6a 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 ojectile/issues/625):.Ensure.the
4f780 20 64 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 .directory.has.a.trailing.slash.
4f7a0 77 68 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 while.searching.for.it..*.[#763]
4f7c0 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
4f7e0 65 63 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 ectile/issues/763):.Check.for.`p
4f800 72 6f 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 rojectile-use-git-grep`.in.`helm
4f820 2d 70 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 -projectile-grep`.*.Fix.`project
4f840 69 6c 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 ile-parse-dirconfig-file`.to.par
4f860 73 65 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 se.non-ASCII.characters.properly
4f880 2e 0a 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 ...##.0.12.0.(2015-03-29)..###.N
4f8a0 65 77 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 ew.features..*.Replace.Helm.equi
4f8c0 76 61 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 valent.commands.in.`projectile-c
4f8e0 6f 6d 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 ommander`.when.using.Helm..*.Add
4f900 20 72 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 .replacement.commands.projectile
4f920 2d 67 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 -grep,.projectile-ack.and.projec
4f940 74 69 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 tile-ag.with.its.Helm.version..*
4f960 20 41 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 .Add.virtual.directory.manager.t
4f980 68 61 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 hat.allows.to.create/update.(add
4f9a0 20 6f 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 .or.delete.files).a.Dired.buffer
4f9c0 20 62 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 .based.on.Projectile.files..*.Ad
4f9e0 64 20 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 d.a.new.Helm.command:.`helm-proj
4fa00 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 65 63 ectile-find-file-in-known-projec
4fa20 74 73 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 ts`.that.opens.all.files.in.all.
4fa40 6b 6e 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 known.projects..*.Add.an.action.
4fa60 66 6f 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 for.`helm-projectile-switch-proj
4fa80 65 63 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 ect`.to.delete.multiple.marked.p
4faa0 72 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 72 65 rojects..*.Add.the.ability.to.re
4fac0 74 72 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 trieve.files.in.all.sub-projects
4fae0 20 75 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 .under.a.project.root..*.Add.`pr
4fb00 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 61 6e 64 20 60 68 65 ojectile-find-file-dwim`.and.`he
4fb20 6c 6d 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 lm-projectile-find-file-dwim`.co
4fb40 6d 6d 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 mmands..*.Provide.actual.Helm.co
4fb60 6d 6d 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 mmands.for.common.Projectile.com
4fb80 6d 61 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 mands..*.Use.existing.Helm.actio
4fba0 6e 73 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 ns.and.map.in.`helm-find-files`.
4fbc0 74 68 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 that.allows.`helm-source-project
4fbe0 69 6c 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 ile-files-list`.to.behave.like.`
4fc00 68 65 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 helm-find-files`,.such.as.multif
4fc20 69 6c 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 ile.selection.and.opening.or.del
4fc40 65 74 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 ete.on.selected.files..*.Add.com
4fc60 70 69 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 pile.action.to.`helm-projectile`
4fc80 2e 0a 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 ..*.Allows.using.Eshell.and.Magi
4fca0 74 20 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 t.outside.of.a.project.in.`helm-
4fcc0 70 72 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 projectile`..*.Add.Helm.action.f
4fce0 6f 72 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 or.incremental.grep.in.the.selec
4fd00 74 65 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 ted.projects..*.Add.command.proj
4fd20 65 63 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 ectile-find-other-file..Switch.b
4fd40 65 74 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 etween.files.with.the.same..name
4fd60 20 62 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 .but.different.extensions..*.Add
4fd80 20 48 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 .Helm.interface.to.switch.projec
4fda0 74 2e 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 t..For.more.details.checkout.the
4fdc0 20 66 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 .file.README.md..*.Make.the.mode
4fde0 20 6c 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 .line.format.customizable.with.`
4fe00 70 72 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 projectile-mode-line`.*.Add.supp
4fe20 6f 72 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 ort.for.`cargo.toml`.projects.*.
4fe40 54 72 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 Try.to.use.projectile.to.find.fi
4fe60 6c 65 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 les.in.compilation.buffers.*.Sup
4fe80 70 6f 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 port.`helm`.as.a.completion.syst
4fea0 65 6d 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 em.*.New.command.`projectile-pro
4fec0 6a 65 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 ject-info`.displays.basic.info.a
4fee0 62 6f 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 bout.the.current.project..*.New.
4ff00 60 64 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 `defcustom`.`projectile-globally
4ff20 2d 69 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 -ignored-buffers`.allows.you.to.
4ff40 69 67 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 ignore.buffers.by.name.*.New.`de
4ff60 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 67 fcustom`.`projectile-globally-ig
4ff80 6e 6f 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 nored-file-suffixes`.allows.you.
4ffa0 74 6f 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 to.globally.ignore.files.with.pa
4ffc0 72 74 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 rticular.extensions..###.Changes
4ffe0 0a 0a 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 ..*.get-other-files.returns.more
50000 20 61 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 .accurate.results.for.files.with
50020 20 74 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 .the.same.name.placed.under.diff
50040 65 72 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 erent.directories.*.Collect.sear
50060 63 68 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 ch.tool.(`grep`,.`ag`,.`ack`).ke
50080 79 62 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 ybindings.under.a.common.keymap.
500a0 70 72 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 prefix.(`C-c.p.s`).*.Remove.`def
500c0 63 75 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 custom`.`projectile-remember-win
500e0 64 6f 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 dow-configs`.in.favor.of.`persp-
50100 70 72 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 projectile.el`..*.Progress.repor
50120 74 65 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 ter.for.the.native.indexing.meth
50140 6f 64 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 od...###.Bugs.fixed..*.Fix.`proj
50160 65 63 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 ectile-regenerate-tags`.to.work.
50180 69 6e 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 in.directories.that.include.spac
501a0 65 73 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 es..*.Prevent.`projectile-kill-b
501c0 75 66 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 uffers`.from.trying.to.kill.indi
501e0 72 65 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 rect.buffers..*.[#412](https://g
50200 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
50220 75 65 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 ues/412):.Handle.multiple.possib
50240 6c 65 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 le.targets.in.`projectile-toggle
50260 2d 62 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 -between-implementation-or-test`
50280 2e 0a 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 ...##.0.11.0.(2014-05-27)..###.N
502a0 65 77 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 ew.features..*.Added.support.for
502c0 20 64 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 .default.file.glob.pattern.to.`p
502e0 72 6f 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 rojectile-grep`.*.added.file.exi
50300 73 74 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 stence.cache.with.defcustoms.`pr
50320 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 61 63 68 ojectile-file-exists-remote-cach
50340 65 2d 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 e-expire`.and.`projectile-file-e
50360 78 69 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 xists-local-cache-expire`..*.add
50380 65 64 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 ed.new.defcustoms.`projectile-pr
503a0 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 72 72 oject-root-files-top-down-recurr
503c0 69 6e 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 ing`,.`projectile-project-root-f
503e0 69 6c 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 iles-bottom-up`.and.`projectile-
50400 70 72 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 project-root-files-functions`..*
50420 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 73 .Added.new.command.`projectile-s
50440 61 76 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 ave-project-buffers`..*.Added.ne
50460 77 20 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 w.command.`projectile-cleanup-kn
50480 6f 77 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 own-projects`..*.Added.new.comma
504a0 6e 64 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 nds.`projectile-display-buffer`.
504c0 61 6e 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 and`projectile-find-dir-other-wi
504e0 6e 64 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 ndow`..*.Added.new.interactive.f
50500 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 2d 62 75 66 66 unction.`projectile-project-buff
50520 65 72 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 ers-other-buffer`.which.runs.new
50540 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 73 2d 6e 6f 6e .`projectile-project-buffers-non
50560 2d 76 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 -visible`.function,.the.former.i
50580 73 20 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 s.bound.to.`C-c.p.ESC`..*.New.va
505a0 72 69 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 riable.`projectile-enable-idle-t
505c0 69 6d 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 imer`.turns.on.an.idle.timer.whi
505e0 63 68 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 ch.runs.the.hook.`projectile-idl
50600 65 2d 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 e-timer-hook`.every.`projectile-
50620 69 64 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 idle-timer-seconds`.seconds.when
50640 20 6e 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 .non-nil..*.New.defcustom.`proje
50660 63 74 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 ctile-remember-window-configs`.w
50680 69 6c 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 ill.make.`projectile-switch-proj
506a0 65 63 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 ect`.restore.the.most.recent.win
506c0 64 6f 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 dow.configuration.(if.any).of.th
506e0 65 20 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 e.target.project..*.New.command.
50700 60 70 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 `projectile-run-command-in-root`
50720 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 75 6e 2d ..*.New.command.`projectile-run-
50740 73 68 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 shell-command-in-root`..*.New.co
50760 6d 6d 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 mmand.`projectile-run-async-shel
50780 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 64 65 66 63 75 73 l-command-in-root`..*.New.defcus
507a0 74 6f 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 tom.`projectile-use-git-grep`.wi
507c0 6c 6c 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 ll.make.`projectile-grep`.use.`g
507e0 69 74 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 it.grep`.for.git.projects..*.Add
50800 65 64 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 ed.new.`projectile-commander`.me
50820 74 68 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 thods.?v.and.?R.which.run.`proje
50840 63 74 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 ctile-vc`.and.`projectile-regene
50860 72 61 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 rate-tags`,.respectively..*.`pro
50880 6a 65 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 jectile-vc`.will.use.`magit-stat
508a0 75 73 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 us`.if.available..*.New.function
508c0 73 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 6f s.`projectile-find-implementatio
508e0 6e 2d 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 n-or-test`.and.`projectile-find-
50900 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 65 72 2d 77 69 6e implementation-or-test-other-win
50920 64 6f 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 dow`,.the.later.is.bound.to.`C-c
50940 20 70 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 .p.4.t`..*.New.defcustoms.`proje
50960 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 60 20 61 6e 64 20 ctile-test-prefix-function`.and.
50980 60 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
509a0 60 0a 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 `.allow.users.to.customize.how.p
509c0 72 6f 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 rojectile.identifies.test.files.
509e0 62 79 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 by.project.type..*.`projectile-g
50a00 72 65 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 rep`.will.ask.for.a.file.pattern
50a20 20 69 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 .if.invoked.with.a.prefix.argume
50a40 6e 74 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 nt..*.Subversion.checkouts.are.n
50a60 6f 77 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 ow.automatically.detected..*.CVS
50a80 20 63 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 .checkouts.are.now.automatically
50aa0 20 64 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 .detected..*.added.`projectile-p
50ac0 65 72 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 ersp-switch-project`.command.to.
50ae0 6d 61 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 make.perspective.mode.work.along
50b00 20 77 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 .with.projectile..*.Changed.`pro
50b20 6a 65 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 jectile-mode-line-lighter`.to.a.
50b40 64 65 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 defcustom.variable.to.make.mode.
50b60 6c 69 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 line.indicator.prefix.customizab
50b80 6c 65 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 le..*.New.command.`projectile-fi
50ba0 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 60 2e 0a 2a 20 4e 65 nd-file-in-known-projects`..*.Ne
50bc0 77 20 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 w.defcustom.`projectile-ignored-
50be0 70 72 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 projects`.allows.you.to.specify.
50c00 70 72 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 projects.that.shouldn't.be.added
50c20 20 74 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 .to.the.known.projects.list..*.N
50c40 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 6d 6f 76 65 2d 63 75 ew.command.`projectile-remove-cu
50c60 72 72 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 rrent-project-from-known-project
50c80 73 60 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 s`..*.New.defcustom.`projectile-
50ca0 62 75 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 buffers-filter-function`..*.New.
50cc0 64 65 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 defcustom.`projectile-sort-order
50ce0 60 2e 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 `..*.New.function.`projectile-pr
50d00 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 65 72 73 60 2e 0a ocess-current-project-buffers`..
50d20 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 65 *.New.function.`projectile-proce
50d40 73 73 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 ss-current-project-files`...###.
50d60 43 68 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 Changes..*.The.presence.of.a.`Ma
50d80 6b 65 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 kefile`.is.no.longer.taken.as.an
50da0 20 69 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 .indicator.of.the.project.root.b
50dc0 79 20 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 y.default,.since.recursive.make.
50de0 69 73 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 is.unfortunately.a.common.occurr
50e00 65 6e 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 ence.(affects.`projectile-projec
50e20 74 2d 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 t-root-files`)..*.Projectile.is.
50e40 6e 6f 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 now.able.to.find.the.project.per
50e60 74 61 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 taining.to.a.symlink.pointing.to
50e80 20 61 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 .a.version-controlled.file..*.Dr
50ea0 6f 70 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 op.`projectile-ack-function`.def
50ec0 63 75 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 custom..*.`projectile-command-ma
50ee0 70 60 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 p`.is.now.the.keymap.referenced.
50f00 62 79 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 by.the.`projectile-keymap-prefix
50f20 60 20 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 `.in.`projectile-mode-map`..This
50f40 20 61 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 .allows.modification.of.the.inne
50f60 72 20 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 r.map,.and.allows.additional.pre
50f80 66 69 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 fix.keys.to.reference.it...###.B
50fa0 75 67 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 ugs.fixed..*.Modified.`projectil
50fc0 65 2d 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 e-ack`.to.append.to.`ack-and-a-h
50fe0 61 6c 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 alf-arguments`.instead.of.overri
51000 64 69 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 ding.them..*.[#229].Fix.`project
51020 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 27 73 20 62 65 ile-find-file-in-directory`'s.be
51040 68 61 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 havior.for.project.directories.*
51060 20 60 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 .`projectile-toggle-between-impl
51080 65 6d 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 ementation-or-test`.shows.unders
510a0 74 61 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 tandable.error.if.current.buffer
510c0 20 69 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 .is.not.visiting.a.file..*.[#244
510e0 5d 20 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 ].Correct.folder.picked.up.by.`p
51100 72 6f 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 rojectile-ack`.after.project-swi
51120 74 63 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 tch..*.[#182].Invalidate.project
51140 20 63 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 .cache.if..projectile.is.modifie
51160 64 2e 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 d...##.0.10.0.(2013-12-09)..###.
51180 4e 65 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 New.features..*.Added.new.comman
511a0 64 20 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 d.`projectile-find-file-other-wi
511c0 6e 64 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 ndow`..*.Added.new.command.`proj
511e0 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 74 68 65 72 2d 77 69 ectile-switch-to-buffer-other-wi
51200 6e 64 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 ndow`..*.Added.new.command.`proj
51220 65 63 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 ectile-find-file-in-directory`.t
51240 68 61 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 hat.allows.you.to.jump.to.files.
51260 69 6e 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 in.any.directory..*.`.projectile
51280 60 20 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 `.is.now.always.taken.into.accou
512a0 6e 74 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 nt..*.`projectile-switch-project
512c0 60 27 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 `'s.behavior.is.now.customizable
512e0 20 76 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 .via.`projectile-switch-project-
51300 61 63 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 action`..*.Added.support.for.Gra
51320 64 6c 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 dle.projects..*.Added.support.fo
51340 72 20 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 r.`Ag`..*.Added.new.command.`pro
51360 6a 65 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 jectile-purge-file-from-cache`..
51380 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-
513a0 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 41 64 64 65 64 20 6e purge-dir-from-cache`..*.Added.n
513c0 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 2d 74 61 67 60 ew.command.`projectile-find-tag`
513e0 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 74 69 6c ..*.Added.new.command.`projectil
51400 65 2d 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 e-commander`..It.allows.you.to.q
51420 75 69 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 uickly.run.many.Projectile.comma
51440 6e 64 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 nds.with.a.single.key..Very.usef
51460 75 6c 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 ul.as.a.project-switching.action
51480 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 20 ..*.`projectile-switch-project`.
514a0 6e 6f 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 now.supports.a.prefix.argument..
514c0 57 68 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 When.it's.present.the.switch.act
514e0 69 6f 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 ion.is.`projectile-commander`...
51500 23 23 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 ###.Changes..*.Replaced.variable
51520 20 60 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 .`projectile-use-native-indexing
51540 60 20 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 `.with.`projectile-indexing-meth
51560 6f 64 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 od`..*.Corrected.grammar.on.erro
51580 72 20 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 r.message.for.not.being.in.a.pro
515a0 6a 65 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 ject...###.Bug.fixes..*.`project
515c0 69 6c 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 ile-find-test-file`.now.properly
515e0 20 64 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 .displays.only.test.files.(#145)
51600 2e 0a 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 ...##.0.9.2.(2013-07-16)..###.Ne
51620 77 20 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 w.features..*.`projectile-invali
51640 64 61 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 date-cache`.now.accepts.a.prefix
51660 20 61 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 .argument..When.present.you'll.b
51680 65 20 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 e.prompted.for.the.project.whose
516a0 20 63 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 .cache.to.invalidate..*.New.comm
516c0 61 6e 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 and.`projectile-find-dir`.works.
516e0 73 69 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 similar.to.`projectile-find-file
51700 60 20 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 `.-.displays.the.project's.dirs.
51720 61 6e 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 and.opens.them.with.`dired`..It'
51740 73 20 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 s.bound.to.`C-c.p.d`..*.Added.su
51760 70 70 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 pport.for.`grizzl`.as.a.completi
51780 6f 6e 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 on.system..*.Added.support.for.`
517a0 66 6f 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 fossil`.projects..*.Added.suppor
517c0 74 20 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 t.for.`Symfony.2`.project..*.New
517e0 20 63 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 .command.`projectile-clear-known
51800 2d 70 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 -projects`.removes.all.known.pro
51820 6a 65 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 jects..*.New.command.`projectile
51840 2d 72 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 -remove-known-project`.prompts.y
51860 6f 75 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 ou.for.a.known.project.to.remove
51880 2e 0a 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 ...###.Bugs.fixed..*.Fixed.`proj
518a0 65 63 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 ectile-replace`,.which.was.broke
518c0 6e 20 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 n.from.the.use.of.relative.paths
518e0 0a 2a 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 .*.#103.-.`projectile-switch-pro
51900 6a 65 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 ject`.does.not.require.a.project
51920 20 74 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 .to.work.*.Don't.show.hidden.buf
51940 66 65 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 fers.in.projectile-project-buffe
51960 72 73 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 rs..###.Changes..*.Rebound.`proj
51980 65 63 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 ectile-compile-project`.to.<kbd>
519a0 43 2d 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 C-c.p.c</kbd>.*.Rebound.`project
519c0 69 6c 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 ile-dired`.to.<kbd>C-c.p.D</kbd>
519e0 0a 2a 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 .*.Reworked.`projectile-compile-
51a00 70 72 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 project`.and.`projectile-test-pr
51a20 6f 6a 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 oject`.to.be.smarter,.more.confi
51a40 67 75 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 gurable.and.closer.in.behavior.t
51a60 6f 20 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 o.the.stock.`compile`.command.*.
51a80 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 28 3c 6b 62 `projectile-switch-project`.(<kb
51aa0 64 3e 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 d>C-c.p.s</kbd>).now.runs.`proje
51ac0 63 74 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 ctile-find-file`.instead.of.`dir
51ae0 65 64 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 ed`...##.0.9.1.(2013-04-26)..###
51b00 20 4e 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 .New.features..*.Display.recentf
51b20 20 66 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 .files.in.helm-projectile...###.
51b40 42 75 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 Bugs.fixed..*.#95.-.handle.prope
51b60 72 6c 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 rly.missing.project.root..##.0.9
51b80 2e 30 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 .0.(2013-04-24)..###.New.feature
51ba0 73 0a 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 s..*.Use.fast.external.tools.to.
51bc0 66 69 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 find.project.files.when.possible
51be0 2e 20 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 ..This.is.the.default.option.on.
51c00 61 6c 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 all.Unices..*.Removed.obsolete.c
51c20 6f 6d 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 ommand.`projectile-reindex-proje
51c40 63 74 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 ct`..*.Removed.obsolete.command.
51c60 60 70 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 `projectile-open`..*.Introduced.
51c80 73 75 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 support.for.finding.tests.and.sw
51ca0 69 74 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 itching.between.code.and.tests..
51cc0 2a 20 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 *.Implement.basic.project.type.d
51ce0 65 74 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 etection..*.Add.a.simple.version
51d00 20 72 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 .reporting.command.projectile-ve
51d20 72 73 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 rsion..*.Display.relative.paths.
51d40 74 6f 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 to.project.files.instead.of.disa
51d60 6d 62 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 mbiguated.filenames..*.Directori
51d80 65 73 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 es.listed.in..projectile.file.ar
51da0 65 20 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 e.excluded.when.tags.are.generat
51dc0 65 64 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 ed..*.Remembers.visited.projects
51de0 20 61 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 .and.may.switch.between.them.wit
51e00 68 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 2e 0a 2a h.`projectile-switch-project`..*
51e20 20 53 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 .Supports.`lein.{compile|test}`.
51e40 69 6e 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 in.Clojure.projects..*.Support.p
51e60 72 6f 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 rojects.only.for.subdirs.of.the.
51e80 70 72 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 project.root..*.Add.the.ability.
51ea0 74 6f 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 to.manually.cache.files...###.Bu
51ec0 67 73 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 gs.fixed..*.#57.-.properly.set.t
51ee0 68 65 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 he.current.working.dir,.before.i
51f00 6e 76 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 nvoking.shell.commands.*.#71.-.c
51f20 6f 72 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 orrect.regenerate.tags.keybindin
51f40 67 20 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 g.in.the.README..###.Misc..*.Mov
51f60 65 20 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 e.menu.entry.under.`Tools`.*.Sho
51f80 77 20 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 w.indexing.message.only.when.doi
51fa0 6e 67 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 ng.native.project.indexing.*.Mas
51fc0 73 69 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 sive.performance.improvements...
51fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52000 70 72 6f 6a 65 63 74 69 6c 65 2d 32 2e 38 2e 30 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 00 projectile-2.8.0/.dir-locals.el.
52020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52060 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
52080 30 30 30 31 34 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 34 37 00 20 30 00 00 00 0001421.00000000000.014747..0...
520a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
520e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52100 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...................
52120 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...................
52140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
521e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52200 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.;;
52220 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
52240 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").
52260 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
52280 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
522a0 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/
522c0 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
522e0 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:[[
52300 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:]]+\\)").................
52320 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)...
52340 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.
52360 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
52380 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)......
523a0 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
523c0 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).........
523e0 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
52400 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".
52420 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".
52440 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"))................
52460 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
52480 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)....................
524a0 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
524c0 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)......................
524e0 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
52500 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))))................
52520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
525a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
525c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
525e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
526a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
526c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
526e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
527a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
527c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
527e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
528a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
528c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
528e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
529e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
52fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
530a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
530c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
530e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
531e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
532a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
532c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
532e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
533a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
533c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
533e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
534a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
534c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
534e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
535a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
535c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
535e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
536a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
536c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
536e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
537a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
537c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
537e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
538a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
538c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
538e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
539a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
539c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
539e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
53fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
540e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
541e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
542a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
542c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
542e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
543e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
544e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
545e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
547e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
548a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
548c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
548e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
549a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
549c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
549e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 ................................