(require 'package) (setq package-user-dir "~/.emacs.d/var/elpa") (setq package-archives (append package-archives '(("melpa" . "https://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) (progn (package-refresh-contents) (package-install 'use-package))) (require 'use-package) (eval-and-compile (add-to-list 'load-path (expand-file-name "lib" user-emacs-directory))) (use-package my-settings) (use-package my-functions :config (setq fc/wiki-dir-location "~/src/notes/docs/")) ;; other packages (use-package ag) (use-package counsel :ensure t :config (setq counsel-find-file-at-point t)) (use-package diminish) (use-package dired :config (setq dired-listing-switches "-laGhv")) ;; environment fixup for macOS. (use-package exec-path-from-shell :ensure t :if (and (eq system-type 'darwin) (display-graphic-p)) :config (progn (setq exec-path-from-shell-arguments '("-l")) (exec-path-from-shell-initialize) (exec-path-from-shell-copy-envs '("PATH" "GOROOT" "GOPATH" "GEM_HOME" "GEM_PATH" "MY_RUBY_HOME")))) (use-package flycheck :ensure t :config (use-package flycheck-pos-tip :config (setq flycheck-display-errors-function #'flycheck-pos-tip-error-messages)) (defun check-source-predicate () (and (executable-find "check.pex") (buffer-file-name) (string-match "src/source/.*\.py$" (buffer-file-name)))) (add-hook 'prog-mode-hook 'flycheck-mode) (setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc)) (setq flycheck-mode-line '(:eval (pcase flycheck-last-status-change (`not-checked nil) (`no-checker (propertize " -" 'face 'warning)) (`running "") (`errored (propertize " ✘" 'face 'error)) (`finished (if flycheck-current-errors (let* ((error-counts (flycheck-count-errors flycheck-current-errors)) (no-errors (cdr (assq 'error error-counts))) (no-warnings (cdr (assq 'warning error-counts))) (flycheck-face (cond (no-errors 'error) (no-warnings 'warning)))) (propertize (format " [✗:%s/%s]" (or no-errors 0) (or no-warnings 0)) 'face flycheck-face)) (propertize " [✓]" 'face 'success))) (`interrupted " -") (`suspicious '(propertize " ?" 'face 'warning))))) (flycheck-define-checker source-check "A syntax checker for python source code in Source, using `check.pex'" :command ("check.pex" source) ;;; errors are reported like this: ;;; E241:ERROR : :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end) (warning line-start (id (1+ nonl)) ":WARNING" (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 :diminish flyspell-mode :init (setq ispell-program-name "aspell" ispell-list-command "--list")) (use-package geiser :config (progn (setq geiser-active-implementations '(racket)))) (use-package gist :ensure t :bind ("C-c G" . gist-region-or-buffer)) (use-package go-mode :init (progn (use-package go-eldoc) (add-hook 'go-mode-hook (lambda () (setenv "GO15VENDOREXPERIMENT" "1") (go-eldoc-setup) (add-hook 'before-save-hook 'gofmt-before-save) (setq tab-width 4))))) (use-package helm) (use-package ibuffer :bind ("C-x C-b" . ibuffer)) (use-package json-mode :ensure t :mode "\\.json\\'" :config (setq json-reformat:indent-width 2)) (use-package magit :bind ("C-x g" . magit-status) :config (add-hook 'magit-log-edit-mode-hook #'(lambda () (set-fill-column 72) (flyspell-mode)))) (use-package make-mode :config (add-hook 'makefile-mode-hook #'(lambda () (setq whitespace-style '(face trailing tabs)) (setq tab-width 2) (whitespace-mode)))) (use-package markdown-mode :commands (markdown-mode gfm-mode) :mode (("\\.md\\'" . gfm-mode) ("\\.markdown\\'" . gfm-mode)) :init (setq markdown-command "pandoc -f markdown_github -c https://goo.gl/OVmlwT --self-contained")) (use-package midnight) (use-package org-settings) (use-package pants :load-path (lambda () (expand-file-name "~/src/pants.el/")) :config (setq pants-source-tree-root "/Users/fcuny/src/source" pants-bury-compilation-buffer t pants-extra-args "-q") :bind (("C-c b" . pants-find-build-file) ("C-c r" . pants-run-binary) ("C-c t" . pants-run-test))) (use-package projectile :diminish projectile-mode :bind-keymap ("C-c p" . projectile-command-map) :config (setq projectile-enable-caching t projectile-completion-system 'ivy projectile-known-projects-file "~/.emacs.d/var/projectile-bookmarks.eld" projectile-cache-file "~/.emacs.d/var/projectile.cache") (projectile-global-mode)) (use-package puppet-mode :mode ("\\.pp\\'" . puppet-mode) :init (add-hook 'puppet-mode-hook 'flycheck-mode) :config (setq flycheck-puppet-lint-rc "/Users/fcuny/src/twitter-ops/utilities/puppet/.puppet-lint.rc")) (use-package python :mode ("\\.aurora$" . python-mode) ("BUILD$" . python-mode) :interpreter ("python" . python-mode) :init (setq-default indent-tabs-mode nil) :config (setq python-indent-offset 2) (add-hook 'python-mode-hook 'color-identifiers-mode)) (use-package recentf :config (setq recentf-save-file "~/.emacs.d/var/recentf")) (use-package sh-script :mode ("bashrc" . sh-mode) :config (defun set-sh-mode-indent () (setq sh-basic-offset 2 sh-indentation 2)) (add-hook 'sh-mode-hook 'set-sh-mode-indent)) (use-package swiper :ensure t :diminish ivy-mode :bind ("C-s" . swiper) :config (setq ivy-use-virtual-buffers t) (ivy-mode)) (use-package thrift :ensure t :mode ("\\.thrift\\'" . thrift-mode) :config (setq thrift-indent-level 2)) (use-package yaml-mode :mode ("\\.ya?ml\\'" . yaml-mode)) ;; ;; configuration for puppet ;; (when (memq window-system '(mac ns x)) ;; (dolist (var '("GEM_HOME" "MY_RUBY_HOME")) ;; (unless (getenv var) ;; (exec-path-from-shell-copy-env var)))) ;; some bindings (global-set-key (kbd "M-j") 'join-line) (global-set-key (kbd "") 'toggle-frame-fullscreen) (define-key emacs-lisp-mode-map (kbd "C-c C-e") 'eval-buffer) ;; start the server if not already running (require 'server) (unless (server-running-p) (server-start))