(require 'cl) (defvar my-packages '(ag ;; Completion Frameworks company company-irony company-emacs-eclim eclim irony counsel swiper jedi ;;;;;;;;;;;;;;;;;;;;;;;; ;; Programming modes cc-mode python-mode yaml-mode markdown-mode gitignore-mode feature-mode gradle-mode protobuf-mode meson-mode paredit magit ;;;;;;;;;;;;;;;;;;;; ;; Navigation neotree ;;;;;;;;;;;;; ;; Cleanup ws-butler ;;;;;;;;;; ;; Editing Utility autopair ;;;;;;;;;;;;;;;;;; ;; UI fill-column-indicator golden-ratio linum-relative powerline rainbow-delimiters zenburn-theme wrap-region expand-region wrap-region material-theme ;;;;; ;; Project Interaction/Search/Syntax flycheck flycheck-pos-tip grizzl smex projectile ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ) "Packages to make sure are installed") (defun my-packages-installed-p () (loop for p in my-packages when (not (package-installed-p p)) do (return nil) finally (return t))) (unless (my-packages-installed-p) ;; check for new packages (package versions) (package-refresh-contents) ;; install the missing packages (dolist (p my-packages) (when (not (package-installed-p p)) (package-install p))))