filetype: haml

detect:
    filename: "\\.haml$"

rules:
    - symbol: "-|="
    - default: "->|=>"
    - constant: "([  ]|^)%[0-9A-Za-z_]+>"
    - special: ":[0-9A-Za-z_]+>"
    - type: "\\.[A-Za-z_]+>"
    - constant.string: "\"([^\"]|(\\\\\"))*\"|%[QW]?\\{[^}]*\\}|%[QW]?\\([^)]*\\)|%[QW]?<[^>]*>|%[QW]?\\$[^$]*\\$|%[QW]?\\^[^^]*\\^|%[QW]?![^!]*!"
    - constant.string: "'([^']|(\\\\'))*'|%[qw]\\{[^}]*\\}|%[qw]\\([^)]*\\)|%[qw]<[^>]*>|%[qw]\\[[^]]*\\]|%[qw]\\$[^$]*\\$|%[qw]\\^[^^]*\\^|%[qw]![^!]*!"
    - identifier: "#\\{[^}]*\\}"
    - identifier.var: "(@|@@)[0-9A-Z_a-z]+"
    - comment: "#[^{].*$|#$"
