import graphql from './graphql.mjs'
import xml from './xml.mjs'
import csv from './csv.mjs'

const lang = Object.freeze(JSON.parse("{\"displayName\":\"Hurl\",\"name\":\"hurl\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#sections\"},{\"include\":\"#http\"},{\"include\":\"#strings\"},{\"include\":\"#body\"},{\"include\":\"#request\"}],\"repository\":{\"body\":{\"patterns\":[{\"begin\":\"```graphql(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"end\":\"```$\",\"name\":\"meta.embedded.block.graphql.hurl\",\"patterns\":[{\"include\":\"source.graphql\"}]},{\"begin\":\"```xml(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"end\":\"```$\",\"name\":\"meta.embedded.block.xml.hurl\",\"patterns\":[{\"include\":\"text.xml\"}]},{\"begin\":\"```json(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"end\":\"```$\",\"name\":\"meta.embedded.block.json.hurl\",\"patterns\":[{\"include\":\"text.json\"}]},{\"begin\":\"```csv(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"end\":\"```$\",\"name\":\"meta.embedded.block.csv.hurl\",\"patterns\":[{\"include\":\"text.csv\"}]},{\"begin\":\"```hex(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"contentName\":\"text.plain\",\"end\":\"```$\",\"name\":\"string.quoted.multiline.hurl\"},{\"begin\":\"```base64(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"}},\"contentName\":\"text.plain\",\"end\":\"```$\",\"name\":\"string.quoted.multiline.hurl\"},{\"begin\":\"```([^,]*)(,\\\\w+)*$\",\"beginCaptures\":{\"1\":{\"name\":\"support.type\"},\"2\":{\"name\":\"support.type\"}},\"end\":\"```$\",\"name\":\"string.quoted.multiline.hurl\"},{\"match\":\"`(\\\\\\\\.|[^\\\\\\\\`])*`\",\"name\":\"string.quoted.backtick.hurl\",\"patterns\":[{\"include\":\"#escapes\"}]},{\"begin\":\"\\\\b(base64|hex),\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.name\"}},\"contentName\":\"text.plain\",\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"support.function\"}},\"name\":\"support.function\",\"patterns\":[{\"include\":\"#placeholders\"}]}]},\"comments\":{\"patterns\":[{\"match\":\"#.*$\",\"name\":\"comment.line.number-sign.hurl\"}]},\"escapes\":{\"patterns\":[{\"match\":\"\\\\\\\\[\\\"#\\\\\\\\`bnrtu]\",\"name\":\"constant.character.escape.hurl\"}]},\"http\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"constant.language.version.hurl\"},\"3\":{\"name\":\"constant.numeric.status.hurl\"}},\"match\":\"\\\\b(HTTP(/(?:1\\\\.0|1\\\\.1|2))?)([\\\\t ]+([0-9]{3}))?\\\\b\"}]},\"placeholders\":{\"patterns\":[{\"begin\":\"(\\\\{\\\\{)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"string.interpolated.hurl\"}},\"contentName\":\"variable.other.hurl\",\"end\":\"\\\\s*(}})\",\"endCaptures\":{\"1\":{\"name\":\"string.interpolated.hurl\"}}}]},\"request\":{\"patterns\":[{\"match\":\"\\\\b(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT)\\\\b\",\"name\":\"keyword.control.method.hurl\"},{\"captures\":{\"1\":{\"name\":\"string.unquoted.url.hurl\",\"patterns\":[{\"include\":\"#placeholders\"}]}},\"match\":\"(https?://[^\\\\t\\\\n]+)\\\\s*$\",\"name\":\"string.unquoted.url.hurl\"},{\"begin\":\"^([-0-9A-Za-z]+)(:)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.tag.header.hurl\"},\"2\":{\"name\":\"punctuation.separator.key-value.hurl\"}},\"contentName\":\"string.unquoted.hurl\",\"end\":\"$\",\"name\":\"entity.name.tag.header.hurl\",\"patterns\":[{\"include\":\"#placeholders\"}]}]},\"sections\":{\"patterns\":[{\"match\":\"^\\\\s*\\\\[(QueryStringParams|Query|FormParams|Form|MultipartFormData|Multipart|Cookies|Captures|Asserts|BasicAuth|Options)]\",\"name\":\"entity.name.section.hurl\"}]},\"strings\":{\"patterns\":[{\"match\":\"\\\"(\\\\\\\\.|[^\\\"\\\\\\\\])*\\\"\",\"name\":\"string.quoted.double.hurl\",\"patterns\":[{\"include\":\"#escapes\"}]}]}},\"scopeName\":\"source.hurl\",\"embeddedLangs\":[\"graphql\",\"xml\",\"csv\"]}"))

export default [
...graphql,
...xml,
...csv,
lang
]
