Giter Club home page Giter Club logo

projectile's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

projectile's Issues

Support using 'find' for systems that have it

I'm all for providing a pure Lisp implementation that works on all systems; but for systems which do have GNU find, can we use it to avoid it taking a full minute for the Helm buffer to appear on large, unindexed projects? Thanks!

can't add c-sources to helm-for-files-prefered-list

helm-projectile works for me but when I try to add it's c-sources to helm-for-files-prefered-list I get the errors:

helm-compute-matches: error when processing source: Projectile buffers list
helm-compute-matches: error when processing source: Projectile files list

faster initial search

Is there a way to make the initial search (when it populates the cache) faster ? I takes a ton of time to index everything and CPU is at 150%.

Controlling execution of custom elisp on a per-project basis

I tend to have elisp that is particular to each project I work on. I keep the elisp relevant to each project within each project's directory. Managing this whole process is irritating, and I would like to automate it via projectile.

Here's what I would like. When a project is started, projectile looks for a specific file (say, "Projectilefile") in the project's directory, and loads it. Thus, the user can keep associated emacs lisp with the project it is relevant to, and it only gets loaded.

What do you think?

projectile helm exists when typing

I am trying to run projectile-helm in a project and it seems to exit randomly from the search prompt. Is there anything I can do to debug this ?

more cooperative keybinding

Nice work.

Here's a suggestion(i'm not that good at elisp though), your useful mode keybinding conflicts popwin package which is also useful by default. please consider following snippet. thanks.

(defvar projectile-mode-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "j") 'projectile-jump-to-project-file)
(define-key map (kbd "f") 'projectile-grep-in-project)
(define-key map (kbd "b") 'projectile-switch-to-buffer)
(define-key map (kbd "o") 'projectile-multi-occur)
(define-key map (kbd "r") 'projectile-replace-in-project)
(define-key map (kbd "i") 'projectile-invalidate-project-cache)
(define-key map (kbd "t") 'projectile-regenerate-tags)
map
)
"...."
)
(global-set-key (kbd "C-c p") projectile-mode-map)

helm-projectile don't switch project file list automatic

helm-projectile works for me and very nice ,but a litter problem .when I switch two buffer which belong to different projects, then call helm-projectile ,the helm project files list always show the first project files, and not refresh at all. I have set (setq projectile-enable-caching t),but remove this set, the problem is same.

c346f89 killed projectile-find-file

After a recent update from MELPA, I found that projectile-find-file didn't work anymore.

So I started down a manual bisect path that led me to commit c346f89. At first I wasn't clear on how moving a message call could break the function, then I noticed it was in an if block. I think you can figure out the rest ;)

Files with non-unique names ignored if parent directory name is non-unique

If I have files:

a/foo/bar.txt
b/foo/bar.txt

Then only one 'bar.txt' is found when doing projectile-find-file and typing 'bar.txt'.

It seems the common 'foo' path is needed for this bug to appear. Other 'bar.txt' files not directly in a 'foo' directory will be found directly.

I have:

(setq projectile-enable-caching t)

I have tested with current master.

Ignore folders in .projectile broken?

Hi,
I have just updated projectile to the last git version, and it seems that folders placed in the .projectile file are not ignored any more.
Is this a regression or is there a new undocumented way to ignore files?

To reproduce:

$ mkdir /tmp/projectile
$ mkdir /tmp/projectile/ignore
$ echo "ignore" > /tmp/projectile/.projectile
$ touch /tmp/projectile/file1
$ touch /tmp/projectile/ignore/to_be_ignored

C-c p f will propose the file: to_be_ignored

Thanks

Advice guess file at point

By default "ido" tries to guess filename at point if it is present in the the directory. It would be awesome if projectile extends it to search first in current directory and right after it in the whole project.

I tried to find it in ido sources, but it seems to use ffap library and things are getting complex under the hood for my elisp skills (and very limited available free time...)

Feature request: Add file to project

I looked at the source and read the docs and there doesn't seem to be any way to add file to an existing project other than invalidating cache and building it anew?

If there is no feature like that and nobody is working on it, I might attemt to add a patch for this, but it would require studying code etc., so if you find it relatively simple please add it :P (or someone who already knows the codebase).

Basically, these functions would be required:

projectile-is-file-in-project-p - test if file is already registered in current project -- simply lookup in the list that is presented to projectile-find-file

projectile-add-file-to-project - add the file's hash/info to the index/cache. Alternative name projectile-register-file-with-project.

Using these two it's also possible to add a simple advice on save-buffer that would check if the file is in the project (if this is the first time creating such file) and if not ask user to register it with project.

Could you speed up the speed for helm-projectile?

Hi, I used this function from emacsWiki for searching files fastly in my project.

(defun ido-find-file-in-tag-files ()
(interactive)
(save-excursion
(let ((enable-recursive-minibuffers t)) (visit-tags-table-buffer))
(find-file (expand-file-name
(ido-completing-read "Project file: "
(tags-table-files) nil t)))))

These day I try to switch to helm-projectile, it seems much slower .
there are more than 500 files in my project.
I think helm-projectile seaches files in projectile.cache in disk but not in ram as tags table.
I tried to hack helm-projectile to work like ido-find-file-in-tag-files to search files in tags table but failed because of my poor LISP programming knowledge.
Could you please implement that ?
Thanks!

projectile hangs emacs 24 OSX

Hi, I've tried projectile on emacs 24 on OSX and whenever I run projectile-jump-to-project-file it show's me a beach ball and takes the CPU to 100%, never coming back.

Broken keybinding for projectile-regenerate-tags

Hi,

After installing 0.8 from melpa regenerate tags hot key does not work anymore. As far as I can guess the problem in projectile-mode-map var where

(define-key prefix-map (kbd "t") 'projectile-toggle-between-implemenation-and-test)

sets C-c p t to some test function. Could you please fix this or if this was not a mistake update the documentation? In my opinion keeping regenerate tags is preferable.

Thanks
Alexey

projectile-regenerate-tags on OSX does not work

In particular, the ctags binary on OSX does not take the -R flag, so I get a
ctags: illegal option -- R
usage: ctags [-BFadtuwvx] [-f tagsfile] file ...
error

Also, why ctags and not etags?

how to follow symlink?

i'm trying to get this use case to work:

cd ~/dev
git clone repo1
git clone repo2
mkdir both
cd both
ln -s ../repo1
ln -s ../repo2
emacs

running projectile-find-file from here gives me a list of nothing (i already have projectile-require-project-root set to nil). how do i configure it to follow through all symlinks? is that possible?

thanks!

Adding properties functionality

Might it be possible to make .projectile store a plist? I was thinking about a
structure similar to this:

### properties ###
(:prop1 "val1"
 :prop2 "val2")
### ignored-files ###
/old format
/ignored-folder1
/ignored-folder2

If no headers are present it could assume that all lines represent ignored
files.

These values would be available through a function such as
(projectile-project-property :prop1), and could be used by extensions.
Additionally, projectile could use some properties itself to provide per-project
overrides for functions like the following:

:projectile-project-files-function
:projectile-compile-project-function
:projectile-test-project-function

It's common for such variables to require a "security clearance". I don't think
it's very useful, but I suppose you could reuse some find-file code to implement it.

You're not into a project

Keep getting projectile-project-root: You're not into a project when I try to create a new file outside a project. If I set projectile-require-project-root to nil it works.

Wrong type argument from helm-projectile Edit

When attempting to call helm-projectile I receive "Wrong type argument: stringp, nil." This seems new as it didn't happen a couple days ago and I recently updated helm.

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  file-name-directory(nil)
  projectile-project-files("~/workspace/platform/")
  helm-c-projectile-candidate-buffer-content()
  (insert (helm-c-projectile-candidate-buffer-content))
  (save-current-buffer (set-buffer (helm-candidate-buffer (quote local))) (insert (helm-c-projectile-candidate-buffer-content)))
  (with-current-buffer (helm-candidate-buffer (quote local)) (insert (helm-c-projectile-candidate-buffer-content)))
  (lambda nil (with-current-buffer (helm-candidate-buffer (quote local)) (insert (helm-c-projectile-candidate-buffer-content))))()
  apply((lambda nil (with-current-buffer (helm-candidate-buffer (quote local)) (insert (helm-c-projectile-candidate-buffer-content)))) nil)
  helm-funcall-with-source(((match identity) (search helm-mp-exact-search helm-mp-3-search) (name . "Projectile files list") (disable-shortcuts) (init lambda nil (with-current-buffer (helm-candidate-buffer (quote local)) (insert (helm-c-projectile-candidate-buffer-content)))) (candidates-in-buffer) (candidate-number-limit . 15) (keymap keymap (23 . helm-yank-text-at-point) (3 keymap (63 . helm-generic-file-help) (88 . helm-ff-run-open-file-with-default-tool) (24 . helm-ff-run-open-file-externally) (111 . helm-ff-run-switch-other-window) (61 . helm-ff-run-ediff-merge-file)) (67108925 . helm-ff-run-ediff-file) (27 keymap (46 . helm-ff-run-etags) (105 . helm-ff-properties-persistent) (68 . helm-ff-run-delete-file) (103 keymap (112 . helm-ff-run-pdfgrep) (122 . helm-ff-run-zgrep) (115 . helm-ff-run-grep))) (19 . helm-ff-run-grep) (29 . helm-ff-run-toggle-basename) keymap (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (f1 keymap (109 . helm-help)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (4 . helm-debug-output)) (20 lambda (&rest --cl-rest--) (interactive) (apply (quote #[(G67421 G67422 G67423) "\303�J J\nJ#\207" [G67423 G67422 G67421 helm-run-multi-key-command] 4]) (quote --timeout--) (quote --iter--) (quote --funs--) --cl-rest--)) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (21 . helm-force-update) (6 . helm-follow-mode) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (4 . helm-delete-current-selection) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (18 . undefined) (23 . helm-yank-text-at-point) (24 keymap (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (15 . helm-next-source) (10 . helm-select-3rd-action) (5 . helm-select-2nd-action-or-end-of-line) (26 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-exit-minibuffer) (left . helm-previous-source) (right . helm-next-source) (7 . helm-keyboard-quit) (22 . helm-next-page) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-in-this-source-only) (109 . helm-toggle-all-marks) (93 . helm-next-visible-mark) (91 . helm-prev-visible-mark) (32 . helm-toggle-visible-mark) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-previous-page)) (next . helm-next-page) (prior . helm-previous-page) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) keymap (24 keymap (14 . evil-complete-previous-line) (16 . evil-complete-next-line)) (14 . evil-complete-previous) ...) (help-message . helm-generic-file-help-message) (mode-line . helm-generic-file-mode-line-string) (type . file) (action lambda (candidate) (find-file (concat (projectile-project-root) candidate))) (header-line . helm-persistent-help-string) (action ("Find file" . helm-find-many-files) ("Find file as root" . helm-find-file-as-root) ("Find file other window" . find-file-other-window) ("Find file other frame" . find-file-other-frame) ("Open dired in file's directory" . helm-c-open-dired) ("Grep File(s) `C-u recurse'" . helm-find-files-grep) ("Zgrep File(s) `C-u Recurse'" . helm-ff-zgrep) ("Pdfgrep File(s)" . helm-ff-pdfgrep) ("Checksum File" . helm-ff-checksum) ("Ediff File" . helm-find-files-ediff-files) ("Ediff Merge File" . helm-find-files-ediff-merge-files) ("Etags `M-., C-u tap, C-u C-u reload tag file'" . helm-ff-etags-select) ("View file" . view-file) ("Insert file" . insert-file) ("Delete file(s)" . helm-delete-marked-files) ("Open file externally (C-u to choose)" . helm-c-open-file-externally) ("Open file with default tool" . helm-c-open-file-with-default-tool) ("Find file in hex dump" . hexl-find-file)) (persistent-help . "Show this file") (action-transformer helm-c-transform-file-load-el helm-c-transform-file-browse-url) (candidate-transformer helm-c-highlight-files helm-c-w32-pathname-transformer) (candidates . helm-candidates-in-buffer) (volatile) (match identity)) (lambda nil (with-current-buffer (helm-candidate-buffer (quote local)) (insert (helm-c-projectile-candidate-buffer-content)))))
  helm-funcall-foreach(init nil)
  helm-initial-setup(nil)
  helm-initialize(nil nil nil (helm-c-source-projectile-files-list helm-c-source-projectile-buffers-list))
  byte-code("\306\211\211�\206�

Add ability to only include certain directories of a project

For very large codebases, trying to deal with an entire project tree at once is unworkable. Instead, users must only work within a set of directories.

I've forked your project and added the ability to do this. What I've done is made it so the .projectile file now has directories to be included with the prefix +, and excluded with the prefix -. No prefix is considered to be exclusionary, so that existing .projectile files work. All source control commands have to be updated to work on specific directories.

Relevant commits: ahyatt@992df49
and
ahyatt@50dcf9f

I can send you a pull request if you think you'd like to add such a feature.

projectile-find-file for an arbitrary directory?

Would it be possible to somehow use projectile to find a file from a project other than the current one? For example, I'd like to find a file in my .emacs.d or my org notes without having to change to one of these buffers.

Right now I'm using some seriously hacky code to get what I want by opening dired in a given folder, then running projectile.

(defun gf/find-file-in-directory (directory)
  "Hacky function to find a file in DIRECTORY using ido. This depends
on the `projectile` package."
  (dired directory)
  (projectile-find-file))

Unable to have projectile ignore .svn *.o *.pyc, etc etc

I'm having a hard time figuring out how to ignore all the crap subversion drops all over my filesystem (svn is not my choice, have to use it for work :( ).

I've tried adding lines in a .projectile file and I've tried adding these patterns to projectile-globally-ignored-(dirs/files)
I'm using Linux and 24.3.

Here is what I have in init.el:

(require 'projectile)
(setq projectile-enable-caching t)
(setq projectile-globally-ignored-directories (append '(".svn") projectile-globally-ignored-directories))
(setq projectile-globally-ignored-files (append '("*.svn-base" "*.o" "*.pyc") projectile-globally-ignored-files))
(setq projectile-use-native-indexing nil)
(projectile-global-mode)

Obey .gitignore, .bzrignore, etc.

The idea of using version control as a project file marker is pretty neat and low-overhead.

I found that with things like rails projects it worked really well.

For compiled languages, I often found that jump to file brought up object files (like .class files in a Java project).

It would be sweet if you would obey the .gitignore or what have you.

ignore files per project

is there a way to have some project specific filters to ignore files ? Like there's no point in grepping thru log files ar indexing images, etc

Ignore files and directories per project

Hi,

I started working on a project management tools for Emacs a while ago. Then I found this, which was pretty much exactly what I had in mind. Awesome project! :)

One thing I'm missing is ignoring files and directories per project. I have two suggestions to solve this.

The first one looks something like this:

(projectile-ignore-project "~/Code/emacs" '("elpa" "snippets" "tmp"))
(projectile-ignore-project "~/Code/ecukes" "util")
(projectile-ignore-global ".DS_Store" ".gitmodules" ".gitignore")

The other solution is to use the .projectile file, just like Git uses the .gitignore file. The above would then be:

;; ~/.emacs.d/init.el
(setq projectile-ignored-files (append projectile-ignored-files '(".DS_Store" ".gitmodules" ".gitignore")))

;; ~/Code/emacs/.projectile
elpa
snippets
tmp

;; ~/Code/ecukes/.projectile
util

I prefer the second alternative myself, since you do not need to keep your project specific config in your Emacs repository. If you think this is a good idea, I'd be happy to implement it.

show most used files first

Is there a way to show recently/most used files first when searching ? It's very useful for switching between the las 3-5 recently used files.

Feature request: exclude ignored folders from ctags

Hi,

It would be convenient if dirs from .projectile file were also excluded from tags generation. Maybe it is better to make this behavior optional. I slapped together some code that passes ignored dir as --exclude parameters to ctags. If you want I can send you a pull request.

Thanks
Alexey

error in projectile-ack

When I press C-c p a I get this error:

Wrong type argument: commandp, ack-and-a-half

I installed projectile via melpa with version 20130206.1218 which seems to be the latest on master too.

projectile introduces weird key binding behavior

Suddenly I cannot press o or r because it invokes some commands.
When I disable the projectile-mode it works again.

WIth o I get List lines matching regexp. With r the replace command is invoked.

Do you have an idea?

projectile breaks tramp on windows

See prelude#158

Plink is the preferred, default, and only reliable ssh/scp tramp method on Windows, due to other problems with emacs & cygwin. When projectile is turned on, tramp w/plink will immediately and irrecoverably hang emacs directly after starting the plink process.

There are apparently also other issues with projectile and tramp/sudo mentioned in the previous link.

projectile-ignored-files has no effect on `find` result

When invoke projectile-grep, find command report a warning like:

find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-name "/home/sliim/projects/SLiib/TAGS/"' will probably evaluate to false all the time on this system.

Therefore these files aren't ignored..

Ignore sub-directories

Hi,
When you specify a directory name in the .projectile file, it would be great if similar sub folders (i.e. with the same name) were also ignored in the subsequent directory hierarchy.

For example, when working with SVN, you have ".svn" folders at each level in the file hierarchy.
Adding ".svn/" in the top .projectile file should be enough to ignore them all. Today, projectile ignores folders located in the root directory only.
Keep on the good work. Projectile is very useful.
Cheers

Add a system to quickly start and stop projects

One of the main things I look for in a project management solution is the ability to quickly start and stop working on a project.

Basically, such a system would maintain a set of bookmarks regarding where projects have been found on the system. 'starting' a project would probably be an ido-completion of the projects that have been seen on system, which then could do something as simple as performing a projectile-dired on the project, as well as adding the project to a global list of active projects.

'stopping' a project would be almost as simple: completing from a list of started projects, and then running projectile-kill-buffers on the selected project.

This really helps with my personal project ADD and soothing the friction caused by switching between projects.

Edit: I just want to quickly mention that I am really willing to write this myself. I just want to know if it would be accepted, or should I keep it external.

seems to depend on helm

the following code

(require 'projectile)
(projectile-global-mode)

causes this:

Symbol's value as variable is void: helm-generic-files-map

inserting this above the projectile code solves the problem

(add-to-list 'load-path "~/.emacs.d/helm")
(require 'helm-config)
(helm-mode)

Projectile giving me trouble with clojure projects

I'm a Prelude user so Projectile came automatically (I'm also new to emacs). While it looks really cool it's been giving me grief with my Clojure projects.

I've got several projects using Lobos so I have the same directory structure and namespaces in several different places. When I'm in one project, it seems like Projectile is grabbing the file out of other projects. For instance if I have a project foo:

foo/src/lobos/migrations.clj

Then I create a new project bar that I want an identical namespace in:

bar/src/lobos/migrations.clj

When I C-x C-f and navigate to src/lobos/ to try and create the migrations.clj file somehow Projectile is grabbing loading the file from the foo project... not what I want to happen at all.

Am I doing something wrong that's causing this? How do I turn off projectile until I've got a handle on how/why it's behaving the way it is?

My current workaround is to drop to terminal and touch the file I want to create, but that doesn't seem like it should be necessary.

Make C-c C-k a part of projectile

C-c C-k should compile the project. It can use the same mechanism as I've used in Erlang mode support in Emacs-prelude - it finds the root of the project and tries running make, rebar, rake, cmake or any other common compilation mechanism.

An example:

(defun erlang-rebar-compile ()
  (interactive)
  (let* ((dir (or (projectile-get-project-root)
                  (file-name-directory (buffer-file-name))))
         (pref (concat "cd " dir " && "))
         (cmd (cond ((file-exists-p (expand-file-name "rebar" dir))    "./rebar compile")
                    ((executable-find "rebar")                         "rebar compile")
                    ((file-exists-p (expand-file-name "Makefile" dir)) "Makefile")
                    (t nil))))
    (if cmd
        (compilation-start (concat pref cmd))
      (call-interactively 'inferior-erlang-compile))
    ))

(add-hook 'erlang-mode-hook (lambda ()
                              (make-variable-buffer-local 'projectile-project-root-files)
                              (setq projectile-project-root-files '("rebar.config" ".git" ".hg" ".bzr" ".projectile"))
                              (setq erlang-compile-function 'erlang-rebar-compile)))

Please note that erlang-mode assings C-c-k to (call-interactively erlang-compile-function).

Weird Behavior In Subdirectory

Currently when I am in a subdirectory in a git project projectile is completely incapable of loading any files in that directory or anywhere else in my project.

To fix this I first slightly changed the git command to the following:

git ls-files -z --full-name

This, however, was not enough. Since the results of the command are relative to the current working directory rather than the project root. To get the expected behavior (being able to navigate from some file in my project to any other file in that project) I had to modify project-get-ext-command to the following:

(defun projectile-get-ext-command ()
  (let ((vcs (projectile-project-vcs)))
    (cond
     ((eq vcs 'git) (concat "cd " (projectile-project-root) "; " "git ls-files -z --full-name"))
     ((eq vcs 'hg) "hg locate -0")
     ((eq vcs 'bzr) "bzr ls --versioned -0")
     ((eq vcs 'darcs) "darcs show files -0")
     (t "find ."))))

This changes the directory to the project root before running ls-files so that the correct results are returned. Not sure if the previous behavior was on purpose or not but just thought I'd create an issue in case I'd fixed a bug other people were having.

speed improvement

Jump to file seems horribly slow, my emacs freezes for 10s on each invocation of jump to file. I do have a ton of files in my rails project, somewhere over 10.000 files.

Switching projects & awkward behavior

I read in one of the issues the idea to enable switching between projects.
I placed an empty .projectile file in the directory I wished to be considered a "project", but neither using C-c p f (file file) or C-c h (using helm) bring any file other than the current "project" folder or currently open files.

Regardless, it's kind of an awkward behavior for me -
I would have expected to be able to define a project as a set of folders and files which are unnecessarily related by any kind of hierarchy.
A good example for that would probably be the sublime-text editor, which stores not only the specified files and folders, not only the ignored files, but also the layout the project had right before closing (what buffers were open, in what order, and general layout, pane-wise).

I could also easily switch the projects by opening the related file (*.sublime-project file) in a pre-defined folder I created (e.g. ~/.sublime-projects).

I hope I'm clear of what I'm basically trying to ask - wether these behaviors are possible within this plugin:

  1. Use a file to define a project, by specifying folders, files, ignores etc which are not necessarily related.
  2. Be able to parse that file, regardless of its location, by simply calling/opening it from withing emacs (possibly using a special function).

Include the relative path in projectile-hashify-files

If I have a project ~/my-project which contains a file ~/my-project/bin/tools/unique-file-name, projectile-hashify-files sets the ido string to "unique-file-name". This stops me being able to use projectile to limit my search to tools (using C-SPC, or ido-restrict-to-matches).

I'd like the ido strings to be paths relative to the base path of the project ("bin/tools/unique-file-name" in this example). I'm tempted to just change the behaviour. If the old behaviour is wanted, we could make it customisable.

Thoughts?

projectile-kill-buffers misses some buffers

projectile-kill-buffers doesn't kill dired buffers or shell buffers that are within the project directory.

The shell buffers may be out of scope, but it seems like dired buffers should be killed, especially because of the projectile-dired command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.