bbatsov/projectile — pull request #501 by tuhdo (2014-10-31 10:43:10+00:00)
Title: Add a virtual directory manager to Helm Projectile

New features: creates a virtual Dired buffer that populates marked files
into that Dired buffer. This feature is implemented in
helm-projectile-dired-files-new-action function and added to
helm-projectile-find-file action menu. DEMO:

![helm-projectile-add-files-virtual-dir](https://cloud.githubusercontent.com/assets/4818719/4859477/a05bdfde-60ea-11e4-8b9b-268b94b3b146.gif)

New feature: when the current buffer is an existing Dired buffer, we can
add files/directories from helm-projectile-find-file and
helm-projectile-find-dir commands to udpate the virtual Dired
buffer. This feature is implemented in helm-projectile-dired-files-add-action.

![helm-projectile-add-files-virtual-dir](https://cloud.githubusercontent.com/assets/4818719/4859482/a8f69738-60ea-11e4-8bdd-a3c9288f093c.gif)

New feature: we can create/add new entries into virtual Dired buffer, we
can also delete existing entries. When the current buffer is a Dired
buffer, activating helm-projectile-find-file/find-dir will list another
source that lists all entries in the Dired buffer. We can mark entries,
then press "C-c d" to delete all marked entries from the current dired
buffer. This is implemented in helm-projectile-dired-files-delete-action.

![helm-projectile-delete-files-virtual-dir](https://cloud.githubusercontent.com/assets/4818719/4859485/af25741c-60ea-11e4-8dd8-61d892353381.gif)

These features are useful when you want to groups related files
scattered across different directories in your project. For example, you
have a feature called login. The logic for logiin is in handle/login.rb,
the gui for login is in gui/login.rb and some project libraries that
login uses in lib/. You want to group these files together for reference
in the distant future, when you want to quickly review related files to
improve or fix bug. With this feature, you won't have to reconnect
related files again, and often it takes time since you could forget
things. You can preserve this knowledge for future reference.