{"name":"KiCad Schematic","scopeName":"source.pcb.schematic","patterns":[{"contentName":"source.eagle.pcb.board","begin":"\\A(?=\u003c\\?xml\\s+version=\"[\\d.]+\"\\s)","end":"(?=A)B","patterns":[{"include":"text.xml"}]},{"contentName":"source.scheme","begin":"\\A\\s*(?=;|\\()","end":"(?=A)B","patterns":[{"include":"source.scheme"}]},{"name":"meta.header.pcb.schematic","begin":"^\\s*(EESchema\\s+(?:Schematic|-LIBRARY)\\s+\\S+.*)\\s*$","end":"(?\u003c=\\$EndDescr)(?=\\s|$)","patterns":[{"match":"^\\s*(LIBS(:))\\s*(.+)","captures":{"1":{"name":"variable.assignment.libs.pcb.schematic"},"2":{"name":"punctuation.separator.key-value.pcb.schematic"},"3":{"patterns":[{"name":"punctuation.delimiter.list.comma.pcb.schematic","match":","},{"name":"constant.other.lib-name.pcb.schematic","match":"[^\\s,]+"}]}}},{"name":"meta.eelayer.pcb.schematic","begin":"^\\s*(EELAYER)((?:\\s+[-+]?[\\d.]+)*)\\s*$","end":"^\\s*(EELAYER)\\s+(END)\\s*$","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"entity.name.var.pcb.schematic"},"2":{"patterns":[{"include":"#numbers"}]}},"endCaptures":{"1":{"name":"entity.name.var.pcb.schematic"},"2":{"name":"keyword.control.pcb.schematic"}}},{"name":"meta.description.pcb.schematic","begin":"^\\s*((\\$)Descr)(?=\\s)","end":"^\\s*((\\$)EndDescr)(?=\\s)","patterns":[{"match":"\\G\\s+([A-E][0-9]?)(?=\\s)","captures":{"1":{"name":"constant.language.paper-size.pcb.schematic"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.begin.pcb.schematic"}},"endCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.end.pcb.schematic"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.header.pcb.schematic"}},"endCaptures":{"1":{"name":"keyword.control.header.pcb.schematic"},"2":{"name":"punctuation.definition.header.pcb.schematic"}}},{"name":"meta.bitmap.pcb.schematic","begin":"^\\s*((\\$)Bitmap)\\s*$","end":"^\\s*((\\$)EndBitmap)(?=\\s|$)","patterns":[{"contentName":"string.unquoted.heredoc.bytestream.pcb.schematic","begin":"^\\s*(Data)\\s*$","end":"^\\s*(EndData)\\s*$","patterns":[{"name":"comment.ignored.pcb.schematic","match":"\\s+((\\$)EndBitmap)\\s*$"},{"name":"invalid.illegal.syntax.pcb.schematic","match":"(?\u003c=\\s|^)(?![A-Fa-f0-9]{2}(?:\\s|$))(\\S+)"}],"beginCaptures":{"1":{"name":"keyword.control.data.section.begin.pcb.schematic"}},"endCaptures":{"1":{"name":"keyword.control.data.section.end.pcb.schematic"}}},{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.begin.pcb.schematic"}},"endCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.end.pcb.schematic"}}},{"name":"meta.component.${1:/downcase}.pcb.schematic","begin":"^\\s*(DEF|DRAW)(?:\\s+(\\S+)\\s+(.+))?\\s*$","end":"^\\s*(END\\1)(?=\\s|$)","patterns":[{"include":"#params"}],"beginCaptures":{"1":{"name":"storage.type.class.definition.pcb.schematic"},"2":{"name":"entity.name.var.pcb.schematic"},"3":{"patterns":[{"include":"#params"}]}},"endCaptures":{"1":{"name":"storage.type.class.definition.pcb.schematic"}}},{"name":"meta.aliases.pcb.schematic","match":"^\\s*(ALIAS)\\s+(.+)\\s*$","captures":{"1":{"name":"storage.type.class.alias.pcb.schematic"},"2":{"patterns":[{"include":"#quotedString"},{"name":"entity.name.var.pcb.schematic","match":"\\S+"}]}}},{"name":"meta.${3:/downcase}.pcb.schematic","begin":"^\\s*((\\$)([A-Za-z]\\w+))\\s*$","end":"^\\s*((\\$)[Ee]nd\\3)(?=\\s|$)","patterns":[{"include":"$self"}],"beginCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.begin.pcb.schematic"}},"endCaptures":{"1":{"name":"keyword.control.section.pcb.schematic"},"2":{"name":"punctuation.section.end.pcb.schematic"}}},{"name":"meta.wire.pcb.schematic","match":"^\\s*(Wire)\\s+(Wire|Bus|Line)\\s+(Line)\\s*$","captures":{"1":{"name":"entity.name.var.pcb.schematic"},"2":{"name":"entity.name.type.pcb.schematic"},"3":{"name":"constant.language.other.pch.schematic"}}},{"name":"meta.text.pcb.schematic","begin":"^\\s*(Text)\\s+(\\w+)\\s+(.+)\\s+(?:(~)|(\\w+))\\s*$","end":"^\\s*(\\S.*)$","beginCaptures":{"1":{"name":"entity.name.var.pcb.schematic"},"2":{"name":"entity.name.type.pcb.schematic"},"3":{"patterns":[{"include":"$self"}]},"4":{"patterns":[{"include":"#tilde"}]},"5":{"name":"constant.language.other.pch.schematic"}},"endCaptures":{"0":{"name":"string.unquoted.herestring.pcb.schematic"}}},{"begin":"^\\s*([A-Za-z]\\w*)(?=\\s)","end":"$","patterns":[{"include":"#params"}],"beginCaptures":{"1":{"name":"entity.name.var.pcb.schematic"}}},{"include":"#shared"}],"repository":{"comments":{"match":"^\\s*((#).*$)","captures":{"1":{"name":"comment.line.number-sign.pcb.schematic"},"2":{"name":"punctuation.definition.comment.pcb.board"}}},"lowerCaseName":{"name":"variable.parameter.identifier.pcb.schematic","match":"(?\u003c=\\s)[A-Za-z_][-\\w]+(?=\\s|$)"},"numbers":{"patterns":[{"name":"constant.numeric.integer.decimal.pcb.schematic","match":"(?\u003c![-\\w])[-+]?\\d+(?=\\s|$)"},{"name":"constant.numeric.float.decimal.pcb.schematic","match":"(?\u003c![-\\w])[-+]?\\d*\\.\\d+"}]},"params":{"patterns":[{"include":"#upperCaseName"},{"include":"#lowerCaseName"},{"include":"$self"}]},"quotedString":{"name":"string.quoted.double.pcb.schematic","begin":"\"","end":"\"|^|$","patterns":[{"include":"#stringInnards"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.pcb.schematic"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.pcb.schematic"}}},"shared":{"patterns":[{"include":"#comments"},{"include":"#capsConstant"},{"include":"#tilde"},{"include":"#quotedString"},{"include":"#numbers"}]},"tilde":{"name":"keyword.operator.pcb.schematic","match":"~"},"upperCaseName":{"name":"constant.language.other.pcb.schematic","match":"(?\u003c=\\s)([+#])?[A-Z0-9_]+(?:\\s|$)","captures":{"1":{"name":"punctuation.definition.constant.pcb.schematic"}}}}}