;;; -*- lexical-binding: t -*- (setq-default indent-tabs-mode nil) (setq-default require-final-newline t) (require 'cc-mode) (setq c-auto-align-backslashes nil) (setq c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "stroustrup"))) (require 'closure-template-html-mode) (setq sgml-basic-offset 4) (require 'coffee-mode) (setq coffee-tab-width 4) (require 'dockerfile-mode) (require 'git-modes) (require 'groovy-mode) (add-to-list 'auto-mode-alist '("\\.groovy\\'" . groovy-mode)) (require 'haskell-mode) (require 'json-mode) (require 'js) (add-hook 'json-mode-hook (lambda () (set (make-local-variable 'js-indent-level) 2))) (require 'js2-mode) (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (add-to-list 'interpreter-mode-alist '("node" . js2-mode)) (setq js2-concat-multiline-strings 'eol) (setq js2-highlight-external-variables nil) (setq js2-mode-show-parse-errors nil) (setq js2-mode-show-strict-warnings nil) (setq js--declaration-keyword-re "x^") ; declarations should have normal indentation (require 'js2-refactor) (add-hook 'js2-mode-hook #'js2-refactor-mode) (js2r-add-keybindings-with-prefix "C-c C-m") (setq js2r-always-insert-parens-around-arrow-function-params t) (setq js2r-prefered-quote-type 2) (when (require 'tern nil 'noerror) (add-hook 'js2-mode-hook (lambda () (tern-mode t)))) (defun tern-project-dir () (or (and (equal tern-last-file-name (buffer-file-name)) tern-project-dir) (and (not (buffer-file-name)) (setf tern-project-dir "")) (setf tern-project-dir (locate-dominating-file default-directory ".git"))) ;; Track the file name to detect if it changed, which means the project ;; directory needs to be found again. (setf tern-last-file-name (buffer-file-name)) tern-project-dir) (when (require 'ledger-mode nil 'noerror) (add-to-list 'auto-mode-alist '("\\.ledger\\'" . ledger-mode)) (setq ledger-post-amount-alignment-column 72) (setq ledger-reconcile-default-commodity "AUD") (setq ledger-clear-whole-transactions t)) (require 'markdown-mode) (setq markdown-command "markdown_py -x markdown.extensions.smart_strong -x markdown.extensions.fenced_code -x markdown.extensions.nl2br") (add-to-list 'auto-mode-alist '("\\.mdown\\'" . markdown-mode) t) (require 'pkgbuild-mode) (require 'python) (add-hook 'python-mode-hook (lambda () (setq forward-sexp-function nil) (set (make-local-variable 'python-indent-offset) 4))) (require 'scala-mode) (require 'slime) (setq inferior-lisp-program "sbcl") (require 'sh-script) (setq sh-use-smie nil) (require 'ssh-file-modes) (when (require 'stumpwm-mode nil 'noerror) (add-to-list 'auto-mode-alist '("/\\.stumpwmrc\\'" . stumpwm-mode))) (require 'wgrep) (setq wgrep-auto-save-buffer t) (require 'yaml-mode)