aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsmihica <smihica@gmail.com>2013-05-03 19:57:48 +0900
committersmihica <smihica@gmail.com>2013-05-03 19:57:48 +0900
commit60fa9d893bc9f4372dbb7563ba13a279e7d59212 (patch)
treea9a9c9a22e1d9b6466e0690e289d8898c7e3c894
parent0436e4718eb91281be5ba39f84a68bed6761ed1c (diff)
downloademmet-mode-60fa9d893bc9f4372dbb7563ba13a279e7d59212.tar.lz
emmet-mode-60fa9d893bc9f4372dbb7563ba13a279e7d59212.tar.xz
emmet-mode-60fa9d893bc9f4372dbb7563ba13a279e7d59212.zip
Added #\Space division of css arguments.
-rw-r--r--src/css-abbrev.el21
-rw-r--r--src/test.el22
-rw-r--r--zencoding-mode.el21
3 files changed, 44 insertions, 20 deletions
diff --git a/src/css-abbrev.el b/src/css-abbrev.el
index 7deb427..4afcaff 100644
--- a/src/css-abbrev.el
+++ b/src/css-abbrev.el
@@ -4,13 +4,13 @@
(defun zencoding-css-split-args (exp)
(zencoding-aif
- (string-match "[#0-9$-]" exp)
+ (string-match "[ #0-9$-]" exp)
(cons (substring exp 0 it) (substring exp it))
(list exp)))
(defun zencoding-css-arg-number (input)
(zencoding-parse
- "\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
+ " *\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
(cons (list (elt it 1)
(let ((unit (string-to-char (elt it 2))))
(cond ((= unit ?-) "px")
@@ -22,7 +22,7 @@
(defun zencoding-css-arg-color (input)
(zencoding-parse
- "#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
+ " *#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
(cons (let* ((n (elt it 1))
(l (length n)))
(concat
@@ -37,12 +37,18 @@
0 6)))
input)))
+(defun zencoding-css-arg-something (input)
+ (zencoding-parse
+ " *\\([^ ]+\\)" 2 "css argument"
+ (cons (elt it 1) input)))
+
(defun zencoding-css-parse-arg (input)
(zencoding-run zencoding-css-arg-number it
(zencoding-run zencoding-css-arg-color it
- (if (equal input "")
- it
- (cons input "")))))
+ (zencoding-run zencoding-css-arg-something it
+ (if (equal input "")
+ it
+ (cons input ""))))))
(defun zencoding-css-important-p (input)
(let ((len (length input)))
@@ -73,7 +79,7 @@
(let ((f (first i))
(s (second i)))
(if f
- (if (and s (or (string= s "") (string-match "^[#0-9$-]" s)))
+ (if (and s (or (string= s "") (string-match "^[ #0-9$-]" s)))
(progn
(setf rt (cons (concat f "+" s) rt))
(setf i (cddr i)))
@@ -174,6 +180,5 @@
exprs)
"\n"))
-
(defun zencoding-css-transform (input)
(zencoding-css-transform-exprs (zencoding-css-expr input))) \ No newline at end of file
diff --git a/src/test.el b/src/test.el
index 3dae692..71e7f1d 100644
--- a/src/test.el
+++ b/src/test.el
@@ -422,7 +422,8 @@
"abc+cde+" ("abc" "cde+")
"abc++cde+" ("abc+" "cde+")
"ab:c+0p0x#aa+p0+cde+" ("ab:c+0p0x#aa" "p0" "cde+")
- "ab+#0+p+#c+x++cde+" ("ab+#0" "p+#c" "x+" "cde+"))
+ "ab+#0+p+#c+x++cde+" ("ab+#0" "p+#c" "x+" "cde+")
+ "abc def" ("abc def"))
(define-zencoding-unit-test-case CSS-parse-arg-number
#'zencoding-css-arg-number
@@ -431,7 +432,8 @@
"0-1-2" (("0" "px") . "1-2")
"-100" (("-100" "px") . "")
"-10e-20" (("-10" "em") . "-20")
- "35p#a" (("35" "%") . "#a"))
+ "35p#a" (("35" "%") . "#a")
+ " 0p" (("0" "%") . ""))
(define-zencoding-unit-test-case CSS-parse-arg-color
#'zencoding-css-arg-color
@@ -444,7 +446,15 @@
"#1a2B-3" ("#1a2B1a" . "-3")
"#1A2b3x" ("#1A2b31" . "x")
"#1a2B3Cx" ("#1a2B3C" . "x")
- "#1A2B3C4D-2" ("#1A2B3C" . "4D-2"))
+ "#1A2B3C4D-2" ("#1A2B3C" . "4D-2")
+ " #abc" ("#aabbcc" . ""))
+
+(define-zencoding-unit-test-case CSS-parse-arg-something
+ #'zencoding-css-arg-something
+ "" (error "expected css argument")
+ "abc" ("abc" . "")
+ "abc def" ("abc" . " def")
+ "url(http://abc.com) auto" ("url(http://abc.com)" . " auto"))
(define-zencoding-unit-test-case CSS-parse-args
#'zencoding-css-parse-args
@@ -475,7 +485,11 @@
"p!+m10e!+f" ("padding: !important;"
"margin:10em !important;"
"font:;")
- "fs" ("font-style:italic;"))
+ "fs" ("font-style:italic;")
+ "p auto+m auto+bg+#F00 x.jpg 10 10 repeat-x"
+ ("padding:auto;"
+ "margin:auto;"
+ "background:#FF0000 url(x.jpg) 10px 10px repeat-x;"))
;; start
(zencoding-test-cases) \ No newline at end of file
diff --git a/zencoding-mode.el b/zencoding-mode.el
index 6625032..0924965 100644
--- a/zencoding-mode.el
+++ b/zencoding-mode.el
@@ -1545,13 +1545,13 @@ tbl))
(defun zencoding-css-split-args (exp)
(zencoding-aif
- (string-match "[#0-9$-]" exp)
+ (string-match "[ #0-9$-]" exp)
(cons (substring exp 0 it) (substring exp it))
(list exp)))
(defun zencoding-css-arg-number (input)
(zencoding-parse
- "\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
+ " *\\(\\(?:-\\|\\)[0-9.]+\\)\\(\\(?:-\\|e\\|p\\|x\\)\\|\\)" 3 "css number arguments"
(cons (list (elt it 1)
(let ((unit (string-to-char (elt it 2))))
(cond ((= unit ?-) "px")
@@ -1563,7 +1563,7 @@ tbl))
(defun zencoding-css-arg-color (input)
(zencoding-parse
- "#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
+ " *#\\([0-9a-fA-F]\\{1,6\\}\\)" 2 "css color argument"
(cons (let* ((n (elt it 1))
(l (length n)))
(concat
@@ -1578,12 +1578,18 @@ tbl))
0 6)))
input)))
+(defun zencoding-css-arg-something (input)
+ (zencoding-parse
+ " *\\([^ ]+\\)" 2 "css argument"
+ (cons (elt it 1) input)))
+
(defun zencoding-css-parse-arg (input)
(zencoding-run zencoding-css-arg-number it
(zencoding-run zencoding-css-arg-color it
- (if (equal input "")
- it
- (cons input "")))))
+ (zencoding-run zencoding-css-arg-something it
+ (if (equal input "")
+ it
+ (cons input ""))))))
(defun zencoding-css-important-p (input)
(let ((len (length input)))
@@ -1614,7 +1620,7 @@ tbl))
(let ((f (first i))
(s (second i)))
(if f
- (if (and s (or (string= s "") (string-match "^[#0-9$-]" s)))
+ (if (and s (or (string= s "") (string-match "^[ #0-9$-]" s)))
(progn
(setf rt (cons (concat f "+" s) rt))
(setf i (cddr i)))
@@ -1715,7 +1721,6 @@ tbl))
exprs)
"\n"))
-
(defun zencoding-css-transform (input)
(zencoding-css-transform-exprs (zencoding-css-expr input)));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Zencoding minor mode