(require 'cl) (defvar my-packages '(ag ;; Completion Frameworks company company-irony company-emacs-eclim jedi-core ;; We don't need the `jedi` package ;; since we are using company. If we ;; include both we get an annoying ;; *Python Completions* buffer that ;; isn't useful to us. company-jedi eclim irony counsel swiper ;;;;;;;;;;;;;;;;;;;;;;;; ;; Programming modes cc-mode feature-mode gitignore-mode gradle-mode magit markdown-mode meson-mode nasm-mode paredit protobuf-mode python-mode yaml-mode ;;;;;;;;;;;;;;;;;;;; ;; Navigation neotree ;;;;;;;;;;;;; ;; Cleanup ws-butler ;;;;;;;;;; ;; Shell helpers exec-path-from-shell ;;;;;;;;;;;;;;;;;;;; ;; 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))))