filetype: vi

detect:
    filename: "(^|/|\\.)(ex|vim)rc$|\\.vim"

rules:
    - identifier: "[A-Za-z_][A-Za-z0-9_]*[(]+[A-Za-z0-9_:.,\\s]*[)]+"
    - special: "[()]+"
    - statement: "\\b([nvxsoilc]?(nore|un)?map|[nvlx]n|[ico]?no|[cilovx][um]|s?unm)\\b"
    - statement: "\\b(snor|nun|nm|set|if|endif|let|unlet|source)\\b"
    - statement: "[!&=?]"
    - constant.number: "\\b[0-9]+\\b"

    - comment:
        start: "(^\"|[ \t]+\" |[ \t]+\"$)"
        end: "$"
        rules: []

    - constant.string:
        start: "\""
        end: "\""
        skip: "\\\\."
        rules:
            - constant.specialChar: "\\\\."

    - constant.string:
        start: "'"
        end: "'"
        skip: "\\\\."
        rules:
            - constant.specialChar: "\\\\."
