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
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))))
|
|
|