jorgenschaefer / elpy

Emacs Python Development Environment
GNU General Public License v3.0
1.89k stars 259 forks source link

Project/code browser #242

Open jorgenschaefer opened 10 years ago

jorgenschaefer commented 10 years ago

This seems to be rather important to people (no idea why), and speedbar is terrible. The options I've seen are sr-speedbar, which inherits some of the ickiness of speedbar, and direx-el, which is experimental … meh.

http://www.emacswiki.org/emacs/download/sr-speedbar.el https://github.com/m2ym/direx-el

jorgenschaefer commented 10 years ago

Atom uses C-0 to "open and focus tree view" and C-\ to "toggle tree view"

whirm commented 10 years ago

I use helm with this snippet for quick project browsing (it's not perfect, but it's very handy) It also includes all the TODO entries on the current file. I don't know if you would be willing to add helm/projectile as dependencies tough...

                        (defun helm-mini-devel ()
                          "helm-mini for prog-modes (TODO entries, helm-projectile, buffers and recentf)"
                          (interactive)
                          (require 'helm-files)
                          (require 'helm-misc)
                          (require 'helm-projectile)
                          (let ((helm-ff-transformer-show-only-basename nil))
                            (helm-other-buffer '(helm-source-fixme
                                                 helm-source-projectile-buffers-list
                                                 helm-source-projectile-recentf-list
                                                 helm-source-projectile-files-list
                                                 helm-source-buffers-list
                                                 helm-source-recentf
                                                 helm-source-buffer-not-found)
                                               "*helm mini devel*")))
jorgenschaefer commented 10 years ago

Thank you! As an optional dependency, neither helm nor projectile should be a problem. As a default configuration, I'd like to have some significant benefits. Currently, elpy uses find-file-in-project with ido, which works ok. I suspect your helm solution is very similar in effect. Though I like how it combines different sources, and the TODO entries are a nice touch. :-)

I have to admit I'm not really sure why people use these project browsers (I mean the "typical tree structure" ones), so I'm not sure what the use case is or what would replace it for these users.

whirm commented 10 years ago

I guess they only make sense if you use your mouse to browse the project tree.

jorgenschaefer commented 10 years ago

Another project: https://github.com/sabof/project-explorer

whirm commented 10 years ago

Looks nice, it uses projectile and has helm compatibility that would be good enough for me.

jorgenschaefer commented 10 years ago

Another one: http://www.emacswiki.org/emacs/NeoTree

jorgenschaefer commented 9 years ago

emacs-jedi uses direx: https://github.com/tkf/emacs-jedi-direx/blob/master/jedi-direx.el

jorgenschaefer commented 8 years ago

And another candidate: https://github.com/fourier/ztree/