Moves helper functions to separate file
This commit is contained in:
		
							parent
							
								
									39b0e5056b
								
							
						
					
					
						commit
						23f4e84ada
					
				
					 2 changed files with 480 additions and 439 deletions
				
			
		
							
								
								
									
										310
									
								
								configs/.emacs
									
										
									
									
									
								
							
							
						
						
									
										310
									
								
								configs/.emacs
									
										
									
									
									
								
							|  | @ -113,15 +113,9 @@ | |||
|   (powerline-default-theme)) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/projectile-shell-pop () | ||||
|   "Opens `ansi-term' at the project root according to Projectile." | ||||
|   (interactive) | ||||
|   (let ((default-directory (projectile-project-root))) | ||||
|     (if (get-buffer "*ansi-term*") | ||||
|         (switch-to-buffer "*ansi-term*") | ||||
|       (ansi-term "/bin/zsh")) | ||||
|     (term-send-string (terminal) (format "cd '%s'\n" default-directory)) | ||||
|     (get-buffer-process "*ansi-term*"))) | ||||
| ;; Load custom Emacs functions | ||||
| (load "~/.emacs/wc-helper-functions.lisp") | ||||
| 
 | ||||
| 
 | ||||
| ;; ERC configuration (IRC in Emacs) | ||||
| (use-package erc | ||||
|  | @ -130,12 +124,6 @@ | |||
|   (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#elixir")))) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/join-erc () | ||||
|   "Boots `erc' and autojoins channels." | ||||
|   (interactive) | ||||
|   (erc :server "irc.freenode.net" :port "6667" :nick "wpcarro")) | ||||
| 
 | ||||
| 
 | ||||
| ;; Disable fringes in Emacs | ||||
| (fringe-mode 0) | ||||
| 
 | ||||
|  | @ -192,16 +180,6 @@ | |||
|   :ensure t) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/bootstrap-ansi-term () | ||||
|   "Custom `ansi-term' configuration." | ||||
|   (interactive) | ||||
|   (linum-mode nil) | ||||
|   (local-set-key (kbd "C-h") 'evil-window-left) | ||||
|   (local-set-key (kbd "C-l") 'evil-window-right) | ||||
|   (local-set-key (kbd "C-k") 'evil-window-up) | ||||
|   (local-set-key (kbd "C-j") 'evil-window-down) | ||||
|   (define-key term-raw-map (kbd "s-v") 'term-paste)) | ||||
| 
 | ||||
| (defadvice term-sentinel (around my-advice-term-sentinel (proc msg)) | ||||
|   (if (memq (process-status proc) '(signal exit)) | ||||
|       (let ((buffer (process-buffer proc))) | ||||
|  | @ -211,15 +189,6 @@ | |||
| (ad-activate 'term-sentinel) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/ansi-term-paste (&optional string) | ||||
|   "Paste into `ansi-term'." | ||||
|   (interactive) | ||||
|   (process-send-string | ||||
|    (get-buffer-process (current-buffer)) | ||||
|    (if string string (current-kill 0))))) | ||||
| 
 | ||||
| 
 | ||||
| ;; Ansi-Term | ||||
| (use-package term | ||||
|   :ensure t | ||||
|  | @ -330,30 +299,11 @@ | |||
|   (call-interactively 'evil-scroll-line-to-center)) | ||||
| 
 | ||||
| 
 | ||||
|   (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") | ||||
| (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") | ||||
| 
 | ||||
| 
 | ||||
|   (defun evil-window-vsplit-right () | ||||
|     "Vertically split a window and move right." | ||||
|     (interactive) | ||||
|     (evil-window-vsplit nil) | ||||
|     (evil-window-right 1)) | ||||
| 
 | ||||
|   (defun evil-window-split-down () | ||||
|     "Split a window and move right." | ||||
|     (interactive) | ||||
|     (evil-window-split nil) | ||||
|     (evil-window-down 1)) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/switch-to-mru-buffer () | ||||
|   "Switches to the most recently used buffer, including visible buffers." | ||||
|   (interactive) | ||||
|   (switch-to-buffer (other-buffer (current-buffer) t (selected-frame)))) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Evil Leader Settings | ||||
|   (use-package evil-leader | ||||
| ;; Evil Leader Settings | ||||
| (use-package evil-leader | ||||
|   :ensure t | ||||
|   :commands (global-evil-leader-mode) | ||||
|   :config | ||||
|  | @ -386,68 +336,55 @@ | |||
|     )) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Evil Match-it | ||||
|   (use-package evil-matchit | ||||
| ;; Evil Match-it | ||||
| (use-package evil-matchit | ||||
|   :ensure t | ||||
|   :commands (global-evil-matchit-mode)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Evil Surround | ||||
|   (use-package evil-surround | ||||
| ;; Evil Surround | ||||
| (use-package evil-surround | ||||
|   :ensure t | ||||
|   :commands (global-evil-surround-mode)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Flycheck Mix Settings | ||||
|   (use-package flycheck-mix | ||||
| ;; Flycheck Mix Settings | ||||
| (use-package flycheck-mix | ||||
|   :ensure t | ||||
|   :init | ||||
|   (flycheck-mix-setup)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Flycheck | ||||
|   (use-package flycheck | ||||
| ;; Flycheck | ||||
| (use-package flycheck | ||||
|   :ensure t | ||||
|   :config | ||||
|   (setq flycheck-display-errors-function 'ignore)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Flycheck Credo Settings | ||||
|   (use-package flycheck-credo | ||||
| ;; Flycheck Credo Settings | ||||
| (use-package flycheck-credo | ||||
|   :ensure t | ||||
|   :init | ||||
|   (flycheck-credo-setup)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Popwin Settings | ||||
|   (use-package popwin | ||||
| ;; Popwin Settings | ||||
| (use-package popwin | ||||
|   :ensure t) | ||||
| 
 | ||||
|   (defun *-popwin-help-mode-off () | ||||
|     "Turn `popwin-mode' off for *Help* buffers." | ||||
| 
 | ||||
|     (when (boundp 'popwin:special-display-config) | ||||
|       (customize-set-variable 'popwin:special-display-config | ||||
|                               (delq 'help-mode popwin:special-display-config)))) | ||||
| (add-hook 'helm-minibuffer-set-up-hook #'*-popwin-help-mode-off) | ||||
| (add-hook 'helm-cleanup-hook #'*-popwin-help-mode-on) | ||||
| 
 | ||||
|   (defun *-popwin-help-mode-on () | ||||
|     "Turn `popwin-mode' on for *Help* buffers." | ||||
| 
 | ||||
|     (when (boundp 'popwin:special-display-config) | ||||
|       (customize-set-variable 'popwin:special-display-config | ||||
|                               (add-to-list 'popwin:special-display-config 'help-mode nil #'eq)))) | ||||
| 
 | ||||
|   (add-hook 'helm-minibuffer-set-up-hook #'*-popwin-help-mode-off) | ||||
|   (add-hook 'helm-cleanup-hook #'*-popwin-help-mode-on) | ||||
| 
 | ||||
|   (setq display-buffer-function 'popwin:display-buffer) | ||||
|   (setq helm-split-window-preferred-function 'ignore) | ||||
|   (push '("^\*helm .+\*$" :regexp t) popwin:special-display-config) | ||||
|   (push '("^\*helm-.+\*$" :regexp t) popwin:special-display-config) | ||||
| (setq display-buffer-function 'popwin:display-buffer) | ||||
| (setq helm-split-window-preferred-function 'ignore) | ||||
| (push '("^\*helm .+\*$" :regexp t) popwin:special-display-config) | ||||
| (push '("^\*helm-.+\*$" :regexp t) popwin:special-display-config) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Alchemist Settings | ||||
|   (use-package alchemist | ||||
| ;; Alchemist Settings | ||||
| (use-package alchemist | ||||
|   :ensure t | ||||
|   :config | ||||
|   (setq alchemist-mix-env "prod") | ||||
|  | @ -456,27 +393,12 @@ | |||
|   :init | ||||
|   (linum-mode)) | ||||
| 
 | ||||
|   (defun custom-erlang-mode-hook () | ||||
|     "Jump to and from Elixir, Erlang, Elixir files." | ||||
|     (define-key erlang-mode-map (kbd "M-,") 'alchemist-goto-jump-back)) | ||||
| 
 | ||||
|   (add-hook 'erlang-mode-hook 'custom-erlang-mode-hook) | ||||
| (add-hook 'erlang-mode-hook 'wc/custom-erlang-mode-hook) | ||||
| 
 | ||||
| 
 | ||||
|   (defun helm-ag-neotree-node () | ||||
|     "Run Helm-ag on Neotree directory." | ||||
|     (interactive) | ||||
|     (let ((search-root (neo-buffer--get-filename-current-line))) | ||||
|       (if search-root | ||||
|           ;; search directory | ||||
|           (progn | ||||
|             (evil-window-right 1) | ||||
|             (helm-ag search-root)) | ||||
|         (message "Could not find directory at point.")))) | ||||
| 
 | ||||
| 
 | ||||
|   ;; NeoTree Settings | ||||
|   (use-package neotree | ||||
| ;; NeoTree Settings | ||||
| (use-package neotree | ||||
|   :ensure t | ||||
|   :bind (:map neotree-mode-map | ||||
|               ("j" . next-line) | ||||
|  | @ -497,47 +419,9 @@ | |||
|   (setq neo-theme (if (display-graphic-p) 'icons 'arrow)) | ||||
|   (setq-default neo-show-hidden-files t)) | ||||
| 
 | ||||
|   (defun neotree-toggle-project-dir () | ||||
|     "Toggle neotree sidebar." | ||||
|     (interactive) | ||||
|     (let ((project-dir (projectile-project-root)) | ||||
|           (file-name (buffer-file-name))) | ||||
|       (neotree-toggle) | ||||
|       (if project-dir | ||||
|           (if (neo-global--window-exists-p) | ||||
|               (progn | ||||
|                 (neotree-dir project-dir) | ||||
|                 (neotree-show) | ||||
|                 (evil-window-mru))) | ||||
|         (message "Could not find git project root.")))) | ||||
| 
 | ||||
| 
 | ||||
|   (defun neotree-reveal-current-buffer () | ||||
|     "Reveal current buffer in Neotree." | ||||
|     (interactive) | ||||
|     (let ((project-dir (projectile-project-root)) | ||||
|           (file-name (buffer-file-name))) | ||||
|       (neotree-show) | ||||
|       (if project-dir | ||||
|           (if (neo-global--window-exists-p) | ||||
|               (progn | ||||
|                 (neotree-dir project-dir) | ||||
|                 (neotree-find file-name) | ||||
|                 (evil-window-mru))) | ||||
|         (message "Could not find git project root.")))) | ||||
| 
 | ||||
| 
 | ||||
|   (defun message-project-root () | ||||
|     "Outputs project-root." | ||||
|     (interactive) | ||||
|     (let (project-dir (projectile-project-root)) | ||||
|       (if project-dir | ||||
|           (message "Project dir found!") | ||||
|         (message "No project-dir found.")))) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Whitespace Settings | ||||
|   (use-package whitespace | ||||
| ;; Whitespace Settings | ||||
| (use-package whitespace | ||||
|   :ensure t | ||||
|   :commands (whitespace-mode) | ||||
|   :config | ||||
|  | @ -545,8 +429,8 @@ | |||
|   (setq whitespace-style '(face lines-tail))) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Helm Settings | ||||
|   (use-package helm | ||||
| ;; Helm Settings | ||||
| (use-package helm | ||||
|   :ensure t | ||||
|   :commands (helm-mode) | ||||
|   :bind ( | ||||
|  | @ -566,19 +450,19 @@ | |||
|   (setq helm-locate-fuzzy-match t)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Helm Projectile Settings | ||||
|   (use-package helm-projectile | ||||
| ;; Helm Projectile Settings | ||||
| (use-package helm-projectile | ||||
|   :ensure t) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Elm Mode | ||||
|   (use-package elm-mode | ||||
| ;; Elm Mode | ||||
| (use-package elm-mode | ||||
|   :config | ||||
|   (add-to-list 'company-backends 'company-elm)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Company Settings | ||||
|   (use-package company | ||||
| ;; Company Settings | ||||
| (use-package company | ||||
|   :bind ( | ||||
|          ("C-j" . company-select-next) | ||||
|          ("C-k" . company-select-previous)) | ||||
|  | @ -586,106 +470,63 @@ | |||
|   (setq company-idle-delay 0)) | ||||
| 
 | ||||
| 
 | ||||
|   (add-hook 'after-init-hook 'evil-mode) | ||||
|   (add-hook 'after-init-hook 'global-whitespace-mode) | ||||
|   (add-hook 'after-init-hook 'global-hl-line-mode) | ||||
|   (add-hook 'after-init-hook 'global-linum-mode) | ||||
|   (add-hook 'after-init-hook 'global-flycheck-mode) | ||||
|   (add-hook 'after-init-hook 'global-company-mode) | ||||
|   (add-hook 'after-init-hook 'projectile-mode) | ||||
|   (add-hook 'after-init-hook 'helm-mode) | ||||
|   (add-hook 'before-save-hook 'delete-trailing-whitespace) | ||||
| (add-hook 'after-init-hook 'evil-mode) | ||||
| (add-hook 'after-init-hook 'global-whitespace-mode) | ||||
| (add-hook 'after-init-hook 'global-hl-line-mode) | ||||
| (add-hook 'after-init-hook 'global-linum-mode) | ||||
| (add-hook 'after-init-hook 'global-flycheck-mode) | ||||
| (add-hook 'after-init-hook 'global-company-mode) | ||||
| (add-hook 'after-init-hook 'projectile-mode) | ||||
| (add-hook 'after-init-hook 'helm-mode) | ||||
| (add-hook 'before-save-hook 'delete-trailing-whitespace) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Scrolling Settings | ||||
|   (setq scroll-step 1) | ||||
|   (setq scroll-conservatively 10000) | ||||
| ;; Scrolling Settings | ||||
| (setq scroll-step 1) | ||||
| (setq scroll-conservatively 10000) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Properly configure GUI Emacs to use $PATH values | ||||
|   (when (memq window-system '(mac ns)) | ||||
| ;; Properly configure GUI Emacs to use $PATH values | ||||
| (when (memq window-system '(mac ns)) | ||||
|   (exec-path-from-shell-initialize)) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Emacs backup / autosave files | ||||
|   ;; (setq-default make-backup-files nil) | ||||
|   (setq backup-directory-alist `(("." . "~/.emacs-tmp"))) | ||||
|   (setq auto-save-file-name-transforms `((".*" "~/.emacs-tmp/" t))) | ||||
| ;; Emacs backup / autosave files | ||||
| ;; (setq-default make-backup-files nil) | ||||
| (setq backup-directory-alist `(("." . "~/.emacs-tmp"))) | ||||
| (setq auto-save-file-name-transforms `((".*" "~/.emacs-tmp/" t))) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Automatically follow symlinks | ||||
|   (setq vc-follow-symlinks t) | ||||
| ;; Automatically follow symlinks | ||||
| (setq vc-follow-symlinks t) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Commenting / Uncommenting | ||||
|   (global-set-key (kbd "C-x C-;") 'comment-or-uncomment-region) | ||||
| ;; Commenting / Uncommenting | ||||
| (global-set-key (kbd "C-x C-;") 'comment-or-uncomment-region) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Fullscreen settings | ||||
|   (setq ns-use-native-fullscreen nil) | ||||
|   (global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen) | ||||
| ;; Fullscreen settings | ||||
| (setq ns-use-native-fullscreen nil) | ||||
| (global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen) | ||||
| 
 | ||||
| 
 | ||||
|   ;; General Settings | ||||
|   ;; Hide the menu-bar | ||||
|   (setq ns-auto-hide-menu-bar t) | ||||
| ;; General Settings | ||||
| ;; Hide the menu-bar | ||||
| (setq ns-auto-hide-menu-bar t) | ||||
| 
 | ||||
|   ;; Native App Settings | ||||
|   (tool-bar-mode -1) | ||||
| ;; Native App Settings | ||||
| (tool-bar-mode -1) | ||||
| 
 | ||||
|   ;; Disable GUI scrollbars | ||||
|   (when (display-graphic-p) | ||||
| ;; Disable GUI scrollbars | ||||
| (when (display-graphic-p) | ||||
|   (scroll-bar-mode -1) | ||||
|   ) | ||||
| 
 | ||||
|   ;; Use spaces instead of tabs | ||||
|   (setq-default indent-tabs-mode nil) | ||||
| ;; Use spaces instead of tabs | ||||
| (setq-default indent-tabs-mode nil) | ||||
| 
 | ||||
|   ;; Change font settings | ||||
|   (add-to-list 'default-frame-alist '(font . "Menlo-12")) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Force save buffers | ||||
|   (defun save-buffer-always () | ||||
|     "Save the buffer even if it is not modified." | ||||
|     (interactive) | ||||
|     (set-buffer-modified-p t) | ||||
|     (save-buffer)) | ||||
| 
 | ||||
|   (global-set-key (kbd "C-x C-s") nil) | ||||
|   (global-set-key (kbd "C-x C-s") 'save-buffer-always) | ||||
| 
 | ||||
| 
 | ||||
|   ;; Upgrade all packages | ||||
|   (defun package-upgrade-all () | ||||
|     "Upgrade all packages automatically without showing *Packages* buffer." | ||||
|     (interactive) | ||||
|     (package-refresh-contents) | ||||
|     (let (upgrades) | ||||
|       (cl-flet ((get-version (name where) | ||||
|                   (let ((pkg (cadr (assq name where)))) | ||||
|                     (when pkg | ||||
|                       (package-desc-version pkg))))) | ||||
|         (dolist (package (mapcar #'car package-alist)) | ||||
|           (let ((in-archive (get-version package package-archive-contents))) | ||||
|             (when (and in-archive | ||||
|                       (version-list-< (get-version package package-alist) | ||||
|                                       in-archive)) | ||||
|               (push (cadr (assq package package-archive-contents)) | ||||
|                     upgrades))))) | ||||
|       (if upgrades | ||||
|           (when (yes-or-no-p | ||||
|                 (message "Upgrade %d package%s (%s)? " | ||||
|                           (length upgrades) | ||||
|                           (if (= (length upgrades) 1) "" "s") | ||||
|                           (mapconcat #'package-desc-full-name upgrades ", "))) | ||||
|             (save-window-excursion | ||||
|               (dolist (package-desc upgrades) | ||||
|                 (let ((old-package (cadr (assq (package-desc-name package-desc) | ||||
|                                               package-alist)))) | ||||
|                   (package-install package-desc) | ||||
|                   (package-delete  old-package))))) | ||||
|         (message "All packages are up to date")))) | ||||
| ;; Change font settings | ||||
| (add-to-list 'default-frame-alist '(font . "Menlo-12")) | ||||
| 
 | ||||
| 
 | ||||
| ;; Colorscheme | ||||
|  | @ -699,3 +540,4 @@ | |||
| ;; Add transparency | ||||
| (set-frame-parameter (selected-frame) 'alpha '(100 . 100)) | ||||
| (add-to-list 'default-frame-alist '(alpha . (100 . 100))) | ||||
| (put 'narrow-to-region 'disabled nil) | ||||
|  |  | |||
							
								
								
									
										199
									
								
								emacs/wc-helper-functions.lisp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								emacs/wc-helper-functions.lisp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,199 @@ | |||
| (defun wc/projectile-shell-pop () | ||||
|   "Opens `ansi-term' at the project root according to Projectile." | ||||
|   (interactive) | ||||
|   (let ((default-directory (projectile-project-root))) | ||||
|     (if (get-buffer "*ansi-term*") | ||||
|         (switch-to-buffer "*ansi-term*") | ||||
|       (ansi-term "/bin/zsh")) | ||||
|     (term-send-string (terminal) (format "cd '%s'\n" default-directory)) | ||||
|     (get-buffer-process "*ansi-term*"))) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/join-erc () | ||||
|   "Boots `erc' and autojoins channels." | ||||
|   (interactive) | ||||
|   (erc :server "irc.freenode.net" :port "6667" :nick "wpcarro")) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/bootstrap-ansi-term () | ||||
|   "Custom `ansi-term' configuration." | ||||
|   (interactive) | ||||
|   (linum-mode nil) | ||||
|   (local-set-key (kbd "C-h") 'evil-window-left) | ||||
|   (local-set-key (kbd "C-l") 'evil-window-right) | ||||
|   (local-set-key (kbd "C-k") 'evil-window-up) | ||||
|   (local-set-key (kbd "C-j") 'evil-window-down) | ||||
|   (define-key term-raw-map (kbd "s-v") 'term-paste)) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/ansi-term-paste (&optional string) | ||||
|   "Paste into `ansi-term'." | ||||
|   (interactive) | ||||
|   (process-send-string | ||||
|    (get-buffer-process (current-buffer)) | ||||
|    (if string string (current-kill 0))))) | ||||
| 
 | ||||
| 
 | ||||
| (defun evil-window-vsplit-right () | ||||
|   "Vertically split a window and move right." | ||||
|   (interactive) | ||||
|   (evil-window-vsplit nil) | ||||
|   (evil-window-right 1)) | ||||
| 
 | ||||
| 
 | ||||
| (defun evil-window-split-down () | ||||
|   "Split a window and move right." | ||||
|   (interactive) | ||||
|   (evil-window-split nil) | ||||
|   (evil-window-down 1)) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/switch-to-mru-buffer () | ||||
|   "Switches to the most recently used buffer, including visible buffers." | ||||
|   (interactive) | ||||
|   (switch-to-buffer (other-buffer (current-buffer) t (selected-frame)))) | ||||
| 
 | ||||
| 
 | ||||
| (defun *-popwin-help-mode-off () | ||||
|   "Turn `popwin-mode' off for *Help* buffers." | ||||
|   (when (boundp 'popwin:special-display-config) | ||||
|     (customize-set-variable 'popwin:special-display-config | ||||
|                             (delq 'help-mode popwin:special-display-config)))) | ||||
| 
 | ||||
| 
 | ||||
| (defun *-popwin-help-mode-on () | ||||
|   "Turn `popwin-mode' on for *Help* buffers." | ||||
|   (when (boundp 'popwin:special-display-config) | ||||
|     (customize-set-variable 'popwin:special-display-config | ||||
|                             (add-to-list 'popwin:special-display-config 'help-mode nil #'eq)))) | ||||
| 
 | ||||
| 
 | ||||
| (defun wc/custom-erlang-mode-hook () | ||||
|   "Jump to and from Elixir, Erlang, Elixir files." | ||||
|   (define-key erlang-mode-map (kbd "M-,") 'alchemist-goto-jump-back)) | ||||
| 
 | ||||
| 
 | ||||
| (defun helm-ag-neotree-node () | ||||
|   "Run Helm-ag on Neotree directory." | ||||
|   (interactive) | ||||
|   (let ((search-root (neo-buffer--get-filename-current-line))) | ||||
|     (if search-root | ||||
|         ;; search directory | ||||
|         (progn | ||||
|           (evil-window-right 1) | ||||
|           (helm-ag search-root)) | ||||
|       (message "Could not find directory at point.")))) | ||||
| 
 | ||||
| 
 | ||||
| (defun neotree-toggle-project-dir () | ||||
|   "Toggle neotree sidebar." | ||||
|   (interactive) | ||||
|   (let ((project-dir (projectile-project-root)) | ||||
|         (file-name (buffer-file-name))) | ||||
|     (neotree-toggle) | ||||
|     (if project-dir | ||||
|         (if (neo-global--window-exists-p) | ||||
|             (progn | ||||
|               (neotree-dir project-dir) | ||||
|               (neotree-show) | ||||
|               (evil-window-mru))) | ||||
|       (message "Could not find git project root.")))) | ||||
| 
 | ||||
| 
 | ||||
| (defun neotree-reveal-current-buffer () | ||||
|   "Reveal current buffer in Neotree." | ||||
|   (interactive) | ||||
|   (let ((project-dir (projectile-project-root)) | ||||
|         (file-name (buffer-file-name))) | ||||
|     (neotree-show) | ||||
|     (if project-dir | ||||
|         (if (neo-global--window-exists-p) | ||||
|             (progn | ||||
|               (neotree-dir project-dir) | ||||
|               (neotree-find file-name) | ||||
|               (evil-window-mru))) | ||||
|       (message "Could not find git project root.")))) | ||||
| 
 | ||||
| 
 | ||||
| (defun save-buffer-always () | ||||
|   "Save the buffer even if it is not modified." | ||||
|   (interactive) | ||||
|   (set-buffer-modified-p t) | ||||
|   (save-buffer)) | ||||
| (global-set-key (kbd "C-x C-s") nil) | ||||
| (global-set-key (kbd "C-x C-s") 'save-buffer-always) | ||||
| 
 | ||||
| 
 | ||||
| ;; Upgrade all packages | ||||
| (defun package-upgrade-all () | ||||
|   "Upgrade all packages automatically without showing *Packages* buffer." | ||||
|   (interactive) | ||||
|   (package-refresh-contents) | ||||
|   (let (upgrades) | ||||
|     (cl-flet ((get-version (name where) | ||||
|                            (let ((pkg (cadr (assq name where)))) | ||||
|                              (when pkg | ||||
|                                (package-desc-version pkg))))) | ||||
|       (dolist (package (mapcar #'car package-alist)) | ||||
|         (let ((in-archive (get-version package package-archive-contents))) | ||||
|           (when (and in-archive | ||||
|                      (version-list-< (get-version package package-alist) | ||||
|                                      in-archive)) | ||||
|             (push (cadr (assq package package-archive-contents)) | ||||
|                   upgrades))))) | ||||
|     (if upgrades | ||||
|         (when (yes-or-no-p | ||||
|                (message "Upgrade %d package%s (%s)? " | ||||
|                         (length upgrades) | ||||
|                         (if (= (length upgrades) 1) "" "s") | ||||
|                         (mapconcat #'package-desc-full-name upgrades ", "))) | ||||
|           (save-window-excursion | ||||
|             (dolist (package-desc upgrades) | ||||
|               (let ((old-package (cadr (assq (package-desc-name package-desc) | ||||
|                                              package-alist)))) | ||||
|                 (package-install package-desc) | ||||
|                 (package-delete  old-package))))) | ||||
|       (message "All packages are up to date")))) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| (defun message-project-root () | ||||
|   "Outputs project-root." | ||||
|   (interactive) | ||||
|   (let (project-dir (projectile-project-root)) | ||||
|     (if project-dir | ||||
|         (message "Project dir found!") | ||||
|       (message "No project-dir found.")))) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;; Upgrade all packages | ||||
| (defun package-upgrade-all () | ||||
|   "Upgrade all packages automatically without showing *Packages* buffer." | ||||
|   (interactive) | ||||
|   (package-refresh-contents) | ||||
|   (let (upgrades) | ||||
|     (cl-flet ((get-version (name where) | ||||
|                            (let ((pkg (cadr (assq name where)))) | ||||
|                              (when pkg | ||||
|                                (package-desc-version pkg))))) | ||||
|       (dolist (package (mapcar #'car package-alist)) | ||||
|         (let ((in-archive (get-version package package-archive-contents))) | ||||
|           (when (and in-archive | ||||
|                      (version-list-< (get-version package package-alist) | ||||
|                                      in-archive)) | ||||
|             (push (cadr (assq package package-archive-contents)) | ||||
|                   upgrades))))) | ||||
|     (if upgrades | ||||
|         (when (yes-or-no-p | ||||
|                (message "Upgrade %d package%s (%s)? " | ||||
|                         (length upgrades) | ||||
|                         (if (= (length upgrades) 1) "" "s") | ||||
|                         (mapconcat #'package-desc-full-name upgrades ", "))) | ||||
|           (save-window-excursion | ||||
|             (dolist (package-desc upgrades) | ||||
|               (let ((old-package (cadr (assq (package-desc-name package-desc) | ||||
|                                              package-alist)))) | ||||
|                 (package-install package-desc) | ||||
|                 (package-delete  old-package))))) | ||||
|       (message "All packages are up to date")))) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue