X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/b585e4eae85ee8f30d6bd8c95744fecbeefe66d7..070c1dcaa4d4cd46eaabbaf5107f43335c8b290d:/el/dot-emacs.el diff --git a/el/dot-emacs.el b/el/dot-emacs.el index 4712dc9..42928af 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -1341,6 +1341,66 @@ doesn't match any of the regular expressions in (mdw-post-config-mode-hack)) ;;;-------------------------------------------------------------------------- +;;; Javascript programming configuration. + +(defun mdw-javascript-style () + (setq js-indent-level 2) + (setq js-expr-indent-offset 0)) + +(defun mdw-fontify-javascript () + + ;; Other stuff. + (mdw-javascript-style) + (setq js-auto-indent-flag t) + + ;; Now define things to be fontified. + (make-local-variable 'font-lock-keywords) + (let ((javascript-keywords + (mdw-regexps "abstract" "boolean" "break" "byte" "case" "catch" + "char" "class" "const" "continue" "debugger" "default" + "delete" "do" "double" "else" "enum" "export" "extends" + "final" "finally" "float" "for" "function" "goto" "if" + "implements" "import" "in" "instanceof" "int" + "interface" "let" "long" "native" "new" "package" + "private" "protected" "public" "return" "short" + "static" "super" "switch" "synchronized" "throw" + "throws" "transient" "try" "typeof" "var" "void" + "volatile" "while" "with" "yield" + + "boolean" "byte" "char" "double" "float" "int" "long" + "short" "void")) + (javascript-constants + (mdw-regexps "false" "null" "undefined" "Infinity" "NaN" "true" + "arguments" "this"))) + + (setq font-lock-keywords + (list + + ;; Handle the keywords defined above. + (list (concat "\\<\\(" javascript-keywords "\\)\\>") + '(0 font-lock-keyword-face)) + + ;; Handle the predefined constants defined above. + (list (concat "\\<\\(" javascript-constants "\\)\\>") + '(0 font-lock-variable-name-face)) + + ;; Handle numbers too. + ;; + ;; The following isn't quite right, but it's close enough. + (list (concat "\\<\\(" + "0\\([xX][0-9a-fA-F]+\\|[0-7]+\\)\\|" + "[0-9]+\\(\\.[0-9]*\\|\\)" + "\\([eE]\\([-+]\\|\\)[0-9]+\\|\\)\\)" + "[lLfFdD]?") + '(0 mdw-number-face)) + + ;; And anything else is punctuation. + (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)" + '(0 mdw-punct-face))))) + + (mdw-post-config-mode-hack)) + +;;;-------------------------------------------------------------------------- ;;; C# programming configuration. ;; Make indentation nice. @@ -2140,6 +2200,8 @@ strip numbers instead." (setq sh-indentation 2) (setq sh-basic-offset 2)) +(setq sh-shell-file "/bin/sh") + ;;;-------------------------------------------------------------------------- ;;; Emacs shell mode.