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 | |
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/)
-rw-r--r-- | LICENSE | 6 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | conf/preferences.json | 236 | ||||
-rw-r--r-- | conf/snippets.json | 1687 | ||||
-rw-r--r-- | src/css-abbrev.el | 140 | ||||
-rw-r--r-- | src/preferences.el | 971 | ||||
-rw-r--r-- | src/test.el | 55 | ||||
-rwxr-xr-x | tools/json2hash | 4 | ||||
-rw-r--r-- | zencoding-mode.el | 1111 |
9 files changed, 3251 insertions, 967 deletions
@@ -23,12 +23,10 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - /conf/snippets.json +- /conf/preferences.json - IS A COPY OF https://github.com/emmetio/emmet/blob/master/snippets.json - - The MIT License (MIT) + original [ https://github.com/emmetio/emmet ] Copyright (c) 2012 Sergey Chikuyonok <serge.che@gmail.com> @@ -2,12 +2,13 @@ DST=zencoding-mode.el all: zencoding-mode.el -zencoding-mode.el: src/snippets.el src/* +zencoding-mode.el: src/snippets.el src/preferences.el src/* rm -f $(DST) touch $(DST) cat src/comments.el >> $(DST) cat src/init.el >> $(DST) cat src/snippets.el >> $(DST) + cat src/preferences.el >> $(DST) cat src/html-abbrev.el >> $(DST) cat src/css-abbrev.el >> $(DST) cat src/mode-def.el >> $(DST) @@ -15,8 +16,11 @@ zencoding-mode.el: src/snippets.el src/* src/snippets.el: conf/snippets.json tools/json2hash conf/snippets.json -o src/snippets.el --defvar 'zencoding-snippets' +src/preferences.el: conf/preferences.json + tools/json2hash conf/preferences.json -o src/preferences.el --defvar 'zencoding-preferences' + clean: - rm -f zencoding-mode.el src/snippets.el + rm -f zencoding-mode.el src/snippets.el src/preferences.el test: /usr/bin/env emacs --script src/test.el diff --git a/conf/preferences.json b/conf/preferences.json new file mode 100644 index 0000000..d6352b3 --- /dev/null +++ b/conf/preferences.json @@ -0,0 +1,236 @@ +{ + "css": { + "vendorPrefixesProperties": { + "text-fill-color": ["webkit"], + "ime-mode": ["ms"], + "grid-layer": ["ms"], + "user-drag": ["webkit"], + "mask-image": ["webkit"], + "font-feature-settings": ["moz", "ms"], + "mask-box-image-slice": ["webkit"], + "background-composite": ["webkit"], + "text-underline-position": ["ms"], + "hyphenate-limit-chars": ["ms"], + "marquee-speed": ["o"], + "input-required": ["o"], + "color-correction": ["webkit"], + "background-size": ["webkit"], + "background-origin": ["webkit"], + "wrap-through": ["ms"], + "text-emphasis-position": ["webkit"], + "text-decoration-style": ["moz"], + "dashboard-region": ["webkit", "o"], + "scrollbar-track-color": ["ms"], + "grid-columns": ["ms"], + "link-source": ["o"], + "hyphenate-limit-lines": ["ms"], + "border-radius": ["webkit", "moz"], + "text-stroke-color": ["webkit"], + "box-shadow": ["webkit", "moz"], + "scrollbar-face-color": ["ms"], + "scrollbar-highlight-color": ["ms"], + "border-left-colors": ["moz"], + "word-wrap": ["ms"], + "text-emphasis-color": ["webkit"], + "hyphens": ["webkit", "moz", "ms"], + "marquee-direction": ["webkit"], + "rtl-ordering": ["webkit"], + "box-lines": ["webkit", "ms"], + "column-break-inside": ["webkit"], + "scroll-snap-points-x": ["ms"], + "grid-row-align": ["ms"], + "force-broken-image-icon": ["moz"], + "animation-fill-mode": ["webkit", "moz", "o"], + "box-line-progression": ["ms"], + "column-break-before": ["webkit"], + "scroll-boundary-left": ["ms"], + "text-combine": ["webkit"], + "grid-column-align": ["ms"], + "perspective-origin": ["webkit", "moz", "ms"], + "overflow-style": ["ms"], + "mask-position": ["webkit"], + "content-zoom-chaining": ["ms"], + "column-span": ["webkit"], + "border-fit": ["webkit"], + "outline-radius-topright": ["moz"], + "tab-size": ["moz", "o"], + "layout-grid-type": ["ms"], + "mask-clip": ["webkit"], + "grid-row": ["ms"], + "text-security": ["webkit"], + "text-align-last": ["ms"], + "svg-shadow": ["webkit"], + "accelerator": ["ms"], + "locale": ["webkit"], + "line-clamp": ["webkit"], + "column-count": ["webkit", "moz"], + "line-box-contain": ["webkit"], + "line-break": ["webkit", "ms"], + "transform-style": ["webkit", "moz", "ms"], + "perspective": ["webkit", "moz", "ms"], + "orient": ["moz"], + "float-edge": ["moz"], + "image-region": ["moz"], + "background-inline-policy": ["moz"], + "user-modify": ["webkit", "moz"], + "content-zoom-snap-type": ["ms"], + "marquee-loop": ["o"], + "outline-radius-bottomright": ["moz"], + "column-rule-style": ["webkit", "moz"], + "scroll-boundary-right": ["ms"], + "text-kashida-space": ["ms"], + "scroll-chaining": ["ms"], + "column-gap": ["webkit", "moz"], + "nbsp-mode": ["webkit"], + "mask-box-image-source": ["webkit"], + "font-language-override": ["moz"], + "animation-delay": ["webkit", "moz", "o"], + "box-flex-group": ["webkit"], + "column-rule-width": ["webkit", "moz"], + "border-image": ["webkit", "moz", "o"], + "animation-direction": ["webkit", "moz", "o"], + "marquee-repetition": ["webkit"], + "grid-column": ["ms"], + "box-align": ["webkit", "moz", "ms"], + "user-input": ["moz"], + "animation-duration": ["webkit", "moz", "o"], + "transform-origin-y": ["ms"], + "box-ordinal-group": ["webkit", "moz", "ms"], + "box-orient": ["webkit", "moz", "ms"], + "stack-sizing": ["moz"], + "user-focus": ["moz"], + "transition": ["webkit", "moz", "ms", "o"], + "text-size-adjust": ["moz", "ms"], + "filter": ["ms"], + "content-zoom-boundary": ["ms"], + "perspective-origin-x": ["ms"], + "perspective-origin-y": ["ms"], + "column-rule-color": ["webkit", "moz"], + "high-contrast-adjust": ["ms"], + "text-justify": ["ms"], + "text-decoration-color": ["moz"], + "block-progression": ["ms"], + "border-horizontal-spacing": ["webkit"], + "scroll-snap-points-y": ["ms"], + "wrap-flow": ["ms"], + "content-zoom-boundary-min": ["ms"], + "table-baseline": ["o"], + "background-clip": ["webkit", "moz"], + "scrollbar-arrow-color": ["ms"], + "scroll-snap-type": ["ms"], + "text-emphasis-style": ["webkit"], + "flow-from": ["ms"], + "backface-visibility": ["webkit", "moz", "ms"], + "transform": ["webkit", "moz", "ms", "o"], + "column-break-after": ["webkit"], + "mask-composite": ["webkit"], + "layout-grid": ["ms"], + "mask-box-image-repeat": ["webkit"], + "scrollbar-base-color": ["ms"], + "window-shadow": ["moz"], + "object-fit": ["o"], + "text-decorations-in-effect": ["webkit"], + "box-flex": ["webkit", "moz", "ms"], + "hyphenate-limit-after": ["webkit"], + "wrap-margin": ["ms"], + "animation-play-state": ["webkit", "moz", "o"], + "transition-delay": ["webkit", "moz", "ms", "o"], + "input-format": ["o"], + "mask-attachment": ["webkit"], + "outline-radius-topleft": ["moz"], + "animation-iteration-count": ["webkit", "moz", "o"], + "link": ["o"], + "content-zoom-boundary-max": ["ms"], + "user-select": ["webkit", "moz", "ms"], + "text-autospace": ["ms"], + "mask-origin": ["webkit"], + "text-orientation": ["webkit"], + "border-bottom-colors": ["moz"], + "scroll-boundary-top": ["ms"], + "content-zooming": ["ms"], + "appearance": ["webkit", "moz"], + "scroll-snap-x": ["ms"], + "scroll-snap-y": ["ms"], + "margin-before-collapse": ["webkit"], + "marquee-increment": ["webkit"], + "behavior": ["ms"], + "box-pack": ["webkit", "moz", "ms"], + "highlight": ["webkit"], + "scrollbar-darkshadow-color": ["ms"], + "scroll-boundary-bottom": ["ms"], + "scroll-rails": ["ms"], + "text-blink": ["moz"], + "interpolation-mode": ["ms"], + "column-width": ["webkit", "moz"], + "accesskey": ["o"], + "grid-column-span": ["ms"], + "binding": ["moz"], + "transform-origin": ["webkit", "moz", "ms", "o"], + "text-decoration-line": ["moz"], + "marquee-dir": ["o"], + "animation-name": ["webkit", "moz", "o"], + "transform-origin-z": ["ms"], + "content-zoom-snap": ["ms"], + "border-top-colors": ["moz"], + "border-vertical-spacing": ["webkit"], + "grid-rows": ["ms"], + "box-reflect": ["webkit"], + "box-sizing": ["webkit", "moz"], + "mask-box-image-outset": ["webkit"], + "outline-radius-bottomleft": ["moz"], + "text-overflow": ["ms"], + "border-right-colors": ["moz"], + "layout-flow": ["ms"], + "box-direction": ["webkit", "moz", "ms"], + "animation": ["webkit", "o"], + "hyphenate-character": ["webkit"], + "flow-into": ["ms"], + "mask-size": ["webkit"], + "content-zoom-snap-points": ["ms"], + "grid-row-span": ["ms"], + "touch-action": ["ms"], + "marquee-style": ["webkit", "o"], + "margin-after-collapse": ["webkit"], + "mask-box-image": ["webkit"], + "scrollbar-shadow-color": ["ms"], + "object-position": ["o"], + "hyphenate-limit-zone": ["ms"], + "layout-grid-char": ["ms"], + "transform-origin-x": ["ms"], + "transition-property": ["webkit", "moz", "ms", "o"], + "word-break": ["ms"], + "text-stroke-width": ["webkit"], + "scroll-boundary": ["ms"], + "mask-repeat": ["webkit"], + "writing-mode": ["webkit", "ms"], + "layout-grid-mode": ["ms"], + "background-position-y": ["ms"], + "animation-timing-function": ["webkit", "moz", "o"], + "background-position-x": ["ms"], + "hyphenate-limit-before": ["webkit"], + "transition-duration": ["webkit", "moz", "ms", "o"], + "mask-box-image-width": ["webkit"], + "layout-grid-line": ["ms"], + "font-smoothing": ["webkit"], + "transition-timing-function": ["webkit", "moz", "ms", "o"] + }, + "unitlessProperties": ["z-index", "line-height", "opacity", "font-weight", "zoom"], + "intUnit": "px", + "floatUnit": "em", + "keywords": ["auto", "inherit"], + "keywordAliases": { + "a":"auto", + "i":"inherit", + "s":"solid", + "da":"dashed", + "do":"dotted", + "t":"transparent" + }, + "unitAliases": { + "e": "em", + "p": "%", + "x": "ex", + "r": "rem" + } + } +}
\ No newline at end of file diff --git a/conf/snippets.json b/conf/snippets.json index 40aa577..64a1c9e 100644 --- a/conf/snippets.json +++ b/conf/snippets.json @@ -1,846 +1,845 @@ { - "variables": { - "lang": "en", - "locale": "en-US", - "charset": "UTF-8", - "indentation": "\t", - "newline": "\n" - }, - - "css": { - "filters": "html", - "snippets": { - "@i": "@import url(|);", - "@import": "@import url(|);", - "@m": "@media ${1:screen} {\n\t|\n}", - "@media": "@media ${1:screen} {\n\t|\n}", - "@f": "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}", - "@f+": "@font-face {\n\tfont-family: '${1:FontName}';\n\tsrc: url('${2:FileName}.eot');\n\tsrc: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n\t\t url('${2:FileName}.woff') format('woff'),\n\t\t url('${2:FileName}.ttf') format('truetype'),\n\t\t url('${2:FileName}.svg#${1:FontName}') format('svg');\n\tfont-style: ${3:normal};\n\tfont-weight: ${4:normal};\n}", - - "@kf": "@-webkit-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-o-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-moz-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}", - - - "anim": "animation:|;", - "anim-": "animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode};", - "animdel": "animation-delay:${1:time};", - - "animdir": "animation-direction:${1:normal};", - "animdir:n": "animation-direction:normal;", - "animdir:r": "animation-direction:reverse;", - "animdir:a": "animation-direction:alternate;", - "animdir:ar": "animation-direction:alternate-reverse;", - - "animdur": "animation-duration:${1:0}s;", - - "animfm": "animation-fill-mode:${1:both};", - "animfm:f": "animation-fill-mode:forwards;", - "animfm:b": "animation-fill-mode:backwards;", - "animfm:bt": "animation-fill-mode:both;", - "animfm:bh": "animation-fill-mode:both;", - - "animic": "animation-iteration-count:${1:1};", - "animic:i": "animation-iteration-count:infinite;", - - "animn": "animation-name:${1:none};", - - "animps": "animation-play-state:${1:running};", - "animps:p": "animation-play-state:paused;", - "animps:r": "animation-play-state:running;", - - "animtf": "animation-timing-function:${1:linear};", - "animtf:e": "animation-timing-function:ease;", - "animtf:ei": "animation-timing-function:ease-in;", - "animtf:eo": "animation-timing-function:ease-out;", - "animtf:eio": "animation-timing-function:ease-in-out;", - "animtf:l": "animation-timing-function:linear;", - "animtf:cb": "animation-timing-function:cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1});", - - "ap": "appearance:${none};", - - "!": "!important", - "pos": "position:${1:relative};", - "pos:s": "position:static;", - "pos:a": "position:absolute;", - "pos:r": "position:relative;", - "pos:f": "position:fixed;", - "t": "top:|;", - "t:a": "top:auto;", - "r": "right:|;", - "r:a": "right:auto;", - "b": "bottom:|;", - "b:a": "bottom:auto;", - "l": "left:|;", - "l:a": "left:auto;", - "z": "z-index:|;", - "z:a": "z-index:auto;", - "fl": "float:${1:left};", - "fl:n": "float:none;", - "fl:l": "float:left;", - "fl:r": "float:right;", - "cl": "clear:${1:both};", - "cl:n": "clear:none;", - "cl:l": "clear:left;", - "cl:r": "clear:right;", - "cl:b": "clear:both;", - - "colm": "columns:|;", - "colmc": "column-count:|;", - "colmf": "column-fill:|;", - "colmg": "column-gap:|;", - "colmr": "column-rule:|;", - "colmrc": "column-rule-color:|;", - "colmrs": "column-rule-style:|;", - "colmrw": "column-rule-width:|;", - "colms": "column-span:|;", - "colmw": "column-width:|;", - - "d": "display:${1:block};", - "d:n": "display:none;", - "d:b": "display:block;", - "d:i": "display:inline;", - "d:ib": "display:inline-block;", - "d:li": "display:list-item;", - "d:ri": "display:run-in;", - "d:cp": "display:compact;", - "d:tb": "display:table;", - "d:itb": "display:inline-table;", - "d:tbcp": "display:table-caption;", - "d:tbcl": "display:table-column;", - "d:tbclg": "display:table-column-group;", - "d:tbhg": "display:table-header-group;", - "d:tbfg": "display:table-footer-group;", - "d:tbr": "display:table-row;", - "d:tbrg": "display:table-row-group;", - "d:tbc": "display:table-cell;", - "d:rb": "display:ruby;", - "d:rbb": "display:ruby-base;", - "d:rbbg": "display:ruby-base-group;", - "d:rbt": "display:ruby-text;", - "d:rbtg": "display:ruby-text-group;", - "v": "visibility:${1:hidden};", - "v:v": "visibility:visible;", - "v:h": "visibility:hidden;", - "v:c": "visibility:collapse;", - "ov": "overflow:${1:hidden};", - "ov:v": "overflow:visible;", - "ov:h": "overflow:hidden;", - "ov:s": "overflow:scroll;", - "ov:a": "overflow:auto;", - "ovx": "overflow-x:${1:hidden};", - "ovx:v": "overflow-x:visible;", - "ovx:h": "overflow-x:hidden;", - "ovx:s": "overflow-x:scroll;", - "ovx:a": "overflow-x:auto;", - "ovy": "overflow-y:${1:hidden};", - "ovy:v": "overflow-y:visible;", - "ovy:h": "overflow-y:hidden;", - "ovy:s": "overflow-y:scroll;", - "ovy:a": "overflow-y:auto;", - "ovs": "overflow-style:${1:scrollbar};", - "ovs:a": "overflow-style:auto;", - "ovs:s": "overflow-style:scrollbar;", - "ovs:p": "overflow-style:panner;", - "ovs:m": "overflow-style:move;", - "ovs:mq": "overflow-style:marquee;", - "zoo": "zoom:1;", - "zm": "zoom:1;", - "cp": "clip:|;", - "cp:a": "clip:auto;", - "cp:r": "clip:rect(${1:top} ${2:right} ${3:bottom} ${4:left});", - "bxz": "box-sizing:${1:border-box};", - "bxz:cb": "box-sizing:content-box;", - "bxz:bb": "box-sizing:border-box;", - "bxsh": "box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:color};", - "bxsh:r": "box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:spread }rgb(${6:0}, ${7:0}, ${8:0});", - "bxsh:ra": "box-shadow:${1:inset }${2:h} ${3:v} ${4:blur} ${5:spread }rgba(${6:0}, ${7:0}, ${8:0}, .${9:5});", - "bxsh:n": "box-shadow:none;", - "m": "margin:|;", - "m:a": "margin:auto;", - "mt": "margin-top:|;", - "mt:a": "margin-top:auto;", - "mr": "margin-right:|;", - "mr:a": "margin-right:auto;", - "mb": "margin-bottom:|;", - "mb:a": "margin-bottom:auto;", - "ml": "margin-left:|;", - "ml:a": "margin-left:auto;", - "p": "padding:|;", - "pt": "padding-top:|;", - "pr": "padding-right:|;", - "pb": "padding-bottom:|;", - "pl": "padding-left:|;", - "w": "width:|;", - "w:a": "width:auto;", - "h": "height:|;", - "h:a": "height:auto;", - "maw": "max-width:|;", - "maw:n": "max-width:none;", - "mah": "max-height:|;", - "mah:n": "max-height:none;", - "miw": "min-width:|;", - "mih": "min-height:|;", - "mar": "max-resolution:${1:res};", - "mir": "min-resolution:${1:res};", - "ori": "orientation:|;", - "ori:l": "orientation:landscape;", - "ori:p": "orientation:portrait;", - "ol": "outline:|;", - "ol:n": "outline:none;", - "olo": "outline-offset:|;", - "olw": "outline-width:|;", - "ols": "outline-style:|;", - "olc": "outline-color:#${1:000};", - "olc:i": "outline-color:invert;", - "bd": "border:|;", - "bd+": "border:${1:1px} ${2:solid} ${3:#000};", - "bd:n": "border:none;", - "bdbk": "border-break:${1:close};", - "bdbk:c": "border-break:close;", - "bdcl": "border-collapse:|;", - "bdcl:c": "border-collapse:collapse;", - "bdcl:s": "border-collapse:separate;", - "bdc": "border-color:#${1:000};", - "bdc:t": "border-color:transparent;", - "bdi": "border-image:url(|);", - "bdi:n": "border-image:none;", - "bdti": "border-top-image:url(|);", - "bdti:n": "border-top-image:none;", - "bdri": "border-right-image:url(|);", - "bdri:n": "border-right-image:none;", - "bdbi": "border-bottom-image:url(|);", - "bdbi:n": "border-bottom-image:none;", - "bdli": "border-left-image:url(|);", - "bdli:n": "border-left-image:none;", - "bdci": "border-corner-image:url(|);", - "bdci:n": "border-corner-image:none;", - "bdci:c": "border-corner-image:continue;", - "bdtli": "border-top-left-image:url(|);", - "bdtli:n": "border-top-left-image:none;", - "bdtli:c": "border-top-left-image:continue;", - "bdtri": "border-top-right-image:url(|);", - "bdtri:n": "border-top-right-image:none;", - "bdtri:c": "border-top-right-image:continue;", - "bdbri": "border-bottom-right-image:url(|);", - "bdbri:n": "border-bottom-right-image:none;", - "bdbri:c": "border-bottom-right-image:continue;", - "bdbli": "border-bottom-left-image:url(|);", - "bdbli:n": "border-bottom-left-image:none;", - "bdbli:c": "border-bottom-left-image:continue;", - "bdf": "border-fit:${1:repeat};", - "bdf:c": "border-fit:clip;", - "bdf:r": "border-fit:repeat;", - "bdf:sc": "border-fit:scale;", - "bdf:st": "border-fit:stretch;", - "bdf:ow": "border-fit:overwrite;", - "bdf:of": "border-fit:overflow;", - "bdf:sp": "border-fit:space;", - "bdlen": "border-length:|;", - "bdlen:a": "border-length:auto;", - "bdsp": "border-spacing:|;", - "bds": "border-style:|;", - "bds:n": "border-style:none;", - "bds:h": "border-style:hidden;", - "bds:dt": "border-style:dotted;", - "bds:ds": "border-style:dashed;", - "bds:s": "border-style:solid;", - "bds:db": "border-style:double;", - "bds:dtds": "border-style:dot-dash;", - "bds:dtdtds": "border-style:dot-dot-dash;", - "bds:w": "border-style:wave;", - "bds:g": "border-style:groove;", - "bds:r": "border-style:ridge;", - "bds:i": "border-style:inset;", - "bds:o": "border-style:outset;", - "bdw": "border-width:|;", - "bdtw": "border-top-width:|;", - "bdrw": "border-right-width:|;", - "bdbw": "border-bottom-width:|;", - "bdlw": "border-left-width:|;", - "bdt": "border-top:|;", - "bt": "border-top:|;", - "bdt+": "border-top:${1:1px} ${2:solid} ${3:#000};", - "bdt:n": "border-top:none;", - "bdts": "border-top-style:|;", - "bdts:n": "border-top-style:none;", - "bdtc": "border-top-color:#${1:000};", - "bdtc:t": "border-top-color:transparent;", - "bdr": "border-right:|;", - "br": "border-right:|;", - "bdr+": "border-right:${1:1px} ${2:solid} ${3:#000};", - "bdr:n": "border-right:none;", - "bdrst": "border-right-style:|;", - "bdrst:n": "border-right-style:none;", - "bdrc": "border-right-color:#${1:000};", - "bdrc:t": "border-right-color:transparent;", - "bdb": "border-bottom:|;", - "bb": "border-bottom:|;", - "bdb+": "border-bottom:${1:1px} ${2:solid} ${3:#000};", - "bdb:n": "border-bottom:none;", - "bdbs": "border-bottom-style:|;", - "bdbs:n": "border-bottom-style:none;", - "bdbc": "border-bottom-color:#${1:000};", - "bdbc:t": "border-bottom-color:transparent;", - "bdl": "border-left:|;", - "bl": "border-left:|;", - "bdl+": "border-left:${1:1px} ${2:solid} ${3:#000};", - "bdl:n": "border-left:none;", - "bdls": "border-left-style:|;", - "bdls:n": "border-left-style:none;", - "bdlc": "border-left-color:#${1:000};", - "bdlc:t": "border-left-color:transparent;", - "bdrs": "border-radius:|;", - "bdtrrs": "border-top-right-radius:|;", - "bdtlrs": "border-top-left-radius:|;", - "bdbrrs": "border-bottom-right-radius:|;", - "bdblrs": "border-bottom-left-radius:|;", - "bg": "background:|;", - "bg+": "background:${1:#fff} url(${2}) ${3:0} ${4:0} ${5:no-repeat};", - "bg:n": "background:none;", - "bg:ie": "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1:x}.png',sizingMethod='${2:crop}');", - "bgc": "background-color:#${1:fff};", - "bgc:t": "background-color:transparent;", - "bgi": "background-image:url(|);", - "bgi:n": "background-image:none;", - "bgr": "background-repeat:|;", - "bgr:n": "background-repeat:no-repeat;", - "bgr:x": "background-repeat:repeat-x;", - "bgr:y": "background-repeat:repeat-y;", - "bgr:sp": "background-repeat:space;", - "bgr:rd": "background-repeat:round;", - "bga": "background-attachment:|;", - "bga:f": "background-attachment:fixed;", - "bga:s": "background-attachment:scroll;", - "bgp": "background-position:${1:0} ${2:0};", - "bgpx": "background-position-x:|;", - "bgpy": "background-position-y:|;", - "bgbk": "background-break:|;", - "bgbk:bb": "background-break:bounding-box;", - "bgbk:eb": "background-break:each-box;", - "bgbk:c": "background-break:continuous;", - "bgcp": "background-clip:${1:padding-box};", - "bgcp:bb": "background-clip:border-box;", - "bgcp:pb": "background-clip:padding-box;", - "bgcp:cb": "background-clip:content-box;", - "bgcp:nc": "background-clip:no-clip;", - "bgo": "background-origin:|;", - "bgo:pb": "background-origin:padding-box;", - "bgo:bb": "background-origin:border-box;", - "bgo:cb": "background-origin:content-box;", - "bgsz": "background-size:|;", - "bgsz:a": "background-size:auto;", - "bgsz:ct": "background-size:contain;", - "bgsz:cv": "background-size:cover;", - "c": "color:#${1:000};", - "c:r": "color:rgb(${1:0}, ${2:0}, ${3:0});", - "c:ra": "color:rgba(${1:0}, ${2:0}, ${3:0}, .${4:5});", - "cm": "/* |${child} */", - "cnt": "content:'|';", - "cnt:n": "content:normal;", - "cnt:oq": "content:open-quote;", - "cnt:noq": "content:no-open-quote;", - "cnt:cq": "content:close-quote;", - "cnt:ncq": "content:no-close-quote;", - "cnt:a": "content:attr(|);", - "cnt:c": "content:counter(|);", - "cnt:cs": "content:counters(|);", - - - "tbl": "table-layout:|;", - "tbl:a": "table-layout:auto;", - "tbl:f": "table-layout:fixed;", - "cps": "caption-side:|;", - "cps:t": "caption-side:top;", - "cps:b": "caption-side:bottom;", - "ec": "empty-cells:|;", - "ec:s": "empty-cells:show;", - "ec:h": "empty-cells:hide;", - "lis": "list-style:|;", - "lis:n": "list-style:none;", - "lisp": "list-style-position:|;", - "lisp:i": "list-style-position:inside;", - "lisp:o": "list-style-position:outside;", - "list": "list-style-type:|;", - "list:n": "list-style-type:none;", - "list:d": "list-style-type:disc;", - "list:c": "list-style-type:circle;", - "list:s": "list-style-type:square;", - "list:dc": "list-style-type:decimal;", - "list:dclz": "list-style-type:decimal-leading-zero;", - "list:lr": "list-style-type:lower-roman;", - "list:ur": "list-style-type:upper-roman;", - "lisi": "list-style-image:|;", - "lisi:n": "list-style-image:none;", - "q": "quotes:|;", - "q:n": "quotes:none;", - "q:ru": "quotes:'\\00AB' '\\00BB' '\\201E' '\\201C';", - "q:en": "quotes:'\\201C' '\\201D' '\\2018' '\\2019';", - "ct": "content:|;", - "ct:n": "content:normal;", - "ct:oq": "content:open-quote;", - "ct:noq": "content:no-open-quote;", - "ct:cq": "content:close-quote;", - "ct:ncq": "content:no-close-quote;", - "ct:a": "content:attr(|);", - "ct:c": "content:counter(|);", - "ct:cs": "content:counters(|);", - "coi": "counter-increment:|;", - "cor": "counter-reset:|;", - "va": "vertical-align:${1:top};", - "va:sup": "vertical-align:super;", - "va:t": "vertical-align:top;", - "va:tt": "vertical-align:text-top;", - "va:m": "vertical-align:middle;", - "va:bl": "vertical-align:baseline;", - "va:b": "vertical-align:bottom;", - "va:tb": "vertical-align:text-bottom;", - "va:sub": "vertical-align:sub;", - "ta": "text-align:${1:left};", - "ta:l": "text-align:left;", - "ta:c": "text-align:center;", - "ta:r": "text-align:right;", - "ta:j": "text-align:justify;", - "ta-lst": "text-align-last:|;", - "tal:a": "text-align-last:auto;", - "tal:l": "text-align-last:left;", - "tal:c": "text-align-last:center;", - "tal:r": "text-align-last:right;", - "td": "text-decoration:${1:none};", - "td:n": "text-decoration:none;", - "td:u": "text-decoration:underline;", - "td:o": "text-decoration:overline;", - "td:l": "text-decoration:line-through;", - "te": "text-emphasis:|;", - "te:n": "text-emphasis:none;", - "te:ac": "text-emphasis:accent;", - "te:dt": "text-emphasis:dot;", - "te:c": "text-emphasis:circle;", - "te:ds": "text-emphasis:disc;", - "te:b": "text-emphasis:before;", - "te:a": "text-emphasis:after;", - "th": "text-height:|;", - "th:a": "text-height:auto;", - "th:f": "text-height:font-size;", - "th:t": "text-height:text-size;", - "th:m": "text-height:max-size;", - "ti": "text-indent:|;", - "ti:-": "text-indent:-9999px;", - "tj": "text-justify:|;", - "tj:a": "text-justify:auto;", - "tj:iw": "text-justify:inter-word;", - "tj:ii": "text-justify:inter-ideograph;", - "tj:ic": "text-justify:inter-cluster;", - "tj:d": "text-justify:distribute;", - "tj:k": "text-justify:kashida;", - "tj:t": "text-justify:tibetan;", - "tov": "text-overflow:${ellipsis};", - "tov:e": "text-overflow:ellipsis;", - "tov:c": "text-overflow:clip;", - "to": "text-outline:|;", - "to+": "text-outline:${1:0} ${2:0} ${3:#000};", - "to:n": "text-outline:none;", - "tr": "text-replace:|;", - "tr:n": "text-replace:none;", - "tt": "text-transform:${1:uppercase};", - "tt:n": "text-transform:none;", - "tt:c": "text-transform:capitalize;", - "tt:u": "text-transform:uppercase;", - "tt:l": "text-transform:lowercase;", - "tw": "text-wrap:|;", - "tw:n": "text-wrap:normal;", - "tw:no": "text-wrap:none;", - "tw:u": "text-wrap:unrestricted;", - "tw:s": "text-wrap:suppress;", - "tsh": "text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000};", - "tsh:r": "text-shadow:${1:h} ${2:v} ${3:blur} rgb(${4:0}, ${5:0}, ${6:0});", - "tsh:ra": "text-shadow:${1:h} ${2:v} ${3:blur} rgba(${4:0}, ${5:0}, ${6:0}, .${7:5});", - "tsh+": "text-shadow:${1:0} ${2:0} ${3:0} ${4:#000};", - "tsh:n": "text-shadow:none;", - "trf": "transform:|;", - "trf:skx": "transform: skewX(${1:angle});", - "trf:sky": "transform: skewY(${1:angle});", - "trf:sc": "transform: scale(${1:x}, ${2:y});", - "trf:scx": "transform: scaleX(${1:x});", - "trf:scy": "transform: scaleY(${1:y});", - "trf:r": "transform: rotate(${1:angle});", - "trf:t": "transform: translate(${1:x}, ${2:y});", - "trf:tx": "transform: translateX(${1:x});", - "trf:ty": "transform: translateY(${1:y});", - "trfo": "transform-origin:|;", - "trfs": "transform-style:${1:preserve-3d};", - "trs": "transition:${1:prop} ${2:time};", - "trsde": "transition-delay:${1:time};", - "trsdu": "transition-duration:${1:time};", - "trsp": "transition-property:${1:prop};", - "trstf": "transition-timing-function:${1:tfunc};", - "lh": "line-height:|;", - "whs": "white-space:|;", - "whs:n": "white-space:normal;", - "whs:p": "white-space:pre;", - "whs:nw": "white-space:nowrap;", - "whs:pw": "white-space:pre-wrap;", - "whs:pl": "white-space:pre-line;", - "whsc": "white-space-collapse:|;", - "whsc:n": "white-space-collapse:normal;", - "whsc:k": "white-space-collapse:keep-all;", - "whsc:l": "white-space-collapse:loose;", - "whsc:bs": "white-space-collapse:break-strict;", - "whsc:ba": "white-space-collapse:break-all;", - "wob": "word-break:|;", - "wob:n": "word-break:normal;", - "wob:k": "word-break:keep-all;", - "wob:l": "word-break:loose;", - "wob:bs": "word-break:break-strict;", - "wob:ba": "word-break:break-all;", - "wos": "word-spacing:|;", - "wow": "word-wrap:|;", - "wow:nm": "word-wrap:normal;", - "wow:n": "word-wrap:none;", - "wow:u": "word-wrap:unrestricted;", - "wow:s": "word-wrap:suppress;", - "lts": "letter-spacing:|;", - "f": "font:|;", - "f+": "font:${1:1em} ${2:Arial,sans-serif};", - "fw": "font-weight:|;", - "fw:n": "font-weight:normal;", - "fw:b": "font-weight:bold;", - "fw:br": "font-weight:bolder;", - "fw:lr": "font-weight:lighter;", - "fs": "font-style:${italic};", - "fs:n": "font-style:normal;", - "fs:i": "font-style:italic;", - "fs:o": "font-style:oblique;", - "fv": "font-variant:|;", - "fv:n": "font-variant:normal;", - "fv:sc": "font-variant:small-caps;", - "fz": "font-size:|;", - "fza": "font-size-adjust:|;", - "fza:n": "font-size-adjust:none;", - "ff": "font-family:|;", - "ff:s": "font-family:serif;", - "ff:ss": "font-family:sans-serif;", - "ff:c": "font-family:cursive;", - "ff:f": "font-family:fantasy;", - "ff:m": "font-family:monospace;", - "fef": "font-effect:|;", - "fef:n": "font-effect:none;", - "fef:eg": "font-effect:engrave;", - "fef:eb": "font-effect:emboss;", - "fef:o": "font-effect:outline;", - "fem": "font-emphasize:|;", - "femp": "font-emphasize-position:|;", - "femp:b": "font-emphasize-position:before;", - "femp:a": "font-emphasize-position:after;", - "fems": "font-emphasize-style:|;", - "fems:n": "font-emphasize-style:none;", - "fems:ac": "font-emphasize-style:accent;", - "fems:dt": "font-emphasize-style:dot;", - "fems:c": "font-emphasize-style:circle;", - "fems:ds": "font-emphasize-style:disc;", - "fsm": "font-smooth:|;", - "fsm:a": "font-smooth:auto;", - "fsm:n": "font-smooth:never;", - "fsm:aw": "font-smooth:always;", - "fst": "font-stretch:|;", - "fst:n": "font-stretch:normal;", - "fst:uc": "font-stretch:ultra-condensed;", - "fst:ec": "font-stretch:extra-condensed;", - "fst:c": "font-stretch:condensed;", - "fst:sc": "font-stretch:semi-condensed;", - "fst:se": "font-stretch:semi-expanded;", - "fst:e": "font-stretch:expanded;", - "fst:ee": "font-stretch:extra-expanded;", - "fst:ue": "font-stretch:ultra-expanded;", - "op": "opacity:|;", - "op:ie": "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);", - "op:ms": "-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';", - "rsz": "resize:|;", - "rsz:n": "resize:none;", - "rsz:b": "resize:both;", - "rsz:h": "resize:horizontal;", - "rsz:v": "resize:vertical;", - "cur": "cursor:${pointer};", - "cur:a": "cursor:auto;", - "cur:d": "cursor:default;", - "cur:c": "cursor:crosshair;", - "cur:ha": "cursor:hand;", - "cur:he": "cursor:help;", - "cur:m": "cursor:move;", - "cur:p": "cursor:pointer;", - "cur:t": "cursor:text;", - "pgbb": "page-break-before:|;", - "pgbb:au": "page-break-before:auto;", - "pgbb:al": "page-break-before:always;", - "pgbb:l": "page-break-before:left;", - "pgbb:r": "page-break-before:right;", - "pgbi": "page-break-inside:|;", - "pgbi:au": "page-break-inside:auto;", - "pgbi:av": "page-break-inside:avoid;", - "pgba": "page-break-after:|;", - "pgba:au": "page-break-after:auto;", - "pgba:al": "page-break-after:always;", - "pgba:l": "page-break-after:left;", - "pgba:r": "page-break-after:right;", - "orp": "orphans:|;", - "us": "user-select:${none};", - "wid": "widows:|;", - "wfsm": "-webkit-font-smoothing:${antialiased};", - "wfsm:a": "-webkit-font-smoothing:antialiased;", - "wfsm:s": "-webkit-font-smoothing:subpixel-antialiased;", - "wfsm:sa": "-webkit-font-smoothing:subpixel-antialiased;", - "wfsm:n": "-webkit-font-smoothing:none;" - } - }, - - "html": { - "filters": "html", - "profile": "html", - "snippets": { - "!!!": "<!doctype html>", - "!!!4t": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", - "!!!4s": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">", - "!!!xt": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">", - "!!!xs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">", - "!!!xxs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">", - - "c": "<!-- |${child} -->", - "cc:ie6": "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->", - "cc:ie": "<!--[if IE]>\n\t${child}|\n<![endif]-->", - "cc:noie": "<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->" - }, - - "abbreviations": { - "!": "html:5", - "a": "<a href=\"\">", - "a:link": "<a href=\"http://|\">", - "a:mail": "<a href=\"mailto:|\">", - "abbr": "<abbr title=\"\">", - "acronym": "<acronym title=\"\">", - "base": "<base href=\"\" />", - "basefont": "<basefont/>", - "br": "<br/>", - "frame": "<frame/>", - "hr": "<hr/>", - "bdo": "<bdo dir=\"\">", - "bdo:r": "<bdo dir=\"rtl\">", - "bdo:l": "<bdo dir=\"ltr\">", - "col": "<col/>", - "link": "<link rel=\"stylesheet\" href=\"\" />", - "link:css": "<link rel=\"stylesheet\" href=\"${1:style}.css\" />", - "link:print": "<link rel=\"stylesheet\" href=\"${1:print}.css\" media=\"print\" />", - "link:favicon": "<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"${1:favicon.ico}\" />", - "link:touch": "<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />", - "link:rss": "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"${1:rss.xml}\" />", - "link:atom": "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" href=\"${1:atom.xml}\" />", - "meta": "<meta/>", - "meta:utf": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />", - "meta:win": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\" />", - "meta:vp": "<meta name=\"viewport\" content=\"width=${1:device-width}, user-scalable=${2:no}, initial-scale=${3:1.0}, maximum-scale=${4:1.0}, minimum-scale=${5:1.0}\" />", - "meta:compat": "<meta http-equiv=\"X-UA-Compatible\" content=\"${1:IE=7}\" />", - "style": "<style>", - "script": "<script>", - "script:src": "<script src=\"\">", - "img": "<img src=\"\" alt=\"\" />", - "iframe": "<iframe src=\"\" frameborder=\"0\">", - "embed": "<embed src=\"\" type=\"\" />", - "object": "<object data=\"\" type=\"\">", - "param": "<param name=\"\" value=\"\" />", - "map": "<map name=\"\">", - "area": "<area shape=\"\" coords=\"\" href=\"\" alt=\"\" />", - "area:d": "<area shape=\"default\" href=\"\" alt=\"\" />", - "area:c": "<area shape=\"circle\" coords=\"\" href=\"\" alt=\"\" />", - "area:r": "<area shape=\"rect\" coords=\"\" href=\"\" alt=\"\" />", - "area:p": "<area shape=\"poly\" coords=\"\" href=\"\" alt=\"\" />", - "form": "<form action=\"\">", - "form:get": "<form action=\"\" method=\"get\">", - "form:post": "<form action=\"\" method=\"post\">", - "label": "<label for=\"\">", - "input": "<input type=\"${1:text}\" />", - "inp": "<input type=\"${1:text}\" name=\"\" id=\"\" />", - "input:hidden": "input[type=hidden name]", - "input:h": "input:hidden", - "input:text": "inp", - "input:t": "inp", - "input:search": "inp[type=search]", - "input:email": "inp[type=email]", - "input:url": "inp[type=url]", - "input:password": "inp[type=password]", - "input:p": "input:password", - "input:datetime": "inp[type=datetime]", - "input:date": "inp[type=date]", - "input:datetime-local": "inp[type=datetime-local]", - "input:month": "inp[type=month]", - "input:week": "inp[type=week]", - "input:time": "inp[type=time]", - "input:number": "inp[type=number]", - "input:color": "inp[type=color]", - "input:checkbox": "inp[type=checkbox]", - "input:c": "input:checkbox", - "input:radio": "inp[type=radio]", - "input:r": "input:radio", - "input:range": "inp[type=range]", - "input:file": "inp[type=file]", - "input:f": "input:file", - "input:submit": "<input type=\"submit\" value=\"\" />", - "input:s": "input:submit", - "input:image": "<input type=\"image\" src=\"\" alt=\"\" />", - "input:i": "input:image", - "input:button": "<input type=\"button\" value=\"\" />", - "input:b": "input:button", - "isindex": "<isindex/>", - "input:reset": "input:button[type=reset]", - "select": "<select name=\"\" id=\"\">", - "option": "<option value=\"\">", - "textarea": "<textarea name=\"\" id=\"\" cols=\"${1:30}\" rows=\"${2:10}\">", - "menu:context": "menu[type=context]>", - "menu:c": "menu:context", - "menu:toolbar": "menu[type=toolbar]>", - "menu:t": "menu:toolbar", - "video": "<video src=\"\">", - "audio": "<audio src=\"\">", - "html:xml": "<html xmlns=\"http://www.w3.org/1999/xhtml\">", - "keygen": "<keygen/>", - "command": "<command/>", - - "bq": "blockquote", - "acr": "acronym", - "fig": "figure", - "figc": "figcaption", - "ifr": "iframe", - "emb": "embed", - "obj": "object", - "src": "source", - "cap": "caption", - "colg": "colgroup", - "fst": "fieldset", - "btn": "button", - "btn:b": "button[type=button]", - "btn:r": "button[type=reset]", - "btn:s": "button[type=submit]", - "optg": "optgroup", - "opt": "option", - "tarea": "textarea", - "leg": "legend", - "sect": "section", - "art": "article", - "hdr": "header", - "ftr": "footer", - "adr": "address", - "dlg": "dialog", - "str": "strong", - "prog": "progress", - "fset": "fieldset", - "datag": "datagrid", - "datal": "datalist", - "kg": "keygen", - "out": "output", - "det": "details", - "cmd": "command", - "doc": "html>(head>meta[charset=UTF-8]+title{${1:Document}})+body", - "doc4": "html>(head>meta[http-equiv=\"Content-Type\" content=\"text/html;charset=${charset}\"]+title{${1:Document}})", - - "html:4t": "!!!4t+doc4[lang=${lang}]", - "html:4s": "!!!4s+doc4[lang=${lang}]", - "html:xt": "!!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:xs": "!!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:xxs": "!!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", - "html:5": "!!!+doc[lang=${lang}]", - - "ol+": "ol>li", - "ul+": "ul>li", - "dl+": "dl>dt+dd", - "map+": "map>area", - "table+": "table>tr>td", - "colgroup+": "colgroup>col", - "colg+": "colgroup>col", - "tr+": "tr>td", - "select+": "select>option", - "optgroup+": "optgroup>option", - "optg+": "optgroup>option" - } - }, - - "xml": { - "extends": "html", - "profile": "xml", - "filters": "html" - }, - - "xsl": { - "extends": "html", - "profile": "xml", - "filters": "html, xsl", - "abbreviations": { - "tm": "<xsl:template match=\"\" mode=\"\">", - "tmatch": "tm", - "tn": "<xsl:template name=\"\">", - "tname": "tn", - "call": "<xsl:call-template name=\"\"/>", - "ap": "<xsl:apply-templates select=\"\" mode=\"\"/>", - "api": "<xsl:apply-imports/>", - "imp": "<xsl:import href=\"\"/>", - "inc": "<xsl:include href=\"\"/>", - - "ch": "<xsl:choose>", - "xsl:when": "<xsl:when test=\"\">", - "wh": "xsl:when", - "ot": "<xsl:otherwise>", - "if": "<xsl:if test=\"\">", - - "par": "<xsl:param name=\"\">", - "pare": "<xsl:param name=\"\" select=\"\"/>", - "var": "<xsl:variable name=\"\">", - "vare": "<xsl:variable name=\"\" select=\"\"/>", - "wp": "<xsl:with-param name=\"\" select=\"\"/>", - "key": "<xsl:key name=\"\" match=\"\" use=\"\"/>", - - "elem": "<xsl:element name=\"\">", - "attr": "<xsl:attribute name=\"\">", - "attrs": "<xsl:attribute-set name=\"\">", - - "cp": "<xsl:copy select=\"\"/>", - "co": "<xsl:copy-of select=\"\"/>", - "val": "<xsl:value-of select=\"\"/>", - "each": "<xsl:for-each select=\"\">", - "for": "each", - "tex": "<xsl:text></xsl:text>", - - "com": "<xsl:comment>", - "msg": "<xsl:message terminate=\"no\">", - "fall": "<xsl:fallback>", - "num": "<xsl:number value=\"\"/>", - "nam": "<namespace-alias stylesheet-prefix=\"\" result-prefix=\"\"/>", - "pres": "<xsl:preserve-space elements=\"\"/>", - "strip": "<xsl:strip-space elements=\"\"/>", - "proc": "<xsl:processing-instruction name=\"\">", - "sort": "<xsl:sort select=\"\" order=\"\"/>", - - "choose+": "xsl:choose>xsl:when+xsl:otherwise", - "xsl": "!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}" - }, - "snippets": { - "!!!": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" - } - }, - - "haml": { - "filters": "haml", - "extends": "html", - "profile": "xml" - }, - - "scss": { - "extends": "css" - }, - - "sass": { - "extends": "css" - }, - - "less": { - "extends": "css" - }, - - "stylus": { - "extends": "css" - } + "variables": { + "lang": "en", + "locale": "en-US", + "charset": "UTF-8", + "indentation": "\t", + "newline": "\n" + }, + "css": { + "filters": "html", + "snippets": { + "@i": "@import url(|);", + "@import": "@import url(|);", + "@m": "@media ${1:screen} {\n\t|\n}", + "@media": "@media ${1:screen} {\n\t|\n}", + "@f": "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}", + "@f+": "@font-face {\n\tfont-family: '${1:FontName}';\n\tsrc: url('${2:FileName}.eot');\n\tsrc: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n\t\t url('${2:FileName}.woff') format('woff'),\n\t\t url('${2:FileName}.ttf') format('truetype'),\n\t\t url('${2:FileName}.svg#${1:FontName}') format('svg');\n\tfont-style: ${3:normal};\n\tfont-weight: ${4:normal};\n}", + + "@kf": "@-webkit-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-o-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-moz-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}", + + + "anim": "animation:|;", + "anim-": "animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode};", + "animdel": "animation-delay:${1:time};", + + "animdir": "animation-direction:${1:normal};", + "animdir:n": "animation-direction:normal;", + "animdir:r": "animation-direction:reverse;", + "animdir:a": "animation-direction:alternate;", + "animdir:ar": "animation-direction:alternate-reverse;", + + "animdur": "animation-duration:${1:0}s;", + + "animfm": "animation-fill-mode:${1:both};", + "animfm:f": "animation-fill-mode:forwards;", + "animfm:b": "animation-fill-mode:backwards;", + "animfm:bt": "animation-fill-mode:both;", + "animfm:bh": "animation-fill-mode:both;", + + "animic": "animation-iteration-count:${1:1};", + "animic:i": "animation-iteration-count:infinite;", + + "animn": "animation-name:${1:none};", + + "animps": "animation-play-state:${1:running};", + "animps:p": "animation-play-state:paused;", + "animps:r": "animation-play-state:running;", + + "animtf": "animation-timing-function:${1:linear};", + "animtf:e": "animation-timing-function:ease;", + "animtf:ei": "animation-timing-function:ease-in;", + "animtf:eo": "animation-timing-function:ease-out;", + "animtf:eio": "animation-timing-function:ease-in-out;", + "animtf:l": "animation-timing-function:linear;", + "animtf:cb": "animation-timing-function:cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1});", + + "ap": "appearance:${none};", + + "!": "!important", + "pos": "position:${1:relative};", + "pos:s": "position:static;", + "pos:a": "position:absolute;", + "pos:r": "position:relative;", + "pos:f": "position:fixed;", + "t": "top:|;", + "t:a": "top:auto;", + "r": "right:|;", + "r:a": "right:auto;", + "b": "bottom:|;", + "b:a": "bottom:auto;", + "l": "left:|;", + "l:a": "left:auto;", + "z": "z-index:|;", + "z:a": "z-index:auto;", + "fl": "float:${1:left};", + "fl:n": "float:none;", + "fl:l": "float:left;", + "fl:r": "float:right;", + "cl": "clear:${1:both};", + "cl:n": "clear:none;", + "cl:l": "clear:left;", + "cl:r": "clear:right;", + "cl:b": "clear:both;", + + "colm": "columns:|;", + "colmc": "column-count:|;", + "colmf": "column-fill:|;", + "colmg": "column-gap:|;", + "colmr": "column-rule:|;", + "colmrc": "column-rule-color:|;", + "colmrs": "column-rule-style:|;", + "colmrw": "column-rule-width:|;", + "colms": "column-span:|;", + "colmw": "column-width:|;", + + "d": "display:${1:block};", + "d:n": "display:none;", + "d:b": "display:block;", + "d:i": "display:inline;", + "d:ib": "display:inline-block;", + "d:li": "display:list-item;", + "d:ri": "display:run-in;", + "d:cp": "display:compact;", + "d:tb": "display:table;", + "d:itb": "display:inline-table;", + "d:tbcp": "display:table-caption;", + "d:tbcl": "display:table-column;", + "d:tbclg": "display:table-column-group;", + "d:tbhg": "display:table-header-group;", + "d:tbfg": "display:table-footer-group;", + "d:tbr": "display:table-row;", + "d:tbrg": "display:table-row-group;", + "d:tbc": "display:table-cell;", + "d:rb": "display:ruby;", + "d:rbb": "display:ruby-base;", + "d:rbbg": "display:ruby-base-group;", + "d:rbt": "display:ruby-text;", + "d:rbtg": "display:ruby-text-group;", + "v": "visibility:${1:hidden};", + "v:v": "visibility:visible;", + "v:h": "visibility:hidden;", + "v:c": "visibility:collapse;", + "ov": "overflow:${1:hidden};", + "ov:v": "overflow:visible;", + "ov:h": "overflow:hidden;", + "ov:s": "overflow:scroll;", + "ov:a": "overflow:auto;", + "ovx": "overflow-x:${1:hidden};", + "ovx:v": "overflow-x:visible;", + "ovx:h": "overflow-x:hidden;", + "ovx:s": "overflow-x:scroll;", + "ovx:a": "overflow-x:auto;", + "ovy": "overflow-y:${1:hidden};", + "ovy:v": "overflow-y:visible;", + "ovy:h": "overflow-y:hidden;", + "ovy:s": "overflow-y:scroll;", + "ovy:a": "overflow-y:auto;", + "ovs": "overflow-style:${1:scrollbar};", + "ovs:a": "overflow-style:auto;", + "ovs:s": "overflow-style:scrollbar;", + "ovs:p": "overflow-style:panner;", + "ovs:m": "overflow-style:move;", + "ovs:mq": "overflow-style:marquee;", + "zoo": "zoom:1;", + "zm": "zoom:1;", + "cp": "clip:|;", + "cp:a": "clip:auto;", + "cp:r": "clip:rect(${1:top} ${2:right} ${3:bottom} ${4:left});", + "bxz": "box-sizing:${1:border-box};", + "bxz:cb": "box-sizing:content-box;", + "bxz:bb": "box-sizing:border-box;", + "bxsh": "box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:color};", + "bxsh:r": "box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:spread }rgb(${6:0}, ${7:0}, ${8:0});", + "bxsh:ra": "box-shadow:${1:inset }${2:h} ${3:v} ${4:blur} ${5:spread }rgba(${6:0}, ${7:0}, ${8:0}, .${9:5});", + "bxsh:n": "box-shadow:none;", + "m": "margin:|;", + "m:a": "margin:auto;", + "mt": "margin-top:|;", + "mt:a": "margin-top:auto;", + "mr": "margin-right:|;", + "mr:a": "margin-right:auto;", + "mb": "margin-bottom:|;", + "mb:a": "margin-bottom:auto;", + "ml": "margin-left:|;", + "ml:a": "margin-left:auto;", + "p": "padding:|;", + "pt": "padding-top:|;", + "pr": "padding-right:|;", + "pb": "padding-bottom:|;", + "pl": "padding-left:|;", + "w": "width:|;", + "w:a": "width:auto;", + "h": "height:|;", + "h:a": "height:auto;", + "maw": "max-width:|;", + "maw:n": "max-width:none;", + "mah": "max-height:|;", + "mah:n": "max-height:none;", + "miw": "min-width:|;", + "mih": "min-height:|;", + "mar": "max-resolution:${1:res};", + "mir": "min-resolution:${1:res};", + "ori": "orientation:|;", + "ori:l": "orientation:landscape;", + "ori:p": "orientation:portrait;", + "ol": "outline:|;", + "ol:n": "outline:none;", + "olo": "outline-offset:|;", + "olw": "outline-width:|;", + "ols": "outline-style:|;", + "olc": "outline-color:#${1:000};", + "olc:i": "outline-color:invert;", + "bd": "border:|;", + "bd+": "border:${1:1px} ${2:solid} ${3:#000};", + "bd:n": "border:none;", + "bdbk": "border-break:${1:close};", + "bdbk:c": "border-break:close;", + "bdcl": "border-collapse:|;", + "bdcl:c": "border-collapse:collapse;", + "bdcl:s": "border-collapse:separate;", + "bdc": "border-color:#${1:000};", + "bdc:t": "border-color:transparent;", + "bdi": "border-image:url(|);", + "bdi:n": "border-image:none;", + "bdti": "border-top-image:url(|);", + "bdti:n": "border-top-image:none;", + "bdri": "border-right-image:url(|);", + "bdri:n": "border-right-image:none;", + "bdbi": "border-bottom-image:url(|);", + "bdbi:n": "border-bottom-image:none;", + "bdli": "border-left-image:url(|);", + "bdli:n": "border-left-image:none;", + "bdci": "border-corner-image:url(|);", + "bdci:n": "border-corner-image:none;", + "bdci:c": "border-corner-image:continue;", + "bdtli": "border-top-left-image:url(|);", + "bdtli:n": "border-top-left-image:none;", + "bdtli:c": "border-top-left-image:continue;", + "bdtri": "border-top-right-image:url(|);", + "bdtri:n": "border-top-right-image:none;", + "bdtri:c": "border-top-right-image:continue;", + "bdbri": "border-bottom-right-image:url(|);", + "bdbri:n": "border-bottom-right-image:none;", + "bdbri:c": "border-bottom-right-image:continue;", + "bdbli": "border-bottom-left-image:url(|);", + "bdbli:n": "border-bottom-left-image:none;", + "bdbli:c": "border-bottom-left-image:continue;", + "bdf": "border-fit:${1:repeat};", + "bdf:c": "border-fit:clip;", + "bdf:r": "border-fit:repeat;", + "bdf:sc": "border-fit:scale;", + "bdf:st": "border-fit:stretch;", + "bdf:ow": "border-fit:overwrite;", + "bdf:of": "border-fit:overflow;", + "bdf:sp": "border-fit:space;", + "bdlen": "border-length:|;", + "bdlen:a": "border-length:auto;", + "bdsp": "border-spacing:|;", + "bds": "border-style:|;", + "bds:n": "border-style:none;", + "bds:h": "border-style:hidden;", + "bds:dt": "border-style:dotted;", + "bds:ds": "border-style:dashed;", + "bds:s": "border-style:solid;", + "bds:db": "border-style:double;", + "bds:dtds": "border-style:dot-dash;", + "bds:dtdtds": "border-style:dot-dot-dash;", + "bds:w": "border-style:wave;", + "bds:g": "border-style:groove;", + "bds:r": "border-style:ridge;", + "bds:i": "border-style:inset;", + "bds:o": "border-style:outset;", + "bdw": "border-width:|;", + "bdtw": "border-top-width:|;", + "bdrw": "border-right-width:|;", + "bdbw": "border-bottom-width:|;", + "bdlw": "border-left-width:|;", + "bdt": "border-top:|;", + "bt": "border-top:|;", + "bdt+": "border-top:${1:1px} ${2:solid} ${3:#000};", + "bdt:n": "border-top:none;", + "bdts": "border-top-style:|;", + "bdts:n": "border-top-style:none;", + "bdtc": "border-top-color:#${1:000};", + "bdtc:t": "border-top-color:transparent;", + "bdr": "border-right:|;", + "br": "border-right:|;", + "bdr+": "border-right:${1:1px} ${2:solid} ${3:#000};", + "bdr:n": "border-right:none;", + "bdrst": "border-right-style:|;", + "bdrst:n": "border-right-style:none;", + "bdrc": "border-right-color:#${1:000};", + "bdrc:t": "border-right-color:transparent;", + "bdb": "border-bottom:|;", + "bb": "border-bottom:|;", + "bdb+": "border-bottom:${1:1px} ${2:solid} ${3:#000};", + "bdb:n": "border-bottom:none;", + "bdbs": "border-bottom-style:|;", + "bdbs:n": "border-bottom-style:none;", + "bdbc": "border-bottom-color:#${1:000};", + "bdbc:t": "border-bottom-color:transparent;", + "bdl": "border-left:|;", + "bl": "border-left:|;", + "bdl+": "border-left:${1:1px} ${2:solid} ${3:#000};", + "bdl:n": "border-left:none;", + "bdls": "border-left-style:|;", + "bdls:n": "border-left-style:none;", + "bdlc": "border-left-color:#${1:000};", + "bdlc:t": "border-left-color:transparent;", + "bdrs": "border-radius:|;", + "bdtrrs": "border-top-right-radius:|;", + "bdtlrs": "border-top-left-radius:|;", + "bdbrrs": "border-bottom-right-radius:|;", + "bdblrs": "border-bottom-left-radius:|;", + "bg": "background:|;", + "bg+": "background:${1:#fff} url(${2}) ${3:0} ${4:0} ${5:no-repeat};", + "bg:n": "background:none;", + "bg:ie": "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1:x}.png',sizingMethod='${2:crop}');", + "bgc": "background-color:#${1:fff};", + "bgc:t": "background-color:transparent;", + "bgi": "background-image:url(|);", + "bgi:n": "background-image:none;", + "bgr": "background-repeat:|;", + "bgr:n": "background-repeat:no-repeat;", + "bgr:x": "background-repeat:repeat-x;", + "bgr:y": "background-repeat:repeat-y;", + "bgr:sp": "background-repeat:space;", + "bgr:rd": "background-repeat:round;", + "bga": "background-attachment:|;", + "bga:f": "background-attachment:fixed;", + "bga:s": "background-attachment:scroll;", + "bgp": "background-position:${1:0} ${2:0};", + "bgpx": "background-position-x:|;", + "bgpy": "background-position-y:|;", + "bgbk": "background-break:|;", + "bgbk:bb": "background-break:bounding-box;", + "bgbk:eb": "background-break:each-box;", + "bgbk:c": "background-break:continuous;", + "bgcp": "background-clip:${1:padding-box};", + "bgcp:bb": "background-clip:border-box;", + "bgcp:pb": "background-clip:padding-box;", + "bgcp:cb": "background-clip:content-box;", + "bgcp:nc": "background-clip:no-clip;", + "bgo": "background-origin:|;", + "bgo:pb": "background-origin:padding-box;", + "bgo:bb": "background-origin:border-box;", + "bgo:cb": "background-origin:content-box;", + "bgsz": "background-size:|;", + "bgsz:a": "background-size:auto;", + "bgsz:ct": "background-size:contain;", + "bgsz:cv": "background-size:cover;", + "c": "color:#${1:000};", + "c:r": "color:rgb(${1:0}, ${2:0}, ${3:0});", + "c:ra": "color:rgba(${1:0}, ${2:0}, ${3:0}, .${4:5});", + "cm": "/* |${child} */", + "cnt": "content:'|';", + "cnt:n": "content:normal;", + "cnt:oq": "content:open-quote;", + "cnt:noq": "content:no-open-quote;", + "cnt:cq": "content:close-quote;", + "cnt:ncq": "content:no-close-quote;", + "cnt:a": "content:attr(|);", + "cnt:c": "content:counter(|);", + "cnt:cs": "content:counters(|);", + + + "tbl": "table-layout:|;", + "tbl:a": "table-layout:auto;", + "tbl:f": "table-layout:fixed;", + "cps": "caption-side:|;", + "cps:t": "caption-side:top;", + "cps:b": "caption-side:bottom;", + "ec": "empty-cells:|;", + "ec:s": "empty-cells:show;", + "ec:h": "empty-cells:hide;", + "lis": "list-style:|;", + "lis:n": "list-style:none;", + "lisp": "list-style-position:|;", + "lisp:i": "list-style-position:inside;", + "lisp:o": "list-style-position:outside;", + "list": "list-style-type:|;", + "list:n": "list-style-type:none;", + "list:d": "list-style-type:disc;", + "list:c": "list-style-type:circle;", + "list:s": "list-style-type:square;", + "list:dc": "list-style-type:decimal;", + "list:dclz": "list-style-type:decimal-leading-zero;", + "list:lr": "list-style-type:lower-roman;", + "list:ur": "list-style-type:upper-roman;", + "lisi": "list-style-image:|;", + "lisi:n": "list-style-image:none;", + "q": "quotes:|;", + "q:n": "quotes:none;", + "q:ru": "quotes:'\\00AB' '\\00BB' '\\201E' '\\201C';", + "q:en": "quotes:'\\201C' '\\201D' '\\2018' '\\2019';", + "ct": "content:|;", + "ct:n": "content:normal;", + "ct:oq": "content:open-quote;", + "ct:noq": "content:no-open-quote;", + "ct:cq": "content:close-quote;", + "ct:ncq": "content:no-close-quote;", + "ct:a": "content:attr(|);", + "ct:c": "content:counter(|);", + "ct:cs": "content:counters(|);", + "coi": "counter-increment:|;", + "cor": "counter-reset:|;", + "va": "vertical-align:${1:top};", + "va:sup": "vertical-align:super;", + "va:t": "vertical-align:top;", + "va:tt": "vertical-align:text-top;", + "va:m": "vertical-align:middle;", + "va:bl": "vertical-align:baseline;", + "va:b": "vertical-align:bottom;", + "va:tb": "vertical-align:text-bottom;", + "va:sub": "vertical-align:sub;", + "ta": "text-align:${1:left};", + "ta:l": "text-align:left;", + "ta:c": "text-align:center;", + "ta:r": "text-align:right;", + "ta:j": "text-align:justify;", + "ta-lst": "text-align-last:|;", + "tal:a": "text-align-last:auto;", + "tal:l": "text-align-last:left;", + "tal:c": "text-align-last:center;", + "tal:r": "text-align-last:right;", + "td": "text-decoration:${1:none};", + "td:n": "text-decoration:none;", + "td:u": "text-decoration:underline;", + "td:o": "text-decoration:overline;", + "td:l": "text-decoration:line-through;", + "te": "text-emphasis:|;", + "te:n": "text-emphasis:none;", + "te:ac": "text-emphasis:accent;", + "te:dt": "text-emphasis:dot;", + "te:c": "text-emphasis:circle;", + "te:ds": "text-emphasis:disc;", + "te:b": "text-emphasis:before;", + "te:a": "text-emphasis:after;", + "th": "text-height:|;", + "th:a": "text-height:auto;", + "th:f": "text-height:font-size;", + "th:t": "text-height:text-size;", + "th:m": "text-height:max-size;", + "ti": "text-indent:|;", + "ti:-": "text-indent:-9999px;", + "tj": "text-justify:|;", + "tj:a": "text-justify:auto;", + "tj:iw": "text-justify:inter-word;", + "tj:ii": "text-justify:inter-ideograph;", + "tj:ic": "text-justify:inter-cluster;", + "tj:d": "text-justify:distribute;", + "tj:k": "text-justify:kashida;", + "tj:t": "text-justify:tibetan;", + "tov": "text-overflow:${ellipsis};", + "tov:e": "text-overflow:ellipsis;", + "tov:c": "text-overflow:clip;", + "to": "text-outline:|;", + "to+": "text-outline:${1:0} ${2:0} ${3:#000};", + "to:n": "text-outline:none;", + "tr": "text-replace:|;", + "tr:n": "text-replace:none;", + "tt": "text-transform:${1:uppercase};", + "tt:n": "text-transform:none;", + "tt:c": "text-transform:capitalize;", + "tt:u": "text-transform:uppercase;", + "tt:l": "text-transform:lowercase;", + "tw": "text-wrap:|;", + "tw:n": "text-wrap:normal;", + "tw:no": "text-wrap:none;", + "tw:u": "text-wrap:unrestricted;", + "tw:s": "text-wrap:suppress;", + "tsh": "text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000};", + "tsh:r": "text-shadow:${1:h} ${2:v} ${3:blur} rgb(${4:0}, ${5:0}, ${6:0});", + "tsh:ra": "text-shadow:${1:h} ${2:v} ${3:blur} rgba(${4:0}, ${5:0}, ${6:0}, .${7:5});", + "tsh+": "text-shadow:${1:0} ${2:0} ${3:0} ${4:#000};", + "tsh:n": "text-shadow:none;", + "trf": "transform:|;", + "trf:skx": "transform: skewX(${1:angle});", + "trf:sky": "transform: skewY(${1:angle});", + "trf:sc": "transform: scale(${1:x}, ${2:y});", + "trf:scx": "transform: scaleX(${1:x});", + "trf:scy": "transform: scaleY(${1:y});", + "trf:r": "transform: rotate(${1:angle});", + "trf:t": "transform: translate(${1:x}, ${2:y});", + "trf:tx": "transform: translateX(${1:x});", + "trf:ty": "transform: translateY(${1:y});", + "trfo": "transform-origin:|;", + "trfs": "transform-style:${1:preserve-3d};", + "trs": "transition:${1:prop} ${2:time};", + "trsde": "transition-delay:${1:time};", + "trsdu": "transition-duration:${1:time};", + "trsp": "transition-property:${1:prop};", + "trstf": "transition-timing-function:${1:tfunc};", + "lh": "line-height:|;", + "whs": "white-space:|;", + "whs:n": "white-space:normal;", + "whs:p": "white-space:pre;", + "whs:nw": "white-space:nowrap;", + "whs:pw": "white-space:pre-wrap;", + "whs:pl": "white-space:pre-line;", + "whsc": "white-space-collapse:|;", + "whsc:n": "white-space-collapse:normal;", + "whsc:k": "white-space-collapse:keep-all;", + "whsc:l": "white-space-collapse:loose;", + "whsc:bs": "white-space-collapse:break-strict;", + "whsc:ba": "white-space-collapse:break-all;", + "wob": "word-break:|;", + "wob:n": "word-break:normal;", + "wob:k": "word-break:keep-all;", + "wob:l": "word-break:loose;", + "wob:bs": "word-break:break-strict;", + "wob:ba": "word-break:break-all;", + "wos": "word-spacing:|;", + "wow": "word-wrap:|;", + "wow:nm": "word-wrap:normal;", + "wow:n": "word-wrap:none;", + "wow:u": "word-wrap:unrestricted;", + "wow:s": "word-wrap:suppress;", + "lts": "letter-spacing:|;", + "f": "font:|;", + "f+": "font:${1:1em} ${2:Arial,sans-serif};", + "fw": "font-weight:|;", + "fw:n": "font-weight:normal;", + "fw:b": "font-weight:bold;", + "fw:br": "font-weight:bolder;", + "fw:lr": "font-weight:lighter;", + "fs": "font-style:${italic};", + "fs:n": "font-style:normal;", + "fs:i": "font-style:italic;", + "fs:o": "font-style:oblique;", + "fv": "font-variant:|;", + "fv:n": "font-variant:normal;", + "fv:sc": "font-variant:small-caps;", + "fz": "font-size:|;", + "fza": "font-size-adjust:|;", + "fza:n": "font-size-adjust:none;", + "ff": "font-family:|;", + "ff:s": "font-family:serif;", + "ff:ss": "font-family:sans-serif;", + "ff:c": "font-family:cursive;", + "ff:f": "font-family:fantasy;", + "ff:m": "font-family:monospace;", + "fef": "font-effect:|;", + "fef:n": "font-effect:none;", + "fef:eg": "font-effect:engrave;", + "fef:eb": "font-effect:emboss;", + "fef:o": "font-effect:outline;", + "fem": "font-emphasize:|;", + "femp": "font-emphasize-position:|;", + "femp:b": "font-emphasize-position:before;", + "femp:a": "font-emphasize-position:after;", + "fems": "font-emphasize-style:|;", + "fems:n": "font-emphasize-style:none;", + "fems:ac": "font-emphasize-style:accent;", + "fems:dt": "font-emphasize-style:dot;", + "fems:c": "font-emphasize-style:circle;", + "fems:ds": "font-emphasize-style:disc;", + "fsm": "font-smooth:|;", + "fsm:a": "font-smooth:auto;", + "fsm:n": "font-smooth:never;", + "fsm:aw": "font-smooth:always;", + "fst": "font-stretch:|;", + "fst:n": "font-stretch:normal;", + "fst:uc": "font-stretch:ultra-condensed;", + "fst:ec": "font-stretch:extra-condensed;", + "fst:c": "font-stretch:condensed;", + "fst:sc": "font-stretch:semi-condensed;", + "fst:se": "font-stretch:semi-expanded;", + "fst:e": "font-stretch:expanded;", + "fst:ee": "font-stretch:extra-expanded;", + "fst:ue": "font-stretch:ultra-expanded;", + "op": "opacity:|;", + "op:ie": "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);", + "op:ms": "-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';", + "rsz": "resize:|;", + "rsz:n": "resize:none;", + "rsz:b": "resize:both;", + "rsz:h": "resize:horizontal;", + "rsz:v": "resize:vertical;", + "cur": "cursor:${pointer};", + "cur:a": "cursor:auto;", + "cur:d": "cursor:default;", + "cur:c": "cursor:crosshair;", + "cur:ha": "cursor:hand;", + "cur:he": "cursor:help;", + "cur:m": "cursor:move;", + "cur:p": "cursor:pointer;", + "cur:t": "cursor:text;", + "pgbb": "page-break-before:|;", + "pgbb:au": "page-break-before:auto;", + "pgbb:al": "page-break-before:always;", + "pgbb:l": "page-break-before:left;", + "pgbb:r": "page-break-before:right;", + "pgbi": "page-break-inside:|;", + "pgbi:au": "page-break-inside:auto;", + "pgbi:av": "page-break-inside:avoid;", + "pgba": "page-break-after:|;", + "pgba:au": "page-break-after:auto;", + "pgba:al": "page-break-after:always;", + "pgba:l": "page-break-after:left;", + "pgba:r": "page-break-after:right;", + "orp": "orphans:|;", + "us": "user-select:${none};", + "wid": "widows:|;", + "wfsm": "-webkit-font-smoothing:${antialiased};", + "wfsm:a": "-webkit-font-smoothing:antialiased;", + "wfsm:s": "-webkit-font-smoothing:subpixel-antialiased;", + "wfsm:sa": "-webkit-font-smoothing:subpixel-antialiased;", + "wfsm:n": "-webkit-font-smoothing:none;" + } + }, + + "html": { + "filters": "html", + "profile": "html", + "snippets": { + "!!!": "<!doctype html>", + "!!!4t": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">", + "!!!4s": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">", + "!!!xt": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">", + "!!!xs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">", + "!!!xxs": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">", + + "c": "<!-- |${child} -->", + "cc:ie6": "<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->", + "cc:ie": "<!--[if IE]>\n\t${child}|\n<![endif]-->", + "cc:noie": "<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->" + }, + + "abbreviations": { + "!": "html:5", + "a": "<a href=\"\">", + "a:link": "<a href=\"http://|\">", + "a:mail": "<a href=\"mailto:|\">", + "abbr": "<abbr title=\"\">", + "acronym": "<acronym title=\"\">", + "base": "<base href=\"\" />", + "basefont": "<basefont/>", + "br": "<br/>", + "frame": "<frame/>", + "hr": "<hr/>", + "bdo": "<bdo dir=\"\">", + "bdo:r": "<bdo dir=\"rtl\">", + "bdo:l": "<bdo dir=\"ltr\">", + "col": "<col/>", + "link": "<link rel=\"stylesheet\" href=\"\" />", + "link:css": "<link rel=\"stylesheet\" href=\"${1:style}.css\" />", + "link:print": "<link rel=\"stylesheet\" href=\"${1:print}.css\" media=\"print\" />", + "link:favicon": "<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"${1:favicon.ico}\" />", + "link:touch": "<link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />", + "link:rss": "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"${1:rss.xml}\" />", + "link:atom": "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" href=\"${1:atom.xml}\" />", + "meta": "<meta/>", + "meta:utf": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />", + "meta:win": "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\" />", + "meta:vp": "<meta name=\"viewport\" content=\"width=${1:device-width}, user-scalable=${2:no}, initial-scale=${3:1.0}, maximum-scale=${4:1.0}, minimum-scale=${5:1.0}\" />", + "meta:compat": "<meta http-equiv=\"X-UA-Compatible\" content=\"${1:IE=7}\" />", + "style": "<style>", + "script": "<script>", + "script:src": "<script src=\"\">", + "img": "<img src=\"\" alt=\"\" />", + "iframe": "<iframe src=\"\" frameborder=\"0\">", + "embed": "<embed src=\"\" type=\"\" />", + "object": "<object data=\"\" type=\"\">", + "param": "<param name=\"\" value=\"\" />", + "map": "<map name=\"\">", + "area": "<area shape=\"\" coords=\"\" href=\"\" alt=\"\" />", + "area:d": "<area shape=\"default\" href=\"\" alt=\"\" />", + "area:c": "<area shape=\"circle\" coords=\"\" href=\"\" alt=\"\" />", + "area:r": "<area shape=\"rect\" coords=\"\" href=\"\" alt=\"\" />", + "area:p": "<area shape=\"poly\" coords=\"\" href=\"\" alt=\"\" />", + "form": "<form action=\"\">", + "form:get": "<form action=\"\" method=\"get\">", + "form:post": "<form action=\"\" method=\"post\">", + "label": "<label for=\"\">", + "input": "<input type=\"${1:text}\" />", + "inp": "<input type=\"${1:text}\" name=\"\" id=\"\" />", + "input:hidden": "input[type=hidden name]", + "input:h": "input:hidden", + "input:text": "inp", + "input:t": "inp", + "input:search": "inp[type=search]", + "input:email": "inp[type=email]", + "input:url": "inp[type=url]", + "input:password": "inp[type=password]", + "input:p": "input:password", + "input:datetime": "inp[type=datetime]", + "input:date": "inp[type=date]", + "input:datetime-local": "inp[type=datetime-local]", + "input:month": "inp[type=month]", + "input:week": "inp[type=week]", + "input:time": "inp[type=time]", + "input:number": "inp[type=number]", + "input:color": "inp[type=color]", + "input:checkbox": "inp[type=checkbox]", + "input:c": "input:checkbox", + "input:radio": "inp[type=radio]", + "input:r": "input:radio", + "input:range": "inp[type=range]", + "input:file": "inp[type=file]", + "input:f": "input:file", + "input:submit": "<input type=\"submit\" value=\"\" />", + "input:s": "input:submit", + "input:image": "<input type=\"image\" src=\"\" alt=\"\" />", + "input:i": "input:image", + "input:button": "<input type=\"button\" value=\"\" />", + "input:b": "input:button", + "isindex": "<isindex/>", + "input:reset": "input:button[type=reset]", + "select": "<select name=\"\" id=\"\">", + "option": "<option value=\"\">", + "textarea": "<textarea name=\"\" id=\"\" cols=\"${1:30}\" rows=\"${2:10}\">", + "menu:context": "menu[type=context]>", + "menu:c": "menu:context", + "menu:toolbar": "menu[type=toolbar]>", + "menu:t": "menu:toolbar", + "video": "<video src=\"\">", + "audio": "<audio src=\"\">", + "html:xml": "<html xmlns=\"http://www.w3.org/1999/xhtml\">", + "keygen": "<keygen/>", + "command": "<command/>", + + "bq": "blockquote", + "acr": "acronym", + "fig": "figure", + "figc": "figcaption", + "ifr": "iframe", + "emb": "embed", + "obj": "object", + "src": "source", + "cap": "caption", + "colg": "colgroup", + "fst": "fieldset", + "btn": "button", + "btn:b": "button[type=button]", + "btn:r": "button[type=reset]", + "btn:s": "button[type=submit]", + "optg": "optgroup", + "opt": "option", + "tarea": "textarea", + "leg": "legend", + "sect": "section", + "art": "article", + "hdr": "header", + "ftr": "footer", + "adr": "address", + "dlg": "dialog", + "str": "strong", + "prog": "progress", + "fset": "fieldset", + "datag": "datagrid", + "datal": "datalist", + "kg": "keygen", + "out": "output", + "det": "details", + "cmd": "command", + "doc": "html>(head>meta[charset=UTF-8]+title{${1:Document}})+body", + "doc4": "html>(head>meta[http-equiv=\"Content-Type\" content=\"text/html;charset=${charset}\"]+title{${1:Document}})", + + "html:4t": "!!!4t+doc4[lang=${lang}]", + "html:4s": "!!!4s+doc4[lang=${lang}]", + "html:xt": "!!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", + "html:xs": "!!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", + "html:xxs": "!!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]", + "html:5": "!!!+doc[lang=${lang}]", + + "ol+": "ol>li", + "ul+": "ul>li", + "dl+": "dl>dt+dd", + "map+": "map>area", + "table+": "table>tr>td", + "colgroup+": "colgroup>col", + "colg+": "colgroup>col", + "tr+": "tr>td", + "select+": "select>option", + "optgroup+": "optgroup>option", + "optg+": "optgroup>option" + } + }, + + "xml": { + "extends": "html", + "profile": "xml", + "filters": "html" + }, + + "xsl": { + "extends": "html", + "profile": "xml", + "filters": "html, xsl", + "abbreviations": { + "tm": "<xsl:template match=\"\" mode=\"\">", + "tmatch": "tm", + "tn": "<xsl:template name=\"\">", + "tname": "tn", + "call": "<xsl:call-template name=\"\"/>", + "ap": "<xsl:apply-templates select=\"\" mode=\"\"/>", + "api": "<xsl:apply-imports/>", + "imp": "<xsl:import href=\"\"/>", + "inc": "<xsl:include href=\"\"/>", + + "ch": "<xsl:choose>", + "xsl:when": "<xsl:when test=\"\">", + "wh": "xsl:when", + "ot": "<xsl:otherwise>", + "if": "<xsl:if test=\"\">", + + "par": "<xsl:param name=\"\">", + "pare": "<xsl:param name=\"\" select=\"\"/>", + "var": "<xsl:variable name=\"\">", + "vare": "<xsl:variable name=\"\" select=\"\"/>", + "wp": "<xsl:with-param name=\"\" select=\"\"/>", + "key": "<xsl:key name=\"\" match=\"\" use=\"\"/>", + + "elem": "<xsl:element name=\"\">", + "attr": "<xsl:attribute name=\"\">", + "attrs": "<xsl:attribute-set name=\"\">", + + "cp": "<xsl:copy select=\"\"/>", + "co": "<xsl:copy-of select=\"\"/>", + "val": "<xsl:value-of select=\"\"/>", + "each": "<xsl:for-each select=\"\">", + "for": "each", + "tex": "<xsl:text></xsl:text>", + + "com": "<xsl:comment>", + "msg": "<xsl:message terminate=\"no\">", + "fall": "<xsl:fallback>", + "num": "<xsl:number value=\"\"/>", + "nam": "<namespace-alias stylesheet-prefix=\"\" result-prefix=\"\"/>", + "pres": "<xsl:preserve-space elements=\"\"/>", + "strip": "<xsl:strip-space elements=\"\"/>", + "proc": "<xsl:processing-instruction name=\"\">", + "sort": "<xsl:sort select=\"\" order=\"\"/>", + + "choose+": "xsl:choose>xsl:when+xsl:otherwise", + "xsl": "!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}" + }, + "snippets": { + "!!!": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + } + }, + + "haml": { + "filters": "haml", + "extends": "html", + "profile": "xml" + }, + + "scss": { + "extends": "css" + }, + + "sass": { + "extends": "css" + }, + + "less": { + "extends": "css" + }, + + "stylus": { + "extends": "css" + } } 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 diff --git a/tools/json2hash b/tools/json2hash index e8fa4f3..0accbcd 100755 --- a/tools/json2hash +++ b/tools/json2hash @@ -32,11 +32,11 @@ class Processor(object): self.out.write(' tbl)\n') self.out.write('tbl)') elif _type is list: - self.out.write('(list \n') + self.out.write('(vector \n') for v in data: self._print(v) self.out.write('\n') - self.out.wirte(')\n') + self.out.write(')\n') elif (_type is str or _type is unicode): self.out.write(pystr2elstrexp(data)) else: # number ? diff --git a/zencoding-mode.el b/zencoding-mode.el index 0924965..98c4a02 100644 --- a/zencoding-mode.el +++ b/zencoding-mode.el @@ -940,6 +940,977 @@ tbl) tbl) (puthash "filters" "html, xsl" tbl) tbl) tbl) tbl)) +;; 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)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; XML abbrev @@ -1543,22 +2514,15 @@ tbl)) ;; ;;; 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) @@ -1605,13 +2569,30 @@ tbl)) (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 "+")) @@ -1620,7 +2601,8 @@ 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$]\\|-[0-9]\\)" s))) (progn (setf rt (cons (concat f "+" s) rt)) (setf i (cddr i))) @@ -1639,7 +2621,7 @@ tbl)) (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 @@ -1678,29 +2660,52 @@ tbl)) (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) @@ -1708,16 +2713,24 @@ tbl)) (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")) |