You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

126 lines
3.3 KiB

(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
;; LSP is compatible with company and the lsp-ui gives a
;; vscode-like experience.
lsp-mode
lsp-ui
lsp-python-ms
;;;;;;;;;;;;;;;;;;;;;;;;
cmake-ide
cmake-mode
clang-format+
;;;;;;;;;;;;;;;;;;;;;;;;
;; Programming modes
cc-mode
feature-mode
gitignore-mode
gradle-mode
magit
markdown-mode
meson-mode
nasm-mode
paredit
protobuf-mode
elpy
yaml-mode
slime
;; Rails
rinari
;; Ruby autocomplete
robe
;; RVM support
rvm
;;;;;;;;;;;;;;;;;;;;
;; Test helpers
python-pytest
;; Cleanup
ws-butler
;;;;;;;;;;
;; Shell helpers
exec-path-from-shell
;;;;;;;;;;;;;;;;;;;;
;; Editing Utility
autopair
;; Keeps things indented even when you don't want it to
aggressive-indent
;;;;;;;;;;;;;;;;;;
;; UI
fill-column-indicator
golden-ratio
linum-relative
powerline
rainbow-delimiters
wrap-region
expand-region
wrap-region
material-theme
;;;;;
;; Project Interaction/Search/Syntax
flycheck
flycheck-pos-tip
flycheck-rtags
grizzl
smex
projectile
counsel-gtags
rtags
company-rtags
;; Environments
pyenv-mode
;; Python specific stuff
py-autopep8
;;General
use-package
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
"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))))