PluginProbe ʕ •ᴥ•ʔ
SiteOrigin CSS / trunk
SiteOrigin CSS vtrunk
1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.10 1.5.11 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 trunk 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2.0
so-css / lib / codemirror / mode / sass / test.js
so-css / lib / codemirror / mode / sass Last commit date
index.html 9 years ago sass.js 9 years ago sass.min.js 1 year ago test.js 9 years ago test.min.js 6 years ago
test.js
123 lines
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 // Distributed under an MIT license: http://codemirror.net/LICENSE
3
4 (function() {
5 var mode = CodeMirror.getMode({indentUnit: 2}, "sass");
6 // Since Sass has an indent-based syntax, is almost impossible to test correctly the indentation in all cases.
7 // So disable it for tests.
8 mode.indent = undefined;
9 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
10
11 MT("comment",
12 "[comment // this is a comment]",
13 "[comment also this is a comment]")
14
15 MT("comment_multiline",
16 "[comment /* this is a comment]",
17 "[comment also this is a comment]")
18
19 MT("variable",
20 "[variable-2 $page-width][operator :] [number 800][unit px]")
21
22 MT("global_attributes",
23 "[tag body]",
24 " [property font][operator :]",
25 " [property family][operator :] [atom sans-serif]",
26 " [property size][operator :] [number 30][unit em]",
27 " [property weight][operator :] [atom bold]")
28
29 MT("scoped_styles",
30 "[builtin #contents]",
31 " [property width][operator :] [variable-2 $page-width]",
32 " [builtin #sidebar]",
33 " [property float][operator :] [atom right]",
34 " [property width][operator :] [variable-2 $sidebar-width]",
35 " [builtin #main]",
36 " [property width][operator :] [variable-2 $page-width] [operator -] [variable-2 $sidebar-width]",
37 " [property background][operator :] [variable-2 $primary-color]",
38 " [tag h2]",
39 " [property color][operator :] [keyword blue]")
40
41 // Sass allows to write the colon as first char instead of a "separator".
42 // :color red
43 // Not supported
44 // MT("property_syntax",
45 // "[qualifier .foo]",
46 // " [operator :][property color] [keyword red]")
47
48 MT("import",
49 "[def @import] [string \"sass/variables\"]",
50 // Probably it should parsed as above: as a string even without the " or '
51 // "[def @import] [string sass/baz]"
52 "[def @import] [tag sass][operator /][tag baz]")
53
54 MT("def",
55 "[def @if] [variable-2 $foo] [def @else]")
56
57 MT("tag_on_more_lines",
58 "[tag td],",
59 "[tag th]",
60 " [property font-family][operator :] [string \"Arial\"], [atom serif]")
61
62 MT("important",
63 "[qualifier .foo]",
64 " [property text-decoration][operator :] [atom none] [keyword !important]",
65 "[tag h1]",
66 " [property font-size][operator :] [number 2.5][unit em]")
67
68 MT("selector",
69 // SCSS doesn't highlight the :
70 // "[tag h1]:[variable-3 before],",
71 // "[tag h2]:[variable-3 before]",
72 "[tag h1][variable-3 :before],",
73 "[tag h2][variable-3 :before]",
74 " [property content][operator :] [string \"::\"]")
75
76 MT("definition_mixin_equal",
77 "[variable-2 $defined-bs-type][operator :] [atom border-box] [keyword !default]",
78 "[meta =bs][operator (][variable-2 $bs-type][operator :] [variable-2 $defined-bs-type][operator )]",
79 " [meta -webkit-][property box-sizing][operator :] [variable-2 $bs-type]",
80 " [property box-sizing][operator :] [variable-2 $bs-type]")
81
82 MT("definition_mixin_with_space",
83 "[variable-2 $defined-bs-type][operator :] [atom border-box] [keyword !default]",
84 "[def @mixin] [tag bs][operator (][variable-2 $bs-type][operator :] [variable-2 $defined-bs-type][operator )] ",
85 " [meta -moz-][property box-sizing][operator :] [variable-2 $bs-type]",
86 " [property box-sizing][operator :] [variable-2 $bs-type]")
87
88 MT("numbers_start_dot_include_plus",
89 // The % is not highlighted correctly
90 // "[meta =button-links][operator (][variable-2 $button-base][operator :] [atom darken][operator (][variable-2 $color11], [number 10][unit %][operator )][operator )]",
91 "[meta =button-links][operator (][variable-2 $button-base][operator :] [atom darken][operator (][variable-2 $color11], [number 10][operator %))]",
92 " [property padding][operator :] [number .3][unit em] [number .6][unit em]",
93 " [variable-3 +border-radius][operator (][number 8][unit px][operator )]",
94 " [property background-color][operator :] [variable-2 $button-base]")
95
96 MT("include",
97 "[qualifier .bar]",
98 " [def @include] [tag border-radius][operator (][number 8][unit px][operator )]")
99
100 MT("reference_parent",
101 "[qualifier .col]",
102 " [property clear][operator :] [atom both]",
103 // SCSS doesn't highlight the :
104 // " &:[variable-3 after]",
105 " &[variable-3 :after]",
106 " [property content][operator :] [string '']",
107 " [property clear][operator :] [atom both]")
108
109 MT("reference_parent_with_spaces",
110 "[tag section]",
111 " [property border-left][operator :] [number 20][unit px] [atom transparent] [atom solid] ",
112 " &[qualifier .section3]",
113 " [qualifier .title]",
114 " [property color][operator :] [keyword white] ",
115 " [qualifier .vermas]",
116 " [property display][operator :] [atom none]")
117
118 MT("font_face",
119 "[def @font-face]",
120 " [property font-family][operator :] [string 'icomoon']",
121 " [property src][operator :] [atom url][operator (][string fonts/icomoon.ttf][operator )]")
122 })();
123