2636 lines
67 KiB
JavaScript
2636 lines
67 KiB
JavaScript
ace.define("ace/mode/css_highlight_rules", ["require", "exports", "module", "ace/lib/oop", "ace/lib/lang", "ace/mode/text_highlight_rules"], function (require, exports, module) {
|
|
"use strict";
|
|
|
|
var oop = require("../lib/oop");
|
|
var lang = require("../lib/lang");
|
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
|
var supportType = exports.supportType = "supportTypebegin|align-content|对齐-内容|align-items|对齐-项目|align-self|对齐-本项|all|所有|animation|动画|animation-delay|动画-延迟时间|animation-direction|动画-反向播放|animation-duration|动画-持续时间|animation-fill-mode|动画-结束状态|animation-iteration-count|动画-播放次数|animation-name|动画-名称|animation-play-state|动画-播放状态|animation-timing-function|动画-速度曲线|backface-visibility|背面-可见|background|背景|background-attachment|背景-定位|background-blend-mode|background-clip|背景-绘制|background-color|背景-颜色|background-image|背景-图像|background-origin|背景-起点|background-position|背景-位置|background-repeat|背景-重复|background-size|背景-大小|border|边框|border-bottom|边框-底部|border-bottom-color|边框-底部-颜色|border-bottom-left-radius|左下边框圆角|border-bottom-right-radius|右下边框圆角|border-bottom-style|边框-底部-样式|border-bottom-width|边框-底部-宽度|border-collapse|边框-合并|border-color|边框-颜色|border-image|边框-图像|border-image-outset|边框-图像-超出|border-image-repeat|边框-图像-重复|border-image-slice|边框-图像-偏移|border-image-source|边框-图像-源|border-image-width|边框-图像-宽度|border-left|边框-左侧|border-left-color|边框-左侧-颜色|border-left-style|边框-左侧-样式|border-left-width|边框-左侧-宽度|border-radius|边框-圆角|border-right|边框-右侧|border-right-color|边框-右侧-颜色|border-right-style|边框-右侧-样式|border-right-width|边框-右侧-宽度|border-spacing|边框-距离|border-style|边框-样式|border-top|边框-顶部|border-top-color|边框-顶部-颜色|border-top-left-radius|左上边框圆角|border-top-right-radius|右上边框圆角|border-top-style|边框-顶部-样式|border-top-width|边框-顶部-宽度|border-width|边框-宽度|bottom|底部|box-shadow|盒子-阴影|box-sizing|盒子模型|caption-side|表格标题-位置|clear|清除浮动|clip|裁剪|color|颜色|column-count|列数|column-fill|column-gap|列-间隔|column-rule|列-规则|column-rule-color|列-规则-颜色|column-rule-style|列-规则-样式|column-rule-width|列-规则-宽度|column-span|列-数量|column-width|列-宽度|columns|列|content|内容|counter-increment|计数器增加|counter-reset|计数器重置|cursor|光标|direction|文本方向|display|显示模式|empty-cells|空-单元格|filter|flex|弹性布局|flex-basis|弹性布局-长度|flex-direction|弹性布局-方向|flex-flow|弹性布局流|flex-grow|弹性布局-扩展|flex-shrink|弹性布局-收缩|flex-wrap|弹性布局-换行|float|浮动|font|font-family|字体-组|font-size|字体-大小|font-size-adjust|font-stretch|font-style|字体-样式|font-variant|字体-变形|font-weight|字体-粗细|hanging-punctuation|height|高度|justify-content|内容对齐|left|左侧|letter-spacing|字符间距|line-height|行高|list-style|列表-样式|list-style-image|列表-样式-图像|list-style-position|列表-样式-位置|list-style-type|列表-样式-类型|margin|外边距|margin-bottom|下边距|margin-left|左边距|margin-right|右边距|margin-top|上边距|max-height|最大-高度|max-width|最大-宽度|max-zoom|min-height|最小-高度|min-width|最小-宽度|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|不透明度|order|顺序|outline|轮廓|outline-color|轮廓-颜色|outline-offset|outline-style|轮廓-样式|outline-width|轮廓-宽度|overflow|溢出|overflow-x|溢出-x轴|overflow-y|溢出-y轴|padding|内边距|padding-bottom|下内边距|padding-left|左内边距|padding-right|右内边距|padding-top|上内边距|page-break-after|page-break-before|page-break-inside|perspective|透视视图|perspective-origin|透视视图-位置|position|定位|quotes|resize|right|右侧|tab-size|table-layout|表格-布局|text-align|文本-对齐|text-align-last|文本-尾行对齐|text-decoration|文本-装饰|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|文本-缩进|text-justify|text-overflow|文本-溢出|text-shadow|文本-阴影|text-transform|文本-大小写|top|顶部|transform|转换|transform-origin|转换-基点|transform-style|转换-样式|transition|过渡|transition-delay|过渡-延迟|transition-duration|过渡-持续时间|transition-property|过渡-属性|transition-timing-function|过渡-速度曲线|unicode-bidi|user-select|用户-选择|user-zoom|vertical-align|垂直-对齐|visibility|可见性|white-space|空格|width|宽度|word-break|换行规则|word-spacing|单词-间距|word-wrap|自动换行|z-index|堆叠顺序|fofstudiotextcolor|文本颜色|grid|网格|object-fit|对象-适应|grid-template-columns|网格模板列|grid-template-rows|网格模板行|grid-template-areas|网格模板区域|grid-row|网格行|grid-column|网格列|grid-gap|网格间距|placeholder|提示信息|calc|计算|pointer-events|鼠标-事件|backdrop-filter|背景-模糊|-webkit-line-clamp|-谷歌内核-行数限制|-webkit-box-orient|-谷歌内核-盒子排列|appearance|原生外观|progress-bar|进度条伪类|progress-value|进度条进度|counter-set|计数器设置|paused|暂停|running|运行|time|时间|keyframename|关键帧名称|steps()|步骤()|cubic-bezier(n,n,n,n)|贝塞尔曲线(n,n,n,n)|number|数字|infinite|无限次|reverse|反向播放|alternate|交替播放|alternate-reverse|反向交替播放|linear-gradient()|线性渐变()|radial-gradient()|径向渐变()|repeating-linear-gradient()|重复线性渐变()|repeating-radial-gradient()|重复径向渐变()|length|长度|style|样式|value|值|font-size/line-height|字体-大小/行高|family-name|字体名称|xx-small|特小号|x-small|加小号|small|小号|large|大号|x-large|加大号|xx-large|特大号|smaller|减小|larger|增大|100|100|200|200|300|300|400|400|500|500|600|600|700|700|800|800|900|900|property|属性|outlineColor|轮廓颜色|outlineStyle|轮廓样式|outlineWidth|轮廓宽度|h-shadow|水平阴影位置|v-shadow|垂直阴影位置|blur|模糊距离|spread|阴影尺寸|hide|不显示|show|显示|sticky|粘性定位|string|字符串|row|水平显示|row-reverse|水平显示倒序|column-reverse|垂直显示倒序|wrap|换行|wrap-reverse|反向换行|matrix|矩阵|matrix3d|矩阵3d|translate|平移|translateX|平移x轴|translateY|平移y轴|scale|缩放|scaleX|缩放x轴|scaleY|缩放y轴|rotate|旋转|skew|扭曲|skewX|扭曲x轴|skewY|扭曲y轴|translate3d|平移3d|translateZ|平移z轴|scale3d|缩放3d|scaleZ|缩放z轴|rotate3d|旋转3d|rotateX|旋转x轴|rotateY|旋转y轴|rotateZ|旋转z轴|flex-start|行首排列|flex-end|行尾排列|space-between|两极间隔|space-evenly|均分间隔|space-around|周围间隔|currentColor|颜色值-当前文本颜色|rgba|颜色通道|-webkit-box|-谷歌内核-盒子|vertical|垂直排列|forwards|结束状态|backwards|起始状态|scale-down|比例缩小";
|
|
var supportFunction = exports.supportFunction = "supportFunctionbegin|url|地址|attr|属性值|counter|计数器值|counters|supportFunctionend";
|
|
var supportConstant = exports.supportConstant = "supportConstantbegin|absolute|绝对定位|after-edge|after|元素后|all-scroll|all|所有|alphabetic|always|antialiased|armenian|亚美尼亚编号|auto|自动|avoid-column|avoid-page|avoid|balance|baseline|基线对齐|before-edge|before|元素前|below|bidi-override|block-line-height|block|块级元素|bold|粗体|bolder|超粗体|border-box|边界框|both|全部清除|bottom|底部|box|break-all|断行|break-word|字内换行|capitalize|首字母大写|caps-height|caption|center|居中|central|char|circle|空心圆|cjk-ideographic|中文大写序号|clone|close-quote|后引号|col-resize|collapse|折叠|column|垂直显示|consider-shifts|contain|比例缩放图像|content-box|内容框|cover|宽高覆盖缩放|crosshair|十字线|cubic-bezier|dashed|虚线|decimal-leading-zero|数字十进制前置零|decimal|小数|default|默认|disabled|disc|实心圆|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|点线|double|双线|e-resize|向右箭头|ease-in|缓开始|ease-in-out|缓开始缓结束|ease-out|缓结束|ease|缓动|ellipsis|省略号|end|exclude-ruby|fill|填充|fixed|固定|georgian|glyphs|grid-height|groove|凹槽|hand|hanging|hebrew|希伯来编号|help|问号箭头|hidden|隐藏|hiragana-iroha|日文平假名序号|hiragana|日文平假名字符|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|继承|initial|默认值|inline-block|内联块元素|inline-box|inline-line-height|inline-table|内联表格元素|inline|内联元素|inset|内嵌|inside|内部|inter-ideograph|inter-word|invert|italic|斜体|justify|两端对齐|katakana-iroha|日文片假名序号|katakana|日文片假名字符|keep-all|符号断行|last|left|左侧|lighter|细体|line-edge|line-through|删除线|line|linear|匀速|list-item|列表项元素|local|内容滚动|loose|lower-alpha|小写英文字母|lower-greek|小写希腊字母|lower-latin|小写拉丁字母|lower-roman|小写罗马数字|lowercase|转小写|lr-tb|ltr|从左到右|mathematical|max-height|最大-高度|max-size|medium|中等|menu|message-box|middle|中部对齐|move|移动箭头|n-resize|向上箭头|ne-resize|东北箭头|newspaper|no-change|no-close-quote|移除后引号|no-drop|no-open-quote|移除前引号|no-repeat|不重复|none|无效|normal|正常|not-allowed|nowrap|不换行|nw-resize|西北箭头|oblique|倾斜|open-quote|前引号|outset|外凸|outside|外部|overline|padding-box|填充框|page|pointer|指针箭头|pre-line|保留换行符|pre-wrap|保留-换行|pre|保留|preserve-3d|progress|relative|相对定位|repeat-x|x轴重复|repeat-y|y轴重复|repeat|重复|replaced|reset-size|ridge|垄线|right|右侧|round|row-resize|rtl|从右到左|s-resize|向下箭头|scroll|滚动|se-resize|东南箭头|separate|分离|slice|small-caps|小型大写字母|small-caption|solid|实线|space|square|实心方块|start|static|静态|status-bar|step-end|step-start|steps|stretch|strict|sub|下标对齐|super|上标对齐|sw-resize|西南箭头|table-caption|表格标题元素|table-cell|表格单元格元素|table-column-group|表格格式列组元素|table-column|表格格式列元素|table-footer-group|表格尾组元素|table-header-group|表格头组元素|table-row-group|表格内容组元素|table-row|表格行元素|table|表格元素|tb-rl|text-after-edge|text-before-edge|text-bottom|文本底部对齐|text-size|text-top|文本顶端对齐|text|文本|thick|粗边框|thin|细边框|transparent|透明|underline|下划线|upper-alpha|大写英文字母|upper-latin|大写拉丁字母|upper-roman|大写罗马数字|uppercase|转大写|use-script|vertical-ideographic|vertical-text|visible|可见|w-resize|向左箭头|wait|等待光标|whitespace|z-index|堆叠顺序|zero|zoom|supportConstantend";
|
|
var supportConstantColor = exports.supportConstantColor = "supportConstantColorbegin|AliceBlue|颜色值-爱丽丝蓝|AntiqueWhite|颜色值-古董白|Aqua|颜色值-湖绿色|Aquamarine|颜色值-浅蓝色|Azure|颜色值-蔚蓝色|Beige|颜色值-米黄色|Bisque|颜色值-橘黄色|Black|颜色值-黑色|BlanchedAlmond|颜色值-白杏色|Blue|颜色值-蓝色|BlueViolet|颜色值-紫罗兰色|Brown|颜色值-棕色|BurlyWood|颜色值-硬木色|CadetBlue|颜色值-军服蓝|Chartreuse|颜色值-黄绿色|Chocolate|颜色值-巧克力色|Coral|颜色值-珊瑚色|CornflowerBlue|颜色值-矢车菊蓝色|Cornsilk|颜色值-玉米色|Crimson|颜色值-绯红色|Cyan|颜色值-青色|DarkBlue|颜色值-深蓝色|DarkCyan|颜色值-深青色|DarkGoldenRod|颜色值-暗金黄色|DarkGray|颜色值-深灰色|DarkGreen|颜色值-深绿色|darkgrey|DarkKhaki|颜色值-暗卡其色|DarkMagenta|颜色值-深洋红色|DarkOliveGreen|颜色值-暗橄榄绿|DarkOrange|颜色值-深橙色|DarkOrchid|颜色值-暗兰花紫|DarkRed|颜色值-深红色|DarkSalmon|颜色值-暗肉色|DarkSeaGreen|颜色值-暗海蓝色|DarkSlateBlue|颜色值-暗灰蓝色|DarkSlateGray|颜色值-深石板灰|darkslategrey|DarkTurquoise|颜色值-暗宝石绿|DarkViolet|颜色值-暗紫色|DeepPink|颜色值-深粉红色|DeepSkyBlue|颜色值-深天蓝色|DimGray|颜色值-暗灰色|dimgrey|DodgerBlue|颜色值-闪兰色|FireBrick|颜色值-砖红色|FloralWhite|颜色值-花白色|ForestGreen|颜色值-森林绿|Fuchsia|颜色值-紫红色|Gainsboro|颜色值-淡灰色|GhostWhite|颜色值-幽灵白|Gold|颜色值-金色|GoldenRod|颜色值-金菊黄|Gray|颜色值-灰色|Green|颜色值-绿色|GreenYellow|颜色值-绿黄色|grey|HoneyDew|颜色值-蜜瓜色|HotPink|颜色值-艳粉色|IndianRed|颜色值-印度红|Indigo|颜色值-靛蓝色|Ivory|颜色值-象牙色|Khaki|颜色值-卡其色|Lavender|颜色值-淡紫色|LavenderBlush|颜色值-淡紫红|LawnGreen|颜色值-草绿色|LemonChiffon|颜色值-柠檬绸色|LightBlue|颜色值-淡蓝色|LightCoral|颜色值-淡珊瑚色|LightCyan|颜色值-浅青色|LightGoldenRodYellow|颜色值-浅秋黄|LightGray|颜色值-浅灰色|LightGreen|颜色值-浅绿色|lightgrey|LightPink|颜色值-浅粉色|LightSalmon|颜色值-浅肉色|LightSeaGreen|颜色值-浅海蓝色|LightSkyBlue|颜色值-浅天蓝色|LightSlateGray|颜色值-浅石板灰|lightslategrey|LightSteelBlue|颜色值-浅钢蓝色|LightYellow|颜色值-浅黄色|Lime|颜色值-青柠色|LimeGreen|颜色值-石灰绿|Linen|颜色值-亚麻色|Magenta|颜色值-红紫色|Maroon|颜色值-褐红色|MediumAquaMarine|颜色值-间绿色|MediumBlue|颜色值-中蓝色|MediumOrchid|颜色值-中兰花紫|MediumPurple|颜色值-中紫色|MediumSeaGreen|颜色值-间海蓝色|MediumSlateBlue|颜色值-间暗蓝色|MediumSpringGreen|颜色值-中春绿色|MediumTurquoise|颜色值-间绿宝石色|MediumVioletRed|颜色值-间紫罗兰色|MidnightBlue|颜色值-中灰蓝色|MintCream|颜色值-薄荷色|MistyRose|颜色值-浅玫瑰色|Moccasin|颜色值-鹿皮色|NavajoWhite|颜色值-纳瓦白|Navy|颜色值-海军蓝|OldLace|颜色值-老花色|Olive|颜色值-橄榄绿|OliveDrab|颜色值-褐绿色|Orange|颜色值-橙色|OrangeRed|颜色值-橙红色|Orchid|颜色值-兰花紫|PaleGoldenRod|颜色值-苍麒麟色|PaleGreen|颜色值-苍绿色|PaleTurquoise|颜色值-苍宝石绿|PaleVioletRed|颜色值-苍紫罗蓝色|PapayaWhip|颜色值-番木色|PeachPuff|颜色值-桃色|Peru|颜色值-秘鲁色|Pink|颜色值-粉色|Plum|颜色值-李子色|PowderBlue|颜色值-火药蓝|Purple|颜色值-紫色|rebeccapurple|Red|颜色值-红色|RosyBrown|颜色值-玫瑰棕色|RoyalBlue|颜色值-宝蓝色|SaddleBrown|颜色值-马鞍棕色|Salmon|颜色值-鲑鱼肉色|SandyBrown|颜色值-沙棕色|SeaGreen|颜色值-海洋绿|SeaShell|颜色值-贝壳白|Sienna|颜色值-黄土赭色|Silver|颜色值-银白色|SkyBlue|颜色值-天蓝色|SlateBlue|颜色值-板岩蓝色|SlateGray|颜色值-灰石色|slategrey|Snow|颜色值-雪色|SpringGreen|颜色值-春绿色|SteelBlue|颜色值-钢蓝色|Tan|颜色值-棕黄色|Teal|颜色值-水鸭色|Thistle|颜色值-蓟色|Tomato|颜色值-番茄色|Turquoise|颜色值-绿松石色|Violet|颜色值-蓝紫色|Wheat|颜色值-小麦色|White|颜色值-白色|WhiteSmoke|颜色值-烟白色|Yellow|颜色值-黄色|YellowGreen|颜色值-嫩绿色|supportConstantColorend";
|
|
var supportConstantFonts = exports.supportConstantFonts = "supportConstantFontsbegin|arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace|supportConstantFontsend";
|
|
var supportConstantColorArray = supportConstantColor.split("|");
|
|
var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
|
|
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(pseudoElementsbegin|after|元素后|before|元素前|first-letter|first-line|moz-selection|selection|pseudoElementsend)\\b";
|
|
var pseudoClasses = exports.pseudoClasses = "(:)\\b(pseudoClassesbegin|active|选中链接|checked|选中|disabled|empty|enabled|first-child|first-of-type|focus|获得焦点|hover|鼠标移入|indeterminate|invalid|last-child|last-of-type|link|默认链接|not|nth-child|子元素|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|根元素|target|valid|visited|已访问链接|pseudoClassesend)\\b";
|
|
|
|
var CssHighlightRules = function () {
|
|
|
|
var keywordMapper = this.createKeywordMapper({
|
|
"support.function": supportFunction,
|
|
"support.constant": supportConstant,
|
|
"support.type": supportType,
|
|
"support.constant.color": supportConstantColor,
|
|
"support.constant.fonts": supportConstantFonts
|
|
}, "text", true);
|
|
|
|
this.$rules = {
|
|
"start": [{
|
|
include: ["strings", "url", "comments"]
|
|
}, {
|
|
token: "paren.lparen",
|
|
regex: "\\{",
|
|
next: "ruleset"
|
|
}, {
|
|
token: "paren.rparen",
|
|
regex: "\\}"
|
|
}, {
|
|
token: "string",
|
|
regex: "@(?!viewport)",
|
|
next: "media"
|
|
}, {
|
|
token: "keyword",
|
|
regex: "#[a-z0-9-_\u4E00-\u9FA5]+"
|
|
}, {
|
|
token: "keyword",
|
|
regex: "%"
|
|
}, {
|
|
token: "variable",
|
|
regex: "\[\.]*[a-z0-9-_\u4E00-\u9FA5]+"
|
|
}, {
|
|
token: "string",
|
|
regex: ":[a-z0-9-_\u4E00-\u9FA5]+"
|
|
}, {
|
|
token: "constant.numeric",
|
|
regex: numRe
|
|
}, {
|
|
token: "constant",
|
|
regex: "[a-z0-9-_\u4E00-\u9FA5]+"
|
|
}, {
|
|
caseInsensitive: true
|
|
}],
|
|
|
|
"media": [{
|
|
include: ["strings", "url", "comments"]
|
|
}, {
|
|
token: "paren.lparen",
|
|
regex: "\\{",
|
|
next: "start"
|
|
}, {
|
|
token: "paren.rparen",
|
|
regex: "\\}",
|
|
next: "start"
|
|
}, {
|
|
token: "string",
|
|
regex: ";",
|
|
next: "start"
|
|
}, {
|
|
token: "keyword",
|
|
regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" +
|
|
"|page|font|字体|keyframes|viewport|counter-style|font-feature-values" +
|
|
"|swash|ornaments|annotation|stylistic|styleset|character-variant)"
|
|
}],
|
|
|
|
"comments": [{
|
|
token: "comment", // multi line comment
|
|
regex: "\\/\\*",
|
|
push: [{
|
|
token: "comment",
|
|
regex: "\\*\\/",
|
|
next: "pop"
|
|
}, {
|
|
defaultToken: "comment"
|
|
}]
|
|
}],
|
|
|
|
"ruleset": [{
|
|
regex: "-(webkit|ms|moz|o)-",
|
|
token: "text"
|
|
}, {
|
|
token: "punctuation.operator",
|
|
regex: "[:;]"
|
|
}, {
|
|
token: "paren.rparen",
|
|
regex: "\\}",
|
|
next: "start"
|
|
}, {
|
|
include: ["strings", "url", "comments"]
|
|
}, {
|
|
token: ["constant.numeric", "keyword"],
|
|
regex: "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rpx|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
|
|
}, {
|
|
token: "constant.numeric",
|
|
regex: supportConstantColor,
|
|
token: function (value) {
|
|
if (/颜色值-[\u4E00-\u9FA5]+/.test(value)) {
|
|
let index = supportConstantColorArray.findIndex(v => v === value);
|
|
value = supportConstantColorArray[index - 1]
|
|
}
|
|
return "support.constant.color.changeColor style=border-bottom:2px solid " + value
|
|
},
|
|
}, {
|
|
token: "constant.numeric", // hex6 color
|
|
regex: "#[a-f0-9]{6}",
|
|
token: function (value) {
|
|
return "constant.numeric.color.changeColor style=border-bottom:2px solid " + value
|
|
},
|
|
}, {
|
|
token: "constant.numeric", // hex3 color
|
|
regex: "#[a-f0-9]{3}",
|
|
token: function (value) {
|
|
return "constant.numeric.color.changeColor style=border-bottom:2px solid " + value
|
|
},
|
|
}, {
|
|
token: "constant.numeric", // hex3 color
|
|
regex: "rgb[a]*\\([\\S,]+\\)",
|
|
token: function (value) {
|
|
return "constant.numeric.color.changeColor style=border-bottom:2px solid " + value
|
|
},
|
|
}, {
|
|
token: "constant.numeric",
|
|
regex: numRe
|
|
}, {
|
|
token: ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
|
|
regex: pseudoElements
|
|
}, {
|
|
token: ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
|
|
regex: pseudoClasses
|
|
}, {
|
|
include: "url"
|
|
}, {
|
|
token: keywordMapper,
|
|
regex: "\\-?[a-zA-Z_\u4E00-\u9FA5][a-zA-Z0-9_\u4E00-\u9FA5\\-]*"
|
|
}, {
|
|
caseInsensitive: true
|
|
}],
|
|
|
|
url: [{
|
|
token: "support.function",
|
|
regex: "(?:url(:?-prefix)?|domain|regexp)\\(",
|
|
push: [{
|
|
token: "support.function",
|
|
regex: "\\)",
|
|
next: "pop"
|
|
}, {
|
|
defaultToken: "string"
|
|
}]
|
|
}],
|
|
|
|
strings: [{
|
|
token: "string.start",
|
|
regex: "'",
|
|
push: [{
|
|
token: "string.end",
|
|
regex: "'|$",
|
|
next: "pop"
|
|
}, {
|
|
include: "escapes"
|
|
}, {
|
|
token: "constant.language.escape",
|
|
regex: /\\$/,
|
|
consumeLineEnd: true
|
|
}, {
|
|
defaultToken: "string"
|
|
}]
|
|
}, {
|
|
token: "string.start",
|
|
regex: '"',
|
|
push: [{
|
|
token: "string.end",
|
|
regex: '"|$',
|
|
next: "pop"
|
|
}, {
|
|
include: "escapes"
|
|
}, {
|
|
token: "constant.language.escape",
|
|
regex: /\\$/,
|
|
consumeLineEnd: true
|
|
}, {
|
|
defaultToken: "string"
|
|
}]
|
|
}],
|
|
escapes: [{
|
|
token: "constant.language.escape",
|
|
regex: /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
|
|
}]
|
|
|
|
};
|
|
|
|
this.normalizeRules();
|
|
};
|
|
|
|
oop.inherits(CssHighlightRules, TextHighlightRules);
|
|
|
|
exports.CssHighlightRules = CssHighlightRules;
|
|
|
|
});
|
|
|
|
ace.define("ace/mode/matching_brace_outdent", ["require", "exports", "module", "ace/range"], function (require, exports, module) {
|
|
"use strict";
|
|
|
|
var Range = require("../range").Range;
|
|
|
|
var MatchingBraceOutdent = function () { };
|
|
|
|
(function () {
|
|
|
|
this.checkOutdent = function (line, input) {
|
|
if (!/^\s+$/.test(line))
|
|
return false;
|
|
|
|
return /^\s*\}/.test(input);
|
|
};
|
|
|
|
this.autoOutdent = function (doc, row) {
|
|
var line = doc.getLine(row);
|
|
var match = line.match(/^(\s*\})/);
|
|
|
|
if (!match) return 0;
|
|
|
|
var column = match[1].length;
|
|
var openBracePos = doc.findMatchingBracket({
|
|
row: row,
|
|
column: column
|
|
});
|
|
|
|
if (!openBracePos || openBracePos.row == row) return 0;
|
|
|
|
var indent = this.$getIndent(doc.getLine(openBracePos.row));
|
|
doc.replace(new Range(row, 0, row, column - 1), indent);
|
|
};
|
|
|
|
this.$getIndent = function (line) {
|
|
return line.match(/^\s*/)[0];
|
|
};
|
|
|
|
}).call(MatchingBraceOutdent.prototype);
|
|
|
|
exports.MatchingBraceOutdent = MatchingBraceOutdent;
|
|
});
|
|
|
|
ace.define("ace/mode/css_completions", ["require", "exports", "module", "ace/mode/css_highlight_rules"], function (require, exports, module) {
|
|
"use strict";
|
|
var css_highlight_rules = require("../mode/css_highlight_rules");
|
|
var suppor_color = {};
|
|
css_highlight_rules.supportConstantColor.split("|").forEach(v => {
|
|
suppor_color[v] = 1
|
|
});
|
|
|
|
//CSSDATA这里替换的就是内置提示
|
|
var propertyMap = {
|
|
"background":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1
|
|
},
|
|
"background-color":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"transparent": 1,
|
|
"fixed": 1
|
|
},
|
|
"background-image":
|
|
{
|
|
"url('/$0')": 1
|
|
},
|
|
"background-repeat":
|
|
{
|
|
"repeat": 1,
|
|
"repeat-x": 1,
|
|
"repeat-y": 1,
|
|
"no-repeat": 1,
|
|
"inherit": 1
|
|
},
|
|
"background-position":
|
|
{
|
|
"bottom": 2,
|
|
"center": 2,
|
|
"left": 2,
|
|
"right": 2,
|
|
"top": 2,
|
|
"inherit": 2
|
|
},
|
|
"background-attachment":
|
|
{
|
|
"scroll": 1,
|
|
"fixed": 1
|
|
},
|
|
"background-size":
|
|
{
|
|
"cover": 1,
|
|
"contain": 1
|
|
},
|
|
"background-clip":
|
|
{
|
|
"border-box": 1,
|
|
"padding-box": 1,
|
|
"content-box": 1
|
|
},
|
|
"background-origin":
|
|
{
|
|
"border-box": 1,
|
|
"padding-box": 1,
|
|
"content-box": 1
|
|
},
|
|
"border":
|
|
{
|
|
"solid $0": 1,
|
|
"dashed $0": 1,
|
|
"dotted $0": 1,
|
|
...suppor_color,
|
|
"#$0": 1
|
|
},
|
|
"border-color":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1
|
|
},
|
|
"border-style":
|
|
{
|
|
"solid": 2,
|
|
"dashed": 2,
|
|
"dotted": 2,
|
|
"double": 2,
|
|
"groove": 2,
|
|
"hidden": 2,
|
|
"inherit": 2,
|
|
"inset": 2,
|
|
"none": 2,
|
|
"outset": 2,
|
|
"ridged": 2
|
|
},
|
|
"border-collapse":
|
|
{
|
|
"collapse": 1,
|
|
"separate": 1
|
|
},
|
|
"bottom":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"clear":
|
|
{
|
|
"left": 1,
|
|
"right": 1,
|
|
"both": 1,
|
|
"none": 1
|
|
},
|
|
"color":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"rgb(#$00,0,0)": 1
|
|
},
|
|
"cursor":
|
|
{
|
|
"default": 1,
|
|
"pointer": 1,
|
|
"move": 1,
|
|
"text": 1,
|
|
"wait": 1,
|
|
"help": 1,
|
|
"progress": 1,
|
|
"n-resize": 1,
|
|
"ne-resize": 1,
|
|
"e-resize": 1,
|
|
"se-resize": 1,
|
|
"s-resize": 1,
|
|
"sw-resize": 1,
|
|
"w-resize": 1,
|
|
"nw-resize": 1
|
|
},
|
|
"display":
|
|
{
|
|
"none": 1,
|
|
"block": 1,
|
|
"inline": 1,
|
|
"inline-block": 1,
|
|
"table-cell": 1
|
|
},
|
|
"empty-cells":
|
|
{
|
|
"show": 1,
|
|
"hide": 1
|
|
},
|
|
"float":
|
|
{
|
|
"left": 1,
|
|
"right": 1,
|
|
"none": 1
|
|
},
|
|
"font-family":
|
|
{
|
|
"Arial": 2,
|
|
"Comic Sans MS": 2,
|
|
"Consolas": 2,
|
|
"Courier New": 2,
|
|
"Courier": 2,
|
|
"Georgia": 2,
|
|
"Monospace": 2,
|
|
"Sans-Serif": 2,
|
|
"Segoe UI": 2,
|
|
"Tahoma": 2,
|
|
"Times New Roman": 2,
|
|
"Trebuchet MS": 2,
|
|
"Verdana": 1
|
|
},
|
|
"font-size":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"font-weight":
|
|
{
|
|
"bold": 1,
|
|
"normal": 1
|
|
},
|
|
"font-style":
|
|
{
|
|
"italic": 1,
|
|
"normal": 1
|
|
},
|
|
"font-variant":
|
|
{
|
|
"normal": 1,
|
|
"small-caps": 1
|
|
},
|
|
"height":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"left":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"letter-spacing":
|
|
{
|
|
"normal": 1
|
|
},
|
|
"line-height":
|
|
{
|
|
"normal": 1
|
|
},
|
|
"list-style-type":
|
|
{
|
|
"none": 1,
|
|
"disc": 1,
|
|
"circle": 1,
|
|
"square": 1,
|
|
"decimal": 1,
|
|
"decimal-leading-zero": 1,
|
|
"lower-roman": 1,
|
|
"upper-roman": 1,
|
|
"lower-greek": 1,
|
|
"lower-latin": 1,
|
|
"upper-latin": 1,
|
|
"georgian": 1,
|
|
"lower-alpha": 1,
|
|
"upper-alpha": 1
|
|
},
|
|
"margin":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"margin-right":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"margin-left":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"margin-top":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"margin-bottom":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"max-height":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"max-width":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"min-height":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"min-width":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"overflow":
|
|
{
|
|
"hidden": 1,
|
|
"visible": 1,
|
|
"auto": 1,
|
|
"scroll": 1
|
|
},
|
|
"overflow-x":
|
|
{
|
|
"hidden": 1,
|
|
"visible": 1,
|
|
"auto": 1,
|
|
"scroll": 1
|
|
},
|
|
"overflow-y":
|
|
{
|
|
"hidden": 1,
|
|
"visible": 1,
|
|
"auto": 1,
|
|
"scroll": 1
|
|
},
|
|
"padding":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"padding-top":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"padding-right":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"padding-bottom":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"padding-left":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"page-break-after":
|
|
{
|
|
"auto": 1,
|
|
"always": 1,
|
|
"avoid": 1,
|
|
"left": 1,
|
|
"right": 1
|
|
},
|
|
"page-break-before":
|
|
{
|
|
"auto": 1,
|
|
"always": 1,
|
|
"avoid": 1,
|
|
"left": 1,
|
|
"right": 1
|
|
},
|
|
"position":
|
|
{
|
|
"absolute": 1,
|
|
"relative": 1,
|
|
"fixed": 1,
|
|
"static": 1
|
|
},
|
|
"right":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"table-layout":
|
|
{
|
|
"fixed": 1,
|
|
"auto": 1
|
|
},
|
|
"text-decoration":
|
|
{
|
|
"none": 1,
|
|
"underline": 1,
|
|
"line-through": 1,
|
|
"blink": 1
|
|
},
|
|
"text-align":
|
|
{
|
|
"left": 1,
|
|
"right": 1,
|
|
"center": 1,
|
|
"justify": 1
|
|
},
|
|
"text-transform":
|
|
{
|
|
"capitalize": 1,
|
|
"uppercase": 1,
|
|
"lowercase": 1,
|
|
"none": 1
|
|
},
|
|
"top":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"vertical-align":
|
|
{
|
|
"top": 1,
|
|
"bottom": 1
|
|
},
|
|
"visibility":
|
|
{
|
|
"hidden": 1,
|
|
"visible": 1
|
|
},
|
|
"white-space":
|
|
{
|
|
"nowrap": 1,
|
|
"normal": 1,
|
|
"pre": 1,
|
|
"pre-line": 1,
|
|
"pre-wrap": 1
|
|
},
|
|
"width":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1
|
|
},
|
|
"word-spacing":
|
|
{
|
|
"normal": 1
|
|
},
|
|
"filter":
|
|
{
|
|
"alpha(opacity=$0100)": 1
|
|
},
|
|
"text-shadow":
|
|
{
|
|
"$02px 2px 2px #777": 1
|
|
},
|
|
"text-overflow":
|
|
{
|
|
"ellipsis-word": 1,
|
|
"clip": 1,
|
|
"ellipsis": 1
|
|
},
|
|
"transform":
|
|
{
|
|
"rotate($00deg)": 1,
|
|
"skew($00deg)": 1
|
|
},
|
|
"-moz-transform":
|
|
{
|
|
"rotate($00deg)": 1,
|
|
"skew($00deg)": 1
|
|
},
|
|
"-webkit-transform":
|
|
{
|
|
"rotate($00deg)": 1,
|
|
"skew($00deg)": 1
|
|
},
|
|
"背景":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1,
|
|
"左侧": 1,
|
|
"滚动": 1,
|
|
"内容滚动": 1,
|
|
"固定": 1,
|
|
"默认值": 1,
|
|
"边界框": 1,
|
|
"填充框": 1,
|
|
"内容框": 1,
|
|
"地址": 1,
|
|
"无效": 1,
|
|
"线性渐变": 1,
|
|
"径向渐变": 1,
|
|
"重复线性渐变": 1,
|
|
"重复径向渐变": 1,
|
|
"重复": 1,
|
|
"y轴重复": 1,
|
|
"不重复": 1,
|
|
"x轴重复": 1,
|
|
"宽高覆盖缩放": 1,
|
|
"比例缩放图像": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"模糊距离": 1,
|
|
"右侧": 1,
|
|
"顶部": 1,
|
|
"底部": 1,
|
|
"居中": 1
|
|
},
|
|
"-moz-border-radius": 1,
|
|
"-moz-border-radius-topright": 1,
|
|
"-moz-border-radius-bottomright": 1,
|
|
"-moz-border-radius-topleft": 1,
|
|
"-moz-border-radius-bottomleft": 1,
|
|
"-webkit-border-radius": 1,
|
|
"-webkit-border-top-right-radius": 1,
|
|
"-webkit-border-top-left-radius": 1,
|
|
"-webkit-border-bottom-right-radius": 1,
|
|
"-webkit-border-bottom-left-radius": 1,
|
|
"-moz-box-shadow": 1,
|
|
"-webkit-box-shadow": 1,
|
|
"背景-定位":
|
|
{
|
|
"滚动": 1,
|
|
"固定": 1,
|
|
"内容滚动": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"背景-绘制":
|
|
{
|
|
"边界框": 1,
|
|
"填充框": 1,
|
|
"内容框": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"背景-颜色":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"透明": 1,
|
|
"fixed": 1,
|
|
"颜色": 1,
|
|
"继承": 1
|
|
},
|
|
"背景-图像":
|
|
{
|
|
"地址('/$0')": 1,
|
|
"继承": 1,
|
|
"无效": 1,
|
|
"线性渐变": 1,
|
|
"径向渐变": 1,
|
|
"重复线性渐变": 1,
|
|
"重复径向渐变": 1
|
|
},
|
|
"背景-起点":
|
|
{
|
|
"边界框": 1,
|
|
"填充框": 1,
|
|
"内容框": 1,
|
|
"继承": 1
|
|
},
|
|
"背景-位置":
|
|
{
|
|
"底部": 2,
|
|
"居中": 2,
|
|
"左侧": 2,
|
|
"右侧": 2,
|
|
"顶部": 2,
|
|
"inherit": 2
|
|
},
|
|
"背景-重复":
|
|
{
|
|
"重复": 1,
|
|
"x轴重复": 1,
|
|
"y轴重复": 1,
|
|
"不重复": 1,
|
|
"继承": 1
|
|
},
|
|
"背景-大小":
|
|
{
|
|
"宽高覆盖缩放": 1,
|
|
"比例缩放图像": 1,
|
|
"自动": 1,
|
|
"长度": 1
|
|
},
|
|
"边框":
|
|
{
|
|
"solid $0": 1,
|
|
"dashed $0": 1,
|
|
"dotted $0": 1,
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"宽度": 1,
|
|
"样式": 1,
|
|
"颜色": 1
|
|
},
|
|
"边框-底部":
|
|
{
|
|
"宽度": 1,
|
|
"样式": 1,
|
|
"颜色": 1
|
|
},
|
|
"边框-底部-颜色":
|
|
{
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-底部-样式":
|
|
{
|
|
"无效": 1,
|
|
"隐藏": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"凹槽": 1,
|
|
"实线": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-底部-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-颜色":
|
|
{
|
|
...suppor_color,
|
|
"#$0": 1,
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-左侧":
|
|
{
|
|
"宽度": 1,
|
|
"样式": 1,
|
|
"颜色": 1
|
|
},
|
|
"边框-左侧-颜色":
|
|
{
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-左侧-样式":
|
|
{
|
|
"无效": 1,
|
|
"隐藏": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"凹槽": 1,
|
|
"实线": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1
|
|
},
|
|
"边框-左侧-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-右侧":
|
|
{
|
|
"宽度": 1,
|
|
"样式": 1,
|
|
"颜色": 1
|
|
},
|
|
"边框-右侧-颜色":
|
|
{
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-右侧-样式":
|
|
{
|
|
"无效": 1,
|
|
"隐藏": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"凹槽": 1,
|
|
"实线": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1
|
|
},
|
|
"边框-右侧-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-样式":
|
|
{
|
|
"实线": 2,
|
|
"虚线": 2,
|
|
"点线": 2,
|
|
"双线": 2,
|
|
"凹槽": 2,
|
|
"隐藏": 2,
|
|
"inherit": 2,
|
|
"内嵌": 2,
|
|
"无效": 2,
|
|
"外凸": 2,
|
|
"ridged": 2,
|
|
"垄线": 1
|
|
},
|
|
"边框-顶部":
|
|
{
|
|
"宽度": 1,
|
|
"样式": 1,
|
|
"颜色": 1
|
|
},
|
|
"边框-顶部-颜色":
|
|
{
|
|
"颜色": 1,
|
|
"透明": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-顶部-样式":
|
|
{
|
|
"无效": 1,
|
|
"隐藏": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"凹槽": 1,
|
|
"实线": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1
|
|
},
|
|
"边框-顶部-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-宽度": 1,
|
|
"轮廓":
|
|
{
|
|
"继承": 1,
|
|
"轮廓颜色": 1,
|
|
"轮廓样式": 1,
|
|
"轮廓宽度": 1
|
|
},
|
|
"轮廓-颜色":
|
|
{
|
|
"颜色": 1,
|
|
"继承": 1
|
|
},
|
|
"轮廓-样式":
|
|
{
|
|
"无效": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"实线": 1,
|
|
"凹槽": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1,
|
|
"继承": 1
|
|
},
|
|
"轮廓-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"左下边框圆角":
|
|
{
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"右下边框圆角":
|
|
{
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-图像": 1,
|
|
"边框-图像-超出": 1,
|
|
"边框-图像-重复": 1,
|
|
"边框-图像-偏移": 1,
|
|
"边框-图像-源": 1,
|
|
"边框-图像-宽度": 1,
|
|
"边框-圆角":
|
|
{
|
|
"长度": 1
|
|
},
|
|
"左上边框圆角":
|
|
{
|
|
"继承": 1,
|
|
"长度": 1
|
|
},
|
|
"右上边框圆角":
|
|
{
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"盒子-阴影":
|
|
{
|
|
"水平阴影位置": 1,
|
|
"垂直阴影位置": 1,
|
|
"模糊距离": 1,
|
|
"阴影尺寸": 1,
|
|
"颜色": 1,
|
|
"内嵌": 1
|
|
},
|
|
"弹性布局": 1,
|
|
"弹性布局-扩展":
|
|
{
|
|
"继承": 1,
|
|
"默认值": 1,
|
|
"数字": 1
|
|
},
|
|
"弹性布局-收缩": 1,
|
|
"弹性布局-长度": 1,
|
|
"弹性布局流": 1,
|
|
"弹性布局-方向":
|
|
{
|
|
"继承": 1,
|
|
"默认值": 1,
|
|
"水平显示": 1,
|
|
"水平显示倒序": 1,
|
|
"垂直显示": 1,
|
|
"垂直显示倒序": 1
|
|
},
|
|
"弹性布局-换行":
|
|
{
|
|
"不换行": 1,
|
|
"换行": 1,
|
|
"反向换行": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"对齐-内容":
|
|
{
|
|
"默认值": 1,
|
|
"继承": 1,
|
|
"行首排列": 1,
|
|
"行尾排列": 1,
|
|
"居中": 1,
|
|
"两极间隔": 1,
|
|
"均分间隔": 1,
|
|
"周围间隔": 1
|
|
},
|
|
"对齐-项目":
|
|
{
|
|
"默认值": 1,
|
|
"继承": 1,
|
|
"行首排列": 1,
|
|
"行尾排列": 1,
|
|
"居中": 1,
|
|
"两极间隔": 1,
|
|
"均分间隔": 1,
|
|
"周围间隔": 1
|
|
},
|
|
"对齐-本项":
|
|
{
|
|
"默认值": 1,
|
|
"继承": 1,
|
|
"行首排列": 1,
|
|
"行尾排列": 1,
|
|
"居中": 1,
|
|
"两极间隔": 1,
|
|
"均分间隔": 1,
|
|
"周围间隔": 1
|
|
},
|
|
"内容对齐":
|
|
{
|
|
"默认值": 1,
|
|
"继承": 1,
|
|
"行首排列": 1,
|
|
"行尾排列": 1,
|
|
"居中": 1,
|
|
"两极间隔": 1,
|
|
"均分间隔": 1,
|
|
"周围间隔": 1
|
|
},
|
|
"顺序":
|
|
{
|
|
"默认值": 1,
|
|
"继承": 1,
|
|
"数字": 1
|
|
},
|
|
"动画":
|
|
{
|
|
"动画-名称": 1,
|
|
"动画-持续时间": 1,
|
|
"动画-速度曲线": 1,
|
|
"动画-延迟时间": 1,
|
|
"动画-播放次数": 1,
|
|
"动画-反向播放": 1,
|
|
"动画-播放状态": 1
|
|
},
|
|
"动画-名称":
|
|
{
|
|
"关键帧名称": 1,
|
|
"无效": 1
|
|
},
|
|
"动画-持续时间":
|
|
{
|
|
"时间": 1
|
|
},
|
|
"动画-速度曲线":
|
|
{
|
|
"匀速": 1,
|
|
"缓动": 1,
|
|
"缓开始": 1,
|
|
"缓结束": 1,
|
|
"缓开始缓结束": 1,
|
|
"步骤": 1,
|
|
"贝塞尔曲线n,n,n,n": 1
|
|
},
|
|
"动画-延迟时间":
|
|
{
|
|
"时间": 1
|
|
},
|
|
"动画-播放次数":
|
|
{
|
|
"数字": 1,
|
|
"无限次": 1
|
|
},
|
|
"动画-反向播放":
|
|
{
|
|
"正常": 1,
|
|
"反向播放": 1,
|
|
"交替播放": 1,
|
|
"反向交替播放": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"动画-播放状态":
|
|
{
|
|
"暂停": 1,
|
|
"运行": 1
|
|
},
|
|
"溢出-x轴":
|
|
{
|
|
"隐藏": 1,
|
|
"可见": 1,
|
|
"自动": 1,
|
|
"滚动": 1,
|
|
"继承": 1
|
|
},
|
|
"溢出-y轴":
|
|
{
|
|
"隐藏": 1,
|
|
"可见": 1,
|
|
"自动": 1,
|
|
"滚动": 1,
|
|
"继承": 1
|
|
},
|
|
"不透明度":
|
|
{
|
|
"值": 1,
|
|
"继承": 1
|
|
},
|
|
"内边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"下内边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"左内边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"右内边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"上内边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"高度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"最大-高度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"最大-宽度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"最小-高度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"最小-宽度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"宽度":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1,
|
|
"计算": 1
|
|
},
|
|
"字体":
|
|
{
|
|
"字体-样式": 1,
|
|
"字体-粗细": 1,
|
|
"字体-大小/行高": 1,
|
|
"字体-组": 1
|
|
},
|
|
"字体-组":
|
|
{
|
|
"Arial": 2,
|
|
"Comic Sans MS": 2,
|
|
"Consolas": 2,
|
|
"Courier New": 2,
|
|
"Courier": 2,
|
|
"Georgia": 2,
|
|
"Monospace": 2,
|
|
"Sans-Serif": 2,
|
|
"Segoe UI": 2,
|
|
"Tahoma": 2,
|
|
"Times New Roman": 2,
|
|
"Trebuchet MS": 2,
|
|
"Verdana": 1,
|
|
"继承": 1,
|
|
"字体名称": 1
|
|
},
|
|
"字体-大小":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"特小号": 1,
|
|
"加小号": 1,
|
|
"小号": 1,
|
|
"中等": 1,
|
|
"大号": 1,
|
|
"加大号": 1,
|
|
"特大号": 1,
|
|
"减小": 1,
|
|
"增大": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"字体-样式":
|
|
{
|
|
"斜体": 1,
|
|
"正常": 1,
|
|
"倾斜": 1,
|
|
"继承": 1
|
|
},
|
|
"字体-变形":
|
|
{
|
|
"正常": 1,
|
|
"小型大写字母": 1,
|
|
"继承": 1
|
|
},
|
|
"字体-粗细":
|
|
{
|
|
"粗体": 1,
|
|
"正常": 1,
|
|
"超粗体": 1,
|
|
"细体": 1,
|
|
"100": 1,
|
|
"200": 1,
|
|
"300": 1,
|
|
"400": 1,
|
|
"500": 1,
|
|
"600": 1,
|
|
"700": 1,
|
|
"800": 1,
|
|
"900": 1,
|
|
"继承": 1
|
|
},
|
|
"内容":
|
|
{
|
|
"属性值": 1,
|
|
"无效": 1,
|
|
"正常": 1,
|
|
"计数器值": 1,
|
|
"字符串": 1,
|
|
"前引号": 1,
|
|
"后引号": 1,
|
|
"移除前引号": 1,
|
|
"移除后引号": 1,
|
|
"地址": 1,
|
|
"继承": 1
|
|
},
|
|
"列表-样式":
|
|
{
|
|
"继承": 1,
|
|
"默认值": 1,
|
|
"列表-样式-类型": 1,
|
|
"列表-样式-位置": 1,
|
|
"列表-样式-图像": 1
|
|
},
|
|
"列表-样式-图像":
|
|
{
|
|
"继承": 1,
|
|
"地址": 1,
|
|
"无效": 1
|
|
},
|
|
"列表-样式-位置":
|
|
{
|
|
"内部": 1,
|
|
"外部": 1,
|
|
"继承": 1
|
|
},
|
|
"列表-样式-类型":
|
|
{
|
|
"无效": 1,
|
|
"实心圆": 1,
|
|
"空心圆": 1,
|
|
"实心方块": 1,
|
|
"小数": 1,
|
|
"数字十进制前置零": 1,
|
|
"小写罗马数字": 1,
|
|
"大写罗马数字": 1,
|
|
"小写希腊字母": 1,
|
|
"小写拉丁字母": 1,
|
|
"大写拉丁字母": 1,
|
|
"georgian": 1,
|
|
"小写英文字母": 1,
|
|
"大写英文字母": 1,
|
|
"希伯来编号": 1,
|
|
"亚美尼亚编号": 1,
|
|
"中文大写序号": 1,
|
|
"日文平假名字符": 1,
|
|
"日文片假名字符": 1,
|
|
"日文平假名序号": 1,
|
|
"日文片假名序号": 1
|
|
},
|
|
"外边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"下边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"左边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"右边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"上边距":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"自动": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"列数":
|
|
{
|
|
"数字": 1,
|
|
"自动": 1
|
|
},
|
|
"列-间隔":
|
|
{
|
|
"长度": 1,
|
|
"正常": 1
|
|
},
|
|
"列-规则": 1,
|
|
"列-规则-颜色":
|
|
{
|
|
"颜色": 1
|
|
},
|
|
"列-规则-样式":
|
|
{
|
|
"无效": 1,
|
|
"隐藏": 1,
|
|
"点线": 1,
|
|
"虚线": 1,
|
|
"双线": 1,
|
|
"实线": 1,
|
|
"凹槽": 1,
|
|
"垄线": 1,
|
|
"内嵌": 1,
|
|
"外凸": 1
|
|
},
|
|
"列-规则-宽度":
|
|
{
|
|
"细边框": 1,
|
|
"中等": 1,
|
|
"粗边框": 1,
|
|
"长度": 1
|
|
},
|
|
"列-数量":
|
|
{
|
|
"无效": 1,
|
|
"所有": 1
|
|
},
|
|
"列-宽度":
|
|
{
|
|
"长度": 1,
|
|
"自动": 1
|
|
},
|
|
"列": 1,
|
|
"底部":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"自动": 1,
|
|
"继承": 1
|
|
},
|
|
"清除浮动":
|
|
{
|
|
"左侧": 1,
|
|
"右侧": 1,
|
|
"全部清除": 1,
|
|
"无效": 1,
|
|
"继承": 1
|
|
},
|
|
"光标":
|
|
{
|
|
"默认": 1,
|
|
"指针箭头": 1,
|
|
"移动箭头": 1,
|
|
"文本": 1,
|
|
"等待光标": 1,
|
|
"问号箭头": 1,
|
|
"progress": 1,
|
|
"向上箭头": 1,
|
|
"东北箭头": 1,
|
|
"向右箭头": 1,
|
|
"东南箭头": 1,
|
|
"向下箭头": 1,
|
|
"西南箭头": 1,
|
|
"向左箭头": 1,
|
|
"西北箭头": 1,
|
|
"地址": 1,
|
|
"自动": 1,
|
|
"十字线": 1
|
|
},
|
|
"显示模式":
|
|
{
|
|
"无效": 1,
|
|
"块级元素": 1,
|
|
"内联元素": 1,
|
|
"内联块元素": 1,
|
|
"表格单元格元素": 1,
|
|
"列表项元素": 1,
|
|
"表格元素": 1,
|
|
"内联表格元素": 1,
|
|
"表格内容组元素": 1,
|
|
"表格头组元素": 1,
|
|
"表格尾组元素": 1,
|
|
"表格行元素": 1,
|
|
"表格格式列组元素": 1,
|
|
"表格格式列元素": 1,
|
|
"表格标题元素": 1,
|
|
"继承": 1,
|
|
"-谷歌内核-盒子": 1,
|
|
"弹性布局": 1
|
|
},
|
|
"浮动":
|
|
{
|
|
"左侧": 1,
|
|
"右侧": 1,
|
|
"无效": 1,
|
|
"继承": 1
|
|
},
|
|
"左侧":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"自动": 1,
|
|
"继承": 1
|
|
},
|
|
"溢出":
|
|
{
|
|
"隐藏": 1,
|
|
"可见": 1,
|
|
"自动": 1,
|
|
"滚动": 1,
|
|
"继承": 1
|
|
},
|
|
"定位":
|
|
{
|
|
"绝对定位": 1,
|
|
"相对定位": 1,
|
|
"固定": 1,
|
|
"静态": 1,
|
|
"粘性定位": 1,
|
|
"默认值": 1
|
|
},
|
|
"右侧":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"自动": 1,
|
|
"继承": 1
|
|
},
|
|
"顶部":
|
|
{
|
|
"px": 1,
|
|
"em": 1,
|
|
"%": 1,
|
|
"长度": 1,
|
|
"自动": 1,
|
|
"继承": 1
|
|
},
|
|
"可见性":
|
|
{
|
|
"隐藏": 1,
|
|
"可见": 1,
|
|
"折叠": 1,
|
|
"继承": 1
|
|
},
|
|
"堆叠顺序":
|
|
{
|
|
"自动": 1,
|
|
"数字": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-合并":
|
|
{
|
|
"折叠": 1,
|
|
"分离": 1,
|
|
"继承": 1
|
|
},
|
|
"边框-距离":
|
|
{
|
|
"继承": 1,
|
|
"长度": 1
|
|
},
|
|
"表格标题-位置":
|
|
{
|
|
"继承": 1,
|
|
"顶部": 1,
|
|
"底部": 1
|
|
},
|
|
"空-单元格":
|
|
{
|
|
"显示": 1,
|
|
"不显示": 1,
|
|
"继承": 1
|
|
},
|
|
"表格-布局":
|
|
{
|
|
"固定": 1,
|
|
"自动": 1,
|
|
"继承": 1
|
|
},
|
|
"文本颜色":
|
|
{
|
|
"颜色值-爱丽丝蓝": 1,
|
|
"颜色值-古董白": 1,
|
|
"颜色值-湖绿色": 1,
|
|
"颜色值-浅蓝色": 1,
|
|
"颜色值-蔚蓝色": 1,
|
|
"颜色值-米黄色": 1,
|
|
"颜色值-橘黄色": 1,
|
|
"颜色值-黑色": 1,
|
|
"颜色值-白杏色": 1,
|
|
"颜色值-蓝色": 1,
|
|
"颜色值-紫罗兰色": 1,
|
|
"颜色值-棕色": 1,
|
|
"颜色值-硬木色": 1,
|
|
"颜色值-军服蓝": 1,
|
|
"颜色值-黄绿色": 1,
|
|
"颜色值-巧克力色": 1,
|
|
"颜色值-珊瑚色": 1,
|
|
"颜色值-矢车菊蓝色": 1,
|
|
"颜色值-玉米色": 1,
|
|
"颜色值-绯红色": 1,
|
|
"颜色值-青色": 1,
|
|
"颜色值-深蓝色": 1,
|
|
"颜色值-深青色": 1,
|
|
"颜色值-暗金黄色": 1,
|
|
"颜色值-深灰色": 1,
|
|
"颜色值-深绿色": 1,
|
|
"颜色值-暗卡其色": 1,
|
|
"颜色值-深洋红色": 1,
|
|
"颜色值-暗橄榄绿": 1,
|
|
"颜色值-深橙色": 1,
|
|
"颜色值-暗兰花紫": 1,
|
|
"颜色值-深红色": 1,
|
|
"颜色值-暗肉色": 1,
|
|
"颜色值-暗海蓝色": 1,
|
|
"颜色值-暗灰蓝色": 1,
|
|
"颜色值-深石板灰": 1,
|
|
"颜色值-暗宝石绿": 1,
|
|
"颜色值-暗紫色": 1,
|
|
"颜色值-深粉红色": 1,
|
|
"颜色值-深天蓝色": 1,
|
|
"颜色值-暗灰色": 1,
|
|
"颜色值-闪兰色": 1,
|
|
"颜色值-砖红色": 1,
|
|
"颜色值-花白色": 1,
|
|
"颜色值-森林绿": 1,
|
|
"颜色值-紫红色": 1,
|
|
"颜色值-淡灰色": 1,
|
|
"颜色值-幽灵白": 1,
|
|
"颜色值-金色": 1,
|
|
"颜色值-金菊黄": 1,
|
|
"颜色值-灰色": 1,
|
|
"颜色值-绿色": 1,
|
|
"颜色值-绿黄色": 1,
|
|
"颜色值-蜜瓜色": 1,
|
|
"颜色值-艳粉色": 1,
|
|
"颜色值-印度红": 1,
|
|
"颜色值-靛蓝色": 1,
|
|
"颜色值-象牙色": 1,
|
|
"颜色值-卡其色": 1,
|
|
"颜色值-淡紫色": 1,
|
|
"颜色值-淡紫红": 1,
|
|
"颜色值-草绿色": 1,
|
|
"颜色值-柠檬绸色": 1,
|
|
"颜色值-淡蓝色": 1,
|
|
"颜色值-淡珊瑚色": 1,
|
|
"颜色值-浅青色": 1,
|
|
"颜色值-浅秋黄": 1,
|
|
"颜色值-浅灰色": 1,
|
|
"颜色值-浅绿色": 1,
|
|
"颜色值-浅粉色": 1,
|
|
"颜色值-浅肉色": 1,
|
|
"颜色值-浅海蓝色": 1,
|
|
"颜色值-浅天蓝色": 1,
|
|
"颜色值-浅石板灰": 1,
|
|
"颜色值-浅钢蓝色": 1,
|
|
"颜色值-浅黄色": 1,
|
|
"颜色值-青柠色": 1,
|
|
"颜色值-石灰绿": 1,
|
|
"颜色值-亚麻色": 1,
|
|
"颜色值-红紫色": 1,
|
|
"颜色值-褐红色": 1,
|
|
"颜色值-间绿色": 1,
|
|
"颜色值-中蓝色": 1,
|
|
"颜色值-中兰花紫": 1,
|
|
"颜色值-中紫色": 1,
|
|
"颜色值-间海蓝色": 1,
|
|
"颜色值-间暗蓝色": 1,
|
|
"颜色值-中春绿色": 1,
|
|
"颜色值-间绿宝石色": 1,
|
|
"颜色值-间紫罗兰色": 1,
|
|
"颜色值-中灰蓝色": 1,
|
|
"颜色值-薄荷色": 1,
|
|
"颜色值-浅玫瑰色": 1,
|
|
"颜色值-鹿皮色": 1,
|
|
"颜色值-纳瓦白": 1,
|
|
"颜色值-海军蓝": 1,
|
|
"颜色值-老花色": 1,
|
|
"颜色值-橄榄绿": 1,
|
|
"颜色值-褐绿色": 1,
|
|
"颜色值-橙色": 1,
|
|
"颜色值-橙红色": 1,
|
|
"颜色值-兰花紫": 1,
|
|
"颜色值-苍麒麟色": 1,
|
|
"颜色值-苍绿色": 1,
|
|
"颜色值-苍宝石绿": 1,
|
|
"颜色值-苍紫罗蓝色": 1,
|
|
"颜色值-番木色": 1,
|
|
"颜色值-桃色": 1,
|
|
"颜色值-秘鲁色": 1,
|
|
"颜色值-粉色": 1,
|
|
"颜色值-李子色": 1,
|
|
"颜色值-火药蓝": 1,
|
|
"颜色值-紫色": 1,
|
|
"颜色值-红色": 1,
|
|
"颜色值-玫瑰棕色": 1,
|
|
"颜色值-宝蓝色": 1,
|
|
"颜色值-马鞍棕色": 1,
|
|
"颜色值-鲑鱼肉色": 1,
|
|
"颜色值-沙棕色": 1,
|
|
"颜色值-海洋绿": 1,
|
|
"颜色值-贝壳白": 1,
|
|
"颜色值-黄土赭色": 1,
|
|
"颜色值-银白色": 1,
|
|
"颜色值-天蓝色": 1,
|
|
"颜色值-板岩蓝色": 1,
|
|
"颜色值-灰石色": 1,
|
|
"颜色值-雪色": 1,
|
|
"颜色值-春绿色": 1,
|
|
"颜色值-钢蓝色": 1,
|
|
"颜色值-棕黄色": 1,
|
|
"颜色值-水鸭色": 1,
|
|
"颜色值-蓟色": 1,
|
|
"颜色值-番茄色": 1,
|
|
"颜色值-绿松石色": 1,
|
|
"颜色值-蓝紫色": 1,
|
|
"颜色值-小麦色": 1,
|
|
"颜色值-白色": 1,
|
|
"颜色值-烟白色": 1,
|
|
"颜色值-黄色": 1,
|
|
"颜色值-嫩绿色": 1,
|
|
"颜色值-当前文本颜色": 1,
|
|
"颜色通道": 1
|
|
},
|
|
"文本方向":
|
|
{
|
|
"从左到右": 1,
|
|
"从右到左": 1,
|
|
"继承": 1
|
|
},
|
|
"字符间距":
|
|
{
|
|
"normal": 1
|
|
},
|
|
"行高":
|
|
{
|
|
"正常": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"文本-对齐":
|
|
{
|
|
"左侧": 1,
|
|
"右侧": 1,
|
|
"居中": 1,
|
|
"两端对齐": 1
|
|
},
|
|
"文本-装饰":
|
|
{
|
|
"无效": 1,
|
|
"下划线": 1,
|
|
"删除线": 1,
|
|
"blink": 1
|
|
},
|
|
"文本-缩进":
|
|
{
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"文本-大小写":
|
|
{
|
|
"首字母大写": 1,
|
|
"转大写": 1,
|
|
"转小写": 1,
|
|
"无效": 1,
|
|
"继承": 1
|
|
},
|
|
"垂直-对齐":
|
|
{
|
|
"顶部": 1,
|
|
"底部": 1,
|
|
"基线对齐": 1,
|
|
"下标对齐": 1,
|
|
"上标对齐": 1,
|
|
"文本顶端对齐": 1,
|
|
"文本底部对齐": 1,
|
|
"中部对齐": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"空格":
|
|
{
|
|
"不换行": 1,
|
|
"正常": 1,
|
|
"保留": 1,
|
|
"保留换行符": 1,
|
|
"保留-换行": 1,
|
|
"继承": 1
|
|
},
|
|
"单词-间距":
|
|
{
|
|
"正常": 1,
|
|
"长度": 1,
|
|
"继承": 1
|
|
},
|
|
"文本-尾行对齐": 1,
|
|
"文本-溢出":
|
|
{
|
|
"ellipsis-word": 1,
|
|
"裁剪": 1,
|
|
"省略号": 1,
|
|
"字符串": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"文本-阴影":
|
|
{
|
|
"$02px 2px 2px #777": 1,
|
|
"水平阴影位置": 1,
|
|
"垂直阴影位置": 1,
|
|
"模糊距离": 1,
|
|
"颜色": 1
|
|
},
|
|
"换行规则":
|
|
{
|
|
"正常": 1,
|
|
"断行": 1,
|
|
"符号断行": 1
|
|
},
|
|
"自动换行":
|
|
{
|
|
"正常": 1,
|
|
"字内换行": 1
|
|
},
|
|
"转换":
|
|
{
|
|
"旋转($00deg)": 1,
|
|
"扭曲($00deg)": 1,
|
|
"无效": 1,
|
|
"矩阵": 1,
|
|
"矩阵3d": 1,
|
|
"平移": 1,
|
|
"平移x轴": 1,
|
|
"平移y轴": 1,
|
|
"缩放": 1,
|
|
"缩放x轴": 1,
|
|
"缩放y轴": 1,
|
|
"扭曲x轴": 1,
|
|
"扭曲y轴": 1,
|
|
"平移3d": 1,
|
|
"平移z轴": 1,
|
|
"缩放3d": 1,
|
|
"缩放z轴": 1,
|
|
"旋转3d": 1,
|
|
"旋转x轴": 1,
|
|
"旋转y轴": 1,
|
|
"旋转z轴": 1,
|
|
"透视视图": 1
|
|
},
|
|
"转换-基点": 1,
|
|
"转换-样式": 1,
|
|
"透视视图": 1,
|
|
"透视视图-位置": 1,
|
|
"背面-可见":
|
|
{
|
|
"可见": 1,
|
|
"隐藏": 1
|
|
},
|
|
"过渡": 1,
|
|
"过渡-属性":
|
|
{
|
|
"无效": 1,
|
|
"所有": 1,
|
|
"属性": 1
|
|
},
|
|
"过渡-持续时间":
|
|
{
|
|
"时间": 1
|
|
},
|
|
"过渡-速度曲线":
|
|
{
|
|
"匀速": 1,
|
|
"缓动": 1,
|
|
"缓开始": 1,
|
|
"缓结束": 1,
|
|
"缓开始缓结束": 1,
|
|
"贝塞尔曲线n,n,n,n": 1
|
|
},
|
|
"过渡-延迟":
|
|
{
|
|
"时间": 1
|
|
},
|
|
"网格": 1,
|
|
"盒子模型":
|
|
{
|
|
"内容框": 1,
|
|
"边界框": 1
|
|
},
|
|
"对象-适应":
|
|
{
|
|
"填充": 1,
|
|
"比例缩放图像": 1,
|
|
"宽高覆盖缩放": 1,
|
|
"无效": 1,
|
|
"比例缩小": 1,
|
|
"正常": 1,
|
|
"继承": 1
|
|
},
|
|
"网格模板列": 1,
|
|
"网格模板行": 1,
|
|
"网格模板区域": 1,
|
|
"网格行": 1,
|
|
"网格列": 1,
|
|
"网格间距": 1,
|
|
"鼠标移入": 1,
|
|
"元素后": 1,
|
|
"提示信息": 1,
|
|
"计算": 1,
|
|
"用户-选择":
|
|
{
|
|
"无效": 1,
|
|
"自动": 1,
|
|
"文本": 1,
|
|
"所有": 1
|
|
},
|
|
"鼠标-事件":
|
|
{
|
|
"自动": 1,
|
|
"无效": 1,
|
|
"默认值": 1,
|
|
"继承": 1
|
|
},
|
|
"获得焦点": 1,
|
|
"元素前": 1,
|
|
"子元素": 1,
|
|
"背景-模糊":
|
|
{
|
|
"无效": 1,
|
|
"模糊距离": 1
|
|
},
|
|
"填充": 1,
|
|
"默认链接": 1,
|
|
"已访问链接": 1,
|
|
"选中链接": 1,
|
|
"-谷歌内核-行数限制": 1,
|
|
"-谷歌内核-盒子排列":
|
|
{
|
|
"垂直排列": 1
|
|
},
|
|
"选中": 1,
|
|
"根元素": 1,
|
|
"原生外观":
|
|
{
|
|
"无效": 1
|
|
},
|
|
"进度条伪类": 1,
|
|
"进度条进度": 1,
|
|
"动画-结束状态":
|
|
{
|
|
"无效": 1,
|
|
"结束状态": 1,
|
|
"起始状态": 1,
|
|
"全部清除": 1
|
|
},
|
|
"计数器重置":
|
|
{
|
|
"无效": 1
|
|
},
|
|
"计数器增加":
|
|
{
|
|
"无效": 1
|
|
},
|
|
"计数器设置":
|
|
{
|
|
"无效": 1
|
|
}
|
|
};
|
|
|
|
var CssCompletions = function () {
|
|
|
|
};
|
|
|
|
(function () {
|
|
|
|
this.completionsDefined = false;
|
|
|
|
this.defineCompletions = function () {
|
|
if (document) {
|
|
var style = document.createElement('c').style;
|
|
|
|
for (var i in style) {
|
|
if (typeof style[i] !== 'string')
|
|
continue;
|
|
|
|
var name = i.replace(/[A-Z]/g, function (x) {
|
|
return '-' + x.toLowerCase();
|
|
});
|
|
|
|
if (!propertyMap.hasOwnProperty(name))
|
|
propertyMap[name] = 1;
|
|
}
|
|
}
|
|
|
|
this.completionsDefined = true;
|
|
};
|
|
this.getCompletions = function (state, session, pos, prefix) {
|
|
window.keyWordState = null;
|
|
if (!this.completionsDefined) {
|
|
this.defineCompletions();
|
|
}
|
|
var line = session.getLine(pos.row)
|
|
var prefixLine = line.substr(0, pos.column);
|
|
if (['ruleset', 'rulesetStyle'].includes(state) || session.$mode.$id == "ace/mode/scss") {
|
|
//console.log(prefixLine, /\{/.test(prefixLine));
|
|
if (state === 'rulesetStyle') {
|
|
prefixLine = prefixLine.match(/(style|行内样式)=[\S\s]+/g);
|
|
} else if (/\{/.test(line) && !/\{/.test(prefixLine)) {
|
|
return this.getTagCompletions(state, session, pos, prefix);
|
|
};
|
|
if (/[\w\u4e00-\u9fa5\-]:[^;]+$/.test(prefixLine)) {
|
|
window.keyWordState = "attr";
|
|
return this.getPropertyValueCompletions(state, session, pos, prefix);
|
|
} else {
|
|
window.keyWordState = "label";
|
|
return this.getPropertyCompletions(state, session, pos, prefix);
|
|
}
|
|
} else if (state === 'start' && /\{/.test(prefixLine) && !/\}/.test(prefixLine)) {
|
|
var lines = prefixLine.split(';');
|
|
prefixLine = lines[lines.length - 1];
|
|
if (/[\w\u4e00-\u9fa5\-]:[^;]+$/.test(prefixLine)) {
|
|
window.keyWordState = "attr";
|
|
return this.getPropertyValueCompletions(state, session, pos, prefix);
|
|
} else {
|
|
window.keyWordState = "label";
|
|
return this.getPropertyCompletions(state, session, pos, prefix);
|
|
}
|
|
}
|
|
if (/\}/.test(prefixLine)) {
|
|
return [];
|
|
}
|
|
return this.getTagCompletions(state, session, pos, prefix);
|
|
// return [];
|
|
};
|
|
/*
|
|
this.getCompletions = function (state, session, pos, prefix) {
|
|
window.keyWordState = null;
|
|
if (!this.completionsDefined) {
|
|
this.defineCompletions();
|
|
}
|
|
if (['ruleset', 'rulesetStyle'].includes(state) || session.$mode.$id == "ace/mode/scss") {
|
|
var line = session.getLine(pos.row)
|
|
var prefixLine = line.substr(0, pos.column);
|
|
if (state === 'rulesetStyle') {
|
|
prefixLine = prefixLine.match(/(style|行内样式)=[\S\s]+/g);
|
|
}
|
|
if (/\{/.test(line) && !/\{/.test(prefixLine)) {
|
|
return this.getTagCompletions(state, session, pos, prefix);
|
|
};
|
|
if (/[\w\u4e00-\u9fa5\-]:[^;]+$/.test(prefixLine)) {
|
|
// /([\w\-]+):[^:]*$/.test(line);
|
|
window.keyWordState = "attr";
|
|
return this.getPropertyValueCompletions(state, session, pos, prefix);
|
|
} else {
|
|
window.keyWordState = "label";
|
|
return this.getPropertyCompletions(state, session, pos, prefix);
|
|
}
|
|
}
|
|
return this.getTagCompletions(state, session, pos, prefix);
|
|
|
|
// return [];
|
|
};
|
|
*/
|
|
// 弹出标签和伪类
|
|
this.getTagCompletions = function (state, session, pos, prefix) {
|
|
let tags = require('ace/snippets').snippetManager.snippetMap.html;
|
|
let tagsArray = [];
|
|
if (/[\S\s]+?:/.test(prefix)) {
|
|
// 判断伪类
|
|
let css_snippetMap = require('ace/snippets').snippetManager.snippetMap.css;
|
|
prefix = prefix.replace(/:[\S\s]+/, ":");
|
|
css_snippetMap.forEach(v => {
|
|
if (v.p_name && v.p_name == "伪类") {
|
|
let captions = v.name;
|
|
if (captions) {
|
|
captions = captions.split("|").map(v => {
|
|
return prefix + v;
|
|
}).join("|");
|
|
}
|
|
tagsArray.push({
|
|
caption: captions,
|
|
title: v.title,
|
|
snippet: prefix + v.title,
|
|
meta: "class",
|
|
iconClass: " Ace-Tern-completion Ace-Tern-completion-class",
|
|
score: 1000000,
|
|
values: false
|
|
});
|
|
}
|
|
})
|
|
} else if (/^[\w\u4e00-\u9fa5]/.test(prefix)) {
|
|
// 标签
|
|
tags.forEach(function (tag) {
|
|
if (tag && tag["title"] && /<[\S\s]+>/.test(tag["title"])) {
|
|
let tagName = tag.title.replace(/<|>/g, "");
|
|
tagsArray.push({
|
|
caption: tag.name,
|
|
title: tagName,
|
|
snippet: tagName,
|
|
meta: "class",
|
|
iconClass: " Ace-Tern-completion Ace-Tern-completion-class",
|
|
score: 1000000,
|
|
values: false
|
|
});
|
|
};
|
|
})
|
|
}
|
|
return tagsArray;
|
|
}
|
|
|
|
this.getPropertyCompletions = function (state, session, pos, prefix) {
|
|
let css_snippetMap = require('ace/snippets').snippetManager.snippetMap?.css.filter(v => v.meta && v.meta === "label") || [];
|
|
var properties = [];
|
|
var properties2 = {};
|
|
if (state === "rulesetStyle" || state === "ruleset" || state === "start") {
|
|
properties = Object.keys(propertyMap);
|
|
css_snippetMap && css_snippetMap.forEach((v) => {
|
|
properties2[v.title] = JSON.parse(JSON.stringify(v));
|
|
properties.push(v);
|
|
});
|
|
}
|
|
return properties.map(function (property) {
|
|
let caption = property;
|
|
if (typeof property === "object") {
|
|
property = property.title;
|
|
}
|
|
let values = false;
|
|
if (property in propertyMap && typeof propertyMap[property] === "object") {
|
|
values = true
|
|
}
|
|
if (properties2[property]) {
|
|
properties2[property]["caption"] = properties2[property]["name"];
|
|
properties2[property]["snippet"] = properties2[property]["content"];
|
|
properties2[property]["meta"] = "attr";
|
|
properties2[property]["iconClass"] = " Ace-Tern-completion Ace-Tern-completion-attr";
|
|
properties2[property]["score"] = 1000000;
|
|
properties2[property]["values"] = values;
|
|
return properties2[property];
|
|
}
|
|
if (/[\u4E00-\u9FA5]/g.test(caption)) {
|
|
caption = property + '|' + pinyin_transliteration(property);
|
|
}
|
|
return {
|
|
caption: caption,
|
|
title: property,
|
|
snippet: property + ': $0;',
|
|
meta: "attr",
|
|
iconClass: " Ace-Tern-completion Ace-Tern-completion-attr",
|
|
score: 1000000,
|
|
values: values
|
|
};
|
|
});
|
|
};
|
|
|
|
this.getPropertyValueCompletions = function (state, session, pos, prefix) {
|
|
let css_snippetMap = require('ace/snippets').snippetManager.snippetMap.css;
|
|
var line = session.getLine(pos.row).substr(0, pos.column);
|
|
var property = (/([\w\u4e00-\u9fa5\-]+):[^:]*$/.exec(line) || {})[1];
|
|
if (!property)
|
|
return [];
|
|
var values = [];
|
|
if (property in propertyMap && typeof propertyMap[property] === "object") {
|
|
values = Object.keys(propertyMap[property]);
|
|
}
|
|
let values2 = {};
|
|
css_snippetMap && css_snippetMap.forEach((v) => {
|
|
if (v.p_name === property) {
|
|
values2[v.title] = JSON.parse(JSON.stringify(v));
|
|
if (state === "rulesetStyle" || state === "ruleset" || state === "start") {
|
|
values.push(v);
|
|
}
|
|
}
|
|
});
|
|
values = values.filter(v => {
|
|
return !values2[v]
|
|
});
|
|
|
|
window.attrValueParentName = property;
|
|
return values.map(function (value) {
|
|
if (typeof value === "object") {
|
|
value.meta = "attr";
|
|
value.score = 1000000;
|
|
return {
|
|
title: value.title,
|
|
caption: value.name,
|
|
p_snippet: property,
|
|
snippet: value.content,
|
|
explain: value.explain,
|
|
description: value.description,
|
|
scope: "css",
|
|
meta: "attr",
|
|
iconClass: " Ace-Tern-completion Ace-Tern-completion-value",
|
|
score: 1000000
|
|
};
|
|
}
|
|
let caption = value;
|
|
if (/[\u4E00-\u9FA5]/g.test(caption)) {
|
|
caption = value + '|' + pinyin_transliteration(value);
|
|
}
|
|
return {
|
|
caption: caption,
|
|
snippet: value,
|
|
p_snippet: property,
|
|
meta: "attr",
|
|
iconClass: " Ace-Tern-completion Ace-Tern-completion-attr",
|
|
score: 1000000
|
|
};
|
|
});
|
|
};
|
|
|
|
}).call(CssCompletions.prototype);
|
|
|
|
exports.CssCompletions = CssCompletions;
|
|
});
|
|
|
|
ace.define("ace/mode/behaviour/css", ["require", "exports", "module", "ace/lib/oop", "ace/mode/behaviour", "ace/mode/behaviour/cstyle", "ace/token_iterator"], function (require, exports, module) {
|
|
"use strict";
|
|
|
|
var oop = require("../../lib/oop");
|
|
var Behaviour = require("../behaviour").Behaviour;
|
|
var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
|
|
var TokenIterator = require("../../token_iterator").TokenIterator;
|
|
|
|
var CssBehaviour = function () {
|
|
|
|
this.inherit(CstyleBehaviour);
|
|
|
|
this.add("colon", "insertion", function (state, action, editor, session, text) {
|
|
if (text === ':' && editor.selection.isEmpty()) {
|
|
var cursor = editor.getCursorPosition();
|
|
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
|
var token = iterator.getCurrentToken();
|
|
if (token && token.value.match(/\s+/)) {
|
|
token = iterator.stepBackward();
|
|
}
|
|
if (token && token.type === 'support.type') {
|
|
var line = session.doc.getLine(cursor.row);
|
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
if (rightChar === ':') {
|
|
return {
|
|
text: '',
|
|
selection: [1, 1]
|
|
};
|
|
}
|
|
if (/^(\s+[^;]|\s*$)/.test(line.substring(cursor.column))) {
|
|
return {
|
|
text: ':;',
|
|
selection: [1, 1]
|
|
};
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
this.add("colon", "deletion", function (state, action, editor, session, range) {
|
|
var selected = session.doc.getTextRange(range);
|
|
if (!range.isMultiLine() && selected === ':') {
|
|
var cursor = editor.getCursorPosition();
|
|
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
|
var token = iterator.getCurrentToken();
|
|
if (token && token.value.match(/\s+/)) {
|
|
token = iterator.stepBackward();
|
|
}
|
|
if (token && token.type === 'support.type') {
|
|
var line = session.doc.getLine(range.start.row);
|
|
var rightChar = line.substring(range.end.column, range.end.column + 1);
|
|
if (rightChar === ';') {
|
|
range.end.column++;
|
|
return range;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
this.add("semicolon", "insertion", function (state, action, editor, session, text) {
|
|
if (text === ';' && editor.selection.isEmpty()) {
|
|
var cursor = editor.getCursorPosition();
|
|
var line = session.doc.getLine(cursor.row);
|
|
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
|
if (rightChar === ';') {
|
|
return {
|
|
text: '',
|
|
selection: [1, 1]
|
|
};
|
|
}
|
|
}
|
|
});
|
|
|
|
this.add("!important", "insertion", function (state, action, editor, session, text) {
|
|
if (text === '!' && editor.selection.isEmpty()) {
|
|
var cursor = editor.getCursorPosition();
|
|
var line = session.doc.getLine(cursor.row);
|
|
|
|
if (/^\s*(;|}|$)/.test(line.substring(cursor.column))) {
|
|
return {
|
|
text: '!important',
|
|
selection: [10, 10]
|
|
};
|
|
}
|
|
}
|
|
});
|
|
|
|
};
|
|
oop.inherits(CssBehaviour, CstyleBehaviour);
|
|
|
|
exports.CssBehaviour = CssBehaviour;
|
|
});
|
|
|
|
ace.define("ace/mode/folding/cstyle", ["require", "exports", "module", "ace/lib/oop", "ace/range", "ace/mode/folding/fold_mode"], function (require, exports, module) {
|
|
"use strict";
|
|
|
|
var oop = require("../../lib/oop");
|
|
var Range = require("../../range").Range;
|
|
var BaseFoldMode = require("./fold_mode").FoldMode;
|
|
|
|
var FoldMode = exports.FoldMode = function (commentRegex) {
|
|
if (commentRegex) {
|
|
this.foldingStartMarker = new RegExp(
|
|
this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
|
|
);
|
|
this.foldingStopMarker = new RegExp(
|
|
this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
|
|
);
|
|
}
|
|
};
|
|
oop.inherits(FoldMode, BaseFoldMode);
|
|
|
|
(function () {
|
|
|
|
this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
|
|
this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
|
|
this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
|
|
this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
|
|
this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
|
|
this._getFoldWidgetBase = this.getFoldWidget;
|
|
this.getFoldWidget = function (session, foldStyle, row) {
|
|
var line = session.getLine(row);
|
|
|
|
if (this.singleLineBlockCommentRe.test(line)) {
|
|
if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
|
|
return "";
|
|
}
|
|
|
|
var fw = this._getFoldWidgetBase(session, foldStyle, row);
|
|
|
|
if (!fw && this.startRegionRe.test(line))
|
|
return "start"; // lineCommentRegionStart
|
|
|
|
return fw;
|
|
};
|
|
|
|
this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
|
|
var line = session.getLine(row);
|
|
|
|
if (this.startRegionRe.test(line))
|
|
return this.getCommentRegionBlock(session, line, row);
|
|
|
|
var match = line.match(this.foldingStartMarker);
|
|
if (match) {
|
|
var i = match.index;
|
|
|
|
if (match[1])
|
|
return this.openingBracketBlock(session, match[1], row, i);
|
|
|
|
var range = session.getCommentFoldRange(row, i + match[0].length, 1);
|
|
|
|
if (range && !range.isMultiLine()) {
|
|
if (forceMultiline) {
|
|
range = this.getSectionRange(session, row);
|
|
} else if (foldStyle != "all")
|
|
range = null;
|
|
}
|
|
|
|
return range;
|
|
}
|
|
|
|
if (foldStyle === "markbegin")
|
|
return;
|
|
|
|
var match = line.match(this.foldingStopMarker);
|
|
if (match) {
|
|
var i = match.index + match[0].length;
|
|
|
|
if (match[1])
|
|
return this.closingBracketBlock(session, match[1], row, i);
|
|
|
|
return session.getCommentFoldRange(row, i, -1);
|
|
}
|
|
};
|
|
|
|
this.getSectionRange = function (session, row) {
|
|
var line = session.getLine(row);
|
|
var startIndent = line.search(/\S/);
|
|
var startRow = row;
|
|
var startColumn = line.length;
|
|
row = row + 1;
|
|
var endRow = row;
|
|
var maxRow = session.getLength();
|
|
while (++row < maxRow) {
|
|
line = session.getLine(row);
|
|
var indent = line.search(/\S/);
|
|
if (indent === -1)
|
|
continue;
|
|
if (startIndent > indent)
|
|
break;
|
|
var subRange = this.getFoldWidgetRange(session, "all", row);
|
|
|
|
if (subRange) {
|
|
if (subRange.start.row <= startRow) {
|
|
break;
|
|
} else if (subRange.isMultiLine()) {
|
|
row = subRange.end.row;
|
|
} else if (startIndent == indent) {
|
|
break;
|
|
}
|
|
}
|
|
endRow = row;
|
|
}
|
|
|
|
return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
|
|
};
|
|
this.getCommentRegionBlock = function (session, line, row) {
|
|
var startColumn = line.search(/\s*$/);
|
|
var maxRow = session.getLength();
|
|
var startRow = row;
|
|
|
|
var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
|
|
var depth = 1;
|
|
while (++row < maxRow) {
|
|
line = session.getLine(row);
|
|
var m = re.exec(line);
|
|
if (!m) continue;
|
|
if (m[1]) depth--;
|
|
else depth++;
|
|
|
|
if (!depth) break;
|
|
}
|
|
|
|
var endRow = row;
|
|
if (endRow > startRow) {
|
|
return new Range(startRow, startColumn, endRow, line.length);
|
|
}
|
|
};
|
|
|
|
}).call(FoldMode.prototype);
|
|
|
|
});
|
|
|
|
ace.define("ace/mode/css", ["require", "exports", "module", "ace/lib/oop", "ace/mode/text", "ace/mode/css_highlight_rules", "ace/mode/matching_brace_outdent", "ace/worker/worker_client", "ace/mode/css_completions", "ace/mode/behaviour/css", "ace/mode/folding/cstyle"], function (require, exports, module) {
|
|
"use strict";
|
|
|
|
var oop = require("../lib/oop");
|
|
var TextMode = require("./text").Mode;
|
|
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
|
|
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
|
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
|
var CssCompletions = require("./css_completions").CssCompletions;
|
|
var CssBehaviour = require("./behaviour/css").CssBehaviour;
|
|
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
|
|
|
var Mode = function () {
|
|
this.HighlightRules = CssHighlightRules;
|
|
this.$outdent = new MatchingBraceOutdent();
|
|
this.$behaviour = new CssBehaviour();
|
|
this.$completer = new CssCompletions();
|
|
this.foldingRules = new CStyleFoldMode();
|
|
};
|
|
oop.inherits(Mode, TextMode);
|
|
|
|
(function () {
|
|
|
|
this.foldingRules = "cStyle";
|
|
this.blockComment = {
|
|
start: "/*",
|
|
end: "*/"
|
|
};
|
|
|
|
this.getNextLineIndent = function (state, line, tab) {
|
|
var indent = this.$getIndent(line);
|
|
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
|
if (tokens.length && tokens[tokens.length - 1].type == "comment") {
|
|
return indent;
|
|
}
|
|
|
|
var match = line.match(/^.*\{\s*$/);
|
|
if (match) {
|
|
indent += tab;
|
|
}
|
|
return indent;
|
|
};
|
|
|
|
this.checkOutdent = function (state, line, input) {
|
|
return this.$outdent.checkOutdent(line, input);
|
|
};
|
|
|
|
this.autoOutdent = function (state, doc, row) {
|
|
this.$outdent.autoOutdent(doc, row);
|
|
};
|
|
|
|
this.getCompletions = function (state, session, pos, prefix) {
|
|
return this.$completer.getCompletions(state, session, pos, prefix);
|
|
};
|
|
|
|
this.createWorker = function (session) {
|
|
// var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
|
|
// worker.attachToDocument(session.getDocument());
|
|
|
|
// worker.on("annotate", function (e) {
|
|
// // session.setAnnotations(e.data);
|
|
// });
|
|
|
|
// worker.on("terminate", function () {
|
|
// session.clearAnnotations();
|
|
// });
|
|
|
|
// return worker;
|
|
};
|
|
|
|
this.$id = "ace/mode/css";
|
|
this.snippetFileId = "ace/snippets/css";
|
|
}).call(Mode.prototype);
|
|
|
|
exports.Mode = Mode;
|
|
|
|
});
|
|
(function () {
|
|
ace.require(["ace/mode/css"], function (m) {
|
|
if (typeof module == "object" && typeof exports == "object" && module) {
|
|
module.exports = m;
|
|
}
|
|
});
|
|
})(); |