X-Git-Url: https://code.delx.au/dotemacs/blobdiff_plain/57347c54ea40bf4833153949034ef09f1e50e3ee..bed83966f185a6b1284851e93b27e79bb2c96f47:/lisp/my-file-modes.el diff --git a/lisp/my-file-modes.el b/lisp/my-file-modes.el index 135d69f..a010ac7 100644 --- a/lisp/my-file-modes.el +++ b/lisp/my-file-modes.el @@ -1,6 +1,7 @@ ;;; -*- lexical-binding: t -*- (setq-default indent-tabs-mode nil) +(setq-default require-final-newline t) (require 'cc-mode) (setq c-auto-align-backslashes nil) @@ -8,6 +9,9 @@ (awk-mode . "awk") (other . "stroustrup"))) +(require 'closure-template-html-mode) +(setq sgml-basic-offset 4) + (require 'coffee-mode) (setq coffee-tab-width 4) @@ -22,11 +26,9 @@ (require 'json-mode) (require 'js) -(add-hook 'json-mode-hook - (lambda () - (set (make-local-variable 'js-indent-level) 2))) - (require 'js2-mode) +(require 'typescript-mode) +(require 'tide) (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (add-to-list 'interpreter-mode-alist '("node" . js2-mode)) (setq js2-concat-multiline-strings 'eol) @@ -35,9 +37,40 @@ (setq js2-mode-show-strict-warnings nil) (setq js--declaration-keyword-re "x^") ; declarations should have normal indentation +(add-hook 'js2-mode-hook #'tide-setup) +(add-hook 'js2-mode-hook #'js2-refactor-mode) +(add-hook 'typescript-mode-hook #'tide-setup) +(add-hook 'typescript-mode-hook #'js2-refactor-mode) + +(defun tide-project-root () + (or + tide-project-root + (let ((root (or (locate-dominating-file default-directory "tsconfig.json") + (locate-dominating-file default-directory "jsconfig.json") + (locate-dominating-file default-directory ".git") + (locate-dominating-file default-directory "package.json")))) + (unless root + (message (tide-join (list "Couldn't locate JavaScript project root folder. Using '" default-directory "' as project root."))) + (setq root default-directory)) + (let ((full-path (expand-file-name root))) + (setq tide-project-root full-path) + full-path)))) + +(require 'js2-refactor) +(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) + +(require 'rjsx-mode) + + +(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) -(define-key markdown-mode-map (kbd "M-{") 'markdown-beginning-of-block) -(define-key markdown-mode-map (kbd "M-}") 'markdown-end-of-block) (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) @@ -53,6 +86,17 @@ (require 'scala-mode) (require 'slime) -(setq inferior-lisp-program "clisp") +(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)