# JavaScript syntax file for Diffuse # Copyright (C) 2008-2009 Derrick Moser syntax JavaScript normal text syntax_files JavaScript '\.js$' # colours colour javascript_comment 0.2 0.4 0.64 colour javascript_fixme 1.0 0.5 0.0 colour javascript_import 0.46 0.31 0.48 colour javascript_keyword 0.77 0.63 0.0 colour javascript_type 0.3 0.6 0.02 colour javascript_regex 0.8 0.0 0.0 colour javascript_regexsep 0.77 0.63 0.0 colour javascript_literal 1.0 0.2 0.8 colour javascript_string 0.8 0.0 0.0 colour javascript_escapedchar 0.46 0.31 0.48 colour javascript_punctuation 0.5 0.5 0.5 # whitespace syntax_pattern normal normal text '[ \t\r\n]+' syntax_pattern expr expr text '[ \t\r\n]+' # C++ style comments syntax_pattern normal cpp_comment javascript_comment '//' syntax_pattern expr cpp_comment javascript_comment '//' syntax_pattern cpp_comment normal javascript_comment '(\r\n|\r|\n)$' syntax_pattern cpp_comment cpp_comment javascript_comment '\\(\r\n|\r|\n)$' syntax_pattern cpp_comment cpp_comment javascript_fixme '\b(TODO|FIXME|XXX)\b' syntax_pattern cpp_comment cpp_comment javascript_comment '.[^\\TFX\r\n]*' # C style comments syntax_pattern normal comment javascript_comment '/\*' syntax_pattern expr comment javascript_comment '/\*' syntax_pattern comment normal javascript_comment '\*/' syntax_pattern comment comment javascript_fixme '\b(TODO|FIXME|XXX)\b' syntax_pattern comment comment javascript_comment '.[^\*TFX]*' # char syntax_pattern normal char javascript_string "'" syntax_pattern char char javascript_escapedchar '(\\([0-7]{1,3}|u[0-9a-f]{1,4}|.))+' ignorecase syntax_pattern char expr javascript_string "'" syntax_pattern char char javascript_string ".[^\\\\']*" # string syntax_pattern normal string javascript_string '"' syntax_pattern string string javascript_escapedchar '(\\([0-7]{1,3}|u[0-9a-f]{1,4}|.))+' ignorecase syntax_pattern string expr javascript_string '"' syntax_pattern string string javascript_string '.[^\\"]*' # literals syntax_pattern normal expr javascript_literal '(0x[0-9a-f]+|0[0-7]+|((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)(e[\+\-]?[0-9]+)?)' ignorecase syntax_pattern normal expr javascript_literal '\b(true|false|Infinity|NaN|null|undefined)\b' # import keywords syntax_pattern normal normal javascript_import '\b(import|package)\b' # typing keywords syntax_pattern normal normal javascript_type '\b(abstract|boolean|byte|char|class|const|double|enum|export|float|function|int|interface|long|native|private|protected|public|short|static|synchronized|transient|var|void|volatile)\b' # keywords syntax_pattern normal normal javascript_keyword '\b(break|case|catch|continue|debugger|default|delete|do|else|extends|final|finally|for|goto|if|implements|in|instanceof|new|return|switch|throw|throws|try|typeof|while|with)\b' syntax_pattern normal expr javascript_keyword '\b(super|this)\b' # regular expressions syntax_pattern normal regex javascript_regexsep '/' syntax_pattern regex expr javascript_regexsep '/[gim]*' syntax_pattern regex regex javascript_escapedchar '\\(c.|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{1,4}|.)' syntax_pattern regex regex javascript_regex '.[^\\/]*' # punctuation syntax_pattern normal normal javascript_punctuation '[\^\*%~!\+\-=\|\&\(\{\[:;,\?\<\>\}]+' syntax_pattern normal normal javascript_punctuation '\.' syntax_pattern normal expr javascript_punctuation '[\)\]]+' syntax_pattern expr normal javascript_punctuation '/' # parsing optimisation syntax_pattern normal expr text '[\$a-z_][\$a-z_0-9]*' ignorecase syntax_pattern expr normal javascript_punctuation ''