Moves helper functions to separate file
This commit is contained in:
		
							parent
							
								
									39b0e5056b
								
							
						
					
					
						commit
						23f4e84ada
					
				
					 2 changed files with 480 additions and 439 deletions
				
			
		
							
								
								
									
										168
									
								
								configs/.emacs
									
										
									
									
									
								
							
							
						
						
									
										168
									
								
								configs/.emacs
									
										
									
									
									
								
							|  | @ -113,15 +113,9 @@ | ||||||
|   (powerline-default-theme)) |   (powerline-default-theme)) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| (defun wc/projectile-shell-pop () | ;; Load custom Emacs functions | ||||||
|   "Opens `ansi-term' at the project root according to Projectile." | (load "~/.emacs/wc-helper-functions.lisp") | ||||||
|   (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*"))) |  | ||||||
| 
 | 
 | ||||||
| ;; ERC configuration (IRC in Emacs) | ;; ERC configuration (IRC in Emacs) | ||||||
| (use-package erc | (use-package erc | ||||||
|  | @ -130,12 +124,6 @@ | ||||||
|   (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#elixir")))) |   (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 | ;; Disable fringes in Emacs | ||||||
| (fringe-mode 0) | (fringe-mode 0) | ||||||
| 
 | 
 | ||||||
|  | @ -192,16 +180,6 @@ | ||||||
|   :ensure t) |   :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)) | (defadvice term-sentinel (around my-advice-term-sentinel (proc msg)) | ||||||
|   (if (memq (process-status proc) '(signal exit)) |   (if (memq (process-status proc) '(signal exit)) | ||||||
|       (let ((buffer (process-buffer proc))) |       (let ((buffer (process-buffer proc))) | ||||||
|  | @ -211,15 +189,6 @@ | ||||||
| (ad-activate 'term-sentinel) | (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 | ;; Ansi-Term | ||||||
| (use-package term | (use-package term | ||||||
|   :ensure t |   :ensure t | ||||||
|  | @ -333,25 +302,6 @@ | ||||||
| (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 | ;; Evil Leader Settings | ||||||
| (use-package evil-leader | (use-package evil-leader | ||||||
|   :ensure t |   :ensure t | ||||||
|  | @ -423,19 +373,6 @@ | ||||||
| (use-package popwin | (use-package popwin | ||||||
|   :ensure t) |   :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)))) |  | ||||||
| 
 |  | ||||||
|   (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-minibuffer-set-up-hook #'*-popwin-help-mode-off) | ||||||
| (add-hook 'helm-cleanup-hook #'*-popwin-help-mode-on) | (add-hook 'helm-cleanup-hook #'*-popwin-help-mode-on) | ||||||
|  | @ -456,23 +393,8 @@ | ||||||
|   :init |   :init | ||||||
|   (linum-mode)) |   (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 | ;; NeoTree Settings | ||||||
|  | @ -497,44 +419,6 @@ | ||||||
|   (setq neo-theme (if (display-graphic-p) 'icons 'arrow)) |   (setq neo-theme (if (display-graphic-p) 'icons 'arrow)) | ||||||
|   (setq-default neo-show-hidden-files t)) |   (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 | ;; Whitespace Settings | ||||||
| (use-package whitespace | (use-package whitespace | ||||||
|  | @ -645,49 +529,6 @@ | ||||||
| (add-to-list 'default-frame-alist '(font . "Menlo-12")) | (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")))) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ;; Colorscheme | ;; Colorscheme | ||||||
| (load-theme 'atom-one-dark t) | (load-theme 'atom-one-dark t) | ||||||
| 
 | 
 | ||||||
|  | @ -699,3 +540,4 @@ | ||||||
| ;; Add transparency | ;; Add transparency | ||||||
| (set-frame-parameter (selected-frame) 'alpha '(100 . 100)) | (set-frame-parameter (selected-frame) 'alpha '(100 . 100)) | ||||||
| (add-to-list 'default-frame-alist '(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