diff options
author | smihica <smihica@gmail.com> | 2013-05-04 18:08:29 +0900 |
---|---|---|
committer | smihica <smihica@gmail.com> | 2013-05-04 18:08:29 +0900 |
commit | 976449a2d5e28b731e848aa22dab38a05a39ecc1 (patch) | |
tree | 1672623eb62d7e9854fa10efdd06b0fbfe346f29 /src | |
parent | 60fa9d893bc9f4372dbb7563ba13a279e7d59212 (diff) | |
download | emmet-mode-976449a2d5e28b731e848aa22dab38a05a39ecc1.tar.lz emmet-mode-976449a2d5e28b731e848aa22dab38a05a39ecc1.tar.xz emmet-mode-976449a2d5e28b731e848aa22dab38a05a39ecc1.zip |
Added css vendor-prefix support. (http://docs.emmet.io/css-abbreviations/vendor-prefixes/)
Diffstat (limited to 'src')
-rw-r--r-- | src/css-abbrev.el | 140 | ||||
-rw-r--r-- | src/preferences.el | 971 | ||||
-rw-r--r-- | src/test.el | 55 |
3 files changed, 1100 insertions, 66 deletions
diff --git a/src/css-abbrev.el b/src/css-abbrev.el index 4afcaff..c4709a7 100644 --- a/src/css-abbrev.el +++ b/src/css-abbrev.el @@ -2,22 +2,15 @@ ;; ;;; CSS abbrev: -(defun zencoding-css-split-args (exp) - (zencoding-aif - (string-match "[ #0-9$-]" exp) - (cons (substring exp 0 it) (substring exp it)) - (list exp))) - +(zencoding-defparameter + zencoding-css-unit-aliases + (gethash "unitAliases" (gethash "css" zencoding-preferences))) (defun zencoding-css-arg-number (input) (zencoding-parse " *\\(\\(?:-\\|\\)[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") - ((= unit ?e) "em") - ((= unit ?p) "%") - ((= unit ?x) "ex") - (t "px")))) + (let ((unit (elt it 2))) + (gethash unit zencoding-css-unit-aliases "px"))) input))) (defun zencoding-css-arg-color (input) @@ -64,13 +57,30 @@ (setf args (cdr it))) (return (nreverse rt))))))) +(defun zencoding-css-split-args (exp) + (zencoding-aif + (string-match "\\(?:[ #0-9$]\\|-[0-9]\\)" exp) + (list (substring exp 0 it) (substring exp it)) + (list exp nil))) + +(defun zencoding-css-split-vendor-prefixes (input) + (zencoding-parse + "\\(-[wmso]+-\\|-\\|\\)\\(.*\\)" 3 "css vendor prefixes" + (list (elt it 2) + (let ((vp (elt it 1))) + (if (not (string= vp "")) + (if (string= vp "-") 'auto + (string-to-list (subseq vp 1 -1)))))))) + (defun zencoding-css-subexpr (exp) - (let* ((importantp (zencoding-css-important-p exp)) - (exp (zencoding-css-split-args - (if importantp (subseq exp 0 -1) exp))) - (args (cdr exp))) - (setf (cdr exp) (cons importantp (zencoding-css-parse-args args))) - exp)) + (let* ((importantp (zencoding-css-important-p exp))) + (destructuring-bind (exp vp) + (zencoding-css-split-vendor-prefixes exp) + (destructuring-bind (key args) + (zencoding-css-split-args (if importantp (subseq exp 0 -1) exp)) + `(,key ,vp + ,importantp + ,@(zencoding-css-parse-args args)))))) (defun zencoding-css-toknize (str) (let* ((i (split-string str "+")) @@ -79,7 +89,8 @@ (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$]\\|-[0-9]\\)" s))) (progn (setf rt (cons (concat f "+" s) rt)) (setf i (cddr i))) @@ -98,7 +109,7 @@ (zencoding-defparameter zencoding-css-unitless-properties - '("z-index" "line-height" "opacity" "font-weight" "zoom")) + (gethash "unitlessProperties" (gethash "css" zencoding-preferences))) (zencoding-defparameter zencoding-css-unitless-properties-regex @@ -137,29 +148,52 @@ (nthcdr ,idx-max ,args) " ")))) ,body))))))) +(zencoding-defparameter + zencoding-vendor-prefixes-properties + (gethash "vendorPrefixesProperties" (gethash "css" zencoding-preferences))) +(zencoding-defparameter + zencoding-vendor-prefixes-default + (list "webkit" "moz" "ms" "o")) +(defun zencoding-css-transform-vendor-prefixes (line vp) + (let ((key (subseq line 0 (or (position ?: line) (length line))))) + (let ((vps (if (eql vp 'auto) + (gethash key + zencoding-vendor-prefixes-properties + zencoding-vendor-prefixes-default) + (mapcar (lambda (v) + (cond ((= v ?w) "webkit") + ((= v ?m) "moz") + ((= v ?s) "ms") + ((= v ?o) "o"))) + vp)))) + (zencoding-join-string + (append (mapcar (lambda (v) (concat "-" v "-" line)) vps) + (list line)) + "\n")))) + (defun zencoding-css-transform-exprs (exprs) (zencoding-join-string (mapcar #'(lambda (expr) - (zencoding-aif - (gethash (car expr) zencoding-css-snippets) - (let ((set it) (fn nil) (unitlessp nil)) - (if (stringp set) - (progn - ;; new pattern - ;; creating print function - (setf fn (zencoding-css-instantiate-lambda set)) - ;; get unitless or no - (setf unitlessp - (not (null (string-match - zencoding-css-unitless-properties-regex set)))) - ;; caching - (puthash (car expr) (cons fn unitlessp) zencoding-css-snippets)) - (progn - ;; cache hit. - (setf fn (car set)) - (setf unitlessp (cdr set)))) - (let ((transformed + (let ((basement + (zencoding-aif + (gethash (car expr) zencoding-css-snippets) + (let ((set it) (fn nil) (unitlessp nil)) + (if (stringp set) + (progn + ;; new pattern + ;; creating print function + (setf fn (zencoding-css-instantiate-lambda set)) + ;; get unitless or no + (setf unitlessp + (not (null (string-match + zencoding-css-unitless-properties-regex set)))) + ;; caching + (puthash (car expr) (cons fn unitlessp) zencoding-css-snippets)) + (progn + ;; cache hit. + (setf fn (car set)) + (setf unitlessp (cdr set)))) (apply fn (mapcar #'(lambda (arg) @@ -167,16 +201,24 @@ (if unitlessp (car arg) (apply #'concat arg)) arg)) - (cddr expr))))) - (if (cadr expr) - (concat (subseq transformed 0 -1) " !important;") - transformed))) - (concat (car expr) ":" - (zencoding-join-string - (mapcar #'(lambda (arg) - (if (listp arg) (apply #'concat arg) arg)) - (cdr expr)) " ") - ";"))) + (cdddr expr)))) + (concat (car expr) ":" + (zencoding-join-string + (mapcar #'(lambda (arg) + (if (listp arg) (apply #'concat arg) arg)) + (cdddr expr)) " ") + ";")))) + (let* ((separator-pos (position ?: basement)) + (basement (concat (subseq basement 0 (1+ separator-pos)) " " + (subseq basement (1+ separator-pos))))) + (let ((line + (if (caddr expr) + (concat (subseq basement 0 -1) " !important;") + basement))) + (zencoding-aif + (cadr expr) + (zencoding-css-transform-vendor-prefixes line it) + line))))) exprs) "\n")) diff --git a/src/preferences.el b/src/preferences.el new file mode 100644 index 0000000..e456b59 --- /dev/null +++ b/src/preferences.el @@ -0,0 +1,971 @@ +;; src/preferences.el +;; This file is generated from conf/preferences.json +;; Don't edit. +(zencoding-defparameter zencoding-preferences +(let ((tbl (make-hash-table :test 'equal))) +(puthash "css" (let ((tbl (make-hash-table :test 'equal))) +(puthash "vendorPrefixesProperties" (let ((tbl (make-hash-table :test 'equal))) +(puthash "text-fill-color" (vector +"webkit" +) + tbl) +(puthash "ime-mode" (vector +"ms" +) + tbl) +(puthash "grid-layer" (vector +"ms" +) + tbl) +(puthash "user-drag" (vector +"webkit" +) + tbl) +(puthash "mask-image" (vector +"webkit" +) + tbl) +(puthash "font-feature-settings" (vector +"moz" +"ms" +) + tbl) +(puthash "outline-radius-topleft" (vector +"moz" +) + tbl) +(puthash "mask-box-image-slice" (vector +"webkit" +) + tbl) +(puthash "background-composite" (vector +"webkit" +) + tbl) +(puthash "text-underline-position" (vector +"ms" +) + tbl) +(puthash "hyphenate-limit-chars" (vector +"ms" +) + tbl) +(puthash "marquee-speed" (vector +"o" +) + tbl) +(puthash "input-required" (vector +"o" +) + tbl) +(puthash "color-correction" (vector +"webkit" +) + tbl) +(puthash "background-size" (vector +"webkit" +) + tbl) +(puthash "background-origin" (vector +"webkit" +) + tbl) +(puthash "wrap-through" (vector +"ms" +) + tbl) +(puthash "text-emphasis-position" (vector +"webkit" +) + tbl) +(puthash "user-select" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "dashboard-region" (vector +"webkit" +"o" +) + tbl) +(puthash "accesskey" (vector +"o" +) + tbl) +(puthash "scrollbar-track-color" (vector +"ms" +) + tbl) +(puthash "grid-columns" (vector +"ms" +) + tbl) +(puthash "text-stroke-width" (vector +"webkit" +) + tbl) +(puthash "link-source" (vector +"o" +) + tbl) +(puthash "scrollbar-arrow-color" (vector +"ms" +) + tbl) +(puthash "border-radius" (vector +"webkit" +"moz" +) + tbl) +(puthash "text-stroke-color" (vector +"webkit" +) + tbl) +(puthash "box-shadow" (vector +"webkit" +"moz" +) + tbl) +(puthash "flow-into" (vector +"ms" +) + tbl) +(puthash "scrollbar-highlight-color" (vector +"ms" +) + tbl) +(puthash "border-left-colors" (vector +"moz" +) + tbl) +(puthash "word-wrap" (vector +"ms" +) + tbl) +(puthash "text-emphasis-color" (vector +"webkit" +) + tbl) +(puthash "hyphens" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "marquee-direction" (vector +"webkit" +) + tbl) +(puthash "column-rule-width" (vector +"webkit" +"moz" +) + tbl) +(puthash "box-lines" (vector +"webkit" +"ms" +) + tbl) +(puthash "column-break-inside" (vector +"webkit" +) + tbl) +(puthash "scroll-snap-points-x" (vector +"ms" +) + tbl) +(puthash "grid-row-align" (vector +"ms" +) + tbl) +(puthash "force-broken-image-icon" (vector +"moz" +) + tbl) +(puthash "animation-fill-mode" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "box-line-progression" (vector +"ms" +) + tbl) +(puthash "mask-size" (vector +"webkit" +) + tbl) +(puthash "scroll-boundary-left" (vector +"ms" +) + tbl) +(puthash "text-combine" (vector +"webkit" +) + tbl) +(puthash "grid-column-align" (vector +"ms" +) + tbl) +(puthash "perspective-origin" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "overflow-style" (vector +"ms" +) + tbl) +(puthash "mask-position" (vector +"webkit" +) + tbl) +(puthash "content-zoom-chaining" (vector +"ms" +) + tbl) +(puthash "column-span" (vector +"webkit" +) + tbl) +(puthash "border-fit" (vector +"webkit" +) + tbl) +(puthash "outline-radius-topright" (vector +"moz" +) + tbl) +(puthash "tab-size" (vector +"moz" +"o" +) + tbl) +(puthash "layout-grid-type" (vector +"ms" +) + tbl) +(puthash "mask-clip" (vector +"webkit" +) + tbl) +(puthash "column-gap" (vector +"webkit" +"moz" +) + tbl) +(puthash "text-security" (vector +"webkit" +) + tbl) +(puthash "text-align-last" (vector +"ms" +) + tbl) +(puthash "svg-shadow" (vector +"webkit" +) + tbl) +(puthash "accelerator" (vector +"ms" +) + tbl) +(puthash "locale" (vector +"webkit" +) + tbl) +(puthash "line-clamp" (vector +"webkit" +) + tbl) +(puthash "column-count" (vector +"webkit" +"moz" +) + tbl) +(puthash "line-box-contain" (vector +"webkit" +) + tbl) +(puthash "line-break" (vector +"webkit" +"ms" +) + tbl) +(puthash "transform-style" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "perspective" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "orient" (vector +"moz" +) + tbl) +(puthash "float-edge" (vector +"moz" +) + tbl) +(puthash "image-region" (vector +"moz" +) + tbl) +(puthash "mask-box-image-width" (vector +"webkit" +) + tbl) +(puthash "background-inline-policy" (vector +"moz" +) + tbl) +(puthash "user-modify" (vector +"webkit" +"moz" +) + tbl) +(puthash "content-zoom-snap-type" (vector +"ms" +) + tbl) +(puthash "outline-radius-bottomright" (vector +"moz" +) + tbl) +(puthash "wrap-margin" (vector +"ms" +) + tbl) +(puthash "transform-origin-z" (vector +"ms" +) + tbl) +(puthash "mask-box-image" (vector +"webkit" +) + tbl) +(puthash "scroll-chaining" (vector +"ms" +) + tbl) +(puthash "grid-row" (vector +"ms" +) + tbl) +(puthash "nbsp-mode" (vector +"webkit" +) + tbl) +(puthash "mask-box-image-source" (vector +"webkit" +) + tbl) +(puthash "font-language-override" (vector +"moz" +) + tbl) +(puthash "animation-delay" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "hyphenate-character" (vector +"webkit" +) + tbl) +(puthash "box-flex-group" (vector +"webkit" +) + tbl) +(puthash "border-image" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "highlight" (vector +"webkit" +) + tbl) +(puthash "marquee-repetition" (vector +"webkit" +) + tbl) +(puthash "grid-column" (vector +"ms" +) + tbl) +(puthash "box-align" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "user-input" (vector +"moz" +) + tbl) +(puthash "animation-duration" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "transform-origin-y" (vector +"ms" +) + tbl) +(puthash "box-ordinal-group" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "box-orient" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "stack-sizing" (vector +"moz" +) + tbl) +(puthash "transition" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "text-size-adjust" (vector +"moz" +"ms" +) + tbl) +(puthash "filter" (vector +"ms" +) + tbl) +(puthash "content-zoom-boundary" (vector +"ms" +) + tbl) +(puthash "layout-grid-char" (vector +"ms" +) + tbl) +(puthash "perspective-origin-x" (vector +"ms" +) + tbl) +(puthash "perspective-origin-y" (vector +"ms" +) + tbl) +(puthash "column-rule-color" (vector +"webkit" +"moz" +) + tbl) +(puthash "high-contrast-adjust" (vector +"ms" +) + tbl) +(puthash "text-justify" (vector +"ms" +) + tbl) +(puthash "text-decoration-color" (vector +"moz" +) + tbl) +(puthash "block-progression" (vector +"ms" +) + tbl) +(puthash "border-horizontal-spacing" (vector +"webkit" +) + tbl) +(puthash "wrap-flow" (vector +"ms" +) + tbl) +(puthash "margin-before-collapse" (vector +"webkit" +) + tbl) +(puthash "table-baseline" (vector +"o" +) + tbl) +(puthash "background-clip" (vector +"webkit" +"moz" +) + tbl) +(puthash "interpolation-mode" (vector +"ms" +) + tbl) +(puthash "scroll-snap-type" (vector +"ms" +) + tbl) +(puthash "text-emphasis-style" (vector +"webkit" +) + tbl) +(puthash "flow-from" (vector +"ms" +) + tbl) +(puthash "backface-visibility" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "transform" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "column-break-after" (vector +"webkit" +) + tbl) +(puthash "mask-composite" (vector +"webkit" +) + tbl) +(puthash "layout-grid" (vector +"ms" +) + tbl) +(puthash "column-width" (vector +"webkit" +"moz" +) + tbl) +(puthash "scrollbar-base-color" (vector +"ms" +) + tbl) +(puthash "window-shadow" (vector +"moz" +) + tbl) +(puthash "object-fit" (vector +"o" +) + tbl) +(puthash "text-decorations-in-effect" (vector +"webkit" +) + tbl) +(puthash "box-flex" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "hyphenate-limit-after" (vector +"webkit" +) + tbl) +(puthash "animation-play-state" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "transition-delay" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "input-format" (vector +"o" +) + tbl) +(puthash "mask-attachment" (vector +"webkit" +) + tbl) +(puthash "scroll-boundary-right" (vector +"ms" +) + tbl) +(puthash "animation-iteration-count" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "link" (vector +"o" +) + tbl) +(puthash "content-zoom-boundary-max" (vector +"ms" +) + tbl) +(puthash "text-decoration-style" (vector +"moz" +) + tbl) +(puthash "text-autospace" (vector +"ms" +) + tbl) +(puthash "mask-origin" (vector +"webkit" +) + tbl) +(puthash "user-focus" (vector +"moz" +) + tbl) +(puthash "border-bottom-colors" (vector +"moz" +) + tbl) +(puthash "scroll-boundary-top" (vector +"ms" +) + tbl) +(puthash "content-zooming" (vector +"ms" +) + tbl) +(puthash "appearance" (vector +"webkit" +"moz" +) + tbl) +(puthash "scroll-snap-x" (vector +"ms" +) + tbl) +(puthash "marquee-loop" (vector +"o" +) + tbl) +(puthash "column-rule-style" (vector +"webkit" +"moz" +) + tbl) +(puthash "marquee-increment" (vector +"webkit" +) + tbl) +(puthash "behavior" (vector +"ms" +) + tbl) +(puthash "box-pack" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "animation-direction" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "scrollbar-darkshadow-color" (vector +"ms" +) + tbl) +(puthash "animation-timing-function" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "text-blink" (vector +"moz" +) + tbl) +(puthash "scroll-boundary-bottom" (vector +"ms" +) + tbl) +(puthash "mask-box-image-repeat" (vector +"webkit" +) + tbl) +(puthash "text-orientation" (vector +"webkit" +) + tbl) +(puthash "grid-column-span" (vector +"ms" +) + tbl) +(puthash "binding" (vector +"moz" +) + tbl) +(puthash "transform-origin" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "text-decoration-line" (vector +"moz" +) + tbl) +(puthash "animation-name" (vector +"webkit" +"moz" +"o" +) + tbl) +(puthash "marquee-dir" (vector +"o" +) + tbl) +(puthash "content-zoom-snap" (vector +"ms" +) + tbl) +(puthash "border-top-colors" (vector +"moz" +) + tbl) +(puthash "border-vertical-spacing" (vector +"webkit" +) + tbl) +(puthash "grid-rows" (vector +"ms" +) + tbl) +(puthash "box-reflect" (vector +"webkit" +) + tbl) +(puthash "hyphenate-limit-before" (vector +"webkit" +) + tbl) +(puthash "mask-box-image-outset" (vector +"webkit" +) + tbl) +(puthash "outline-radius-bottomleft" (vector +"moz" +) + tbl) +(puthash "text-overflow" (vector +"ms" +) + tbl) +(puthash "border-right-colors" (vector +"moz" +) + tbl) +(puthash "layout-flow" (vector +"ms" +) + tbl) +(puthash "box-direction" (vector +"webkit" +"moz" +"ms" +) + tbl) +(puthash "animation" (vector +"webkit" +"o" +) + tbl) +(puthash "hyphenate-limit-lines" (vector +"ms" +) + tbl) +(puthash "scrollbar-face-color" (vector +"ms" +) + tbl) +(puthash "column-break-before" (vector +"webkit" +) + tbl) +(puthash "content-zoom-snap-points" (vector +"ms" +) + tbl) +(puthash "grid-row-span" (vector +"ms" +) + tbl) +(puthash "touch-action" (vector +"ms" +) + tbl) +(puthash "marquee-style" (vector +"webkit" +"o" +) + tbl) +(puthash "margin-after-collapse" (vector +"webkit" +) + tbl) +(puthash "text-kashida-space" (vector +"ms" +) + tbl) +(puthash "scrollbar-shadow-color" (vector +"ms" +) + tbl) +(puthash "object-position" (vector +"o" +) + tbl) +(puthash "hyphenate-limit-zone" (vector +"ms" +) + tbl) +(puthash "scroll-snap-y" (vector +"ms" +) + tbl) +(puthash "transform-origin-x" (vector +"ms" +) + tbl) +(puthash "transition-property" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "word-break" (vector +"ms" +) + tbl) +(puthash "scroll-snap-points-y" (vector +"ms" +) + tbl) +(puthash "scroll-boundary" (vector +"ms" +) + tbl) +(puthash "mask-repeat" (vector +"webkit" +) + tbl) +(puthash "writing-mode" (vector +"webkit" +"ms" +) + tbl) +(puthash "layout-grid-mode" (vector +"ms" +) + tbl) +(puthash "background-position-y" (vector +"ms" +) + tbl) +(puthash "scroll-rails" (vector +"ms" +) + tbl) +(puthash "content-zoom-boundary-min" (vector +"ms" +) + tbl) +(puthash "background-position-x" (vector +"ms" +) + tbl) +(puthash "box-sizing" (vector +"webkit" +"moz" +) + tbl) +(puthash "transition-duration" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +(puthash "rtl-ordering" (vector +"webkit" +) + tbl) +(puthash "layout-grid-line" (vector +"ms" +) + tbl) +(puthash "font-smoothing" (vector +"webkit" +) + tbl) +(puthash "transition-timing-function" (vector +"webkit" +"moz" +"ms" +"o" +) + tbl) +tbl) tbl) +(puthash "unitlessProperties" (vector +"z-index" +"line-height" +"opacity" +"font-weight" +"zoom" +) + tbl) +(puthash "floatUnit" "em" tbl) +(puthash "intUnit" "px" tbl) +(puthash "keywordAliases" (let ((tbl (make-hash-table :test 'equal))) +(puthash "a" "auto" tbl) +(puthash "do" "dotted" tbl) +(puthash "i" "inherit" tbl) +(puthash "da" "dashed" tbl) +(puthash "s" "solid" tbl) +(puthash "t" "transparent" tbl) +tbl) tbl) +(puthash "keywords" (vector +"auto" +"inherit" +) + tbl) +(puthash "unitAliases" (let ((tbl (make-hash-table :test 'equal))) +(puthash "p" "%" tbl) +(puthash "r" "rem" tbl) +(puthash "e" "em" tbl) +(puthash "x" "ex" tbl) +tbl) tbl) +tbl) tbl) +tbl)) diff --git a/src/test.el b/src/test.el index 71e7f1d..1433d86 100644 --- a/src/test.el +++ b/src/test.el @@ -423,7 +423,9 @@ "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+") - "abc def" ("abc def")) + "abc def" ("abc def") + "-abc+-xyz" ("-abc" "-xyz") + "-abc+-10" ("-abc+-10")) (define-zencoding-unit-test-case CSS-parse-arg-number #'zencoding-css-arg-number @@ -464,15 +466,21 @@ "1p2x3-4e5x" (("1" "%") ("2" "ex") ("3" "px") ("4" "em") ("5" "ex")) "#abc#de#f-3" ("#aabbcc" "#dedede" "#ffffff" ("-3" "px"))) +(define-zencoding-unit-test-case CSS-split-vendor-prefixes + #'zencoding-css-split-vendor-prefixes + "" ("" nil) + "-abc" ("abc" auto) + "-wmso-abc" ("abc" (119 109 115 111))) + (define-zencoding-unit-test-case CSS-exprs #'zencoding-css-expr - "" (("" nil)) - "cl:l+ov:h+bg+" (("cl:l" nil) ("ov:h" nil) ("bg+" nil)) - "m10-auto" (("m" nil ("10" "px") "auto")) - "bg++c" (("bg+" nil) ("c" nil)) - "m+0-10-10--20+p0-0" (("m+" nil ("0" "px") ("10" "px") ("10" "px") ("-20" "px")) - ("p" nil ("0" "px") ("0" "px"))) - "bg+#abc#bc#c-3" (("bg+" nil "#aabbcc" "#bcbcbc" "#cccccc" ("-3" "px")))) + "" (("" nil nil)) + "cl:l+ov:h+bg+" (("cl:l" nil nil) ("ov:h" nil nil) ("bg+" nil nil)) + "m10-auto!" (("m" nil t ("10" "px") "auto")) + "bg++c!" (("bg+" nil nil) ("c" nil t)) + "m+0-10-10--20!+p0-0" (("m+" nil t ("0" "px") ("10" "px") ("10" "px") ("-20" "px")) + ("p" nil nil ("0" "px") ("0" "px"))) + "bg+#abc#bc#c-3!" (("bg+" nil t "#aabbcc" "#bcbcbc" "#cccccc" ("-3" "px")))) (defmacro define-zencoding-transform-css-test-case (name &rest tests) `(define-zencoding-transform-test-case ,name @@ -480,16 +488,29 @@ ,@tests)) (define-zencoding-transform-css-test-case CSS-transform - "m0+p0-1p2e3x" ("margin:0px;" - "padding:0px 1% 2em 3ex;") - "p!+m10e!+f" ("padding: !important;" - "margin:10em !important;" - "font:;") - "fs" ("font-style:italic;") + "m0+p0-1p2e3x" ("margin: 0px;" + "padding: 0px 1% 2em 3ex;") + "p!+m10e!+f" ("padding: !important;" + "margin: 10em !important;" + "font: ;") + "fs" ("font-style: italic;") + "xxxxxx 0 auto 0e auto!" ("xxxxxx: 0px auto 0em auto !important;") "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;")) + ("padding: auto;" + "margin: auto;" + "background: #FF0000 url(x.jpg) 10px 10px repeat-x;") + "-bdrs" ("-webkit-border-radius: ;" + "-moz-border-radius: ;" + "border-radius: ;") + "-super-foo" ("-webkit-super-foo: ;" + "-moz-super-foo: ;" + "-ms-super-foo: ;" + "-o-super-foo: ;" + "super-foo: ;") + "-wm-trf" ("-webkit-transform: ;" + "-moz-transform: ;" + "transform: ;") + ) ;; start (zencoding-test-cases)
\ No newline at end of file |