+;;; -*- 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)
(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
+(setq js-indent-align-list-continuation nil)
+
+;; (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)
+(add-to-list 'auto-mode-alist '("\\.tsx\\'" . js2-jsx-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)