]> code.delx.au - dotemacs/blob - lisp/my-file-modes.el
ternjs: fix tern-project-dir patch
[dotemacs] / lisp / my-file-modes.el
1 ;;; -*- lexical-binding: t -*-
2
3 (setq-default indent-tabs-mode nil)
4 (setq-default require-final-newline t)
5
6 (require 'cc-mode)
7 (setq c-auto-align-backslashes nil)
8 (setq c-default-style '((java-mode . "java")
9 (awk-mode . "awk")
10 (other . "stroustrup")))
11
12 (require 'closure-template-html-mode)
13 (setq sgml-basic-offset 4)
14
15 (require 'coffee-mode)
16 (setq coffee-tab-width 4)
17
18 (require 'dockerfile-mode)
19
20 (require 'git-modes)
21
22 (require 'groovy-mode)
23 (add-to-list 'auto-mode-alist '("\\.groovy\\'" . groovy-mode))
24
25 (require 'haskell-mode)
26
27 (require 'json-mode)
28 (require 'js)
29 (add-hook 'json-mode-hook
30 (lambda ()
31 (set (make-local-variable 'js-indent-level) 2)))
32
33 (require 'js2-mode)
34 (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
35 (add-to-list 'interpreter-mode-alist '("node" . js2-mode))
36 (setq js2-concat-multiline-strings 'eol)
37 (setq js2-highlight-external-variables nil)
38 (setq js2-mode-show-parse-errors nil)
39 (setq js2-mode-show-strict-warnings nil)
40 (setq js--declaration-keyword-re "x^") ; declarations should have normal indentation
41 (require 'js2-refactor)
42 (add-hook 'js2-mode-hook #'js2-refactor-mode)
43 (js2r-add-keybindings-with-prefix "C-c C-m")
44 (setq js2r-always-insert-parens-around-arrow-function-params t)
45 (setq js2r-prefered-quote-type 2)
46 (when (require 'tern nil 'noerror)
47 (add-hook 'js2-mode-hook (lambda () (tern-mode t))))
48 (defun tern-project-dir ()
49 (or (and (equal tern-last-file-name (buffer-file-name)) tern-project-dir)
50 (and (not (buffer-file-name)) (setf tern-project-dir ""))
51 (setf tern-project-dir (expand-file-name (locate-dominating-file default-directory ".git"))))
52 ;; Track the file name to detect if it changed, which means the project
53 ;; directory needs to be found again.
54 (setf tern-last-file-name (buffer-file-name))
55 tern-project-dir)
56
57
58 (when (require 'ledger-mode nil 'noerror)
59 (add-to-list 'auto-mode-alist '("\\.ledger\\'" . ledger-mode))
60 (setq ledger-post-amount-alignment-column 72)
61 (setq ledger-reconcile-default-commodity "AUD")
62 (setq ledger-clear-whole-transactions t))
63
64 (require 'markdown-mode)
65 (setq markdown-command "markdown_py -x markdown.extensions.smart_strong -x markdown.extensions.fenced_code -x markdown.extensions.nl2br")
66 (add-to-list 'auto-mode-alist '("\\.mdown\\'" . markdown-mode) t)
67
68 (require 'pkgbuild-mode)
69
70 (require 'python)
71 (add-hook 'python-mode-hook
72 (lambda ()
73 (setq forward-sexp-function nil)
74 (set (make-local-variable 'python-indent-offset) 4)))
75
76
77 (require 'scala-mode)
78
79 (require 'slime)
80 (setq inferior-lisp-program "sbcl")
81
82 (require 'sh-script)
83 (setq sh-use-smie nil)
84
85 (require 'ssh-file-modes)
86
87 (when (require 'stumpwm-mode nil 'noerror)
88 (add-to-list 'auto-mode-alist '("/\\.stumpwmrc\\'" . stumpwm-mode)))
89
90 (require 'wgrep)
91 (setq wgrep-auto-save-buffer t)
92
93 (require 'yaml-mode)