{"name":"AIDL","scopeName":"source.aidl","patterns":[{"include":"#main"}],"repository":{"annotation":{"patterns":[{"name":"storage.type.annotation.aidl","contentName":"meta.annotation.parameters.aidl","begin":"(@)([_a-zA-Z][_a-zA-Z0-9]*)\\s*(\\()","end":"(\\))","patterns":[{"include":"#comments"},{"name":"punctuation.separator.parameter.method.aidl","match":","},{"name":"keyword.operator.assignment.aidl","match":"="},{"include":"#const_expr"},{"name":"variable.parameter.aidl","match":"[_a-zA-Z][_a-zA-Z0-9]*"}],"beginCaptures":{"1":{"name":"punctuation.definition.annotation.aidl"},"2":{"name":"meta.annotation.identifier.aidl"},"3":{"name":"punctuation.definition.parameters.begin.aidl"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.aidl"}}},{"name":"storage.type.annotation.aidl","match":"(@)([_a-zA-Z][_a-zA-Z0-9]*)","captures":{"1":{"name":"punctuation.definition.annotation.aidl"},"2":{"name":"meta.annotation.identifier.aidl"}}}]},"comments":{"patterns":[{"include":"#multi_line_comment"},{"name":"comment.line.double-slash.aidl","match":"(//).*","captures":{"1":{"name":"punctuation.definition.comment.aidl"}}}]},"const_expr":{"patterns":[{"include":"#numeric"},{"name":"constant.character.aidl","match":"('.')"},{"name":"meta.string.aidl","match":"(\")([^\\\"]*)(\")","captures":{"1":{"name":"punctuation.definition.string.begin.aidl"},"2":{"name":"string.quoted.double.aidl"},"3":{"name":"punctuation.definition.string.end.aidl"}}},{"name":"constant.language.aidl","match":"(true|false)"},{"name":"keyword.operator.logical.aidl","match":"([!\u003c\u003e]|\u0026\u0026|\\|\\||\u003c=|\u003e=|==|!=)"},{"name":"keyword.operator.bitwise.aidl","match":"([\u0026|~\\^]|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.arithmetic.aidl","match":"([+*/%\\-])"},{"name":"meta.braces.aidl","begin":"(\\{})","end":"(\\})","patterns":[{"name":"punctuation.separator.aidl","match":","},{"include":"#const_expr"}],"beginCaptures":{"1":{"name":"punctuation.section.braces.begin.aidl"}},"endCaptures":{"1":{"name":"punctuation.section.braces.end.aidl"}}}]},"constant_decl":{"patterns":[{"name":"meta.constant.aidl","begin":"(const)","end":"(;)","patterns":[{"name":"keyword.operator.assignment.aidl","match":"="},{"include":"#comments"},{"include":"#type"},{"include":"#const_expr"},{"name":"entity.name.constant.aidl","match":"[_a-zA-Z][_a-zA-Z0-9]*"}],"beginCaptures":{"1":{"name":"storage.type.constant.aidl"}},"endCaptures":{"1":{"name":"punctuation.terminator.aidl"}}}]},"decls":{"patterns":[{"include":"#annotation"},{"name":"punctuation.section.braces.end.aidl","match":"(\\})"},{"name":"meta.interface.aidl","match":"(?:(oneway)\\s+)?(interface)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\s*(\\{)","captures":{"1":{"name":"storage.modifier.aidl"},"2":{"name":"storage.type.interface.aidl"},"3":{"name":"entity.name.type.interface.aidl"},"4":{"name":"punctuation.section.braces.begin.aidl"}}},{"name":"meta.parcelable.aidl","match":"(parcelable)\\s+((?:[_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))*)\\s*(?:(\u003c)((:?[_a-zA-Z][_a-zA-Z0-9]*)(:?,\\s+[_a-zA-Z][_a-zA-Z0-9]*)*)(\u003e)\\s*)?(\\{)","captures":{"1":{"name":"storage.type.parcelable.aidl"},"2":{"name":"entity.name.type.parcelable.aidl"},"3":{"name":"punctuation.definition.generic.begin.aidl"},"4":{"name":"entity.name.other.aidl"},"5":{"name":"punctuation.definition.generic.end.aidl"},"6":{"name":"punctuation.section.braces.begin.aidl"}}},{"name":"meta.parcelable.aidl","match":"(parcelable)\\s+((?:[_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))*)\\s*(?:(\u003c)((:?[_a-zA-Z][_a-zA-Z0-9]*)(:?,\\s+[_a-zA-Z][_a-zA-Z0-9]*)*)(\u003e)\\s*)?(;)","captures":{"1":{"name":"storage.type.parcelable.aidl"},"2":{"name":"entity.name.type.parcelable.aidl"},"3":{"name":"punctuation.definition.generic.begin.aidl"},"4":{"name":"entity.name.other.aidl"},"5":{"name":"punctuation.definition.generic.end.aidl"},"6":{"name":"punctuation.terminator.aidl"}}},{"name":"meta.parcelable.aidl","match":"(parcelable)\\s+((?:[_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))*)\\s*(;)?","captures":{"1":{"name":"storage.type.parcelable.aidl"},"2":{"name":"entity.name.type.parcelable.aidl"},"3":{"name":"punctuation.terminator.aidl"}}},{"name":"meta.parcelable.aidl","match":"(cpp_header|ndk_header|rust_type)\\s*(\")([^\\\"]*)(\")","captures":{"1":{"name":"keyword.aidl"},"2":{"name":"punctuation.definition.string.begin.aidl"},"3":{"name":"string.quoted.double.aidl"},"4":{"name":"punctuation.definition.string.end.aidl"}}},{"name":"punctuation.terminator.aidl","match":";"},{"name":"meta.enum.aidl","begin":"(enum)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\s*(\\{)","end":"(\\})","patterns":[{"include":"#enum_decl_body"}],"beginCaptures":{"1":{"name":"storage.type.enum.aidl"},"2":{"name":"entity.name.type.enum.aidl"},"3":{"name":"punctuation.section.braces.begin.aidl"}},"endCaptures":{"1":{"name":"punctuation.section.braces.end.aidl"}}},{"name":"meta.union.aidl","match":"(union)\\s+((?:[_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))*)\\s*(?:(\u003c)((:?[_a-zA-Z][_a-zA-Z0-9]*)(:?,\\s+[_a-zA-Z][_a-zA-Z0-9]*)*)(\u003e)\\s*)?(\\{)","captures":{"1":{"name":"storage.type.union.aidl"},"2":{"name":"entity.name.type.union.aidl"},"3":{"name":"punctuation.definition.generic.begin.aidl"},"4":{"name":"entity.name.other.aidl"},"5":{"name":"punctuation.definition.generic.end.aidl"},"6":{"name":"punctuation.section.braces.begin.aidl"}}},{"include":"#comments"},{"include":"#constant_decl"},{"include":"#method_decl"},{"include":"#variable_decl"}]},"enum_decl_body":{"patterns":[{"include":"#comments"},{"name":"keyword.operator.assignment.aidl","match":"="},{"include":"#const_expr"},{"name":"variable.other.aidl","match":"[_a-zA-Z][_a-zA-Z0-9]*"}]},"import":{"patterns":[{"begin":"(import)","end":"(;)","patterns":[{"name":"entity.name.type.aidl","match":"(([_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))*)"}],"beginCaptures":{"1":{"name":"keyword.aidl"}},"endCaptures":{"1":{"name":"punctuation.terminator.aidl"}}}]},"main":{"patterns":[{"include":"#comments"},{"include":"#package"},{"include":"#import"},{"include":"#decls"},{"name":"invalid.illegal.aidl","match":"([^\\s])"}]},"method_decl":{"patterns":[{"include":"#annotation"},{"include":"#type"},{"name":"storage.modifier.aidl","match":"oneway"},{"name":"keyword.operator.assignment.aidl","match":"="},{"name":"punctuation.terminator.aidl","match":";"},{"contentName":"meta.function.parameters.aidl","begin":"([_a-zA-Z][_a-zA-Z0-9]*)\\s*(\\()","end":"(\\))","patterns":[{"name":"punctuation.separator.parameter.method.aidl","match":","},{"name":"storage.modifier.aidl","match":"\\b(in|out|inout)\\b"},{"include":"#type"},{"name":"variable.parameter.aidl","match":"[_a-zA-Z][_a-zA-Z0-9]*"}],"beginCaptures":{"1":{"name":"entity.name.function.aidl"},"2":{"name":"punctuation.definition.parameters.begin.aidl"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.aidl"}}}]},"multi_line_comment":{"patterns":[{"name":"comment.block.documentation.aidl","begin":"(/\\*\\*)","end":"(\\*/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.aidl"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.aidl"}}},{"name":"comment.block.aidl","begin":"(/\\*)","end":"(\\*/)","beginCaptures":{"1":{"name":"punctuation.definition.comment.aidl"}},"endCaptures":{"1":{"name":"punctuation.definition.comment.aidl"}}}]},"multi_line_comment__1":{},"multi_line_comment__2":{},"numeric":{"patterns":[{"name":"constant.numeric.hex.aidl","match":"(0[x\\x{007c}X][0-9a-fA-F]+[lL]?)"},{"name":"constant.numeric.float.aidl","match":"([0-9]*\\.[0-9]+([eE][-\\x{002b}]?[0-9]+)?f?|[0-9]*\\.?[0-9]+([eE][-\\x{002b}]?[0-9]+)?f)"},{"name":"constant.numeric.decimal.aidl","match":"([0-9]+[lL]?)"}]},"package":{"patterns":[{"begin":"(package)","end":"(;)","patterns":[{"name":"entity.name.namespace.aidl","match":"(([_a-zA-Z][_a-zA-Z0-9]*)(?:\\.([_a-zA-Z][_a-zA-Z0-9]*))+)"}],"beginCaptures":{"1":{"name":"keyword.aidl"}},"endCaptures":{"1":{"name":"punctuation.terminator.aidl"}}}]},"type":{"patterns":[{"include":"#annotation"},{"name":"storage.type.aidl","match":"\\b(void|boolean|byte|char|int|long|float|double)\\b"},{"name":"support.class.aidl","match":"\\b(CharSequence|FileDescriptor|IBinder|List|Map|ParcelableHolder|ParcelFileDescriptor|String)\\b"},{"name":"punctuation.aidl","match":"\\[\\]"},{"name":"meta.generic.aidl","begin":"(\\\u003c)","end":"(\\\u003e)","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"punctuation.definition.generic.begin.aidl"}},"endCaptures":{"1":{"name":"punctuation.definition.generic.end.aidl"}}}]},"variable_decl":{"patterns":[{"name":"keyword.operator.assignment.aidl","match":"="},{"include":"#type"},{"include":"#const_expr"},{"name":"variable.other.aidl","match":"[_a-zA-Z][_a-zA-Z0-9]*"},{"name":"punctuation.terminator.aidl","match":";"}]}}}