X-Git-Url: https://code.delx.au/dotemacs/blobdiff_plain/bf94cd7ac5102ac26033ee64ef40148696676d62..bed83966f185a6b1284851e93b27e79bb2c96f47:/lisp/my-file-modes.el diff --git a/lisp/my-file-modes.el b/lisp/my-file-modes.el index 0060892..a010ac7 100644 --- a/lisp/my-file-modes.el +++ b/lisp/my-file-modes.el @@ -1,11 +1,19 @@ ;;; -*- lexical-binding: t -*- (setq-default indent-tabs-mode nil) -(setq-default c-basic-offset 4) -(setq-default python-indent-offset 4) +(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-default coffee-tab-width 4) +(setq coffee-tab-width 4) (require 'dockerfile-mode) @@ -18,29 +26,77 @@ (require 'json-mode) (require 'js) -(add-hook 'json-mode-hook - (lambda () - (make-local-variable 'js-indent-level) - (setq 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) (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 + +(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) (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))) + (lambda () + (setq forward-sexp-function nil) + (set (make-local-variable 'python-indent-offset) 4))) + (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)