`(progn
(make-face ',name)
(defvar ,name ',name)
- (put ',name 'face-defface-spec ',body)
- ))
+ (put ',name 'face-defface-spec ',body)))
(mdw-define-face default
(((type w32)) :family "courier new" :height 85)
(t :slant italic))
(mdw-define-face font-lock-builtin-face
(t :weight bold))
+(mdw-define-face font-lock-type-face
+ (t :weight bold :slant italic))
(mdw-define-face font-lock-reference-face
(t :weight bold))
(mdw-define-face font-lock-variable-name-face
(define-derived-mode csharp-mode java-mode "C#"
"Major mode for editing C# code.")
+;;;--------------------------------------------------------------------------
+;;; Go programming configuration.
+
+(defun mdw-fontify-go ()
+
+ (make-local-variable 'font-lock-keywords)
+ (let ((go-keywords
+ (mdw-regexps "break" "case" "chan" "const" "continue"
+ "default" "defer" "else" "fallthrough" "for"
+ "func" "go" "goto" "if" "import"
+ "interface" "map" "package" "range" "return"
+ "select" "struct" "switch" "type" "var")))
+
+ (setq font-lock-keywords
+ (list
+
+ ;; Handle the keywords defined above.
+ (list (concat "\\<\\(" go-keywords "\\)\\>")
+ '(0 font-lock-keyword-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]+\\|\\)\\)")
+ '(0 mdw-number-face))
+
+ ;; And anything else is punctuation.
+ (list "\\(\\s.\\|\\s(\\|\\s)\\|\\s\\\\|\\s/\\)"
+ '(0 mdw-punct-face))))))
+
;;;--------------------------------------------------------------------------
;;; Awk programming configuration.