// CodeMirror, copyright (c) by Marijn Haverbeke and others // Distributed under an MIT license: https://codemirror.net/LICENSE ;(function () { var mode = CodeMirror.getMode({ tabSize: 4, indentUnit: 2 }, 'haml') function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)) } // Requires at least one media query MT('elementName', '[tag %h1] Hey There') MT('oneElementPerLine', '[tag %h1] Hey There %h2') MT('idSelector', '[tag %h1][attribute #test] Hey There') MT('classSelector', '[tag %h1][attribute .hello] Hey There') MT('docType', '[tag !!! XML]') MT('comment', '[comment / Hello WORLD]') MT('notComment', '[tag %h1] This is not a / comment ') MT('attributes', '[tag %a]([variable title][operator =][string "test"]){[atom :title] [operator =>] [string "test"]}') MT('htmlCode', '[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket ]') MT('rubyBlock', '[operator =][variable-2 @item]') MT('selectorRubyBlock', '[tag %a.selector=] [variable-2 @item]') MT('nestedRubyBlock', '[tag %a]', ' [operator =][variable puts] [string "test"]') MT('multilinePlaintext', '[tag %p]', ' Hello,', ' World') MT( 'multilineRuby', '[tag %p]', ' [comment -# this is a comment]', ' [comment and this is a comment too]', ' Date/Time', ' [operator -] [variable now] [operator =] [tag DateTime][operator .][property now]', ' [tag %strong=] [variable now]', ' [operator -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string "December 31, 2006"])', ' [operator =][string "Happy"]', ' [operator =][string "Belated"]', ' [operator =][string "Birthday"]' ) MT('multilineComment', '[comment /]', ' [comment Multiline]', ' [comment Comment]') MT('hamlComment', '[comment -# this is a comment]') MT('multilineHamlComment', '[comment -# this is a comment]', ' [comment and this is a comment too]') MT('multilineHTMLComment', '[comment ]') MT('hamlAfterRubyTag', '[attribute .block]', ' [tag %strong=] [variable now]', ' [attribute .test]', ' [operator =][variable now]', ' [attribute .right]') MT('stretchedRuby', '[operator =] [variable puts] [string "Hello"],', ' [string "World"]') MT( 'interpolationInHashAttribute', //"[tag %div]{[atom :id] [operator =>] [string \"#{][variable test][string }_#{][variable ting][string }\"]} test"); '[tag %div]{[atom :id] [operator =>] [string "#{][variable test][string }_#{][variable ting][string }"]} test' ) MT('interpolationInHTMLAttribute', '[tag %div]([variable title][operator =][string "#{][variable test][string }_#{][variable ting]()[string }"]) Test') })()