ctrlpvim/ctrlp.vim — pull request #16 by d11wtq (2014-08-08 01:25:21+00:00)
Title: Add ability to specify a custom ignore function, instead of just patterns

From https://github.com/kien/ctrlp.vim/pull/594:

> This makes it possible to customize the ignore patterns on a per-project basis... I do that by loading patterns for a given project from a ".ctrlpignore" file at the root of the project. Generally you don't need this, but for some codebases where the directory structure is not so clean, you kinda have to.

Comment from @d11wtq:

> Yes! I totally want this :)

Follow-up from @ludovicchabant:

> You may want to see how I use it with my [auto-ignore script](https://bitbucket.org/ludovicchabant/dotfiles/src/8db8c5f1fdd103184b87e220aa1ce4210e9be3b3/vim/autoload/ctrlpext/autoignore.vim?at=default) (you just need to activate it with a `ctrlpext#autoignore#init()` in your vimrc) and an example of a [`.ctrlpignore file`](https://bitbucket.org/ludovicchabant/dotfiles/src/8db8c5f1fdd103184b87e220aa1ce4210e9be3b3/.ctrlpignore?at=default). Cheers :)
>
> (after I play around with it more, I may release that auto-ignore script as a standalone Vim plugin)

Comment from @ludovicchabant:

> Also, it's not very optimal right now (1 map lookup + 1 regex match per directory). I'll need to modify some more CtrlP code to fix that (probably some "before/after scan" hooks, so I can do only 1 map lookup for the whole project).