From c0368d8e65fd15a1f48de6a01adcb8ec786a72a0 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Fri, 29 Jun 2018 14:49:44 -0700 Subject: [emacs] Massive rewrite --- emacs.d/config/fcuny-project.el | 84 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 emacs.d/config/fcuny-project.el (limited to 'emacs.d/config/fcuny-project.el') diff --git a/emacs.d/config/fcuny-project.el b/emacs.d/config/fcuny-project.el new file mode 100644 index 0000000..c94c40b --- /dev/null +++ b/emacs.d/config/fcuny-project.el @@ -0,0 +1,84 @@ +(eval-when-compile + (require 'use-package)) + +(use-package counsel + :ensure t + :bind + (("M-x" . counsel-M-x) + ("C-s" . counsel-grep-or-swiper) + ("C-x C-f" . counsel-find-file) + ("C-x C-r" . counsel-recentf) + ("C-c f" . counsel-git) + ("C-c s" . counsel-git-grep) + ("C-c /" . counsel-ag)) + :custom + (counsel-find-file-at-point t) + :config + (use-package swiper :ensure t) + (use-package counsel-projectile :ensure t)) + +(use-package ivy + :ensure t + :diminish (ivy-mode . "") + :bind ("C-c m" . ivy-switch-project) + :config + (ivy-mode 1) + (setq ivy-use-virtual-buffers t + ivy-height 10 + ivy-count-format "(%d/%d) " + ivy-initial-inputs-alist nil + ivy-use-ignore-default 'always + ivy-ignore-buffers '("company-statistics-cache.el" "company-statistics-autoload.el") + ivy-re-builders-alist '((swiper . ivy--regex-ignore-order) + (t . ivy--regex-fuzzy) + (t . ivy--regex-ignore-order))) + + (defun ivy-switch-project () + (interactive) + (ivy-read + "Switch to project: " + (if (projectile-project-p) + (cons (abbreviate-file-name (projectile-project-root)) + (projectile-relevant-known-projects)) + projectile-known-projects) + :action #'projectile-switch-project-by-name)) + + (ivy-set-actions + 'ivy-switch-project + '(("d" dired "Open Dired in project's directory") + ("v" counsel-projectile "Open project root in vc-dir or magit") + ("c" projectile-compile-project "Compile project") + ("r" projectile-remove-known-project "Remove project(s)")))) + +(use-package projectile + :ensure t + :diminish projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + + :init + (add-hook 'after-init-hook #'projectile-mode) + + :config + (setq projectile-switch-project-action 'projectile-dired + projectile-enable-caching t + projectile-completion-system 'ivy + projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory) + projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory) + projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs + projectile-globally-ignored-directories) + projectile-globally-ignored-files (append + projectile-globally-ignored-files))) + +(use-package ag + :ensure t + :bind (:map ag-mode-map + ("p" . compilation-previous-error) + ("n" . compilation-next-error) + ("N" . compilation-next-file) + ("P" . compilation-previous-file)) + :custom + (ag-highlight-search t) + (ag-reuse-buffers t) + (ag-reuse-window t)) + +(provide 'fcuny-project) -- cgit 1.4.1