;;; packages.el --- External packages configured via `use-package' (require 'package) ;;; Code: (setq package-archives (append package-archives '(("melpa" . "http://melpa.milkbox.net/packages/")))) (package-initialize) (setq package-enable-at-startup nil) (unless package-archive-contents (message "Refreshing ELPA package archives...") (package-refresh-contents)) (unless (package-installed-p 'use-package) (message "`use-package' not found. Installing...") (package-install 'use-package)) (require 'use-package) (setq use-package-minimum-reported-time 0 use-package-verbose t) (use-package ag :ensure t :defer t) (use-package diminish :ensure t :config (progn (eval-after-load "whitespace" '(diminish 'whitespace-mode)))) (use-package flycheck :ensure t :defer t :preface (progn (defun check-source-predicate () (and (executable-find "check.pex") (buffer-file-name) (string-match "src/source/.*\.py$" (buffer-file-name))))) :init (progn (add-hook 'prog-mode-hook 'flycheck-mode) (setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc))) :config (progn (flycheck-define-checker source-check "A syntax checker for python source code in Source, using `dist.pex'" :command ("check.pex" source) ;;; errors are reported like this: ;;; E241:ERROR : :error-patterns ((error line-start (1+ nonl) ":ERROR" (1+ nonl) ":" line (message) line-end)) :predicate check-source-predicate :modes (python-mode)) (add-to-list 'flycheck-checkers 'source-check))) (use-package flyspell :ensure t :defer t :init (progn (setq ispell-program-name "aspell" ispell-list-command "--list") (add-hook 'prog-mode-hook 'flyspell-prog-mode) (add-hook 'text-mode-hook 'turn-on-flyspell))) (use-package gist :ensure t :bind ("C-c g p" . gist-region-or-buffer-private) :config (setq gist-view-gist t)) (use-package github-browse-file :ensure t :defer t) (use-package go-eldoc :ensure t :defer t :init (add-hook 'go-mode-hook 'go-eldoc-setup)) (use-package go-mode :ensure t :defer t :config (progn (bind-key "C-c C-f" 'gofmt go-mode-map) (bind-key "C-c h" 'godoc go-mode-map) (bind-key "C-c C-g" 'go-goto-imports go-mode-map) (bind-key "C-c C-r" 'go-remove-unused-imports go-mode-map))) (use-package google-c-style :ensure t :defer t) (use-package goto-chg :ensure t :bind (("C-." . goto-last-change) ("C-," . goto-last-change-reverse))) (use-package magit :ensure t :bind ("C-x g" . magit-status) :config (progn (setenv "GIT_PAGER" ""))) (use-package markdown-mode :ensure t :mode ("\\.\\(m\\(ark\\)?down\\|md\\)$" . markdown-mode) :init (add-hook 'markdown-mode-hook 'spell-check-and-wrap-at-80) :config (progn (let ((preferred-markdown-impl "peg-markdown")) (when (executable-find preferred-markdown-impl) (setq markdown-command preferred-markdown-impl))))) (use-package midnight) (use-package mustache-mode :mode ("\\.\\(alert\\|mustache\\)$" . mustache-mode) :ensure t :defer t) (use-package projectile :ensure t :diminish projectile-mode :init (setq projectile-enable-caching t) :config (projectile-global-mode)) (use-package puppet-mode :ensure t :mode ("\\.pp$" . puppet-mode)) (use-package python :mode ("\\.\\(py\\|aurora\\)$" . python-mode)) (use-package rainbow-delimiters :ensure t :defer t :init (progn (add-hook 'emacs-lisp-mode-hook #'rainbow-delimiters-mode))) (use-package scala-mode2 :ensure t :defer t) (use-package server :config (unless (server-running-p) (server-start))) (use-package smartparens :ensure t :diminish smartparens-mode :config (progn (require 'smartparens-config) (smartparens-global-mode 1))) (use-package thrift :ensure t :defer t) (use-package yaml-mode :ensure t :defer t) (provide 'packages) ;;; packages.el ends here