This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; helper functions | |
(defun kb/project-dir () | |
"returns the current project's root path" | |
(let* ((pr (project-current t)) | |
(pr-dir (project-root pr))) | |
pr-dir)) | |
(defun kb/project-concat (path) | |
"appends provided path onto the current project's root path" | |
(concat (kb/project-dir) path)) | |
(defun kb/project-find-in-dir (subdir) | |
"template function for finding a particular file in a project's subdirectory" | |
(let ((dirs (list (concat (kb/project-dir) subdir)))) | |
(project-find-file-in nil dirs (project-current t)))) | |
(defun kb/pr-find-controller69 () | |
(interactive) | |
(kb/project-find-in-dir "app/controllers")) | |
;; My take at customizing project.el to mimic a projectile-rails setup | |
(defun kb/pr-find-controller () | |
(interactive) | |
(let* ((pr (project-current t)) | |
(dir (project-root pr)) | |
(dirs (list (concat dir "app/controllers")))) | |
(project-find-file-in nil dirs pr))) | |
(defun kb/pr-find-controller () | |
(interactive) | |
(let ((dirs (list (concat (kb/project-dir) "app/controllers")))) | |
(project-find-file-in nil dirs (project-current t)))) | |
(defun kb/pr-find-model () | |
(interactive) | |
(let* ((pr (project-current t)) | |
(dir (project-root pr)) | |
(dirs (list (concat dir "app/models")))) | |
(project-find-file-in nil dirs pr))) | |
(defun kb/pr-find-view () | |
(interactive) | |
(let* ((pr (project-current t)) | |
(dir (project-root pr)) | |
(dirs (list (concat dir "app/views")))) | |
(project-find-file-in "guides" dirs pr))) | |
(defun kb/pr-find-schema () | |
(interactive) | |
(let* ((pr (project-current t)) | |
(dir (project-root pr)) | |
(dirs (list (concat dir "db")))) | |
(project-find-file-in "schema" dirs pr))) | |
(defun kb/pr-find-schema2 () | |
(interactive) | |
(let* ((pr (project-current t)) | |
(dir (project-root pr)) | |
(file (concat dir "db/schema.rb"))) | |
(find-file file))) | |
(defun kb/pr-find-schema3 () | |
(interactive) | |
(find-file (kb/project-concat "db/schema.rb"))) | |
;; on macos this is bound by default to print current buffer | |
(global-unset-key (kbd "s-p")) | |
;; add key bindings using "super" / command key for project-related actions | |
;; set up project to use familiar (to me) projectile keybindings | |
(global-set-key (kbd "s-p s") 'project-find-regexp) | |
(global-set-key (kbd "s-p r c") 'kb/pr-find-controller) | |
(global-set-key (kbd "s-p r m") 'kb/pr-find-model) | |
(global-set-key (kbd "s-p r v") 'kb/pr-find-view) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment