branch: elpa/jade-mode
commit 62c012c8d6f668cad3fe7cc1b3b77129133a5124
Author: Jaakko Pallari <[email protected]>
Commit: Jaakko Pallari <[email protected]>
Improved Stylus comments syntax highlighting.
Since Stylus supports both single line ("//") and multi line ("/* */")
comments, I modified the syntax table so that it supports both comment
styles.
I also initialized the stylus-font-lock-keywords variable using defvar.
---
stylus-mode.el | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/stylus-mode.el b/stylus-mode.el
index 857b4b786a..ca9748b8ab 100644
--- a/stylus-mode.el
+++ b/stylus-mode.el
@@ -39,19 +39,18 @@
'("return" "if" "else" "unless" "for" "in" "true" "false")))
"Stylus keywords.")
-(setq stylus-font-lock-keywords
- `(
- (,"^[ {2,}]+[a-z0-9_:\\-]+[ ]" 0 font-lock-variable-name-face)
- (,"^//.*" 0 font-lock-comment-face)
-
(,"\\(::?\\(root\\|nth-child\\|nth-last-child\\|nth-of-type\\|nth-last-of-type\\|first-child\\|last-child\\|first-of-type\\|last-of-type\\|only-child\\|only-of-type\\|empty\\|link\\|visited\\|active\\|hover\\|focus\\|target\\|lang\\|enabled\\|disabled\\|checked\\|not\\)\\)*"
. font-lock-type-face) ;; pseudoSelectors
- (,(concat "[^_$]?\\<\\(" stylus-colours "\\)\\>[^_]?")
- 0 font-lock-constant-face)
- (,(concat "[^_$]?\\<\\(" stylus-keywords "\\)\\>[^_]?")
- 0 font-lock-keyword-face)
-
(,"\\([0-9]+:?\\(em\\|ex\\|px\\|mm\\|cm\\|in\\|pt\\|pc\\|deg\\|rad\\|grad\\|ms\\|s\\|Hz\\|kHz\\|rem\\|%\\)\\)"
0 font-lock-constant-face)
- (,"#\\w+" 0 font-lock-keyword-face)
- (,"$\\w+" 0 font-lock-variable-name-face)
- ))
+(defvar stylus-font-lock-keywords
+ `(
+ (,"^[ {2,}]+[a-z0-9_:\\-]+[ ]" 0 font-lock-variable-name-face)
+
(,"\\(::?\\(root\\|nth-child\\|nth-last-child\\|nth-of-type\\|nth-last-of-type\\|first-child\\|last-child\\|first-of-type\\|last-of-type\\|only-child\\|only-of-type\\|empty\\|link\\|visited\\|active\\|hover\\|focus\\|target\\|lang\\|enabled\\|disabled\\|checked\\|not\\)\\)*"
. font-lock-type-face) ;; pseudoSelectors
+ (,(concat "[^_$]?\\<\\(" stylus-colours "\\)\\>[^_]?")
+ 0 font-lock-constant-face)
+ (,(concat "[^_$]?\\<\\(" stylus-keywords "\\)\\>[^_]?")
+ 0 font-lock-keyword-face)
+
(,"\\([0-9]+:?\\(em\\|ex\\|px\\|mm\\|cm\\|in\\|pt\\|pc\\|deg\\|rad\\|grad\\|ms\\|s\\|Hz\\|kHz\\|rem\\|%\\)\\)"
0 font-lock-constant-face)
+ (,"#\\w+" 0 font-lock-keyword-face)
+ (,"$\\w+" 0 font-lock-variable-name-face)
+ ))
(defun stylus-region-for-sexp ()
"Selects the current sexp as the region"
@@ -78,6 +77,16 @@
(setq mode-name "Stylus")
(setq major-mode 'stylus-mode)
+ ;; highlight syntax
+ (setq font-lock-defaults '(stylus-font-lock-keywords))
+
+ ;; comments
+ (modify-syntax-entry ?\/ ". 124b")
+ (modify-syntax-entry ?* ". 23")
+ (modify-syntax-entry ?\n "> b")
+ (set (make-local-variable 'comment-start) "//")
+ (set (make-local-variable 'comment-end) "")
+
;; default tab width
(setq sws-tab-width 2)
(make-local-variable 'indent-line-function)
@@ -86,12 +95,8 @@
(setq indent-region-function 'sws-indent-region)
-
;; keymap
- (use-local-map stylus-mode-map)
-
- ;; highlight syntax
- (setq font-lock-defaults '(stylus-font-lock-keywords)))
+ (use-local-map stylus-mode-map))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.styl$" . stylus-mode))