diff options
author | smihica <smihica@gmail.com> | 2013-05-03 19:57:48 +0900 |
---|---|---|
committer | smihica <smihica@gmail.com> | 2013-05-03 19:57:48 +0900 |
commit | 60fa9d893bc9f4372dbb7563ba13a279e7d59212 (patch) | |
tree | a9a9c9a22e1d9b6466e0690e289d8898c7e3c894 | |
parent | 0436e4718eb91281be5ba39f84a68bed6761ed1c (diff) | |
download | emmet-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.el | 21 | ||||
-rw-r--r-- | src/test.el | 22 | ||||
-rw-r--r-- | zencoding-mode.el | 21 |
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 |