diff --git a/syntax_files/colortest.yaml b/syntax_files/colortest.yaml new file mode 100644 index 0000000..a9eea98 --- /dev/null +++ b/syntax_files/colortest.yaml @@ -0,0 +1,19 @@ +filetype: colortest + +detect: + filename: "ColorTest$" + +rules: + - black: "\\" + - red: "\\" + - green: "\\" + - yellow: "\\" + - blue: "\\" + - magenta: "\\" + - cyan: "\\" + - brightred: "\\" + - brightgreen: "\\" + - brightyellow: "\\" + - brightblue: "\\" + - brightmagenta: "\\" + - brightcyan: "\\" diff --git a/syntax_files/dart.yaml b/syntax_files/dart.yaml new file mode 100644 index 0000000..59a124f --- /dev/null +++ b/syntax_files/dart.yaml @@ -0,0 +1,38 @@ +filetype: dart + +detect: + filename: "\\.dart$" + +rules: + - constant.number: "\\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\\b" + - constant.number: "\\b[-+]?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" + - constant.number: "\\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" + - identifier: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]" + - statement: "\\b(break|case|catch|continue|default|else|finally)\\b" + - statement: "\\b(for|function|get|if|in|as|is|new|return|set|switch|final|await|async|sync)\\b" + - statement: "\\b(switch|this|throw|try|var|void|while|with|import|library|part|const|export)\\b" + - constant: "\\b(true|false|null)\\b" + - type: "\\b(List|String)\\b" + - type: "\\b(int|num|double|bool)\\b" + - statement: "[-+/*=<>!~%?:&|]" + - constant: "/[^*]([^/]|(\\\\/))*[^\\\\]/[gim]*" + - constant: "\\\\[0-7][0-7]?[0-7]?|\\\\x[0-9a-fA-F]+|\\\\[bfnrt'\"\\?\\\\]" + - comment: + start: "//" + end: "$" + rules: [] + - comment: + start: "/\\*" + end: "\\*/" + rules: [] + - todo: "TODO:?" + - constant.string: + start: "\"" + end: "\"" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + rules: + - constant.specialChar: "\\\\." diff --git a/syntax_files/git-commit.yaml b/syntax_files/git-commit.yaml new file mode 100644 index 0000000..88b44f6 --- /dev/null +++ b/syntax_files/git-commit.yaml @@ -0,0 +1,30 @@ +filetype: git-commit + +detect: + filename: "COMMIT_EDITMSG|TAG_EDITMSG" + +rules: + # Commit message + - ignore: ".*" + # Comments + - comment: + start: "#" + end: "$" + rules: [] + # File changes + - keyword: "#[[:space:]](deleted|modified|new file|renamed):[[:space:]].*" + - keyword: "#[[:space:]]deleted:" + - keyword: "#[[:space:]]modified:" + - keyword: "#[[:space:]]new file:" + - keyword: "#[[:space:]]renamed:" + # Untracked filenames + - error: "^# [^/?*:;{}\\\\]+\.[^/?*:;{}\\\\]+$" + - keyword: "^#[[:space:]]Changes.*[:]" + - keyword: "^#[[:space:]]Your branch and '[^']+" + - keyword: "^#[[:space:]]Your branch and '" + - keyword: "^#[[:space:]]On branch [^ ]+" + - keyword: "^#[[:space:]]On branch" + # Recolor hash symbols + - special: "#" + # Trailing spaces (+LINT is not ok, git uses tabs) + - error: "[[:space:]]+$" diff --git a/syntax_files/git-config.yaml b/syntax_files/git-config.yaml new file mode 100644 index 0000000..bfd52e8 --- /dev/null +++ b/syntax_files/git-config.yaml @@ -0,0 +1,14 @@ +filetype: git-config + +detect: + filename: "git(config|modules)$|\\.git/config$" + +rules: + - constant: "\\<(true|false)\\>" + - keyword: "^[[:space:]]*[^=]*=" + - constant: "^[[:space:]]*\\[.*\\]$" + - constant: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'" + - comment: + start: "#" + end: "$" + rules: [] diff --git a/syntax_files/git-rebase-todo.yaml b/syntax_files/git-rebase-todo.yaml new file mode 100644 index 0000000..8866c97 --- /dev/null +++ b/syntax_files/git-rebase-todo.yaml @@ -0,0 +1,30 @@ +filetype: git-rebase-todo + +detect: + filename: "git-rebase-todo" + +rules: + # Default + - ignore: ".*" + # Comments + - comment: + start: "#" + end: "$" + rules: [] + # Rebase commands + - keyword: "^(e|edit) [0-9a-f]{7,40}" + - keyword: "^# (e, edit)" + - keyword: "^(f|fixup) [0-9a-f]{7,40}" + - keyword: "^# (f, fixup)" + - keyword: "^(p|pick) [0-9a-f]{7,40}" + - keyword: "^# (p, pick)" + - keyword: "^(r|reword) [0-9a-f]{7,40}" + - keyword: "^# (r, reword)" + - keyword: "^(s|squash) [0-9a-f]{7,40}" + - keyword: "^# (s, squash)" + - keyword: "^(x|exec) [^ ]+ [0-9a-f]{7,40}" + - keyword: "^# (x, exec)" + # Recolor hash symbols + - special: "#" + # Commit IDs + - identifier: "[0-9a-f]{7,40}" diff --git a/syntax_files/glsl.yaml b/syntax_files/glsl.yaml new file mode 100644 index 0000000..fe2bb54 --- /dev/null +++ b/syntax_files/glsl.yaml @@ -0,0 +1,22 @@ +filetype: glsl + +detect: + filename: "\\.(frag|vert|fp|vp|glsl)$" + +rules: + - brightblue: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" + - green: "\\<(void|bool|bvec2|bvec3|bvec4|int|ivec2|ivec3|ivec4|float|vec2|vec3|vec4|mat2|mat3|mat4|struct|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler1DShadow|sampler2DShadow)\\>" + - green: "\\" + - cyan: "\\<(const|attribute|varying|uniform|in|out|inout|if|else|return|discard|while|for|do)\\>" + - brightred: "\\<(break|continue)\\>" + - brightcyan: "\\<(true|false)\\>" + - red: "[-+/*=<>?:!~%&|^]" + - blue: "\\<([0-9]+|0x[0-9a-fA-F]*)\\>" + - brightblack: "(^|[[:space:]])//.*" + - brightblack: + start: "/\\*" + end: "\\*/" + rules: [] + - brightwhite,cyan: "TODO:?" + - ,green: "[[:space:]]+$" + - ,red: " + +| + +" diff --git a/syntax_files/json.yaml b/syntax_files/json.yaml new file mode 100644 index 0000000..cf5efee --- /dev/null +++ b/syntax_files/json.yaml @@ -0,0 +1,26 @@ +filetype: json + +detect: + filename: "\\.json$" + header: "^\{$" + +rules: + - constant.number: "\\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\\b" + - constant.number: "\\b[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?" + - constant.number: "\\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?" + - constant: "\\b(null)\\b" + - constant: "\\b(true|false)\\b" + - constant.string: + start: "\"" + end: "\"" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + rules: + - constant.specialChar: "\\\\." + - statement: "\\\"(\\\\\"|[^\"])*\\\"[[:space:]]*:\" \"'(\\'|[^'])*'[[:space:]]*:" + - constant: "\\\\u[0-9a-fA-F]{4}|\\\\[bfnrt'\"/\\\\]" + - ,green: "[[:space:]]+$" + - ,red: " + +| + +" diff --git a/syntax_files/keymap.yaml b/syntax_files/keymap.yaml new file mode 100644 index 0000000..8497f14 --- /dev/null +++ b/syntax_files/keymap.yaml @@ -0,0 +1,23 @@ +filetype: keymap + +detect: + filename: "\\.(k|key)?map$|Xmodmap$" + +rules: + - cyan: "\\<(add|clear|compose|keycode|keymaps|keysym|remove|string)\\>" + - cyan: "\\<(control|alt|shift)\\>" + - blue: "\\<[0-9]+\\>" + - red: "=" + - yellow: + start: "\"" + end: "\"" + rules: + - constant.specialChar: "\\\\." + - yellow: + start: "'" + end: "'" + rules: + - constant.specialChar: "\\\\." + - brightblack: "^!.*$" + - ,green: "[[:space:]]+$" + - ,red: " + +| + +" \ No newline at end of file diff --git a/syntax_files/lilypond.yaml b/syntax_files/lilypond.yaml new file mode 100644 index 0000000..20d26e2 --- /dev/null +++ b/syntax_files/lilypond.yaml @@ -0,0 +1,24 @@ +filetype: lilypond + +detect: + filename: "\\.ly$|\\.ily$|\\.lly$" + +rules: + - constant.number: "\\d+" + - identifier: "[[:space:]](staff|spacing|signature|routine|notes|handler|corrected|beams|arpeggios|Volta_engraver|Voice|Vertical_align_engraver|Vaticana_ligature_engraver|VaticanaVoice|VaticanaStaff|Tweak_engraver|Tuplet_engraver|Trill_spanner_engraver|Timing_translator|Time_signature_performer|Time_signature_engraver|Tie_performer|Tie_engraver|Text_spanner_engraver|Text_engraver|Tempo_performer|Tab_tie_follow_engraver|Tab_staff_symbol_engraver|Tab_note_heads_engraver|TabVoice|TabStaff|System_start_delimiter_engraver|Stem_engraver|Stanza_number_engraver|Stanza_number_align_engraver|Staff_symbol_engraver|Staff_performer|Staff_collecting_engraver|StaffGroup|Staff|Spanner_break_forbid_engraver|Span_bar_stub_engraver|Span_bar_engraver|Span_arpeggio_engraver|Spacing_engraver|Slur_performer|Slur_engraver|Slash_repeat_engraver|Separating_line_group_engraver|Script_row_engraver|Script_engraver|Script_column_engraver|Score|Rhythmic_column_engraver|RhythmicStaff|Rest_engraver|Rest_collision_engraver|Repeat_tie_engraver|Repeat_acknowledge_engraver|Pure_from_neighbor_engraver|Pitched_trill_engraver|Pitch_squash_engraver|Piano_pedal_performer|Piano_pedal_engraver|Piano_pedal_align_engraver|PianoStaff|Phrasing_slur_engraver|PetrucciVoice|PetrucciStaff|Percent_repeat_engraver|Part_combine_engraver|Parenthesis_engraver|Paper_column_engraver|Output_property_engraver|Ottava_spanner_engraver|OneStaff|NullVoice|Note_spacing_engraver|Note_performer|Note_name_engraver|Note_heads_engraver|Note_head_line_engraver|NoteName\|NoteHead|New_fingering_engraver|Multi_measure_rest_engraver|Midi_control_function_performer|Metronome_mark_engraver|Mensural_ligature_engraver|MensuralVoice|MensuralStaff|Mark_engraver|Lyrics|Lyric_performer|Lyric_engraver|Ligature_bracket_engraver|Ledger_line_engraver|Laissez_vibrer_engraver|Kievan_ligature_engraver|KievanVoice|KievanStaff|Key_performer|Key_engraver|Keep_alive_together_engraver|Instrument_switch_engraver|Instrument_name_engraver|Hyphen_engraver|Grob_pq_engraver|GregorianTranscriptionVoice|GregorianTranscriptionStaff|GrandStaff|Grace_spacing_engraver|Grace_engraver|Grace_beam_engraver|Grace_auto_beam_engraver|Global|Glissando_engraver|Fretboard_engraver|FretBoards|Forbid_line_break_engraver|Footnote_engraver|Font_size_engraver|Fingering_engraver|Fingering_column_engraver|Figured_bass_position_engraver|Figured_bass_engraver|FiguredBass|Extender_engraver|Episema_engraver|Dynamics|Dynamic_performer|Dynamic_engraver|Dynamic_align_engraver|Drum_notes_engraver|Drum_note_performer|DrumVoice|DrumStaff|Double_percent_repeat_engraver|Dots_engraver|Dot_column_engraver|Devnull|Default_bar_line_engraver|Custos_engraver|Cue_clef_engraver|CueVoice|Control_track_performer|Concurrent_hairpin_engraver|Collision_engraver|Cluster_spanner_engraver|Clef_engraver|Chord_tremolo_engraver|Chord_name_engraver|ChordNames|ChoirStaff|Breathing_sign_engraver|Break_align_engraver|Bend_engraver|Beam_performer|Beam_engraver|Beam_collision_engraver|Bar_number_engraver|Bar_engraver|Axis_group_engraver|Auto_beam_engraver|Arpeggio_engraver|Accidental_engraver|Score)[[:space:]]" + - statement: "[-_^]?\\\\[-A-Za-z_]+" + - preproc: "\\b(((gisis|gis|geses|ges|g|fisis|fis|feses|fes|f|eisis|eis|eeses|ees|e|disis|dis|deses|des|d|cisis|cis|ceses|ces|c|bisis|bis|beses|bes|b|aisis|ais|aeses|aes|a)[,']*[?!]?)|s|r|R|q)(128|64|32|16|8|4|2|1|\\\\breve|\\\\longa|\\\\maxima)?([^\\\\\\w]|_|\\b)" + - special: "[(){}<>]|\\[|\\]" + - constant.string: + start: "\"" + end: "\"" + rules: + - constant.specialChar: "\\\\." + - comment: + start: "%\\{" + end: "%\\}" + rules: [] + - comment: + start: "%" + end: "$" + rules: [] diff --git a/syntax_files/mail.yaml b/syntax_files/mail.yaml new file mode 100644 index 0000000..733e628 --- /dev/null +++ b/syntax_files/mail.yaml @@ -0,0 +1,25 @@ +filetype: mail + +detect: + filename: "(.*/mutt-.*|\\.eml)$" + header: "^From .* \\d+:\\d+:\\d+ \\d+" + +rules: + - yellow: "^From .*" + - identifier: "^[^[:space:]]+:" + - preproc: "^List-(Id|Archive|Subscribe|Unsubscribe|Post|Help):" + - constant: "^(To|From):" + - constant.string: + start: "^Subject:.*" + end: "$" + rules: + - constant.specialChar: "\\\\." + - statement: "?"" + - default: + start: "^\\n\\n" + end: ".*" + rules: [] + - comment: + start: "^>.*" + end: "$" + rules: [] diff --git a/syntax_files/ocaml.yaml b/syntax_files/ocaml.yaml new file mode 100644 index 0000000..9fc0418 --- /dev/null +++ b/syntax_files/ocaml.yaml @@ -0,0 +1,26 @@ +filetype: ocaml + +detect: + filename: "\\.mli?$" + +rules: + # Numbers + ## Integers + ### Binary + - constant.number: "-?0[bB][01][01_]*" + ### Octal + - constant.number: "-?0[oO][0-7][0-7_]*" + ### Decimal + - constant.number: "-?\\d[\\d_]*" + ### Hexadecimal + - constant.number: "-?0[xX][0-9a-fA-F][0-9a-fA-F_]*" + ## Real + ### Decimal + - constant.number: "-?\\d[\\d_]*.\\d[\\d_]*([eE][+-]\\d[\\d_]*.\\d[\\d_]*)?" + ### Hexadecimal + - constant.number: "-?0[xX][0-9a-fA-F][0-9a-fA-F_]*.[0-9a-fA-F][0-9a-fA-F_]*([pP][+-][0-9a-fA-F][0-9a-fA-F_]*.[0-9a-fA-F][0-9a-fA-F_]*)?" + # Comments + - comment: + start: "\\(\\*" + end: "\\*\\)" + rules: [] \ No newline at end of file diff --git a/syntax_files/pascal.yaml b/syntax_files/pascal.yaml new file mode 100644 index 0000000..70a3715 --- /dev/null +++ b/syntax_files/pascal.yaml @@ -0,0 +1,43 @@ +filetype: pascal + +detect: + filename: "\\.pas$" + +rules: + - type: "\\b(?i:(string|ansistring|widestring|shortstring|char|ansichar|widechar|boolean|byte|shortint|word|smallint|longword|cardinal|longint|integer|int64|single|currency|double|extended))\\b" + - statement: "\\b(?i:(and|asm|array|begin|break|case|const|constructor|continue|destructor|div|do|downto|else|end|file|for|function|goto|if|implementation|in|inline|interface|label|mod|not|object|of|on|operator|or|packed|procedure|program|record|repeat|resourcestring|set|shl|shr|then|to|type|unit|until|uses|var|while|with|xor))\\b" + - statement: "\\b(?i:(as|class|dispose|except|exit|exports|finalization|finally|inherited|initialization|is|library|new|on|out|property|raise|self|threadvar|try))\\b" + - statement: "\\b(?i:(absolute|abstract|alias|assembler|cdecl|cppdecl|default|export|external|forward|generic|index|local|name|nostackframe|oldfpccall|override|pascal|private|protected|public|published|read|register|reintroduce|safecall|softfloat|specialize|stdcall|virtual|write))\\b" + - constant: "\\b(?i:(false|true|nil))\\b" + - special: + start: "asm" + end: "end" + rules: [] + - constant.number: "\\$[0-9A-Fa-f]+" + - constant.number: "\\b[+-]?[0-9]+([.]?[0-9]+)?(?i:e[+-]?[0-9]+)?" + - constant.string: + start: "#[0-9]{1,}" + end: "$" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + rules: + - constant.specialChar: "\\\\." + - preproc: + start: "{\\$" + end: "}" + rules: [] + - comment: + start: "//" + end: "$" + rules: [] + - comment: + start: "\\(\\*" + end: "\\*\\)" + rules: [] + - comment: + start: "({)(?:[^$])" + end: "}" + rules: [] diff --git a/syntax_files/r.yaml b/syntax_files/r.yaml new file mode 100644 index 0000000..f883002 --- /dev/null +++ b/syntax_files/r.yaml @@ -0,0 +1,12 @@ +filetype: r + +detect: + filename: "\\.(r|R)$" + +rules: + - statement: "\\b(break|else|for|function|if|in|next|repeat|return|while)\\b" + - constant: "\\b(TRUE|FALSE|NULL|Inf|NaN|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b" + - comment: + start: "#" + end: "$" + rules: [] diff --git a/syntax_files/reST.yaml b/syntax_files/reST.yaml new file mode 100644 index 0000000..9b6845f --- /dev/null +++ b/syntax_files/reST.yaml @@ -0,0 +1,18 @@ +filetype: rst + +detect: + filename: "\\.rest$|\\.rst$" + +rules: + - red: "\\*\\*[^*]+\\*\\*" + - brightred: "::" + - blue: "`[^`]+`_{1,2}" + - yellow: "``[^`]+``" + - cyan: "^\\.\\. .*$" + - cyan: "^__ .*$" + - yellow: "^###+$" + - yellow: "^\\*\\*\\*+$" + - magenta: "^===+$" + - red: "^---+$" + - green: "^\\^\\^\\^+$" + - blue: "^\"\"\"+$" diff --git a/syntax_files/solidity.yaml b/syntax_files/solidity.yaml new file mode 100644 index 0000000..0675fb7 --- /dev/null +++ b/syntax_files/solidity.yaml @@ -0,0 +1,38 @@ +filetype: solidity + +detect: + filename: "\\.sol$" + +rules: + - preproc: "\\b(contract|library|pragma)\\b" + - constant.number: "\\b[-]?([0-9]+|0x[0-9a-fA-F]+)\\b" + - identifier: "[a-zA-Z][_a-zA-Z0-9]*[[:space:]]*" + - statement: "\\b(assembly|break|continue|do|for|function|if|else|new|return|returns|while)\\b" + - special: "\\b(\\.send|throw)\\b" # make sure they are very visible + - keyword: "\\b(anonymous|constant|indexed|payable|public|private|external|internal)\\b" + - constant: "\\b(block(\\.(blockhash|coinbase|difficulty|gaslimit|number|timestamp))?|msg(\\.(data|gas|sender|value))?|now|tx(\\.(gasprice|origin))?)\\b" + - constant: "\\b(keccak256|sha3|sha256|ripemd160|ecrecover|addmod|mulmod|this|super|selfdestruct|\\.balance)\\b" + - constant: "\\b(true|false)\\b" + - constant: "\\b(wei|szabo|finney|ether|seconds|minutes|hours|days|weeks|years)\\b" + - type: "\\b(address|bool|mapping|string|var|int(\\d*)|uint(\\d*)|byte(\\d*)|fixed(\\d*)|ufixed(\\d*))\\b" + - error: "\\b(abstract|after|case|catch|default|final|in|inline|interface|let|match|null|of|pure|relocatable|static|switch|try|type|typeof|view)\\b" + - operator: "[-+/*=<>!~%?:&|]" + - comment: + start: "//" + end: "$" + rules: [] + - comment: + start: "/\\*" + end: "\\*/" + rules: [] + - todo: "TODO:?" + - constant.string: + start: "\"" + end: "\"" + rules: + - constant.specialChar: "\\\\." + - constant.string: + start: "'" + end: "'" + rules: + - constant.specialChar: "\\\\." diff --git a/syntax_files/tex.yaml b/syntax_files/tex.yaml new file mode 100644 index 0000000..05ffcb6 --- /dev/null +++ b/syntax_files/tex.yaml @@ -0,0 +1,30 @@ +filetype: tex + +detect: + filename: "\\.tex$|bib|\\.bib$|cls|\\.cls$" + +rules: + # colorize the identifiers of {} and [] + - identifier: + start: "\\{" + end: "\\}" + rules: [] + - identifier: + start: "\\[" + end: "\\]" + rules: [] + # numbers + - constant.number: "\\b[0-9]+(\\.[0-9]+)?([[:space:]](pt|mm|cm|in|ex|em|bp|pc|dd|cc|nd|nc|sp))?\\b" + # let brackets have the default color again + - default: "[{}\\[\\]]" + - special: "[&\\\\]" + # macros + - statement: "\\\\@?[a-zA-Z_]+" + # comments + - comment: + start: "%" + end: "$" + rules: [] + - comment: + start: "\\\\begin\\{comment\\}" + end: "\\\\end\\{comment\\}"